Skip to content

Add a new development seed preset with rich content - #321

Open
iMattPro wants to merge 9 commits into
phpbb:masterfrom
iMattPro:seeding
Open

Add a new development seed preset with rich content#321
iMattPro wants to merge 9 commits into
phpbb:masterfrom
iMattPro:seeding

Conversation

@iMattPro

Copy link
Copy Markdown
Member

No description provided.

@iMattPro iMattPro added the WIP label Jul 31, 2026

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

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 a new development seed preset that generates richer phpBB fixture content, while keeping the older extension-dev preset accepted (but hidden/deprecated). It also refactors seeding to use a unified runtime package copied into the board container, rather than generating a single seeder script.

Changes:

  • Add SeedPresetCatalog to centralize accepted/visible/default/deprecated seed presets and update CLI + web UI to default to development while warning on deprecated extension-dev.
  • Replace single-file seeder script generation with a modular SeedRuntime/ package (plans, builders, manifest tracking, reset/replace lifecycle).
  • Expand and update unit/integration tests and docs to cover the new preset, visibility/deprecation behavior, and the new runtime packaging.

Reviewed changes

Copilot reviewed 25 out of 25 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
tests/Unit/SeedPresetCatalogTest.php Adds unit coverage for default/visible/accepted/deprecated preset behavior.
tests/Unit/SeederWriterTest.php Updates expectations for writing the modular runtime package instead of a single script.
tests/Unit/SeederPackageTest.php Adds unit coverage for generated runtime package contents and deterministic assets.
tests/Unit/BoardRunnerTest.php Updates command expectations for copying/executing the runtime package inside containers.
tests/Integration/WebApplicationTest.php Verifies the web UI shows development and hides extension-dev.
tests/Integration/ApplicationTest.php Verifies CLI help output reflects development and hides deprecated presets.
src/QuickInstall/Sandbox/Web/Application.php Uses SeedPresetCatalog for defaults/validation, visibility lists, and deprecation warnings.
src/QuickInstall/Sandbox/SeedRuntime/VolumeSeeder.php Implements volume-based seeding for non-development presets.
src/QuickInstall/Sandbox/SeedRuntime/UserBuilder.php Adds development user creation, signatures, warnings, and avatar generation.
src/QuickInstall/Sandbox/SeedRuntime/StateBuilder.php Seeds attachments, reports, PMs, notifications, and search index state.
src/QuickInstall/Sandbox/SeedRuntime/SeedPlan.php Adds shared helpers for seed plan verification.
src/QuickInstall/Sandbox/SeedRuntime/Seeder.php Introduces unified seeding lifecycle (manifest load, reset/replace, finalize, verify).
src/QuickInstall/Sandbox/SeedRuntime/SeedContext.php Adds manifest + file tracking, storage integration, and shared runtime context utilities.
src/QuickInstall/Sandbox/SeedRuntime/run.php Adds the CLI entrypoint executed inside the container to run the selected preset/action.
src/QuickInstall/Sandbox/SeedRuntime/ForumBuilder.php Seeds development forums/categories, permissions, rules, and forum state scenarios.
src/QuickInstall/Sandbox/SeedRuntime/DevelopmentSeeder.php Implements the rich development preset plan plus verification checks.
src/QuickInstall/Sandbox/SeedRuntime/ContentBuilder.php Seeds rich topics/posts/polls plus volume posting for load-style presets.
src/QuickInstall/Sandbox/SeedPresetCatalog.php New catalog defining accepted/visible/default/deprecation messaging for presets.
src/QuickInstall/Sandbox/SeederWriter.php Refactors to copy the SeedRuntime/ package into per-board runtime state.
src/QuickInstall/Sandbox/bootstrap.php Ensures SeedPresetCatalog is loaded in bootstrap ordering.
src/QuickInstall/Sandbox/BoardRunner.php Updates seeding to copy runtime package into container and execute run.php.
src/QuickInstall/Sandbox/Application.php Updates CLI defaults/help/validation to use SeedPresetCatalog and warn on deprecated preset.
README.md Updates quickstart to use development and mentions unified runtime/manifest behavior.
docs/sandbox-cli.md Updates docs to describe the new development preset and revised preset guidance.
composer.json Adds attribution for the inspiration source.

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

Comment thread src/QuickInstall/Sandbox/SeedRuntime/UserBuilder.php
public function testBoardCreateAllowsSupportedSqliteSeedPreset(): void
{
$root = $this->createTempProjectRoot();
$this->addDownloadedSource($root, '3.3.14');

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Is there any specific reason for using 3.3.14 in the tests?

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.

3 participants