Skip to content

chore: upgrade pnpm to 11.9.0#259

Open
JuroUhlar wants to merge 5 commits into
mainfrom
chore-upgrade-pnpm
Open

chore: upgrade pnpm to 11.9.0#259
JuroUhlar wants to merge 5 commits into
mainfrom
chore-upgrade-pnpm

Conversation

@JuroUhlar

@JuroUhlar JuroUhlar commented Jul 3, 2026

Copy link
Copy Markdown
Contributor
  • Bump to pnpm@11.9.0
  • Move .npmrc settings into pnpm-workspace.yaml; delete .npmrc (pnpm 11 only reads auth/registry there)
  • allowBuilds.esbuild: true — pnpm 11 requires explicit build approval
  • publicHoistPattern for *eslint* + typescript-eslint — lint without duplicating deps per repo
  • Functional tests: install deps on Node 22, then smoke-test on matrix Node 18–23

Discussion point: transitive eslint deps

  • pnpm 11 no longer exposes transitive packages like pnpm 9
  • CI failed at pnpm lint: eslint: not found — only pulled in via @fingerprintjs/eslint-config-dx-team
  • Option A: direct devDependencies in every repo (idiomatic, duplicated)
  • Option B: publicHoistPattern in pnpm-workspace.yaml (reusable, phantom-dep tradeoff)
  • Chose B for multi-repo reuse; document in dx-team-toolkit/eslint-config README if CI holds
  • Pushback welcome

Discussion point: smoke tests on Node 18–21

  • pnpm 11 requires Node 22+; SDK runtime still supports 18+
  • Matrix pnpm install failed on Node 18–21
  • Fix: install on Node 22 → switch to target version → run node smokeTests.mjs only

Test plan

  • pnpm install --frozen-lockfile
  • pnpm lint, pnpm build, pnpm test
  • Functional smoke tests on Node 18–23

Migrate config from .npmrc into pnpm-workspace.yaml per pnpm 11 requirements.
@changeset-bot

changeset-bot Bot commented Jul 3, 2026

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: 9dd7d14

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@github-actions

github-actions Bot commented Jul 3, 2026

Copy link
Copy Markdown
Contributor

Coverage report

St.
Category Percentage Covered / Total
🟢 Statements 99.43% 350/352
🟢 Branches 97.54% 119/122
🟢 Functions 100% 34/34
🟢 Lines 99.43% 350/352

Test suite run success

76 tests passing in 22 suites.

Report generated by 🧪jest coverage report action from 9dd7d14

Show full coverage report
St File % Stmts % Branch % Funcs % Lines Uncovered Line #s
🟢 All files 99.43 97.54 100 99.43
🟢  src 100 100 100 100
🔴   ...edApiTypes.ts 0 0 0 0
🟢   index.ts 100 100 100 100
🟢   sealedResults.ts 100 100 100 100
🟢   ...rApiClient.ts 100 100 100 100
🟢   types.ts 100 100 100 100
🟢   urlUtils.ts 100 100 100 100
🟢   webhook.ts 100 100 100 100
🟢  src/errors 97.43 88.88 100 97.43
🟢   apiErrors.ts 100 100 100 100
🟢   ...orResponse.ts 100 100 100 100
🟡   toError.ts 77.77 66.66 100 77.77 10-11
🟢   unsealError.ts 100 100 100 100

JuroUhlar added 3 commits July 3, 2026 16:51
pnpm 11 no longer exposes transitive package bins or ESM imports to the
workspace root, which broke `pnpm lint` in CI.
Avoid repeating eslint and typescript-eslint in every repo that uses
@fingerprintjs/eslint-config-dx-team under pnpm 11.
pnpm 11 requires Node.js 22+, but the SDK still smoke-tests on 18–21.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Updates the repository’s tooling and CI to support pnpm v11 while keeping runtime smoke tests covering Node 18+.

Changes:

  • Bump the repo’s pinned package manager to pnpm@11.9.0 and refresh the lockfile accordingly.
  • Move prior .npmrc settings into pnpm-workspace.yaml, add pnpm v11 build approval for esbuild, and hoist ESLint-related tooling to keep pnpm lint working under pnpm’s isolated layout.
  • Update the functional tests workflow to install dependencies on Node 22 (required by pnpm 11), then switch to the matrix Node version to run the smoke test via node.

Reviewed changes

Copilot reviewed 5 out of 6 changed files in this pull request and generated no comments.

Show a summary per file
File Description
pnpm-workspace.yaml Adds pnpm v11-related workspace settings (build approvals + hoisting + previous npmrc options).
pnpm-lock.yaml Lockfile updates consistent with pnpm upgrade / dependency graph changes.
package.json Pins packageManager to pnpm@11.9.0.
contributing.md Updates documented pnpm prerequisite to match the pinned version.
.npmrc Removes settings that are being relocated per pnpm v11 configuration approach.
.github/workflows/functional_tests.yml Installs deps on Node 22 for pnpm 11 compatibility, then runs smoke tests on the matrix Node version.
Files not reviewed (1)
  • pnpm-lock.yaml: Generated file

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

verbose is npm-specific; pnpm accepts debug, info, warn, or error.
@github-actions

github-actions Bot commented Jul 3, 2026

Copy link
Copy Markdown
Contributor

🚀 Following releases will be created using changesets from this PR:

@fingerprint/node-sdk@7.4.1

Patch Changes

  • errors: Normalize caught values into real Error instances, so errors from unseal and JSON parsing always carry a genuine Error. (5764c11)

ilfa
ilfa previously approved these changes Jul 6, 2026
Base automatically changed from claude/upgrade-dx-toolkit-deps-q51eef to main July 8, 2026 12:23
@JuroUhlar JuroUhlar dismissed ilfa’s stale review July 8, 2026 12:23

The base branch was changed.

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.

3 participants