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
{{ message }}
Repository navigation
fmt --upgrade -p: pin commit without events where the stored flow has it (#895 default change, rehearsal M1) #873
Since mendixlabs#895 (Aug 2026) a bare commit $X; means with events, Studio Pro's default (MDL067 notes it once per flow). Flows written by an older mxcli from the same scripts store commit $X without events (the pre-#895 meaning of a bare commit).
Re-running such a script therefore changes stored behaviour (handlers start running) — and when the commit is inside a loop, under mdl 1 the splice refuses the statement forever ("the Loop … changes inside its body"). In the rehearsal this hit 5 flows of mxcli-ledger (03, 13, 17). fmt --upgrade did nothing about it, because the script alone cannot know what is stored.
-- setup: the flow as an older mxcli stored it
create or modify microflow MyFirstModule.Repro_CommitInLoop ($Items: List of MyFirstModule.Tx)
begin
loop $T in $Items
begin
change $T (Amount =0);
commit $T without events;
end loop;
end;
-- then, twice:
mdl 1;
create or modify microflow MyFirstModule.Repro_CommitInLoop ($Items: List of MyFirstModule.Tx)
begin
loop $T in $Items
begin
change $T (Amount =0);
commit $T;
end loop;
end;
Proposed fix
fmt --upgrade -p app.mpr: for a create or modify microflow|nanoflow whose stored flow commits a variable only without events where the script writes a bare commit $X, rewrite the statement to state the stored flag (commit $X without events), so the upgrade preserves what is stored and the re-run is Unchanged. Without -p, leave the script and print a note naming MDL067 and -p. An ambiguous case (the stored flow commits the variable both ways, or the script commits it more often than the stored flow) is left and reported.
Activity
Merge pull request #878 from ako/fix/upgrade-date-alias-commit-pin