Skip to content

chore: migrate from yarn to pnpm#115

Merged
maxisam merged 6 commits into
mainfrom
feat/migrate-to-pnpm
Jun 26, 2026
Merged

chore: migrate from yarn to pnpm#115
maxisam merged 6 commits into
mainfrom
feat/migrate-to-pnpm

Conversation

@maxisam

@maxisam maxisam commented Jun 26, 2026

Copy link
Copy Markdown
Owner

Summary

  • Replace yarn with pnpm@11.9.0 as the package manager
  • Remove yarn.lock, add pnpm-lock.yaml (generated via pnpm install)
  • Update packageManager field in package.json to pnpm@11.9.0
  • Update all script to use pnpm run instead of npm run
  • Update CI workflow: add pnpm/action-setup@v4, switch setup-node cache from yarn to pnpm, replace yarn install/yarn all with pnpm install/pnpm all

Test plan

  • CI build passes on this PR
  • pnpm install installs cleanly with no errors
  • pnpm all (build → format → lint → package → test → copy-matcher) succeeds
  • dist/ is up to date after the build step

https://claude.ai/code/session_011RYBwYUi1wcQL2atYneNAv

Sam-Lin-MillersLab and others added 6 commits June 25, 2026 21:53
- Update packageManager field to pnpm@11.9.0
- Replace yarn.lock with pnpm-lock.yaml
- Update all script to use pnpm run
- Update CI workflow to use pnpm/action-setup@v4 and pnpm cache

Claude-Session: https://claude.ai/code/session_011RYBwYUi1wcQL2atYneNAv
- Upgrade pnpm/action-setup from v4 (Node 20) to v6 (Node 24)
- Upgrade CI Node.js version from 18.x to 24.x
- Upgrade action.yml runtime from node16 to node20

Fixes CI failure caused by Node 20 deprecation on GitHub Actions runners.

Claude-Session: https://claude.ai/code/session_011RYBwYUi1wcQL2atYneNAv
pnpm/action-setup@v6 reads the version from packageManager in package.json automatically; specifying both causes an error.

Claude-Session: https://claude.ai/code/session_011RYBwYUi1wcQL2atYneNAv
Replace default import `yaml` with named import `{ load as yamlLoad }` in readConfig.ts to resolve the import/no-named-as-default-member lint error.

Claude-Session: https://claude.ai/code/session_011RYBwYUi1wcQL2atYneNAv
- Add @jest/globals to devDependencies (was a phantom dep under yarn's hoisted node_modules, not available under pnpm's strict isolation)
- Base the fs mock in readConfig.test.ts on jest.requireActual('fs') to preserve fs.constants (O_RDONLY etc.) needed by @actions/core transitive deps at init time

Claude-Session: https://claude.ai/code/session_011RYBwYUi1wcQL2atYneNAv
@maxisam maxisam merged commit 9e8dc26 into main Jun 26, 2026
1 check 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