From 994d756a33d64d79175a2d721a1a1b6976958b2d Mon Sep 17 00:00:00 2001 From: Zoltan Kochan Date: Fri, 27 Mar 2026 11:10:47 +0100 Subject: [PATCH] feat: read pnpm version from devEngines.packageManager (#211) * feat: read pnpm version from devEngines.packageManager field When no version is specified in the action config or the packageManager field of package.json, fall back to devEngines.packageManager. Co-Authored-By: Claude Opus 4.6 * feat: skip self-update for devEngines.packageManager and add CI tests pnpm auto-switches to the right version when devEngines.packageManager is set, so self-update is unnecessary. This also enables range support (e.g. ">=9.15.0") which self-update doesn't handle. --------- Co-authored-by: Claude Opus 4.6 --- .github/workflows/test.yaml | 50 +++++ dist/index.js | Bin 1427908 -> 1432028 bytes src/install-pnpm/bootstrap/exe-lock.json | 229 +++++++++++++++++----- src/install-pnpm/bootstrap/pnpm-lock.json | 16 +- src/install-pnpm/run.ts | 43 +++- 5 files changed, 275 insertions(+), 63 deletions(-) diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index 5086b82..3bcbf44 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -108,6 +108,56 @@ jobs: pnpm add is-odd shell: bash + test_dev_engines: + name: Test with devEngines.packageManager + + runs-on: ${{ matrix.os }} + + strategy: + fail-fast: false + matrix: + os: + - ubuntu-latest + - macos-latest + - windows-latest + version: + - '9.15.5' + - '>=9.15.0' + + steps: + - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1 + + - name: Set up package.json with devEngines.packageManager + run: echo '{"devEngines":{"packageManager":{"name":"pnpm","version":"${{ matrix.version }}","onFail":"download"}}}' > package.json + shell: bash + + - name: Run the action + uses: ./ + + - name: 'Test: which' + run: which pnpm; which pnpx + + - name: 'Test: version' + run: | + set -e + required='${{ matrix.version }}' + actual="$(pnpm --version)" + echo "pnpm version: ${actual}" + + if [ "${required}" = ">=9.15.0" ]; then + min="9.15.0" + if [ "$(printf '%s\n' "${min}" "${actual}" | sort -V | head -n1)" != "${min}" ]; then + echo "Expected pnpm version >= ${min}, but got ${actual}" + exit 1 + fi + else + if [ "${actual}" != "${required}" ]; then + echo "Expected pnpm version ${required}, but got ${actual}" + exit 1 + fi + fi + shell: bash + test_run_install: name: 'Test with run_install (${{ matrix.run_install.name }}, ${{ matrix.os }})' diff --git a/dist/index.js b/dist/index.js index 885a0c2fab92195032967742fa2eade0516baac2..26f9903bc005d5e535fe5eb0f57ffa251f695e72 100644 GIT binary patch delta 60539 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 delta 57475 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

ChoIpt?jX8}eVaR7@DH?(w^-?Q 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

UqpMGcM3G1G$Iv8sH@ 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 diff --git a/src/install-pnpm/bootstrap/exe-lock.json b/src/install-pnpm/bootstrap/exe-lock.json index c660a11..beb363f 100644 --- a/src/install-pnpm/bootstrap/exe-lock.json +++ b/src/install-pnpm/bootstrap/exe-lock.json @@ -5,34 +5,40 @@ "packages": { "": { "dependencies": { - "@pnpm/exe": "10.32.1" + "@pnpm/exe": "11.0.0-beta.3" } }, "node_modules/@pnpm/exe": { - "version": "10.32.1", - "resolved": "https://registry.npmjs.org/@pnpm/exe/-/exe-10.32.1.tgz", - "integrity": "sha512-baEtwHeZwmZAdBuuDDL6tbdGg5KpxhPxr3QFfYTGXvY6ws+Z1bN0mQ7ZjcaXBSC1HuLpVXnZ6NsBiaZ2DMv4vg==", + "version": "11.0.0-beta.3", + "resolved": "https://registry.npmjs.org/@pnpm/exe/-/exe-11.0.0-beta.3.tgz", + "integrity": "sha512-yWNlHHdYmvf4c0MCkCzAa4csJDPdA+7yJCbXBUDXMbUu/0Zv/AxtO77q24MwlnBUC0dWeA+0F/pPmdkR9aTV2A==", "hasInstallScript": true, "license": "MIT", + "dependencies": { + "@reflink/reflink": "0.1.19" + }, "bin": { - "pnpm": "pnpm" + "pn": "pn", + "pnpm": "pnpm", + "pnpx": "pnpx", + "pnx": "pnx" }, "funding": { "url": "https://opencollective.com/pnpm" }, "optionalDependencies": { - "@pnpm/linux-arm64": "10.32.1", - "@pnpm/linux-x64": "10.32.1", - "@pnpm/macos-arm64": "10.32.1", - "@pnpm/macos-x64": "10.32.1", - "@pnpm/win-arm64": "10.32.1", - "@pnpm/win-x64": "10.32.1" + "@pnpm/linux-arm64": "11.0.0-beta.3", + "@pnpm/linux-x64": "11.0.0-beta.3", + "@pnpm/macos-arm64": "11.0.0-beta.3", + "@pnpm/macos-x64": "11.0.0-beta.3", + "@pnpm/win-arm64": "11.0.0-beta.3", + "@pnpm/win-x64": "11.0.0-beta.3" } }, "node_modules/@pnpm/linux-arm64": { - "version": "10.32.1", - "resolved": "https://registry.npmjs.org/@pnpm/linux-arm64/-/linux-arm64-10.32.1.tgz", - "integrity": "sha512-6uB0B+XvunQwHGzIMk2JCkl4Ur6BtM4XbJSwB/mgpWmXDoX/KTJmgx2lodcTjgJSGSySCHfIVuTR9sj/F2D4EA==", + "version": "11.0.0-beta.3", + "resolved": "https://registry.npmjs.org/@pnpm/linux-arm64/-/linux-arm64-11.0.0-beta.3.tgz", + "integrity": "sha512-TF2fyuCY9GggR4kfhjo1hMmgn+rIohenwNoH0tLPM7JlBK7/UAIFt1LI+o999tRwTCEw7gnxHFwtI2vyQuDfNw==", "cpu": [ "arm64" ], @@ -41,17 +47,14 @@ "os": [ "linux" ], - "bin": { - "pnpm": "pnpm" - }, "funding": { "url": "https://opencollective.com/pnpm" } }, "node_modules/@pnpm/linux-x64": { - "version": "10.32.1", - "resolved": "https://registry.npmjs.org/@pnpm/linux-x64/-/linux-x64-10.32.1.tgz", - "integrity": "sha512-AM2tv23Fg7h+nV+adqA/SkZKUysSIEetHfBwYFl8ArgdgkqbGoQy0rAOdKYQBb920CqfexXfI8OA8kPCzRxYng==", + "version": "11.0.0-beta.3", + "resolved": "https://registry.npmjs.org/@pnpm/linux-x64/-/linux-x64-11.0.0-beta.3.tgz", + "integrity": "sha512-7GrLsnSuDH62y486GUTwJdohGIC1ugz9ZJkbKOHgxIAkNGcSTJ1IkkdARtv7/WMmOEwwESDmtpOQ6LmjnpDMSA==", "cpu": [ "x64" ], @@ -60,17 +63,14 @@ "os": [ "linux" ], - "bin": { - "pnpm": "pnpm" - }, "funding": { "url": "https://opencollective.com/pnpm" } }, "node_modules/@pnpm/macos-arm64": { - "version": "10.32.1", - "resolved": "https://registry.npmjs.org/@pnpm/macos-arm64/-/macos-arm64-10.32.1.tgz", - "integrity": "sha512-Zr4JkhRbtGVsYgbuGZO0dq/6FPOn072Pdo0ubmqWtc14cUATKgAJD7efG03yqr3MLgtwFHgdtUzZ1WsaYAtUTA==", + "version": "11.0.0-beta.3", + "resolved": "https://registry.npmjs.org/@pnpm/macos-arm64/-/macos-arm64-11.0.0-beta.3.tgz", + "integrity": "sha512-NQKgI1DURrEiOUzpxL0Mc+yn7DV4tpShqGnjaJLbz8ZCXsX/qhmybebvCG3r+IfSk3P5KID66lcgC/Osiaz0Dg==", "cpu": [ "arm64" ], @@ -79,17 +79,14 @@ "os": [ "darwin" ], - "bin": { - "pnpm": "pnpm" - }, "funding": { "url": "https://opencollective.com/pnpm" } }, "node_modules/@pnpm/macos-x64": { - "version": "10.32.1", - "resolved": "https://registry.npmjs.org/@pnpm/macos-x64/-/macos-x64-10.32.1.tgz", - "integrity": "sha512-Yk6q3oFDu//OniXJxfTSHo+aew1LX81FcbzJAtEkcCeTQ0SLbQT6J3QiOMNikp8n8IjNhsy+bn2bdkUxaw+akA==", + "version": "11.0.0-beta.3", + "resolved": "https://registry.npmjs.org/@pnpm/macos-x64/-/macos-x64-11.0.0-beta.3.tgz", + "integrity": "sha512-Ky22KFYHXx8+8WU4KJT9NXVgzFioL2w9pHTQjsqTK70AbxiErscPYhrFIehlCNbXjgs+tGVIy13QNKkiwvmS8w==", "cpu": [ "x64" ], @@ -98,17 +95,14 @@ "os": [ "darwin" ], - "bin": { - "pnpm": "pnpm" - }, "funding": { "url": "https://opencollective.com/pnpm" } }, "node_modules/@pnpm/win-arm64": { - "version": "10.32.1", - "resolved": "https://registry.npmjs.org/@pnpm/win-arm64/-/win-arm64-10.32.1.tgz", - "integrity": "sha512-P8rsP5IUetpYjr2iwggoswL2qUukYrJoToXWuMyo8immn58CsYxaXsHVQ1Oq1R3XMfmGGWTXLsiJuQ7H991MRg==", + "version": "11.0.0-beta.3", + "resolved": "https://registry.npmjs.org/@pnpm/win-arm64/-/win-arm64-11.0.0-beta.3.tgz", + "integrity": "sha512-7L8TFNDm25m+XYSyhcola3YFd/li6BZzzl56SsyGnZabsvUslMwnDiJad48wOz8IuN7zsrTSGh+X/x6F+GdrFQ==", "cpu": [ "arm64" ], @@ -117,17 +111,14 @@ "os": [ "win32" ], - "bin": { - "pnpm": "pnpm.exe" - }, "funding": { "url": "https://opencollective.com/pnpm" } }, "node_modules/@pnpm/win-x64": { - "version": "10.32.1", - "resolved": "https://registry.npmjs.org/@pnpm/win-x64/-/win-x64-10.32.1.tgz", - "integrity": "sha512-i24GwbtBO8ojrhp8WWimX7NgZs0UKH1171oRt6qcRL+a+FxE0Eggv2y0KP7ZI7F3+LZMarwr3tnYsZryfciUOg==", + "version": "11.0.0-beta.3", + "resolved": "https://registry.npmjs.org/@pnpm/win-x64/-/win-x64-11.0.0-beta.3.tgz", + "integrity": "sha512-Z/6OpMUaIpggXjCtWEhp6kWjiT/2EImhkJAu8AodOORqeNcWouGEq3sO4XU0em6d+pAHmdV0hWMQ2xCUmPVuiA==", "cpu": [ "x64" ], @@ -136,12 +127,156 @@ "os": [ "win32" ], - "bin": { - "pnpm": "pnpm.exe" - }, "funding": { "url": "https://opencollective.com/pnpm" } + }, + "node_modules/@reflink/reflink": { + "version": "0.1.19", + "resolved": "https://registry.npmjs.org/@reflink/reflink/-/reflink-0.1.19.tgz", + "integrity": "sha512-DmCG8GzysnCZ15bres3N5AHCmwBwYgp0As6xjhQ47rAUTUXxJiK+lLUxaGsX3hd/30qUpVElh05PbGuxRPgJwA==", + "license": "MIT", + "engines": { + "node": ">= 10" + }, + "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" + } + }, + "node_modules/@reflink/reflink-darwin-arm64": { + "version": "0.1.19", + "resolved": "https://registry.npmjs.org/@reflink/reflink-darwin-arm64/-/reflink-darwin-arm64-0.1.19.tgz", + "integrity": "sha512-ruy44Lpepdk1FqDz38vExBY/PVUsjxZA+chd9wozjUH9JjuDT/HEaQYA6wYN9mf041l0yLVar6BCZuWABJvHSA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@reflink/reflink-darwin-x64": { + "version": "0.1.19", + "resolved": "https://registry.npmjs.org/@reflink/reflink-darwin-x64/-/reflink-darwin-x64-0.1.19.tgz", + "integrity": "sha512-By85MSWrMZa+c26TcnAy8SDk0sTUkYlNnwknSchkhHpGXOtjNDUOxJE9oByBnGbeuIE1PiQsxDG3Ud+IVV9yuA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@reflink/reflink-linux-arm64-gnu": { + "version": "0.1.19", + "resolved": "https://registry.npmjs.org/@reflink/reflink-linux-arm64-gnu/-/reflink-linux-arm64-gnu-0.1.19.tgz", + "integrity": "sha512-7P+er8+rP9iNeN+bfmccM4hTAaLP6PQJPKWSA4iSk2bNvo6KU6RyPgYeHxXmzNKzPVRcypZQTpFgstHam6maVg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@reflink/reflink-linux-arm64-musl": { + "version": "0.1.19", + "resolved": "https://registry.npmjs.org/@reflink/reflink-linux-arm64-musl/-/reflink-linux-arm64-musl-0.1.19.tgz", + "integrity": "sha512-37iO/Dp6m5DDaC2sf3zPtx/hl9FV3Xze4xoYidrxxS9bgP3S8ALroxRK6xBG/1TtfXKTvolvp+IjrUU6ujIGmA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@reflink/reflink-linux-x64-gnu": { + "version": "0.1.19", + "resolved": "https://registry.npmjs.org/@reflink/reflink-linux-x64-gnu/-/reflink-linux-x64-gnu-0.1.19.tgz", + "integrity": "sha512-jbI8jvuYCaA3MVUdu8vLoLAFqC+iNMpiSuLbxlAgg7x3K5bsS8nOpTRnkLF7vISJ+rVR8W+7ThXlXlUQ93ulkw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@reflink/reflink-linux-x64-musl": { + "version": "0.1.19", + "resolved": "https://registry.npmjs.org/@reflink/reflink-linux-x64-musl/-/reflink-linux-x64-musl-0.1.19.tgz", + "integrity": "sha512-e9FBWDe+lv7QKAwtKOt6A2W/fyy/aEEfr0g6j/hWzvQcrzHCsz07BNQYlNOjTfeytrtLU7k449H1PI95jA4OjQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@reflink/reflink-win32-arm64-msvc": { + "version": "0.1.19", + "resolved": "https://registry.npmjs.org/@reflink/reflink-win32-arm64-msvc/-/reflink-win32-arm64-msvc-0.1.19.tgz", + "integrity": "sha512-09PxnVIQcd+UOn4WAW73WU6PXL7DwGS6wPlkMhMg2zlHHG65F3vHepOw06HFCq+N42qkaNAc8AKIabWvtk6cIQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@reflink/reflink-win32-x64-msvc": { + "version": "0.1.19", + "resolved": "https://registry.npmjs.org/@reflink/reflink-win32-x64-msvc/-/reflink-win32-x64-msvc-0.1.19.tgz", + "integrity": "sha512-E//yT4ni2SyhwP8JRjVGWr3cbnhWDiPLgnQ66qqaanjjnMiu3O/2tjCPQXlcGc/DEYofpDc9fvhv6tALQsMV9w==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } } } } diff --git a/src/install-pnpm/bootstrap/pnpm-lock.json b/src/install-pnpm/bootstrap/pnpm-lock.json index df0f571..0fd63ad 100644 --- a/src/install-pnpm/bootstrap/pnpm-lock.json +++ b/src/install-pnpm/bootstrap/pnpm-lock.json @@ -5,20 +5,22 @@ "packages": { "": { "dependencies": { - "pnpm": "latest" + "pnpm": "11.0.0-beta.3" } }, "node_modules/pnpm": { - "version": "10.32.1", - "resolved": "https://registry.npmjs.org/pnpm/-/pnpm-10.32.1.tgz", - "integrity": "sha512-pwaTjw6JrBRWtlY+q07fHR+vM2jRGR/FxZeQ6W3JGORFarLmfWE94QQ9LoyB+HMD5rQNT/7KnfFe8a1Wc0jyvg==", + "version": "11.0.0-beta.3", + "resolved": "https://registry.npmjs.org/pnpm/-/pnpm-11.0.0-beta.3.tgz", + "integrity": "sha512-6PrfRjycZV4vRX6ttG9oR6pOgbI2/OcF2QLOzHm35UcRuvtqP4zf3wQfAAPwEbeu1uAbpSg/Q5cL8h32tumy6Q==", "license": "MIT", "bin": { - "pnpm": "bin/pnpm.cjs", - "pnpx": "bin/pnpx.cjs" + "pn": "bin/pnpm.mjs", + "pnpm": "bin/pnpm.mjs", + "pnpx": "bin/pnpx.mjs", + "pnx": "bin/pnpx.mjs" }, "engines": { - "node": ">=18.12" + "node": ">=22.13" }, "funding": { "url": "https://opencollective.com/pnpm" diff --git a/src/install-pnpm/run.ts b/src/install-pnpm/run.ts index 6499130..c4a484a 100644 --- a/src/install-pnpm/run.ts +++ b/src/install-pnpm/run.ts @@ -13,7 +13,12 @@ const BOOTSTRAP_PNPM_PACKAGE_JSON = JSON.stringify({ private: true, dependencies const BOOTSTRAP_EXE_PACKAGE_JSON = JSON.stringify({ private: true, dependencies: { '@pnpm/exe': exeLock.packages['node_modules/@pnpm/exe'].version } }) export async function runSelfInstaller(inputs: Inputs): Promise { - const { version, dest, packageJsonFile, standalone } = inputs + const { version, dest, packageJsonFile } = inputs + + // pnpm v11 requires Node >= 22.13; use standalone (exe) bootstrap which + // bundles its own Node.js when the system Node is too old + const systemNode = await getSystemNodeVersion() + const standalone = inputs.standalone || systemNode.major < 22 || (systemNode.major === 22 && systemNode.minor < 13) // Install bootstrap pnpm via npm (integrity verified by committed lockfile) await rm(dest, { recursive: true, force: true }) @@ -40,13 +45,13 @@ export async function runSelfInstaller(inputs: Inputs): Promise { await mkdir(pnpmHome, { recursive: true }) const target = standalone ? path.join('..', '@pnpm', 'exe', 'pnpm') - : path.join('..', 'pnpm', 'bin', 'pnpm.cjs') + : path.join('..', 'pnpm', 'bin', 'pnpm.mjs') await symlink(target, pnpmBinLink) } const bootstrapPnpm = standalone ? path.join(dest, 'node_modules', '@pnpm', 'exe', 'pnpm') - : path.join(dest, 'node_modules', 'pnpm', 'bin', 'pnpm.cjs') + : path.join(dest, 'node_modules', 'pnpm', 'bin', 'pnpm.mjs') // Determine the target version const targetVersion = readTargetVersion({ version, packageJsonFile }) @@ -70,15 +75,17 @@ function readTargetVersion(opts: { const { version, packageJsonFile } = opts const { GITHUB_WORKSPACE } = process.env - let packageManager: unknown + let packageManager: string | undefined + let devEngines: { packageManager?: { name?: string; version?: string } } | undefined if (GITHUB_WORKSPACE) { try { const content = readFileSync(path.join(GITHUB_WORKSPACE, packageJsonFile), 'utf8'); - ({ packageManager } = packageJsonFile.endsWith(".yaml") + const manifest = packageJsonFile.endsWith(".yaml") ? parseYaml(content, { merge: true }) : JSON.parse(content) - ) + packageManager = manifest.packageManager + devEngines = manifest.devEngines } catch (error: unknown) { // Swallow error if package.json doesn't exist in root if (!util.types.isNativeError(error) || !('code' in error) || error.code !== 'ENOENT') throw error @@ -100,9 +107,13 @@ Remove one of these versions to avoid version mismatch errors like ERR_PNPM_BAD_ return version } + // pnpm will automatically download and switch to the right version if (typeof packageManager === 'string' && packageManager.startsWith('pnpm@')) { - // Strip the "pnpm@" prefix and any "+sha..." hash suffix - return packageManager.replace('pnpm@', '').replace(/\+.*$/, '') + return undefined + } + + if (devEngines?.packageManager?.name === 'pnpm' && devEngines.packageManager.version) { + return undefined } if (!GITHUB_WORKSPACE) { @@ -115,7 +126,21 @@ Otherwise, please specify the pnpm version in the action configuration.`) throw new Error(`No pnpm version is specified. Please specify it by one of the following ways: - in the GitHub Action config with the key "version" - - in the package.json with the key "packageManager"`) + - in the package.json with the key "packageManager" + - in the package.json with the key "devEngines.packageManager"`) +} + +function getSystemNodeVersion(): Promise<{ major: number; minor: number }> { + return new Promise((resolve) => { + const cp = spawn('node', ['--version'], { stdio: ['pipe', 'pipe', 'pipe'], shell: process.platform === 'win32' }) + let output = '' + cp.stdout.on('data', (data: Buffer) => { output += data.toString() }) + cp.on('close', () => { + const match = output.match(/^v(\d+)\.(\d+)/) + resolve(match ? { major: parseInt(match[1], 10), minor: parseInt(match[2], 10) } : { major: 0, minor: 0 }) + }) + cp.on('error', () => resolve({ major: 0, minor: 0 })) + }) } function runCommand(cmd: string, args: string[], opts: { cwd: string }): Promise {