From fc615709897249a9840582cc4304798df6336380 Mon Sep 17 00:00:00 2001 From: Claude Date: Wed, 14 Oct 2026 07:44:02 +0000 Subject: [PATCH 1/2] Pin @abaplint/transpiler-cli 2.14.3, the transpiler @abap2ui5/node-runtime 1.147.0 was built with scripts/originals.mjs refuses a transpiler other than the one the runtime's package.json records (abap2ui5.transpiler), and the v0.3.0 release run died there: the plugin's 0.5.0 brings the 1.147.0 runtime, built with 2.14.3, while the devDependency still named 2.13.93. The pin follows; the 9 tests pass, the differential test runs in CI with the samples checkout. Co-Authored-By: Claude Fable 5.1 Claude-Session: https://claude.ai/code/session_01TrfF51pia7m6tLZQF2G2ua --- CHANGELOG.md | 4 +++- package.json | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 02636d7..5fb84cb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,7 +10,9 @@ versions [Semantic Versioning](https://semver.org/spec/v2.0.0.html). - The peer range moves to `@cap2ui5/cds-plugin` ^0.5.0, the plugin that hosts `@abap2ui5/node-runtime` 1.147.0 (abap2UI5 1.147.0, the transpiler - 2.14 output layout). + 2.14 output layout). `@abaplint/transpiler-cli` moves to 2.14.3 with it, + the transpiler that runtime was built with: the differential test refuses + any other, and the v0.3.0 tag's first run died on 2.13.93. - The pin moves to abap2UI5/samples `2e998ef` (2026-09-30). `Z2UI5_CL_SMP_APP_173` is translated again from its reworked original - a metadata-driven table and form with `template:with`, nested `template:repeat` and diff --git a/package.json b/package.json index d7cb15e..bb90380 100644 --- a/package.json +++ b/package.json @@ -39,7 +39,7 @@ }, "devDependencies": { "@abaplint/core": "^2.120.60", - "@abaplint/transpiler-cli": "2.13.93", + "@abaplint/transpiler-cli": "2.14.3", "@cap-js/cds-test": "^1.0.2", "@cap-js/sqlite": "^3", "@cap2ui5/cds-plugin": "^0.5.0", From 34b75761aa1263fd9d73ea9bba60db23f6b248bd Mon Sep 17 00:00:00 2001 From: Claude Date: Wed, 14 Oct 2026 08:33:49 +0000 Subject: [PATCH 2/2] originals: read the transpiled classes from output/project/, the 2.14 layout With @abaplint/transpiler-cli 2.14.3 the originals land in output/project/ (a folder per origin, the libs beside it), and the copy into test/.originals looked in the flat output/ of 2.13 - "the transpiler wrote no zabap_smp_app_026.clas.mjs" on the pull request's run. The project folder is taken when it exists, the flat output otherwise. Co-Authored-By: Claude Fable 5.1 Claude-Session: https://claude.ai/code/session_01TrfF51pia7m6tLZQF2G2ua --- scripts/originals.mjs | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/scripts/originals.mjs b/scripts/originals.mjs index 0c3cca1..0887c63 100644 --- a/scripts/originals.mjs +++ b/scripts/originals.mjs @@ -99,9 +99,14 @@ try { fs.rmSync(out, { recursive: true, force: true }); fs.mkdirSync(out, { recursive: true }); let n = 0; + // where the transpiler put the project's own classes: a folder per origin + // from @abaplint/transpiler 2.14 on (output/project/, the libs beside it as + // output/downport/ and output/open-abap-core/ - the layout the 1.147.0 + // runtime records), the flat output/ before + const written = ["project", ""].map((d) => path.join(work, "output", d)).find((d) => fs.existsSync(d)); for (const name of names) { - const file = path.join(work, "output", `${rename(name)}.clas.mjs`); - if (!fs.existsSync(file)) throw new Error(`the transpiler wrote no ${rename(name)}.clas.mjs`); + const file = path.join(written, `${rename(name)}.clas.mjs`); + if (!fs.existsSync(file)) throw new Error(`the transpiler wrote no ${rename(name)}.clas.mjs under ${path.relative(work, written) || "output"}/`); fs.copyFileSync(file, path.join(out, path.basename(file))); n++; }