feat!: Core Architecture and CLI Redesign - #15
Merged
Merged
Conversation
…tion - Added ModuleRegistry class to discover installable Saucebase modules from Packagist. - Implemented methods for filtering modules by framework and prompting user selection. - Enhanced Environment class with a static make method for creating environment instances. - Updated NativeEnvironment to read APP_URL from .env file. - Removed InstallerServiceProvider as it is no longer needed. - Refactored tests to accommodate changes in command structure and environment handling. - Updated test cases to ensure proper functionality of new features and maintain coverage.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This pull request is a major refactor that transitions
saucebase/installerfrom a Laravel package to a standalone, globally-installed Composer CLI tool, similar tolaravel/installer. The CLI now exposessaucebase new,saucebase install, andsaucebase stackcommands, and no longer relies on Laravel's package discovery or service providers. The documentation and architecture have been thoroughly rewritten to reflect this new model, and the codebase and Composer configuration have been updated accordingly.Key changes include:
Core Architecture and CLI Redesign
saucebase/installerto be a standalone, globally-installed Composer CLI tool (not a Laravel package), with asaucebasebinary exposingnew,install, andstackcommands. The CLI operates on external target directories and no longer uses service providers or package discovery. (CLAUDE.md[1] [2];README.md[3]Illuminate\Console\Application, registering commands via a custom container, and running all artisan steps as subprocesses in the target directory. (CLAUDE.mdCLAUDE.mdR28-R90)composer.jsonto add thebin/saucebasebinary, remove theextra.laravel.providerssection, and add new dependencies required for standalone operation (composer-runtime-api,guzzlehttp/guzzle,illuminate/container,illuminate/events,laravel/installer). (composer.json[1] [2]Command and Flow Changes
saucebase new <name>scaffolds a new project vialaravel/installerand runs the full install flow, collecting all prompts upfront for unattended installation. (README.md[1];CLAUDE.md[2]saucebase installprovisions an existing app directory, supporting both Docker and native drivers with improved flow and options. (README.mdREADME.mdL5-R113)saucebase stack <vue|react>switches the frontend framework, now operating on a target path and supporting dev/contributor mode. (README.md[1];CLAUDE.md[2]CLAUDE.mdCLAUDE.mdR28-R90)Documentation and Testing
README.mdandCLAUDE.mdto document the new CLI interface, installation, requirements, and architecture, removing all references to the old Laravel package model. (README.md[1];CLAUDE.md[2] [3]CLAUDE.mdCLAUDE.mdR28-R90)These changes make
saucebase/installera modern, first-class CLI for Saucebase apps, decoupled from the Laravel package ecosystem and ready for global Composer installation.