From bec8ba0c67453f8dfd397f9142f2df5961222bee Mon Sep 17 00:00:00 2001 From: Kai Schwarz Date: Fri, 28 Aug 2026 15:25:36 +0200 Subject: [PATCH] build(pnpm): resolve pnpm from devEngines, align engines with the policy MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit engines.node and engines.npm now match .github/node-policy.conf in rtldev-middleware-workspace, and the pnpm version is declared once, as a range, in devEngines.packageManager rather than left to whatever pnpm CI installed last. devEngines validates instead of switching: a pnpm outside the range fails the command by name, where packageManager made pnpm silently download and re-execute itself as one exact version. Declaring it also makes pnpm lock itself — the packageManagerDependencies document in pnpm-lock.yaml is that resolution, and pnpm i --frozen-lockfile fails until it is committed, which is why the lockfile moves in this commit too. The caller workflows pass pnpm-version: "" so pnpm/action-setup resolves the version from this manifest rather than installing whatever pnpm is newest. RSRMID-3008 --- .../daily-node-dependency-refresh.yml | 6 +- .github/workflows/release.yml | 5 + package.json | 10 +- pnpm-lock.yaml | 199 ++++++++++++++++++ 4 files changed, 218 insertions(+), 2 deletions(-) diff --git a/.github/workflows/daily-node-dependency-refresh.yml b/.github/workflows/daily-node-dependency-refresh.yml index b23c4b9..b89cd3c 100644 --- a/.github/workflows/daily-node-dependency-refresh.yml +++ b/.github/workflows/daily-node-dependency-refresh.yml @@ -18,4 +18,8 @@ jobs: uses: centralnicgroup-opensource/rtldev-middleware-shareable-workflows/.github/workflows/daily-node-dependency-refresh.yml@main secrets: inherit with: - base-ref: master \ No newline at end of file + base-ref: master + # Empty, so pnpm/action-setup resolves the version from + # `devEngines.packageManager` in package.json rather than installing whatever + # pnpm is newest. (RSRMID-3008) + pnpm-version: "" \ No newline at end of file diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 19bb50b..565ffaf 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -7,4 +7,9 @@ on: jobs: release: uses: centralnicgroup-opensource/rtldev-middleware-shareable-workflows/.github/workflows/python-sdk-release.yml@main + with: + # Empty, so pnpm/action-setup resolves the version from + # `devEngines.packageManager` in package.json rather than installing whatever + # pnpm is newest. (RSRMID-3008) + pnpm-version: "" secrets: inherit \ No newline at end of file diff --git a/package.json b/package.json index e436f26..a8d2d20 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,15 @@ }, "license": "MIT", "engines": { - "node": ">=24.10.0" + "node": "^24.15.0 || ^26.0.0", + "npm": ">=12.0.0" + }, + "devEngines": { + "packageManager": { + "name": "pnpm", + "version": "^11.0.0", + "onFail": "error" + } }, "homepage": "https://github.com/centralnicgroup-opensource/rtldev-middleware-python-sdk", "repository": "https://github.com/centralnicgroup-opensource/rtldev-middleware-python-sdk.git", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 5e4242e..93c33ba 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,3 +1,202 @@ +--- +lockfileVersion: '9.0' + +importers: + + .: + configDependencies: {} + packageManagerDependencies: + '@pnpm/exe': + specifier: 11.23.0 + version: 11.23.0 + pnpm: + specifier: 11.23.0 + version: 11.23.0 + +packages: + + '@pnpm/exe@11.23.0': + resolution: {integrity: sha512-jBLtRlIloG7OdqEI4DCIQIIVrGMRlnMQxV+cq2BuBB8dhRVBHrNLHi1X2in1bI8Oa6xusPZtEWYgLwm8VkaNmQ==} + hasBin: true + + '@pnpm/linux-arm64@11.23.0': + resolution: {integrity: sha512-IthFHf+6VvyfBJQXVPbYOhwexdrxD99uKJrPCd0i5igUI99c2QP85BnE0tLUZwes9eETBlE8gbCuXIIdhjFY6Q==} + cpu: [arm64] + os: [linux] + + '@pnpm/linux-x64@11.23.0': + resolution: {integrity: sha512-DuxEM0gZqo/oq+OgJU09tYCGvoKow8xAntuqWVvH5+OQiiGU0raEJu7Gj/lsKj4Q5aPWG5vpUeN8S8ClbrtNwQ==} + cpu: [x64] + os: [linux] + + '@pnpm/linuxstatic-arm64@11.23.0': + resolution: {integrity: sha512-d0lt2+zCtclW1URgeBZKEd8frAlBVvRgPxHq0ED4Zfrprm4wrilBi5enzZ5JtePVN7PSiPmj8wfpHRBzWBox2A==} + cpu: [arm64] + os: [linux] + libc: [musl] + + '@pnpm/linuxstatic-x64@11.23.0': + resolution: {integrity: sha512-MrQVTtzneSy9DSFr3FdOA7u+o2ci/YsAGnRQ7u/IuQTzvJpLv9d4u2orB1MjB9f2/Hqb3FyAdrAYBvPxss1Ldg==} + cpu: [x64] + os: [linux] + libc: [musl] + + '@pnpm/macos-arm64@11.23.0': + resolution: {integrity: sha512-sdMdxDAhtznQjGQxP9msVIiBm7R9J1yHw/oIdKJepLbG6UtLFASkZ/GlJNm+mxifTinsFplntrA4qigiVesfcw==} + cpu: [arm64] + os: [darwin] + + '@pnpm/win-arm64@11.23.0': + resolution: {integrity: sha512-d60y5JBlWmGJ2ve7Ob/P9TePSL1uPqW40r5k1i1MZeR28n6GUgIeeGlMAU6mb9ACP3i8BFbu3AnP7q3kpOYmPQ==} + cpu: [arm64] + os: [win32] + + '@pnpm/win-x64@11.23.0': + resolution: {integrity: sha512-I4CY5dtaSfH2Ws1Ya8IB3cABqsJ+FS8yJgKG53bq1Ya2WMnB7rTR1LQcgyDoN0baEYD8kjXy1ehHikP11UBziw==} + cpu: [x64] + os: [win32] + + '@reflink/reflink-darwin-arm64@0.1.19': + resolution: {integrity: sha512-ruy44Lpepdk1FqDz38vExBY/PVUsjxZA+chd9wozjUH9JjuDT/HEaQYA6wYN9mf041l0yLVar6BCZuWABJvHSA==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [darwin] + + '@reflink/reflink-darwin-x64@0.1.19': + resolution: {integrity: sha512-By85MSWrMZa+c26TcnAy8SDk0sTUkYlNnwknSchkhHpGXOtjNDUOxJE9oByBnGbeuIE1PiQsxDG3Ud+IVV9yuA==} + engines: {node: '>= 10'} + cpu: [x64] + os: [darwin] + + '@reflink/reflink-linux-arm64-gnu@0.1.19': + resolution: {integrity: sha512-7P+er8+rP9iNeN+bfmccM4hTAaLP6PQJPKWSA4iSk2bNvo6KU6RyPgYeHxXmzNKzPVRcypZQTpFgstHam6maVg==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + libc: [glibc] + + '@reflink/reflink-linux-arm64-musl@0.1.19': + resolution: {integrity: sha512-37iO/Dp6m5DDaC2sf3zPtx/hl9FV3Xze4xoYidrxxS9bgP3S8ALroxRK6xBG/1TtfXKTvolvp+IjrUU6ujIGmA==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + libc: [musl] + + '@reflink/reflink-linux-x64-gnu@0.1.19': + resolution: {integrity: sha512-jbI8jvuYCaA3MVUdu8vLoLAFqC+iNMpiSuLbxlAgg7x3K5bsS8nOpTRnkLF7vISJ+rVR8W+7ThXlXlUQ93ulkw==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + libc: [glibc] + + '@reflink/reflink-linux-x64-musl@0.1.19': + resolution: {integrity: sha512-e9FBWDe+lv7QKAwtKOt6A2W/fyy/aEEfr0g6j/hWzvQcrzHCsz07BNQYlNOjTfeytrtLU7k449H1PI95jA4OjQ==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + libc: [musl] + + '@reflink/reflink-win32-arm64-msvc@0.1.19': + resolution: {integrity: sha512-09PxnVIQcd+UOn4WAW73WU6PXL7DwGS6wPlkMhMg2zlHHG65F3vHepOw06HFCq+N42qkaNAc8AKIabWvtk6cIQ==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [win32] + + '@reflink/reflink-win32-x64-msvc@0.1.19': + resolution: {integrity: sha512-E//yT4ni2SyhwP8JRjVGWr3cbnhWDiPLgnQ66qqaanjjnMiu3O/2tjCPQXlcGc/DEYofpDc9fvhv6tALQsMV9w==} + engines: {node: '>= 10'} + cpu: [x64] + os: [win32] + + '@reflink/reflink@0.1.19': + resolution: {integrity: sha512-DmCG8GzysnCZ15bres3N5AHCmwBwYgp0As6xjhQ47rAUTUXxJiK+lLUxaGsX3hd/30qUpVElh05PbGuxRPgJwA==} + engines: {node: '>= 10'} + + detect-libc@2.1.2: + resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==} + engines: {node: '>=8'} + + pnpm@11.23.0: + resolution: {integrity: sha512-8ACC5bKDoZm3Tgedoo0VXACP4jL0TIoG6n3foBTs9xn8Ni95DsxnsoEG3awq+yTEmpoHkVnaVgss59Hpjv0Rrw==} + engines: {node: '>=22.13'} + hasBin: true + +snapshots: + + '@pnpm/exe@11.23.0': + dependencies: + '@reflink/reflink': 0.1.19 + detect-libc: 2.1.2 + optionalDependencies: + '@pnpm/linux-arm64': 11.23.0 + '@pnpm/linux-x64': 11.23.0 + '@pnpm/linuxstatic-arm64': 11.23.0 + '@pnpm/linuxstatic-x64': 11.23.0 + '@pnpm/macos-arm64': 11.23.0 + '@pnpm/win-arm64': 11.23.0 + '@pnpm/win-x64': 11.23.0 + + '@pnpm/linux-arm64@11.23.0': + optional: true + + '@pnpm/linux-x64@11.23.0': + optional: true + + '@pnpm/linuxstatic-arm64@11.23.0': + optional: true + + '@pnpm/linuxstatic-x64@11.23.0': + optional: true + + '@pnpm/macos-arm64@11.23.0': + optional: true + + '@pnpm/win-arm64@11.23.0': + optional: true + + '@pnpm/win-x64@11.23.0': + optional: true + + '@reflink/reflink-darwin-arm64@0.1.19': + optional: true + + '@reflink/reflink-darwin-x64@0.1.19': + optional: true + + '@reflink/reflink-linux-arm64-gnu@0.1.19': + optional: true + + '@reflink/reflink-linux-arm64-musl@0.1.19': + optional: true + + '@reflink/reflink-linux-x64-gnu@0.1.19': + optional: true + + '@reflink/reflink-linux-x64-musl@0.1.19': + optional: true + + '@reflink/reflink-win32-arm64-msvc@0.1.19': + optional: true + + '@reflink/reflink-win32-x64-msvc@0.1.19': + optional: true + + '@reflink/reflink@0.1.19': + optionalDependencies: + '@reflink/reflink-darwin-arm64': 0.1.19 + '@reflink/reflink-darwin-x64': 0.1.19 + '@reflink/reflink-linux-arm64-gnu': 0.1.19 + '@reflink/reflink-linux-arm64-musl': 0.1.19 + '@reflink/reflink-linux-x64-gnu': 0.1.19 + '@reflink/reflink-linux-x64-musl': 0.1.19 + '@reflink/reflink-win32-arm64-msvc': 0.1.19 + '@reflink/reflink-win32-x64-msvc': 0.1.19 + + detect-libc@2.1.2: {} + + pnpm@11.23.0: {} + +--- lockfileVersion: '9.0' settings: