Skip to content

Add Mendix 11.13 to CI, fix the drift it exposed, and pin every version to its latest patch - #821

Merged
ako merged 3 commits into
mendixlabs:mainfrom
ako:main
Aug 3, 2026
Merged

Add Mendix 11.13 to CI, fix the drift it exposed, and pin every version to its latest patch#821
ako merged 3 commits into
mendixlabs:mainfrom
ako:main

Conversation

@ako

@ako ako commented Aug 3, 2026

Copy link
Copy Markdown
Collaborator

Follow-up to the sync merged as #820. Two commits.

Mendix 11.13 support — and the drift adding it exposed

Running the doctype corpus against 11.13 before touching the nightly matrix turned up one failure, on both engines:

[error] [CE5277] "Please re-run and save the query to fix the error"
  at Execute database query action activity 'Query external database'

11.13 replaced the integer QueryType on DatabaseConnector$DatabaseQuery with a Type string enum (Select / NonSelect / Unknown), shipping a one-time conversion (ExternalDatabaseConnectionQueryTypeConversion) for older documents. mxcli wrote the legacy integer unconditionally, so on 11.13 the new property was simply absent — and an absent Type reads as Unknown. The queries themselves report nothing; the error lands on every activity pointing at them, so it presents as a microflow defect.

Finding the target shape without guessing — run the new mxbuild's own migration over an old project and diff the BSON:

mx convert -p -s /path/to/11.12-project    # with the 11.13 mx binary

Mendix ships a conversion per renamed property, so the converted document is authoritative. That is what showed QueryType: 1Type: "Select". It is the non-widget counterpart of the "Studio Pro Update Widget" diff, and needs no Studio Pro.

New mdl/dbconnector picks the spelling from the project's Mendix version and writes exactly one. Writing both is not a safe hedge — a property the target's metamodel does not define is the #759 Studio-Pro-won't-open shape. The read side accepts either, or the next ALTER of an 11.13 project writes Unknown straight back over it.

mxcli never connects to a database, so it cannot derive the type the way Studio Pro does (running the query and inspecting the result set). It reads the leading SQL keyword instead — still better than Mendix's own converter, which marks every migrated query Select regardless of statement. A value already stored outranks the heuristic, so a round-trip preserves what Studio Pro derived. This is the one judgment call in the diff: a SELECT-returning stored procedure invoked via EXEC gets marked NonSelect until someone re-runs it in Studio Pro — which is what CE5277's message asks for anyway.

Mutation-checked: stubbing the version predicate to false fails the 11.13 case and passes the 11.6 one, so the test proves the version reaches the writer rather than only that the mapping is right.

Found but deliberately NOT fixed: 11.13 also added CE5278 ("The PostgreSQL/MSSQL JDBC driver is missing from the module settings"), a check on the module's Java dependencies rather than on anything mxcli writes. mxcli has no way to author module settings. It never fires in the nightly, whose harness imports the connector mpk. Documented in the bug-test fixture and the onboarding doc so it isn't re-diagnosed as this bug.

Every Mendix version in CI pinned to its latest patch

nightly     10.24.19.104498 -> 10.24.24.119349
            11.6.6          -> 11.6.8
            11.12.0         -> 11.12.2
            (new)              11.13.0
push-test   11.9.0          -> 11.12.2

push-test was two minors behind the nightly's newest 11.x, so the fast per-push gate was validating against a Mendix nobody targets. It now matches a version the nightly also covers, making push-test a strict subset of the nightly.

Latest patches confirmed by listing the CDN bucket, not by probing tarball names: https://cdn.mendix.com/?list-type=2&prefix=runtime/mxbuild-10.24. — which matters for 10.x, whose tarballs carry a build number that cannot be guessed from the release notes. It also surfaced 10.24.24 (published 2026-07-31), one patch beyond the newest version listed on the 10.24 release-notes page.

Each bump ran the full executor integration suite against the new binary before landing, because a patch bump is not automatically safe — 11.13 shipped a renamed metamodel property in a minor, and nothing confines that to minors:

