Skip to content

feat!: Core Architecture and CLI Redesign - #15

Merged
sauce-base merged 3 commits into
mainfrom
dev
Jul 21, 2026
Merged

feat!: Core Architecture and CLI Redesign#15
sauce-base merged 3 commits into
mainfrom
dev

Conversation

@sauce-base

Copy link
Copy Markdown
Contributor

This pull request is a major refactor that transitions saucebase/installer from a Laravel package to a standalone, globally-installed Composer CLI tool, similar to laravel/installer. The CLI now exposes saucebase new, saucebase install, and saucebase stack commands, 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

  • Refactored saucebase/installer to be a standalone, globally-installed Composer CLI tool (not a Laravel package), with a saucebase binary exposing new, install, and stack commands. The CLI operates on external target directories and no longer uses service providers or package discovery. (CLAUDE.md [1] [2]; README.md [3]
  • Updated the architecture to use a minimal Illuminate\Console\Application, registering commands via a custom container, and running all artisan steps as subprocesses in the target directory. (CLAUDE.md CLAUDE.mdR28-R90)
  • Updated composer.json to add the bin/saucebase binary, remove the extra.laravel.providers section, 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 via laravel/installer and runs the full install flow, collecting all prompts upfront for unattended installation. (README.md [1]; CLAUDE.md [2]
  • saucebase install provisions an existing app directory, supporting both Docker and native drivers with improved flow and options. (README.md README.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]
  • Docker and native flows have been rewritten to copy Docker stubs directly, run all commands in the correct context, and handle SSL, environment, and module setup more robustly. (CLAUDE.md CLAUDE.mdR28-R90)

Documentation and Testing

  • Rewrote README.md and CLAUDE.md to 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]
  • Updated testing strategy to plain PHPUnit (no Testbench, no Laravel app), reflecting the new standalone CLI approach. (CLAUDE.md CLAUDE.mdR28-R90)

These changes make saucebase/installer a modern, first-class CLI for Saucebase apps, decoupled from the Laravel package ecosystem and ready for global Composer installation.

roble and others added 3 commits July 21, 2026 09:24
…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.
@sauce-base sauce-base changed the title Add queue service and ModuleRegistry for dynamic module handling feat!: Add queue service and ModuleRegistry for dynamic module handling Jul 21, 2026
@sauce-base sauce-base changed the title feat!: Add queue service and ModuleRegistry for dynamic module handling feat!: Core Architecture and CLI Redesign Jul 21, 2026
@sauce-base
sauce-base merged commit 090995c into main Jul 21, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants