chore(deps): upgrade pnpm to 11.21.0 - #289
Open
lanesawyer wants to merge 1 commit into
Open
Conversation
- Bump the volta pin and all pnpm/action-setup version pins in CI, release, publish, and deploy workflows - Add an allowBuilds block to pnpm-workspace.yaml: pnpm 11 turns ignored build scripts into a hard error, which failed --frozen-lockfile. All six are set to false, matching the pnpm 10 behavior where they were already skipped; each ships a prebuilt platform binary. pnpm-lock.yaml is unchanged — pnpm 11 still uses lockfileVersion 9.0. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This was referenced Aug 14, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Upgrades pnpm from 10.33.0 to 11.21.0 (latest v11) across the repo.
How
package.json— bumped thevolta.pnpmpin to11.21.0. This is the onlypackage.jsonin the workspace carrying a pnpm pin; the sub-packages have none.pnpm/action-setupversion:pins acrossci.yml,release.yml,publish.yml, anddeploy_examples.yml.pnpm-workspace.yaml— added anallowBuildsblock.Why
allowBuildswas necessaryThis one isn't cosmetic. pnpm 11 promotes ignored dependency build scripts from a warning to a hard error (
ERR_PNPM_IGNORED_BUILDS), which madepnpm install --frozen-lockfileexit 1 — CI would have failed on every job.All six affected packages (
@parcel/watcher,@swc/core,esbuild,lmdb,msgpackr-extract,sharp) are set tofalse, which preserves existing behavior rather than changing it: pnpm 10 already defaults to not running dependency build scripts, and this repo has noonlyBuiltDependenciesconfig — so these have been skipped on every install onmainall along, with CI green. Setting them totruewould be the actual behavior change.Each follows the same pattern — a prebuilt platform-specific optional dependency, with the install script as a compile-from-source fallback:
esbuildnode install.js@esbuild/<platform>sharpnode install/check.js || npm run build@img/sharp-<platform>@swc/corenode postinstall.js@swc/core-<platform>@parcel/watchernode scripts/build-from-source.js@parcel/watcher-<platform>lmdbnode-gyp-build-optional-packages@lmdb/lmdb-<platform>msgpackr-extractnode-gyp-build-optional-packages@msgpackr-extract/...-<platform>allowBuildsis pnpm 11's unified replacement for pnpm 10'sonlyBuiltDependencies/ignoredBuiltDependenciespair; pnpm scaffolded the block itself during install.Lockfile
pnpm-lock.yamlis unchanged — pnpm 11 still useslockfileVersion: '9.0'.Heads-up for reviewers pulling this branch
Your first
pnpm installafter switching will want to purgenode_modules. Interactively it just prompts; in a non-TTY context it aborts withERR_PNPM_ABORTED_REMOVE_MODULES_DIR_NO_TTY. GitHub Actions setsCI=true, so CI purges silently.Verification
Ran locally on pnpm 11.21.0 (darwin-arm64), all exit 0:
pnpm install --frozen-lockfilepnpm buildpnpm testpnpm typecheckpnpm checkPrebuilt binary resolution was verified on darwin-arm64 only; CI covers
ubuntu-latest(linux-x64).PR Checklist
main?🤖 Generated with Claude Code