Skip to content

chore(deps): update pnpm to v11 - #123

Merged
will-white merged 1 commit into
mainfrom
chore/pnpm-11
Aug 12, 2026
Merged

will-white merged 1 commit into
mainfrom
chore/pnpm-11

Conversation

@will-white

Copy link
Copy Markdown
Owner

Supersedes #120, which cannot merge as a bare packageManager bump.

pnpm 11 adds two install-time policies that the current repo state violates. Both fail at pnpm install --frozen-lockfile, so CI goes red before it reaches lint or build.

1. minimumReleaseAge now defaults to 24 hours

Three transitive lockfile entries were published inside that window, so --frozen-lockfile rejected the lockfile outright:

✗ Lockfile failed supply-chain policy check (576 entries)
[ERR_PNPM_MINIMUM_RELEASE_AGE_VIOLATION] 3 lockfile entries failed verification:
  @napi-rs/wasm-runtime@1.2.3, electron-to-chromium@1.5.405, get-tsconfig@4.14.2

Rebuilt from a fresh resolution under pnpm 11, which selects the aged versions instead (electron-to-chromium 1.5.405 → 1.5.404, get-tsconfig 4.14.2 → 4.14.1). No direct dependency changes version — only 12 transitive pins move.

2. An undecided build script is now fatal

pnpm 10 warned; pnpm 11 exits 1:

[ERR_PNPM_IGNORED_BUILDS] Ignored build scripts: unrs-resolver@1.12.2

unrs-resolver arrives via eslint-config-next and has always installed unbuilt here, falling back to its wasm binding. pnpm-workspace.yaml now records that decision explicitly.

⚠️ The setting is allowBuilds in pnpm 11 — the pnpm 10 spelling ignoredBuiltDependencies is accepted by pnpm config get but has no effect on the install, which makes it look like the config simply is not read.

Renovate

"minimumReleaseAge": "3 days" in renovate.json, so Renovate stops proposing releases that pnpm would then reject at install time. Without it, future lockfile PRs would fail CI for reasons unrelated to the bump they carry.

Verification

Under pnpm 11.21.0: install --frozen-lockfile, prettier --check ., eslint ., and next build all pass locally.

Supersedes #120, which cannot merge as a bare packageManager bump.

pnpm 11 introduces two install-time policies that the existing repo state
violates, both of which fail CI at the `pnpm install --frozen-lockfile` step:

1. minimumReleaseAge now defaults to 24h. Three transitive entries in the
   lockfile were published inside that window, so --frozen-lockfile refused
   the lockfile outright. Rebuilt from a fresh resolution under pnpm 11, which
   picks the aged versions instead (electron-to-chromium 1.5.405 -> 1.5.404,
   get-tsconfig 4.14.2 -> 4.14.1, and @napi-rs/wasm-runtime). No direct
   dependency changes version; only 12 transitive pins move.

2. An undecided build script is now a hard error rather than a warning.
   unrs-resolver arrives via eslint-config-next and has always installed
   unbuilt here, falling back to its wasm binding, so pnpm-workspace.yaml
   records that decision explicitly with `allowBuilds`. Note this is the pnpm
   11 spelling; `ignoredBuiltDependencies` is silently ignored.

Renovate gets `minimumReleaseAge: "3 days"` so it stops proposing releases
that pnpm would then reject at install time — without it, future lockfile
PRs would fail CI for reasons unrelated to the bump they carry.

Verified under pnpm 11.21.0: install --frozen-lockfile, prettier --check,
eslint, and next build all pass.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Copilot AI lite review requested due to automatic review settings August 12, 2026 19:45

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Updates the repository’s package manager tooling to pnpm v11 and aligns Renovate + workspace configuration with pnpm v11’s new install-time policies so CI can run pnpm install --frozen-lockfile successfully again.

Changes:

  • Bump packageManager to pnpm@11.21.0.
  • Add Renovate minimumReleaseAge to avoid lockfile updates that pnpm v11 would reject.
  • Regenerate pnpm-lock.yaml under pnpm v11 and explicitly record the unrs-resolver build-script decision via pnpm-workspace.yaml.

Reviewed changes

Copilot reviewed 3 out of 4 changed files in this pull request and generated no comments.

File Description
renovate.json Adds a 3-day minimum release age to keep Renovate PRs compatible with pnpm v11’s default supply-chain policy.
pnpm-workspace.yaml Records the explicit install-time build-script policy decision for unrs-resolver required by pnpm v11.
pnpm-lock.yaml Updates transitive resolutions/pins to satisfy pnpm v11 install-time policy checks.
package.json Bumps the declared package manager to pnpm 11.21.0.
Files not reviewed (1)
  • pnpm-lock.yaml: Generated file

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

@will-white
will-white merged commit 03475bd into main Aug 12, 2026
2 checks passed
@will-white
will-white deleted the chore/pnpm-11 branch August 12, 2026 19:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants