Skip to content

feat(pnpm): add frozen install adapter - #43

Merged
Windsor Nguyễn (windsornguyen) merged 2 commits into
chore/pnpm-11from
feat/pnpm-adapter-m0
Aug 13, 2026
Merged

feat(pnpm): add frozen install adapter#43
Windsor Nguyễn (windsornguyen) merged 2 commits into
chore/pnpm-11from
feat/pnpm-adapter-m0

Conversation

@windsornguyen

@windsornguyen Windsor Nguyễn (windsornguyen) commented Aug 6, 2026

Copy link
Copy Markdown
Member

Depends on #42. Implements the first executable milestone in RFC 0001.

What does this change?

This PR adds a first-party pnpm toolchain and frozen-install action.

  • The toolchain declares an exact Node executable, pnpm version, and pnpm distribution digest.
  • Consumers can select tested pnpm 10 or pnpm 11 toolchains.
  • Bessemer validates package.json#packageManager, engines.node, and pnpm-lock.yaml before installation.
  • One action installs each lockfile. Bessemer does not run one install per package.
  • The action confines HOME, PNPM_HOME, Corepack, XDG, store, and npm authentication state.
  • The action uses frozen-lockfile behavior and rejects an existing output directory.
  • The typed CI command includes adapter tests.
  • Documentation defines configuration, invariants, errors, and later RFC milestones.

A consumer toolchain must use an exact tested pnpm version and digest. Bessemer does not provide a mutable latest setting.

This milestone delegates resolution and installation to pinned pnpm. It does not parse the lockfile into the Bessemer graph or materialize packages from the content-addressed store.

Security and correctness boundaries

Lifecycle scripts run inside the single pnpm install action. The action can use the network on a cache miss. A cache hit depends on the declared toolchain and lockfile inputs.

How was it tested?

  • pnpm run ci check passed all 33 tests, generated-action checks, and workflow-security checks.

  • Real frozen installs passed with pnpm 10.30.3 and pnpm 11.20.0.

  • Cross-version and mismatched-artifact cases returned errors before installation.

  • Starlark lint and type checks passed.

  • CLA/Vouch check passes, or this PR only updates VOUCHED.td.

Reviewers

@windsornguyen
Windsor Nguyễn (windsornguyen) force-pushed the feat/pnpm-adapter-m0 branch 2 times, most recently from a62d225 to ed67b3b Compare August 11, 2026 01:40
Golden files are regenerated and compared byte-for-byte by their test
harnesses, so the injected preamble changed the tested bytes and broke
17 starlark golden tests. Exclude *.golden and *.golden.md from the
source inventory and restore the generated golden content.

Co-authored-by: Codesmith <codesmith-bot@users.noreply.github.com>
Merged via the queue into main with commit 105e195 Aug 13, 2026
11 of 19 checks passed
@windsornguyen
Windsor Nguyễn (windsornguyen) deleted the feat/pnpm-adapter-m0 branch August 13, 2026 00:16
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