Skip to content

Built integration test schema through SchemaBuilderEvent - #36

Closed
Steveb-p wants to merge 2 commits into
4.6from
database-schema-hook-4.6
Closed

Built integration test schema through SchemaBuilderEvent#36
Steveb-p wants to merge 2 commits into
4.6from
database-schema-hook-4.6

Conversation

@Steveb-p

@Steveb-p Steveb-p commented Sep 9, 2026

Copy link
Copy Markdown
Contributor

Warning

This branch includes a temporary commit (dependencies.json) that points CI at
ibexa/test-core#43 so tests can run before that PR merges. Must be removed before merging
this PR.

🎫 Issue IBX-XXXXX

Related PRs:

The other 26 package PRs (all must land together with #43)
  • ibexa/activity-log#182
  • ibexa/cart#181
  • ibexa/collaboration#125
  • ibexa/connector-ai#218
  • ibexa/corporate-account#385
  • ibexa/discounts#362
  • ibexa/discounts-codes#61
  • ibexa/fieldtype-page#229
  • ibexa/form-builder#257
  • ibexa/measurement#148
  • this PR
  • ibexa/migrations#458
  • ibexa/oauth2-server#56
  • ibexa/order-management#202
  • ibexa/payment#218
  • ibexa/product-catalog#1590
  • ibexa/product-catalog-date-time-attribute#65
  • ibexa/product-catalog-symbol-attribute#27
  • ibexa/scheduler#182
  • ibexa/segmentation#228
  • ibexa/share#203
  • ibexa/shipping#170
  • ibexa/site-context#164
  • ibexa/site-factory#193
  • ibexa/taxonomy#449
  • IBX-12530: Built integration test schema through SchemaBuilderEvent user#146
  • ibexa/workflow#210

Description:

ibexa/test-core#43 rebuilds DatabaseSchemaHook on SchemaBuilderInterface::buildSchema(). It
previously imported raw schema.yaml files listed through SchemaFilesProviderInterface via
LegacySchemaImporter, which never dispatches SchemaBuilderEvent — so a package contributing
its schema through the event rather than a file was never covered by integration tests, even
though the event is what ibexa:install's legacy path uses in production.

That makes #43 a breaking change for every Bootstrapper consumer, not only the ones with
their own provider: the deleted SchemaFilesKernelMethodProvider was the fallback that read
$kernel->getSchemaFiles(). Without the change below the suite fails on missing core tables.

So the test kernel registers two more bundles:

  • DoctrineSchemaBundle — provides SchemaBuilderInterface.
  • IbexaRepositoryInstallerBundle — core's own BuildSchemaSubscriber lives there, not in
    IbexaCoreBundle. Without it the event yields every other package's tables but none of core's.

This package has no SchemaFilesProvider; it relied on the getSchemaFiles() fallback that #43 removes.

Nothing outside tests/ changes.

For QA:

composer test-integration — 10 tests / 10 errors — byte-identical to the baseline run on 4.6; all pre-existing and unrelated.

ibexa/test-core#43 rebuilds DatabaseSchemaHook on SchemaBuilderInterface::buildSchema()
instead of importing raw schema.yaml files, so the test kernel now has to register
DoctrineSchemaBundle (which provides SchemaBuilderInterface) and
IbexaRepositoryInstallerBundle (which holds core's own BuildSchemaSubscriber).
Points CI at the branch that rebuilds DatabaseSchemaHook, so this PR's tests can run
before that PR merges. Must be removed before merging.
@Steveb-p Steveb-p changed the title Build integration test schema through SchemaBuilderEvent Built integration test schema through SchemaBuilderEvent Sep 9, 2026
@Steveb-p

Steveb-p commented Sep 9, 2026

Copy link
Copy Markdown
Contributor Author

Superseded by ibexa/test-core#43, which now registers DoctrineSchemaBundle and IbexaRepositoryInstallerBundle in IbexaTestKernel itself. Registering them here was this PR's entire diff, so there is nothing left for this package to do — closing.

@Steveb-p Steveb-p closed this Sep 9, 2026
@Steveb-p
Steveb-p deleted the database-schema-hook-4.6 branch September 9, 2026 12:54
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.

1 participant