| name | pnpm-upgrade |
|---|---|
| description | Keep pnpm current: run pnpm self-update/corepack prepare, align packageManager in package.json, and bump pnpm/action-setup + pinned pnpm versions in .github/workflows to the latest release. Use this when refreshing the pnpm toolchain manually or in automation. |
pnpm Upgrade
Use these steps to update pnpm and CI pins without blunt search/replace.
Steps (run from repo root)
-
Update pnpm locally - Try
pnpm self-update; if pnpm is missing or self-update fails, runcorepack prepare pnpm@latest --activate. - Capture the resulting version asPNPM_VERSION=$(pnpm -v). -
Align package.json - Open
package.jsonand setpackageManagertopnpm@${PNPM_VERSION}(preserve trailing newline and formatting). -
Find latest pnpm/action-setup tag - Query GitHub API:
curl -fsSL https://api.github.com/repos/pnpm/action-setup/releases/latest | jq -r .tag_name. - UseGITHUB_TOKEN/GH_TOKENif available for higher rate limits. - Store asACTION_TAG(e.g.,v4.2.0). Abort if missing. -
Update workflows carefully (no broad regex) - Files: everything under
.github/workflows/that usespnpm/action-setup. - For each file, edit by hand:- Set
uses: pnpm/action-setup@${ACTION_TAG}. - If a
with: version:field exists, set it to${PNPM_VERSION}(keep quoting style/indent). - Do not touch unrelated steps. Avoid multiline sed/perl one-liners.
- Set
-
Verify - Run
pnpm -vand confirm it matchespackageManager. -git diffto ensure only intended workflow/package.json changes. -
Follow-up - If runtime code/build/test config was changed (not typical here), run
$code-change-verification; otherwise, a light check is enough. - Commit withchore: upgrade pnpm toolchainand open a PR (automation may do this).
Notes
- Tools needed:
curl,jq,node,pnpm/corepack. Install if missing. - Keep edits minimal and readable—prefer explicit file edits over global replacements.
- If GitHub API is rate-limited, retry with a token or bail out rather than guessing the tag.