From 7133229bf375976ffd4740ffcf5503e90f1bcfe8 Mon Sep 17 00:00:00 2001 From: Zoltan Kochan Date: Fri, 27 Mar 2026 01:58:33 +0100 Subject: [PATCH] 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. --- .github/workflows/test.yaml | 50 +++++ dist/index.js | Bin 1428109 -> 1432028 bytes src/install-pnpm/bootstrap/exe-lock.json | 229 +++++++++++++++++----- src/install-pnpm/bootstrap/pnpm-lock.json | 16 +- src/install-pnpm/run.ts | 37 +++- 5 files changed, 268 insertions(+), 64 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 73fbf803e6419f0ab32c99107e675330c3c68436..26f9903bc005d5e535fe5eb0f57ffa251f695e72 100644 GIT binary patch delta 60320 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 g41`;%(= 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 4221555..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 }) @@ -87,11 +92,6 @@ function readTargetVersion(opts: { } } - // If packageManager field is not set, try devEngines.packageManager - if (typeof packageManager !== 'string' && devEngines?.packageManager?.name === 'pnpm' && devEngines.packageManager.version) { - packageManager = `pnpm@${devEngines.packageManager.version}` - } - if (version) { if ( typeof packageManager === 'string' && @@ -107,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) { @@ -126,6 +130,19 @@ Please specify it by one of the following ways: - 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 { return new Promise((resolve, reject) => { const cp = spawn(cmd, args, {