Repository navigation
Conversation
…l's Mendix version A note numbers its sides top 0, bottom 1, left 2, right 3 on Mendix 10, but like every other object (top 0, right 1, bottom 2, left 3) on Mendix 11. The script knew only the Mendix 10 table, so on a Mendix 11 model it read nearly every hand-drawn note line as leaving a side that faces away and printed a false NOTE-SIDE fact. It now reads _ProductVersion from the .mpr's _MetaData table: major 11 or higher uses the activity numbering; a version that cannot be read counts as Mendix 11. The first output line says which numbering was used. Fixture section V: the golden model stamped 10.x, and a Mendix 11 copy with the note sides renumbered as the upgrade does, give the same NOTE-SIDE result for each of the four sides.
Owner
|
Triage (outside PR, code not run): FIX track. Verdict: MERGE-AFTER-FIX. The only fix needed is a rebase:
Generated by Claude Code |
3 tasks done
MendixMau
added a commit
that referenced
this pull request
Nov 1, 2026
…l's Mendix version (#605, port of #595) A note numbers its connection sides one way on Mendix 10 and like every other object on Mendix 11. The tool now reads _MetaData._ProductVersion and states the numbering it used on its first output line. An unreadable version counts as Mendix 11. Ported from #595 by saingge. Review: MERGE — fixture section V fails 6/6 on master's script and passes on the PR's; the Mendix 11 numbering matches mxcli v0.29.0 microflows.go:418-420; the one consumer only logs the output Co-authored-by: saingge <262679532+saingge@users.noreply.github.com> Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018LeNWZV2sVH62vkgfYh5u5
Owner
|
Thank you @saingge — this landed as #605 (already merged), with you kept as commit author. Closing in favour of that port. Generated by Claude Code |
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.
Branch
fix/canvas-facts-note-numbering, one commit (67d4875) on origin/master 95e1b30. Lane 3 (direct). It stands alone: nothing is stacked on it.What changed and why
A note line (
Microflows$AnnotationFlow) stores two integers:OriginConnectionIndex, the note's side, andDestinationConnectionIndex, the object's side. Every object but a note numbers its sides top 0, right 1, bottom 2, left 3. A note numbers its own sides differently by Mendix version:mf-canvas-facts.pyhas only the Mendix 10 table. On a Mendix 11 model it reads nearly every hand-drawn note line as leaving a side that faces away, and prints a false NOTE-SIDE fact (it also bends the line it checks for LINE, so those facts are false too).The script now reads
_ProductVersionfrom the.mpr's_MetaDatatable. Major version 11 or higher uses the activity numbering; 10 uses the old table. If the version cannot be read (no table, no row, no number) it counts as Mendix 11, the newer numbering and the one current mxcli writes. The first output line says which numbering was used, for example# note sides: Mendix 11 numbering (model version 11.15.0), so a reader can check it. Nothing else in the output changes.Why the version and not the data: a note line's pair does not say which numbering it is in.
(2, 0)is "out of the note's left" on Mendix 10 and "out of the note's bottom" on Mendix 11.Impact
project-bin/mf-canvas-facts.pyand its fixture only. The version is read throughModel._db()frommxpatch.py. A script that loadsmf-canvas-facts.pyas a module and readsNOTE_SIDESbeforemain()runs now gets the Mendix 11 table;note_numbering(model)returns the right one for a model. Draft changes that edittests/wave2/test-mf-canvas-facts.shorCHANGELOG.mdwill need a rebase, nothing more.render-routing.sh --check: "Baseline: 65444 words (budget 80000)", the same as on origin/master.SELECTon the.mprper run.Field evidence
One app's 305 hand-drawn note lines, matched across its 10.24 and 11.15 versions by ID. The upgrade changed the note's side on every line: top 0 stayed 0, bottom 1 became 2, left 2 became 3, right 3 became 1. It left the object's side unchanged. By geometry, on 10.24 an object below its note is stored
(1, 0); on 11.15 the same lines are(2, 0).mf-canvas-facts.py --allover both versions of the app (measured 2026-10-29): origin/master reads the 11.15 version with a NOTE-SIDE fact on most of those lines and about twice the LINE facts of the 10.24 version. With this change both versions give identical facts of every kind.mxcli agrees for Mendix 11: v0.28.0 documents a note's sides as numbered like an activity's (
sdk/microflows/microflows.go:418-420) and picks them by geometry (mendixlabs/mxcli#1620). From a read of the source, not a run, it has no check of the project's version on that path (mdl/backend/modelsdk/microflow_write.go:497-504), so on a Mendix 10 project the numbering it writes is the Mendix 11 one, and this script then reports such a line by the Mendix 10 table.Not checked: how Studio Pro 10 or 11 draws a line whose pair is in the other numbering (read from the stored data only, not from a Studio Pro screenshot).
Checklist
LEAKGUARD_ALLOW_NO_DENYLIST=1 LEAKGUARD_BASE=origin/master bin/check-no-client-data.sh: clean; the fixture is the existing synthetic golden model).11.14.0in its dump;model()now stamps10.24.18.103793over it, because its golden facts are a Mendix 10 reading.check-portability.shclean; not run under Git Bash.CHANGELOG.mdline under## Unreleased, credited.Verification
Run on this branch (67d4875), macOS arm64, 2026-10-29,
MXTK_NO_GUIDE=1.New section V (8 checks): the first line names the numbering for a 10.24 and an 11.15 stamp; mxcli's
(2, 0)note above its activity is NOTE-SIDE on 10 and not on 11; for each of the four origin sides, the golden model on 10 and the same model on 11 with the side renumbered as the upgrade does give the same NOTE-SIDE result (1, 0, 1, 1: only a note's bottom faces an activity below it); a model with no_MetaDatatable counts as Mendix 11, says so, and exits 0.mf-canvas-facts.py->PASS=16 FAIL=6: the numbering line (twice), the(2, 0)case, origin sides 1 and 3, and the unreadable-version case fail. Origin sides 0 and 2 pass on master by coincidence: top is 0 in both tables, and the renumbered left (3) is still a side facing away.bin/check-scripts.sh125/125 shell and 25/25 Node parse;bash tests/wave2/test-manifest-clean-checkout.sh1 passed;bin/check-pr-discipline.sh origin/masterclean;bin/render-routing.sh --checkin sync, baseline 65444;bin/mdl-rules.sh --checkin sync;bin/check-portability.shclean;bin/check-no-private-citations.shclean;bin/check-no-client-data.shclean;bash tests/run-tests.shpassed=33 failed=0;test-verify-module-446.sh(stubs this script) 15/15.bash tests/wave2/run-all.sh: not run (about 180 fixtures). Only the fixtures that name this script were run.