IBX-12358: Generated bundles now bootstrap integration tests through Bootstrapper - #46
Merged
Merged
Conversation
The skeleton still shipped the pre-IBX-12358 hand-rolled bootstrap: boot the kernel, drop and create the database, run doctrine:schema:update, loop getSchemaFiles() through LegacySchemaImporter, loop getFixtures(), purge the search index. Every newly generated bundle was therefore born on a flow the rest of the org has already moved off, and ibexa/test-core 5.0 has shipped Bootstrapper for a while. tests/integration/bootstrap.php is now the same five-line Bootstrapper call every other package uses, and TestKernel registers IbexaTestCoreBundle, which Bootstrapper requires. The getSchemaFiles() override is dropped. It yielded parent::getSchemaFiles() and then yielded @IbexaCoreBundle's legacy schema.yaml again — which the parent already provides — so it was duplicating a file even before ibexa/test-core#43 deprecated the whole schema-file API.
|
mikadamczyk
approved these changes
Sep 10, 2026
Steveb-p
marked this pull request as ready for review
September 10, 2026 09:29
ciastektk
approved these changes
Sep 10, 2026
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.



Related PRs:
Bootstrapper(already merged and shipped in 5.0)Description:
The skeleton still ships the pre-IBX-12358 hand-rolled bootstrap — boot the kernel, drop and
create the database, run
doctrine:schema:update, loopgetSchemaFiles()throughLegacySchemaImporter, loopgetFixtures(), purge the search index. So every newly generatedbundle is born on a flow the rest of the org has already moved off, and one that a maintainer then
has to migrate by hand.
ibexa/test-core5.0 — which the skeleton already requires — has shippedBootstrapperfor a while.tests/integration/bootstrap.phpbecomes the same five-line call every other package uses, andTestKernelregistersIbexaTestCoreBundle, whichBootstrapperneeds forHooksExecutorInterfaceand the built-in hooks.The
getSchemaFiles()override is dropped. It did:— but
parent::getSchemaFiles()already yields exactly that file viaDefaultSchemaFilesProvider,so it was listing it twice. It is redundant today, and ibexa/test-core#43 deprecates the whole
schema-file API on top of that.
getFixtures()andgetExposedServicesByClass()stay aspassthrough scaffolding, since those are still the hooks a bundle author fills in.
Both skeletons (
ibexa-ossandibexa-ee) were identical here and get the identical change.For QA:
Generated a bundle from the modified skeleton and booted it for real:
Bootstrap completes cleanly (
No tests executed!— the skeleton ships no tests yet) againstibexa/test-core5.0.x-dev.Then, to confirm this is behaviour-preserving rather than merely non-crashing, the same generated
bundle was run twice against the same installed
vendor/— once with the old hand-rolledbootstrap.php/TestKernel, once with the new ones — and the resulting SQLite schemas compared:52 tables each, table lists identical.
composer phpstanandcomposer check-cson this repo are clean. Note the repo's owntests/tree contains no test files, so nothing here asserts on generated output — the verification above
was manual.