Repository navigation
Sync ako/mxcli: workflows written below Mendix 11.3 load and pass mx check - #1666
Merged
Merged
Conversation
…#1754) mxcli wrote every workflow in the 11.3 shape, with a stored start and closing end. That broke every workflow below 11.3, while `mxcli check` and `exec` passed: - 10.24 and 11.0: the project no longer loaded. mx check and Studio Pro throw TypeCacheUnknownTypeException for Workflows$StartWorkflowActivity, a type introduced in 11.1.0 (mendixmodelsdk 4.117.0). - 11.1 and 11.2: CE6671 and CE6689. These versions have the type but keep the main flow's start and end implicit; 11.3 is the first to store them. - Below 11.1, every activity carried RelativeMiddlePoint/Size, including one inserted by `alter workflow … insert`. Workflows$WorkflowActivity declares these from 11.1.0. The property-set pass does not look up supertype declarations, so it let them through. The encoder now writes the shape the project's version stores. Below 11.3 it drops the main flow's start and closing end, and the start's note becomes the workflow's own Annotation. A branch's `end workflow` stays. Below 11.1 it drops the geometry, in create, modify and the mutator's inserted activity. Below 11.3, `alter workflow … set (Annotation: …)` writes the workflow's note, because there is no start activity to hold it. Changing the stored shape broke a reader. The CREATE OR MODIFY guard counted branch ends as "all stored Ends - 1", assuming the main flow's End is always stored. Below 11.3 that counted one branch `end workflow` as none, so a rewrite dropped it without a word. Measured on 10.24 with the guard reverted: "Modified workflow". The guard now subtracts the main flow's End only when it is stored. Why CI missed it: 24-workflow-examples.mdl is gated 11.0+ as a whole file, so the nightly 10.24 leg never wrote a workflow. The new 24b-workflow-mendix10-examples.mdl is gated 10.0+. On its first run it found two more gaps: the guard above, and 10.24's property set. 10.24's `mx convert` adds UsertaskOnStateChangeEvent and WorkflowOnStateChangeEvent ({"v":null}) to every workflow. That measurement, from a 10.24 + 11.0 record, is folded into the defaults table with propdefaults. Verified with mdl-examples/bug-tests/1754-workflow-below-mendix-11-3.mdl on fresh 10.24.24, 11.0.0, 11.1.0 and 11.3.0 apps. The fixed binary matches the blank app: 0 errors on every version. With both version predicates stubbed true, it reproduces the report: TypeCacheUnknownType on 10.24 and 11.0, CE6671 and CE6689 on 11.1, and clean on 11.3, the control. In the doctype gate, 24b passes on 10.24, 11.0, 11.1 and 11.13, and 24 passes on 10.24 and 11.13. On 11.0 and 11.1, 24 fails exactly as it does on main: event-handler types, System.WorkflowGroup and the user task's property set. Those are unrelated gaps, and both versions are outside the nightly matrix. Describe and re-exec on 10.24 is "Unchanged", with no unit bytes changed. Co-Authored-By: Claude Opus 5.5 <[email protected]> Claude-Session: https://claude.ai/code/session_011oK82sUVQEB3K5W5vh85wM
The #1754 note on where the header annotation is stored took the skill's body to 701 lines, which TestLargeSkillsWereSplit refuses. Same content, one line shorter. Co-Authored-By: Claude Opus 5.5 <[email protected]> Claude-Session: https://claude.ai/code/session_011oK82sUVQEB3K5W5vh85wM
fix: workflows written below Mendix 11.3 do not load or fail mx check
Ricovl
pushed a commit
to Ricovl/mxcli
that referenced
this pull request
Oct 28, 2026
…-unrelated-xpath fix: rename attribute rewrites unrelated XPath constraints and drops their line breaks (ako#1506)
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.
Syncs
ako/mxcli:maininto upstream: 2 commits from fork PR ako#1757.Workflows written below Mendix 11.3 load and pass mx check
mxcli wrote every workflow in the Mendix 11.3 shape: the main flow's start and closing end stored as activities, and layout properties on every activity.
mxcli checkandexecpassed, but below 11.3:TypeCacheUnknownTypeException … Workflows$StartWorkflowActivity. The type is introduced in 11.1.0.RelativeMiddlePoint/Size, whichWorkflows$WorkflowActivitydeclares only from 11.1.0. That includes an activity inserted byalter workflow … insert.Fix
annotationbecomes the workflow's own note. A branch'send workflowstays.alter workflow … insertadds.alter workflow … set (Annotation: …)writes the workflow's own note when there is no start activity to hold it.end workflowon a rewrite. It now subtracts the main End only when one is stored.mx convertaddsUsertaskOnStateChangeEventandWorkflowOnStateChangeEventto every workflow. That was measured on 10.24 and 11.0 and is now in the defaults table.Why CI missed it
24-workflow-examples.mdlis gated 11.0+ as a whole file, so the nightly 10.24 leg never wrote a workflow.24b-workflow-mendix10-examples.mdlis gated 10.0+. On its first run it found the guard and property-set gaps above.Verified
Unit tests: written first, red then green. They cover the shape per version (with 11.3, 11.14 and unread-version controls), the geometry (with an 11.1 control), the inserted activity, the note without a start, and the guard.
Real mx check of the bug-test script on fresh apps: blank app, then the fixed build, then the fixed build with both version predicates stubbed
true:TypeCacheUnknownTypeExceptionTypeCacheUnknownTypeExceptionRound trip on 10.24: executing the
describe workflowoutput reports "Unchanged workflow" and leaves no unit bytes changed.Local checks:
make build,make test,make lintandmake check-mdlpass, along with the findings, skill-index and wiki-page checks