Repository navigation
Sync ako/mxcli: run --watch builds incrementally again; page round-trip fixes; workflow sub-process System members - #1825
Merged
Merged
Conversation
mxcli's System module (extracted from 11.6.4) had no System.WorkflowSubProcess, System.WorkflowSubProcessDefinition, their associations or System.WorkflowSubProcessState. A binding over System.WorkflowActivityRecord_WorkflowSubProcess could not resolve and was stored as an expression, so describe -> exec of TestApp's WorkflowCommons.Snip_WorkflowActivityRecord_Header failed mx check with CE0117 "Error(s) in expression." at text4. - Attributes, types and String lengths are measured from the System domain model in the model.mdp of an 11.14.0 deploy build. The golden lengths table was regenerated with -update; all 115 existing rows matched. - The introducing version is measured from Mendix.Modeler.Core.dll per version, with a control name present in every version: absent in 11.6.0 and 11.7.0, present from 11.8.0. - SystemEntityDef and SystemEnumDef gain Introduced. Version-aware paths (the backend's System domain model and enumeration list) filter on it, and an association is dropped when either end is absent, as runtime-only ends already were. Version-blind lists keep describing the current platform. - The system-module skill documents the new entities and enumeration. - TestApp's roundtrip allowlist loses Snip_WorkflowActivityRecord_Header. Measured on 11.14.0: that snippet now round-trips unchanged with mx check 0 errors (was CE0117). The bug-test script is 0 errors; the main binary gives 2x CE0117. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011oK82rmxc4mZcUDT8ePYWM
TestTestAppRoundTrip reports six WorkflowCommons documents built on the workflow sub-process members as no longer breaking exec: WorkflowDefinition_View, WorkflowSubProcess_View, Snip_WorkflowSubProcess_Details, Snip_WorkflowSubProcess_IncompatibleWarning, Snip_WorkflowSubProcess_State and Snip_Workflow_SubProcessDetails. The allowlist may only shrink. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011oK82rmxc4mZcUDT8ePYWM
A test calling a microflow with Apply entity access = Yes failed CE0114 at build and MDL-SEC22 at check: the endpoint test microflows, the legacy MxTest.TestRunner and the MxTest.Check_* wrappers were written without the setting. They now apply it, as RegisterEndpoint already did (#1654); CE0114 has one direction, so an applying caller may call both. An applying flow may not read $latestError/Message (CE0150), so the runner's verdict and @throws handlers pass $latestError to a generated non-applying helper, MxTest.Test_ErrorMessage, each into its own variable. It carries the generated prefix, so every discovery and cleanup path removes it; the legacy cleanup drops it explicitly, and a build error in it is attributed to mxcli. A test whose own handler reads $latestError/... keeps a non-applying caller, so it builds as before. Tests run in a system context, so nothing changes at run time. Measured on 11.12.1 at security Off and Production; end to end with --local, --legacy-runner and a pre-existing MxTest module. Closes #2100. Refs mendixlabs#1805. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QiMsnXa9crge2qnSk9S7Zn
Add the workflow sub-process members to the System module
…, control bars and combo box options (#2109) describe page -> exec of four FactoryManagement pages was refused on its own output (MDL-BUTTON02, MDL-PAGEARG01), although the stored pages build: - a show page in a selectable data grid's column passing `$grid1`: the grid's selection, stored as Variable {Widget: grid1} as from its control bar (MxModelReflection.MxObjectType_Select); - `$dataView3` from the control bar (filters placeholder) of a grid inside dataView3: the bar sits inside the grid, so dataView3 is an outer container there (OIDC.OIDC_Client_NewEdit); - `$dataView2` in a combo box's option content: the option is the combo box's own context (AgentCommons.Version_NewEdit). The check walk and the show page argument context model the three, and the engine enters a data widget through the same constructor (enteringDataWidgetOf), so check and exec agree. Re-measured on 11.16: the control-bar case builds with 0 errors in the variable form written since #2095; two older tests are updated with that evidence. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011oK82ttaGzay5CwiC2V7cf
Studio Pro stores a binding to an outer data view's object with the
data-view pair SourceVariable {Widget, PageParameter}, with association
steps for a path. describe printed the bare qualified name, and the rewrite
read it against the nearest data view: CE7247 on five ConversationalUI
markdown viewers, "TraceView has no attribute HasError" on Trace_Details.
`$dvOuter.Attr` and `$dvOuter/Assoc/Attr`, the spelling input widgets
already had (#826, #833), now work on a pluggable widget's attribute
property and in `Visible: … in (…)`: one resolver (namedObjectVariable)
for check, describe and exec, MDL-WIDGET34 accepting an enclosing data
view, the rooted path accepted in the form the parser produces, and
WidgetObjectBuilder.SetAttributeWithSteps to store the steps. All six
pages report Unchanged page; a fresh page with the three forms builds with
mx check 0 errors on 11.16.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011oK82ttaGzay5CwiC2V7cf
On Mendix versions that bundle the client themselves, a build in an mxbuild --serve process deletes the client source it wrote, so the next build bundles a client without pages. The watch loop answered every change with a fresh serve process and a cold build: 20-22 s for a microflow edit and 25-28 s plus a runtime restart for a page edit on a blank 11.16.0 app. The source is now copied aside while a build runs and put back before the next. The incremental build then takes about 2 s and a page edit is a reload. The full build stays as the fallback when the bundle is still incomplete, the bundler fails on kept source, or a page's source was missed. Closes #2150 Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011oK82sKAKMxKadjp4EraKh
Windows refuses to delete a file another process has open. The copies of the client source are now read with FILE_SHARE_DELETE, so a copy in progress does not fail mxbuild's own cleanup. If a build still fails because deployment/web was in use, the keep is given up for the run and the build is run again, which leaves the full rebuild per change. Refs #2150 Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011oK82sKAKMxKadjp4EraKh
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011oK82ttaGzay5CwiC2V7cf
…in-4d6q38 # Conflicts: # CHANGELOG.md
fix(run): keep mxbuild's client source so --watch builds incrementally
…-entity-access # Conflicts: # CHANGELOG.md
fix(test): generated test callers apply entity access
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: 7 commits since #1824 —run --local --watchbuilds incrementally again on Mendix versions that bundle the client themselves, and page round-trip fixes.run --local --watch: incremental builds
mxbuild --serveprocess deletes the client source it wrote, so the next build bundled a client without pages. The watch loop answered every change with a fresh serve process and a cold build: 20–22 s for a microflow edit, 25–28 s plus a runtime restart for a page edit, on a blank 11.16.0 app. The source is now copied aside during a build and put back before the next, so an incremental build takes about 2 s and a page edit is a reload. The full build stays as the fallback when the bundle is still incomplete, the bundler fails on kept source, or a page's source was missed.FILE_SHARE_DELETEso a copy in progress doesn't fail mxbuild's own cleanup; if a build still fails becausedeployment/webwas in use, the keep is dropped for the run and the build retried.Pages: a describe → exec round trip writes what it read
$dvOuter.Attrand$dvOuter/Assoc/Attr— the spelling input widgets already had — now work on a pluggable widget's attribute property and inVisible: … in (…), through one resolver for check, describe and exec. Six affected pages now report Unchanged; a fresh page with the three forms builds withmx check0 errors on 11.16.$grid1, its selection), a grid's control bar inside a data view ($dataView3, the outer container) and a combo box's option content ($dataView2). describe → exec was refused on its own output (MDL-BUTTON02, MDL-PAGEARG01) although the stored pages build.System.WorkflowSubProcess,WorkflowSubProcessDefinition, their associations andWorkflowSubProcessState), measured from an 11.14.0model.mdpand present from 11.8.0 (measured per version). A binding over them was stored as an expression (CE0117). System entities and enumerations gain an introducing version, and version-aware paths filter on it.7 WorkflowCommons documents leave the round-trip suite's allowlist