Switch from yarn@1.22.22 to pnpm@11.0.8#949
Conversation
|
@coderabbitai review |
✅ Actions performedReview triggered.
|
|
Note Reviews pausedIt looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the Use the following commands to manage reviews:
Use the checkboxes below for quick actions:
📝 WalkthroughWalkthroughMigrate CI and project configuration from Yarn to pnpm and upgrade Node.js targets to 22.x; update package scripts, add a pnpm workspace config, and adjust CONTRIBUTING/README instructions. ChangesPackage Manager and Node.js Migration
Sequence Diagram(s)sequenceDiagram
participant GitHubActions
participant PnpmSetup as pnpm/action-setup@v6
participant SetupNode as actions/setup-node@v4
participant Runner
GitHubActions->>PnpmSetup: install pnpm (version from package.json)
GitHubActions->>SetupNode: configure Node 22.x + cache: pnpm
Runner->>Runner: pnpm install --ignore-scripts
Runner->>Runner: pnpm run lint / pnpm run test -- --coverage / pnpm run build / pnpm run ts:check
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
| strategy: | ||
| matrix: | ||
| node-version: [18.x] | ||
| node-version: [22.x] |
There was a problem hiding this comment.
Node.js 18 and 20 are EOL
There was a problem hiding this comment.
Pull request overview
Switches the project’s development package manager from Yarn Classic to pnpm, updating docs, scripts, CI, and pnpm workspace/security configuration.
Changes:
- Replaces Yarn commands with pnpm commands in scripts, docs, and GitHub Actions.
- Adds pnpm workspace configuration and pnpm lockfile.
- Pins
@types/nodeand updates CI to Node 22 with pnpm caching/Corepack.
Reviewed changes
Copilot reviewed 6 out of 8 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
| README.md | Updates install example from Yarn to pnpm. |
| CONTRIBUTING.md | Updates contributor setup, test, and release commands to pnpm. |
| package.json | Converts scripts to pnpm and pins pnpm/@types/node metadata. |
| pnpm-workspace.yaml | Adds pnpm workspace and security-related settings. |
| pnpm-lock.yaml | Adds pnpm dependency lockfile. |
| yarn.lock | Removes legacy Yarn lockfile. |
| .github/workflows/webpack.yaml | Updates PR CI workflow to Node 22 and pnpm. |
| .github/workflows/coveralls.yaml | Updates coverage workflow to Node 22 and pnpm. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In @.github/workflows/coveralls.yaml:
- Line 18: The CI job step using the pnpm/action-setup action (the step that
currently references "pnpm/action-setup@v6") should explicitly pin the pnpm
version via the action input to avoid the resolution bug; update that workflow
step to include a with: version: 11.0.8 (matching devEngines.packageManager) so
the action always installs pnpm 11.0.8 instead of relying on the action's
bootstrap resolution.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro Plus
Run ID: 2015d31c-949c-4022-9627-680b0483090c
📒 Files selected for processing (4)
.github/workflows/coveralls.yaml.github/workflows/webpack.yamlREADME.mdpnpm-workspace.yaml
🚧 Files skipped from review as they are similar to previous changes (3)
- .github/workflows/webpack.yaml
- README.md
- pnpm-workspace.yaml
249ea2b to
78b508b
Compare
nene
left a comment
There was a problem hiding this comment.
In general I'm all good with this.
The single showstopper for me is the pmOnFail issue. If we could just add to the config file:
pmOnFail: download
Then I would be fine with merging this. Even when this gets fixed in pnpm, the old pnpm versions with this issue will still be around for a while, troubling people who would like to check out this library.
Switch from yarn@1.22.22 to pnpm@11.0.8, as per #945 (comment).
This also pins
@types/node@22.9.0, matching the version previously resolved throughyarn.lock. Without the pin, pnpm resolves@types/node@25.6.0, which TypeScript 4.9 cannot check. The observed diagnostics:error TS1165: A computed property name in an ambient context must refer to an expression whose type is a literal type or a 'unique symbol' typeerror TS2339: Property 'dispose' does not exist on type 'SymbolConstructor'error TS2726: Cannot find lib definition for 'esnext.disposable'Install pnpm via the methods on the installation page:
TODO:
yarn.lockpnpm-lock.yamldevEngines.packageManagertopnpm@11.0.8@types/node@22.9.0verifyDepsBeforeRun: errorpackages: ['.']minimumReleaseAge: 10080minimumReleaseAgeStrict: trueminimumReleaseAgeIgnoreMissingTime: falsetrustPolicy: no-downgradeeslint-config-prettier@8.10.2eslint-plugin-prettier@4.2.5semver@5.7.2 || 6.3.1undici-types@6.19.8blockExoticSubdeps: trueSummary by CodeRabbit
Chores
Documentation