diff --git a/CHANGELOG.md b/CHANGELOG.md index b277702a..0d6d5da8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -19,6 +19,7 @@ Sections dated before 2026-09-19 predate the cycle and stay as they are. Named m ## Unreleased +- learn(pipelines/mendix-mpr/samples): **three minimal mxcli repros from the native-module bug hunt, the files the upstream draft cites** (split from [#293](https://github.com/MendixMau/mxcli-project-toolkit/pull/293), 6/6). `fsm-template-9.24.2/native-bughunt/` holds CAPTURE.txt and D1–D3, which are written from scratch in a `Repro` module: `describe entity` printing `index ( desc);`, the native Repeater `content` slot, and no flow writable to a 9.24.2 project. They are the repros for U3, U2 and U14 in `bug-logs/pending-github-issues/2026-10-12-mxcli-0.26-round-trip-report.md`. The other 472 sample files of #293 had no citing reader, because the skills and Rehost splits state their field results inline, so none of them ships. — MendixMau, Decompose/Rehost lab runs 2026-10-12 - learn(inbox, pending-github-issues): **ten field-note drops from the Decompose/Rehost lab runs, and one not-filed draft of 53 mxcli 0.26 defects for mendixlabs/mxcli** (split from [#293](https://github.com/MendixMau/mxcli-project-toolkit/pull/293), 5/6). `contrib/inbox/2026-10-1{2,3}-*.md`: increments 1–8 of the split-a-monolith runs on a public Marketplace template (FSM 9.24.2), the native-module bug hunt, and the GenAI Showcase regeneration (0.26.0 and the 2026-10-13 nightly); each now has the template's front matter and is at most 600 words. `bug-logs/pending-github-issues/2026-10-12-mxcli-0.26-round-trip-report.md`: the U1–U53 table the inbox drops refer to, marked DRAFT — NOT FILED, to be split into one issue per defect and retested before anything is posted. No BUG numbers assigned; triage promotes. — MendixMau, Decompose/Rehost lab runs 2026-10-12/13 - learn(decompose): **three on-demand skills for working from an existing Mendix app (split from #293, 4/6).** `decompose-app.md` covers splitting a monolith into several apps: choosing the cut on business fit and coupling, a gated target architecture, cut order by dependency direction, moving each slice by MPK, ledgering every crossing edge, and reporting the level the slice reached (build-green, seam-live or strangled). `rehost-app.md` covers regenerating a whole `.mpr` into a fresh app with `pipelines/mendix-mpr/` and reading the fidelity ledger; done means build-green with named hand-offs plus journey parity. `mendix-service-seam.md` collects OData/REST patterns between two Mendix apps: keys, machine-role auth measured 200/401/404, error handlers, external-entity limits, stub replacement and cross-app joins. Each pattern is paired with the verbatim failure it prevents. Routing rows are written as trigger conditions; all three are `ondemand`, so the baseline stays at 75,038 words. Citations of unreviewed inbox notes and uncommitted run captures are replaced by the fact and its field run. `architecture-blueprint.md` and `learned-constants-and-secrets.md` gain one pointer each. `decompose-app.md` names `bin/cut-score.sh` and `bin/cut-ledger.sh`, which arrive in their own split PRs. Field runs on public apps: a field-service template (Mendix 9.24) in eight increments up to a strangled slice; a GenAI showcase app and a banking sample for rehost. — MendixMau - new(pipelines): **`pipelines/mendix-mpr/` — the Rehost extractor for an existing Mendix app (split from #293, 3/6).** `rehost-extract.sh` describes each own module with mxcli, reorders the statements so callees come first, replays them into a fresh target `.mpr` of the same Mendix version (deferring and retrying what `check`/`exec` refuse, never dropping a module), and writes a fidelity ledger with one row per source document and the denominator in its header; `export-module-mpk.py` writes a module package from an MPR v1 app with secrets scrubbed, for Mendix 9 sources whose `mx` cannot export. Code only, no samples; the script now runs without bash-4 features. Added to CLAUDE.md's Pipelines table. Field runs on public apps: a banking sample (Mendix 11.13, 155 documents) rehosted build-green, 154/155 identical; a GenAI showcase app (Mendix 11.12, 2776 documents) landed 36/36 modules but is not build-green (42 × CE1613); module packages from a field-service template (Mendix 9.24) installed into 10.24 and 11.13. macOS and the two-tree layout not verified. — MendixMau diff --git a/pipelines/mendix-mpr/samples/fsm-template-9.24.2/native-bughunt/CAPTURE.txt b/pipelines/mendix-mpr/samples/fsm-template-9.24.2/native-bughunt/CAPTURE.txt new file mode 100644 index 00000000..bb3c8f41 --- /dev/null +++ b/pipelines/mendix-mpr/samples/fsm-template-9.24.2/native-bughunt/CAPTURE.txt @@ -0,0 +1,6 @@ +What: native-module round trip of a public Marketplace template (FSM) (Mendix 9.24.2), 12 Native* modules, describe -> check (against the source app, then the quarantine loop) -> exec into a 9.24.2 copy with the 12 modules dropped. +When: 2026-10-12. mxcli v0.26.0 (2026-10-11T18:37:07Z), Linux container, no Studio Pro. +D1-D3: minimal repros, each run alone against a fresh `mxcli new Scratch --version 9.24.2 --theme none --skip-init` app (D2 after copying com.mendix.widget.native.Repeater.mpk into widgets/ and `mxcli widget init`). +D1-D3 are written from scratch (module Repro); they hold no model content of the template. +D4 was an excerpt of the source describe (not isolated, blocked by D3); it is not shipped. +Paths: / = the lab checkout; originals not committed. diff --git a/pipelines/mendix-mpr/samples/fsm-template-9.24.2/native-bughunt/D1-index-empty-column.mdl b/pipelines/mendix-mpr/samples/fsm-template-9.24.2/native-bughunt/D1-index-empty-column.mdl new file mode 100644 index 00000000..8be9d0cd --- /dev/null +++ b/pipelines/mendix-mpr/samples/fsm-template-9.24.2/native-bughunt/D1-index-empty-column.mdl @@ -0,0 +1,7 @@ +-- describe entity of a template module's entity emits `index ( desc);` +create module Repro; +create or modify persistent entity Repro.E ( + Name: String(200), + ChangedDate: AutoChangedDate +) +index ( desc); diff --git a/pipelines/mendix-mpr/samples/fsm-template-9.24.2/native-bughunt/D2-page-repeater-content.mdl b/pipelines/mendix-mpr/samples/fsm-template-9.24.2/native-bughunt/D2-page-repeater-content.mdl new file mode 100644 index 00000000..a3997208 --- /dev/null +++ b/pipelines/mendix-mpr/samples/fsm-template-9.24.2/native-bughunt/D2-page-repeater-content.mdl @@ -0,0 +1,13 @@ +-- describe page of a native repeater emits `repeater r (...) { content { ... } }`; check refuses its own output +create module Repro; +create or modify persistent entity Repro.E ( Name: String(200) ); +create or modify page Repro.P1 (Title: 'P1', Layout: Atlas_Core.Atlas_Default) { + placeholder Main { + repeater repeater1 (DataSource: database from Repro.E) { + content { + container container2 ( ) { + } + } + } + } +} diff --git a/pipelines/mendix-mpr/samples/fsm-template-9.24.2/native-bughunt/D3-nanoflow-9242-sequenceflow-casevalues.mdl b/pipelines/mendix-mpr/samples/fsm-template-9.24.2/native-bughunt/D3-nanoflow-9242-sequenceflow-casevalues.mdl new file mode 100644 index 00000000..45a053dd --- /dev/null +++ b/pipelines/mendix-mpr/samples/fsm-template-9.24.2/native-bughunt/D3-nanoflow-9242-sequenceflow-casevalues.mdl @@ -0,0 +1,10 @@ +-- exec of a trivial microflow / nanoflow into a 9.24.2 project is refused: the writer emits properties of Mendix 10.2 / 10.15 +create module Repro; +create or modify microflow Repro.MF_Min () +begin + return; +end; +create or modify nanoflow Repro.NF_Min () +begin + return; +end;