Skip to content

Add a Modernized CLI to QI that runs boards in Docker containers#301

Open
iMattPro wants to merge 34 commits into
phpbb:masterfrom
iMattPro:modernize
Open

Add a Modernized CLI to QI that runs boards in Docker containers#301
iMattPro wants to merge 34 commits into
phpbb:masterfrom
iMattPro:modernize

Conversation

@iMattPro

@iMattPro iMattPro commented Jul 1, 2026

Copy link
Copy Markdown
Member

No description provided.

@iMattPro iMattPro added the WIP label Jul 1, 2026

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR introduces an experimental “Sandbox CLI” for QuickInstall that provisions disposable phpBB boards using Docker, storing generated state under .qi/ while leaving the legacy web UI unchanged.

Changes:

  • Adds a bin/qi CLI entrypoint plus a new QuickInstall\Sandbox runtime (project/workspace management, version selection, source management).
  • Implements board lifecycle + Docker runtime generation (compose/Dockerfile/entrypoint), including optional fixture seeding.
  • Adds extension/style “drop zone” mounting (bind or copy) and documentation + ignore rules for the new workflow.

Reviewed changes

Copilot reviewed 16 out of 19 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
styles/.gitkeep Keeps the styles/ drop zone directory in git.
extensions/.gitkeep Keeps the extensions/ drop zone directory in git.
src/QuickInstall/Sandbox/VersionMatrix.php Defines supported phpBB selectors and resolves them to runtime/source metadata.
src/QuickInstall/Sandbox/SourceProvider.php Registers and fetches phpBB sources via Composer or Git.
src/QuickInstall/Sandbox/SourceService.php Higher-level source operations (list/fetch/remove/prune) backed by .qi/sources.json.
src/QuickInstall/Sandbox/Project.php Manages .qi/ workspace layout, JSON registries, and safe filesystem operations.
src/QuickInstall/Sandbox/DockerComposeWriter.php Generates Docker Compose + Dockerfile + entrypoint + installer config for a board.
src/QuickInstall/Sandbox/BoardService.php Orchestrates board creation and delegates runtime/runner operations.
src/QuickInstall/Sandbox/BoardRunner.php Runs docker compose commands, waits for install readiness, and executes seeding.
src/QuickInstall/Sandbox/SeederWriter.php Writes the phpBB in-container seeding script used by board:seed / --populate.
src/QuickInstall/Sandbox/ExtensionManager.php Mount/discover/unmount/list extensions into boards and update board config.
src/QuickInstall/Sandbox/StyleManager.php Mount/discover/unmount/list styles into boards and update board config.
src/QuickInstall/Sandbox/CommandLine.php Minimal --key=value / --key value option parsing helper.
src/QuickInstall/Sandbox/Application.php CLI command router + help text + integrates board/source/ext/style workflows.
bin/qi CLI bootstrap (PHP 8+ guard + requires + runs Application).
docs/sandbox-cli.md Full CLI user guide (recipes, presets, safety defaults, troubleshooting).
README.md Adds “Sandbox CLI Prototype” section and updates upgrade exclusions to include .qi/ + drop zones.
.gitignore Ignores .qi/, drop zones, and agent-related files while keeping .gitkeep placeholders.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +206 to +209
if (version_compare($phpVersion, '7.4', '>='))
{
return '';
}
Comment on lines +54 to +66
if ($requested === 'latest')
{
return [
'version' => 'latest',
'source_key' => '3.3',
'constraint' => '3.3.*',
'branch' => '3.3',
'phpbb_branch' => '3.3',
'php' => '8.1',
'status' => 'supported',
];
}

{
try
{
$mounted[] = $manager->mount($board, $path, false, true);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants