You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Spun out of #28 (which fixed the PHPUnit half of #11 + the #19 transition-endpoint collection change).
Symptoms
The quality / Integration Tests (Newman) job fails: every assertion in tests/integration/*.postman_collection.json fails (including the pre-existing GET hello-world manifest returns 200). Job log shows:
OpenBuilt: SeedHelloWorld failed — DoesNotExistException: ... SELECT * FROM oc_openregister_registers WHERE LOWER(slug) = 'openbuilt'
Exception while executing repair step Seed Conduction-curated OpenBuilt ApplicationTemplate records — Failed to seed template "permit-tracker": ... oc_openregister_registers WHERE slug = 'openbuilt'
... and at request time: getManifest failed for slug hello-world — DoesNotExistException: ... oc_openregister_registers
Root cause
OpenBuilt's <install> repair steps run on occ app:enable openbuilt, in order InitializeSettings → SeedHelloWorld → PopulateApplicationPermissions → SeedApplicationTemplates. InitializeSettings is supposed to import lib/Settings/openbuilt_register.json via OpenRegister's ConfigurationService and thereby create the openbuilt register — but against the OpenRegister version CI installs (additional-apps: ref:main) it does not, so the register never exists and every subsequent step / API call that resolves register=openbuilt fails.
Contributing factors:
code-quality.yml pins OpenRegister to main, which is stale ("overwritten with beta 2") and predates the lifecycle/transition feature OpenBuilt's versioning code depends on (ObjectTransitionedEvent, ObjectService::searchObjectsBySlug, POST /api/objects/{id}/transition, the x-openregister-lifecycle schema annotation). Those live only on OpenRegister development.
OpenRegister development HEAD currently fatal-errors at app-enable (Cannot redeclare OCA\OpenRegister\Db\Organisation::$mail — regression from openregister#1494), so it isn't a usable pin right now either.
The Newman job runs with an empty newman-seed-command, so there's no explicit occ maintenance:repair fallback to (re)seed the register.
Suggested fix
Diagnose why InitializeSettings → ConfigurationService::importFromApp('openbuilt', …) doesn't create the register against the pinned OR (likely an OR-API mismatch; may resolve once OR is pinned to a ref with the lifecycle feature).
Once OpenRegister development is healthy again, bump additional-apps to track it (the active OR integration branch, the same target OpenBuilt's own PRs use).
Consider setting newman-seed-command: php occ maintenance:repair in code-quality.yml so the register/schemas/seed data are guaranteed present before Newman runs.
File openregister#NNNN for the Organisation::$mail redeclare regression on development.
Until then, the new POST .../transition step in tests/integration/openbuilt.postman_collection.json (added in #28) is correct but can't pass — it needs OR's lifecycle feature + a seeded register.
Spun out of #28 (which fixed the PHPUnit half of #11 + the #19 transition-endpoint collection change).
Symptoms
The
quality / Integration Tests (Newman)job fails: every assertion intests/integration/*.postman_collection.jsonfails (including the pre-existingGET hello-world manifest returns 200). Job log shows:Root cause
OpenBuilt's
<install>repair steps run onocc app:enable openbuilt, in orderInitializeSettings → SeedHelloWorld → PopulateApplicationPermissions → SeedApplicationTemplates.InitializeSettingsis supposed to importlib/Settings/openbuilt_register.jsonvia OpenRegister'sConfigurationServiceand thereby create theopenbuiltregister — but against the OpenRegister version CI installs (additional-apps: ref:main) it does not, so the register never exists and every subsequent step / API call that resolvesregister=openbuiltfails.Contributing factors:
code-quality.ymlpins OpenRegister tomain, which is stale ("overwritten with beta 2") and predates the lifecycle/transition feature OpenBuilt's versioning code depends on (ObjectTransitionedEvent,ObjectService::searchObjectsBySlug,POST /api/objects/{id}/transition, thex-openregister-lifecycleschema annotation). Those live only on OpenRegisterdevelopment.developmentHEAD currently fatal-errors at app-enable (Cannot redeclare OCA\OpenRegister\Db\Organisation::$mail— regression from openregister#1494), so it isn't a usable pin right now either.newman-seed-command, so there's no explicitocc maintenance:repairfallback to (re)seed the register.Suggested fix
InitializeSettings→ConfigurationService::importFromApp('openbuilt', …)doesn't create the register against the pinned OR (likely an OR-API mismatch; may resolve once OR is pinned to a ref with the lifecycle feature).developmentis healthy again, bumpadditional-appsto track it (the active OR integration branch, the same target OpenBuilt's own PRs use).newman-seed-command: php occ maintenance:repairincode-quality.ymlso the register/schemas/seed data are guaranteed present before Newman runs.Organisation::$mailredeclare regression ondevelopment.Until then, the new
POST .../transitionstep intests/integration/openbuilt.postman_collection.json(added in #28) is correct but can't pass — it needs OR's lifecycle feature + a seeded register.