Add a new development seed preset with rich content - #321
Conversation
There was a problem hiding this comment.
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
SeedPresetCatalogto centralize accepted/visible/default/deprecated seed presets and update CLI + web UI to default todevelopmentwhile warning on deprecatedextension-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.
| public function testBoardCreateAllowsSupportedSqliteSeedPreset(): void | ||
| { | ||
| $root = $this->createTempProjectRoot(); | ||
| $this->addDownloadedSource($root, '3.3.14'); |
There was a problem hiding this comment.
Is there any specific reason for using 3.3.14 in the tests?
There was a problem hiding this comment.
No reason. It was just a stable version that got chosen and then continued to be propagated through additional test making.
No description provided.