Skip to content

chore(deps): migrate to pnpm 11#2

Merged
dnlbox merged 2 commits into
mainfrom
chore/pnpm-11-migration
May 20, 2026
Merged

chore(deps): migrate to pnpm 11#2
dnlbox merged 2 commits into
mainfrom
chore/pnpm-11-migration

Conversation

@dnlbox
Copy link
Copy Markdown
Owner

@dnlbox dnlbox commented May 20, 2026

Summary

Removes the pnpm 10 pin and migrates to pnpm 11 by moving the build-script allowlist from package.json to pnpm-workspace.yaml per https://pnpm.io/migration.

Why

pnpm.onlyBuiltDependencies (and the rest of that family) was removed in pnpm 11 and replaced with allowBuilds in pnpm-workspace.yaml. The pnpm 10 pin shipped with the Node 22 bump was a tactical measure to defer this migration; this PR finishes it.

Changes

  • New pnpm-workspace.yaml at repo root with allowBuilds: { esbuild: true, lefthook: true }
  • package.json: removed pnpm.onlyBuiltDependencies; bumped packageManager to pnpm@11.1.3; bumped engines.pnpm to >=11.0.0

Verification

  • pnpm typecheck && pnpm lint && pnpm test && pnpm build — green (497 unit tests)
  • Workspace e2e contract suite — green (31 scenarios)
  • Baseline diff: zero exit-code deltas; zero byte deltas
  • pnpm 11 install surfaced no other deprecation warnings

Breaking changes

None for consumers. Maintainers will need pnpm 11 to develop against this repo (corepack reads packageManager automatically; corepack enable && corepack prepare pnpm@11 --activate).

Related

Parallel PRs landing the same migration:

  • fhir-resource-diff
  • fhir-capability-analyzer

Test plan

  • Unit tests
  • Workspace e2e
  • CI green on Node 22 + pnpm 11
  • Human review

🤖 Generated with Claude Code

dnlbox added 2 commits May 20, 2026 14:51
- Remove `pnpm.onlyBuiltDependencies` from package.json (removed in pnpm 11)
- Create pnpm-workspace.yaml with `allowBuilds` map (esbuild, lefthook)
- Bump packageManager to pnpm@11.1.3
- Bump engines.pnpm to >=11.0.0

Removes the pnpm 10 pin that was a tactical measure during the Node 22
engine bump. Reference: https://pnpm.io/migration

Dev-only; published package surface unchanged.
Snyk's pnpm plugin sees pnpm-workspace.yaml (added in the prior commit
for pnpm 11 migration) and treats the repo as a monorepo, erroring with
SNYK-CLI-0000:

  Both `pnpm-lock.yaml` and `pnpm-workspace.yaml` were found in
  /github/workspace.
  Please run your command again specifying `--all-projects` flag.

The previous workflow was masking this failure via the `if: hashFiles`
guard on the upload step — the job reported green even though Snyk
never actually scanned. With --all-projects, Snyk runs cleanly and
produces a real SARIF.
@dnlbox dnlbox self-assigned this May 20, 2026
@dnlbox dnlbox merged commit 82e4367 into main May 20, 2026
6 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.

1 participant