Skip to content

build: update pnpm to v12 - #56

Closed
dangreen wants to merge 1 commit into
build/node-26from
build/pnpm-12
Closed

dangreen wants to merge 1 commit into
build/node-26from
build/pnpm-12

Conversation

@dangreen

@dangreen dangreen commented Oct 6, 2026

Copy link
Copy Markdown
Member

Why

pnpm 12 is the latest release, one major past the 11.9.0 the repository was on. Its breaking changes leave the workspace alone: pnpm 12 recognizes every setting of pnpm-workspace.yaml, nothing passes --frozen-lockfile false, no dependency comes from git, and engineStrict is off. The one change it asks for is in the lockfile: pnpm 12, like pnpm 11.28, compares the publishConfig.linkDirectory of a package with the lockfile, so a frozen install of the old lockfile fails with ERR_PNPM_OUTDATED_LOCKFILE. That is also why #54 pinned CI to pnpm 11.9.0.

What

  • .tool-versions pins pnpm 12.9.1, the version of the latest tag.
  • Every pnpm/action-setup step asks for pnpm 12 instead of the 11.9.0 pinned in build: limit concurrency of workspace scripts to CPU cores #54; v6 of the action supports it.
  • The lockfile records linkDirectory: false for the 4 packages whose publishConfig sets it, the way pnpm 12 writes it, and nothing else.

Notes

  • Stacked on build: update Node.js to v26 and pnpm to v12 #55, which pins Node.js 26 in the same .tool-versions. Once build: update Node.js to v26 and pnpm to v12 #55 is merged, this branch gets rebased onto main, which also runs the Checks workflow that covers pull requests into main alone.
  • A full re-resolution would also move @typescript/native-preview, which the root takes at latest, from 7.0.0-dev.20260624.1 to 7.0.0-dev.20260707.2. The lockfile leaves that out: pnpm 12 finds it up to date with the four lines alone, and a plain install changes nothing.
  • minimumReleaseAge has applied since pnpm 11, so the move to 12 changes nothing about it.
  • Checked on pnpm 12.9.1 and Node.js 26.10.0: a frozen install from scratch, a plain install that leaves the lockfile alone, the build of child-process-utils through pnpm run, which triggers no install before the script, its types, unit tests and lint, and lint-package-json through pnpm dlx.
  • The Renovate PR chore(deps): update dependency pnpm to v11.28.5 - autoclosed #45, which bumps pnpm, becomes obsolete.

Pin pnpm 12.9.1 and ask CI for pnpm 12. Settings need no migration from pnpm 11. The lockfile
records `linkDirectory: false` of the 4 packages that set it, which a frozen install of pnpm 12
checks, and pnpm 12 finds it up to date with that alone.
@coveralls

Copy link
Copy Markdown

Coverage Report for CI Build 37489705452

Warning

No base build found for commit cf634cd on build/node-26.
Coverage changes can't be calculated without a base build.
If a base build is processing, this comment will update automatically when it completes.

Coverage: 81.35%

Details

  • Patch coverage: No coverable lines changed in this PR.

Uncovered Changes

No uncovered changes found.

Coverage Regressions

Requires a base build to compare against. How to fix this →


Coverage Stats

Coverage Status
Relevant Lines: 175
Covered Lines: 152
Line Coverage: 86.86%
Relevant Branches: 136
Covered Branches: 101
Branch Coverage: 74.26%
Branches in Coverage %: Yes
Coverage Strength: 46.36 hits per line

💛 - Coveralls

@dangreen

dangreen commented Oct 6, 2026

Copy link
Copy Markdown
Member Author

Folded into #55, which now carries the pnpm 12 update as well.

@dangreen dangreen closed this Oct 6, 2026
@dangreen
dangreen deleted the build/pnpm-12 branch October 6, 2026 17:22
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