Repository navigation
feat(cmmn): remove the casePlanState property and its drain (gated on the drain report) - #3776
Draft
rubenvdlinde wants to merge 2 commits into
Draft
rubenvdlinde wants to merge 2 commits into
rubenvdlinde wants to merge 2 commits into
Conversation
retire-cmmn-caseplanstate 3.2. Gated: merge only after the drain report shows zero populated blobs and zero unmappable cases. OpenRegister strips an undeclared property on save, so an earlier merge destroys the blobs that are left. case 1.42.0, caseType 1.18.1, caseModel 1.0.2, register 0.20.33. The drain command, its repair step and CasePlanDrain leave in this commit; CmmnRetirementTest's allowlist is empty.
Keeps the draft current after trains 1 to 3. Three version conflicts, all taken as the higher plus this branch's own step: register 0.20.38 (development 0.20.37), case 1.44.0 (development 1.43.0, this branch removes casePlanState), caseType 1.19.1 (development 1.19.0, this branch redescribes handlingModel), app version 0.4.47-unstable.20261012154724. Schema digests regenerated with tools/schema-version-digests.php.
Contributor
Quality Report — ConductionNL/dossiq @
|
| Check | PHP | Vue | Security | License | Tests |
|---|---|---|---|---|---|
| lint | ✅ | ||||
| phpcs | ✅ | ||||
| phpmd | ✅ | ||||
| psalm | ✅ | ||||
| phpstan | ✅ | ||||
| phpmetrics | ✅ | ||||
| eslint | ✅ | ||||
| stylelint | ✅ | ||||
| build | ✅ | ||||
| check-manifest | ✅ | ||||
| check-vue3-compile | ✅ | ||||
| test-l10n | ✅ | ||||
| format | ✅ | ||||
| check-schema-l10n | ✅ | ||||
| check-l10n-js | ✅ | ||||
| check-debt-ratchet | ❌ | ||||
| check-types-e2e | ✅ | ||||
| composer | ✅ | ✅ 109/109 | |||
| npm | ✅ | ✅ 659/659 | |||
| app:check-code | ⏭️ | ||||
| info.xml | ✅ | ||||
| REUSE | ❌ | ||||
| lockfile sync | ✅ | ||||
| PHPUnit | 🚨 NO VERDICT — enabled but never ran | ||||
| Newman | ⏭️ | ||||
| Playwright | ⏭️ deferred: E2E runs locally and on the promotion path only. This pull request targets development, so the suite is asked once per promotion into beta and main rather than once per push per open pull request. Run it locally with npx playwright test, or from the Actions tab on a branch with no open pull request into development. |
||||
| Hydra gates | ⏭️ |
Quality workflow — 2026-10-12 14:00 UTC
Download the full PDF report from the workflow artifacts.
This was referenced Oct 12, 2026
This branch has not been deployed
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.
Do not merge yet
This PR removes the
casePlanStateproperty from the case schema. OpenRegister strips an undeclared property the next time a case is saved. Merged too early, it destroys every plan the drain has not moved.Merge only when both are true on every instance that will get this release:
occ dossiq:cmmn:migrate-case-plans --strictexits 0 and reports zero populated blobs.It stays a draft until someone confirms that. After the merge there is no rollback short of a release rollback.
What this does
retire-cmmn-caseplanstatetask 3.2, the last step of the removal.casePlanStateis gone fromdossiq_register.jsonanddossiq_mock_register.json, with its three seeded example values.caseType.handlingModelkeeps its two values. The description ofcmmnnow says what happens: the published case model goes to OpenRegister's case layer when a case starts, and OpenRegister holds and moves the plan items.caseModeldescriptions named the retired engine and the blob. They are reworded, in English and Dutch.lib/Service/CasePlanDrain/,occ dossiq:cmmn:migrate-case-plans, theMigrateCmmnCasePlansrepair step, andCasePlanProjectionService::definitionForCaseType(), which only the drain called. With the property gone the drain has nothing to read.CmmnRetirementTestnow has an empty allowlist and asserts it stays empty.testTheBlobAndItsDrainAreGonekeeps the property and the drain out.tests/e2e/cmmn-retirement.spec.ts: its command no longer exists. Run that scenario in the live pass of feat(cmmn): retire the local CMMN runtime, the case plan lives in OpenRegister only #3773, before this merges.Versions: case 1.42.0, caseType 1.18.1, caseModel 1.0.2, register 0.20.33, app
0.4.47-unstable.20261012090000. Digests regenerated; the diff is those three schemas only. Whoever lands this takes the highest register version ondevelopmentplus one and regenerates the digests.Base and stack
Stacked on #3773 (
build/dq-l7-6), which is stacked on merge train 2 (#3742). Land order: #3742, #3773, the drain gate, then this. Until #3773 lands the diff againstdevelopmentshows both.Verified
phpunit --no-coverageoverCmmnRetirementTest,tests/Unit/Settings,Repair,AppInfo,Architecture,Command,Controller,CasePlanProjectionServiceTestandDemoDataServiceTest: exit 0, 2267 tests.CasePlanProjectionService.php: exit 0 each.check:schema-l10n: 0 uncovered.test:l10nandcheck:l10n-js: OK. vitestcaseSearchDeclarations: 8 pass. prettier and eslint on the changed specs: clean.openspec validate retire-cmmn-caseplanstate --strict: valid.check:strict, the Hydra gates and Playwright. CI is the full check (decision 149).