Skip to content

chore: bump pnpm/action-setup to v6 - #96

Merged
tenphi merged 1 commit into
mainfrom
claude/pnpm-action-setup-v6
Aug 19, 2026
Merged

chore: bump pnpm/action-setup to v6#96
tenphi merged 1 commit into
mainfrom
claude/pnpm-action-setup-v6

Conversation

@tenphi

@tenphi tenphi commented Aug 19, 2026

Copy link
Copy Markdown
Owner

Context

This started as "remove corepack" — but there is no corepack in this repo. No corepack enable, no corepack prepare, nothing in the workflows, docs, or scripts. CI already installs pnpm via pnpm/action-setup and pins it with packageManager: pnpm@11.0.8. Companion to tenphi/tasty#265.

Changes

pnpm/action-setup v4 → v6 in all four call sites (ci.yml, deploy-playground.yml, both jobs of release.yml).

Drop-in despite skipping a major: v4 and v6 declare identical inputs and outputs — the only action.yml deltas are a description wording change and the action's own runtime moving node20node24. v6 is also the first version that reads devEngines.packageManager, so adopting that declaration later needs no further CI change.

Why packageManager stays (and devEngines.packageManager does not land here)

The forward-looking devEngines.packageManager declaration isn't viable for this repo yet. Verified locally against pnpm 11.22.0 / pnpm 11.0.8 / npm 10.9.7:

  • Both fields can't coexist — pnpm warns on every install: Cannot use both "packageManager" and "devEngines.packageManager" in package.json. "packageManager" will be ignored.
  • packageManager is consumed here — by pnpm's own version management and by pnpm/action-setup when version is omitted. v4 does not read devEngines at all, so dropping the field before this bump would have broken CI.
  • devEngines breaks npm-based publishing. release.yml runs npm pkg set version and npm publish. With devEngines.packageManager: {name: pnpm, …} and onFail: "download" (or "error"), every npm command exits non-zero:
    npm error code EBADDEVENGINES
    npm error EBADDEVENGINES Invalid name "pnpm" does not match "npm" for "packageManager"
    
    Only onFail: "warn"/"ignore" lets npm proceed, and warn prints that block on each npm invocation.
  • pnpm 10 ignores it silently. devEngines.packageManager landed in pnpm 11.0, so a contributor on pnpm 10 would get no pin and no error — today packageManager auto-switches them.
  • It pulls the pnpm binary into the lockfile. With onFail: "download", pnpm writes packageManagerDependencies plus @pnpm/exe / pnpm / @reflink entries — ~199 extra lines of lockfile.

Verification

Workflow-only change — no manifest or lockfile edits. All three workflow files parse as YAML, and the v4↔v6 input/output comparison above was made against the actions' own action.yml.

Follow-up worth considering (not in this PR)

pnpm/action-setup's README now names a successor: pnpm/setup@v1, recommended for pnpm 11+. It installs pnpm as a standalone native binary and can provision the runtime, replacing actions/setup-node. Bigger change, own PR — and it needs care around release.yml's registry-url setup for publishing.


Generated by Claude Code

The repo never used corepack — CI already installs pnpm through
pnpm/action-setup and pins it with `packageManager`. v4 → v6 is a drop-in:
inputs and outputs are unchanged (only the action's own runtime moved from
node20 to node24), and v6 is the first version that reads
`devEngines.packageManager`, so switching to that declaration later needs no
further CI change.

`packageManager: pnpm@11.0.8` stays as the pin — action-setup, pnpm 10 and
pnpm 11 all consume it, and pnpm refuses to honour both fields at once.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Buu8ZHjnksQQdzS6vgn5ez
@github-actions

Copy link
Copy Markdown
Contributor

📦 Snapshot release

Published 0.0.0-snapshot.4b10206.

pnpm add @tenphi/glaze@0.0.0-snapshot.4b10206

@tenphi
tenphi merged commit 42aed20 into main Aug 19, 2026
3 checks passed
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