Version Result
10.24.24.119349 ok, 931s, 0 failures
11.6.8 ok, 1198s, 0 failures
11.12.2 ok, 1117s, 0 failures
11.13.0 ok, 1142s, 0 failures (full ./...)

Also included

Repro fixture mdl-examples/bug-tests/1113-database-query-type-enum.mdl, a symptom-table row, a "11.13 onboarding" section in WIDGET_BSON_VERSION_COMPATIBILITY.md (documenting the mx convert diff method and the rule that onboarding a minor starts by running the corpus, not by editing the matrix), and CLAUDE.md's overlay-writes rule extended to the CREATE case — where there is no stored document to read the key off, so you branch on version and never write both

claude and others added 3 commits August 2, 2026 20:08
…posed

Adding '11.13.0' to the matrix on its own would have shipped a red nightly:
11.13 replaced the integer QueryType on DatabaseConnector$DatabaseQuery with
a `Type` string enum ("Select" / "NonSelect" / "Unknown"), and ships a
one-time conversion (ExternalDatabaseConnectionQueryTypeConversion) for older
documents. mxcli wrote the legacy integer unconditionally, so on 11.13 the
new property was simply absent — and an absent `Type` reads as Unknown:

  [error] [CE5277] "Please re-run and save the query to fix the error"
    at Execute database query action activity 'Query external database'

once per activity, on both engines. The queries themselves report nothing,
so it reads like a microflow defect.

mdl/dbconnector decides the spelling from the project's Mendix version and
writes exactly one of them. Writing both is not a safe hedge: a property the
target's metamodel does not define is the shape Studio Pro fails to resolve
on open. The read side accepts either, or the next ALTER of an 11.13 project
would write Unknown straight back.

mxcli never connects to the database, so it cannot derive the type the way
Studio Pro does (running the query and inspecting the result set). It reads
the leading SQL keyword instead — still better than Mendix's own converter,
which marks every migrated query Select regardless of statement. A value
already stored outranks the heuristic, so a round-trip preserves what Studio
Pro derived.

Verified with mx check on real projects: 11.13.0 given the doctype corpus is
clean on both engines (a pre-fix binary reproduces CE5277 exactly); 11.12.2,
11.6.6 and 10.24 still store the legacy integer and still pass. Full
integration suite green against 11.13.

Found but NOT fixed, and documented as such: 11.13 also added CE5278 ("The
<db> JDBC driver is missing from the module settings"), a check on the
module's Java dependencies rather than on anything mxcli writes. mxcli has no
way to author module settings. It does not affect the nightly, whose harness
imports the connector mpk.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012XR649rKk68z6gBpngu6MA
The nightly matrix and push-test had drifted several patches behind:

  nightly     10.24.19.104498 -> 10.24.24.119349
              11.6.6          -> 11.6.8
              11.12.0         -> 11.12.2
  push-test   11.9.0          -> 11.12.2

11.9 was two minors behind the nightly's newest 11.x, so the fast
single-version gate on every push was validating against a Mendix nobody
was targeting. It now matches a version the nightly also covers.

Versions confirmed latest by listing the CDN bucket rather than probing
names — https://cdn.mendix.com/?list-type=2&prefix=runtime/mxbuild-<minor>.
That matters for 10.x, whose tarballs carry a build number that cannot be
guessed from the release notes (10.24.24.119349).

Each bump ran the full executor integration suite (doctype corpus + mx
check, both engines) against the new binary before landing. A patch bump is
not automatically safe: 11.13 shipped a renamed metamodel property in a
minor, and the same class of change can land in a patch.

  10.24.24.119349   ok  931s   0 failures
  11.6.8            ok 1198s   0 failures
  11.12.2           ok 1117s   0 failures
  11.13.0           ok 1142s   0 failures  (full ./... run)

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012XR649rKk68z6gBpngu6MA
@ako
ako merged commit 689e8ce into mendixlabs:main Aug 3, 2026
2 checks passed
@github-actions github-actions Bot mentioned this pull request Aug 3, 2026
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.

2 participants