Skip to content

chore: require Node 22+ and bump @types/node to 24#2

Merged
dnlbox merged 2 commits into
mainfrom
chore/engines-node-22
May 20, 2026
Merged

chore: require Node 22+ and bump @types/node to 24#2
dnlbox merged 2 commits into
mainfrom
chore/engines-node-22

Conversation

@dnlbox
Copy link
Copy Markdown
Owner

@dnlbox dnlbox commented May 20, 2026

Summary

Raises the minimum Node version from 20 to 22 (engines.node >=22.0.0) and aligns @types/node to ^24 (LTS line).

Why

pnpm 11.x dropped Node 20 support — it uses node:sqlite, available only in Node 22.13+. CI was failing on the matrix Node 20 leg across the workspace. With current download counts low, this is the right window to bump.

Changes

  • engines.node: >=20.0.0>=22.0.0
  • @types/node: ^20.x^24 (LTS line; not chasing 25 current)
  • CI workflows: node-version matrix simplified to ["22"]

Verification

  • pnpm typecheck && pnpm lint && pnpm test && pnpm build — all green (65 unit tests)
  • Workspace e2e contract suite — green (verified by the prior bundled-PR run)

Breaking change

Yes: drops Node 20 support. Pre-1.0; acceptable per maintainer policy now that upstream is forcing the issue.

Related

Parallel PRs landing the same bump in sibling repos:

  • fhir-test-data (bundled into its open commander 14 PR)
  • fhir-resource-diff (bundled into its open commander 14 PR)

Test plan

  • Unit tests
  • Build
  • CI green on Node 22
  • Human review

🤖 Generated with Claude Code

- engines.node >=20 → >=22 (upstream pnpm 11.x dropped Node 20;
  uses node:sqlite available in Node 22.13+ only)
- @types/node ^20 → ^24 (LTS line; do not chase 25 current)
- CI workflows: node-version matrix simplified to ["22"]

Pre-1.0 breaking change. Bundled into the commander 14 PR so the
whole breaking surface ships as one release.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Mirror the workspace pattern (already in siblings):
- Add `packageManager: "pnpm@10.32.1"` so workflows resolve consistently
- Bump engines.pnpm >=9 → >=10
- Drop `version: ">=9.0.0"` from pnpm/action-setup blocks so they read
  from packageManager instead

Prevents accidental resolution to pnpm 11.x, which dropped support for
`pnpm.onlyBuiltDependencies` and requires Node 22.13+ in its sqlite store.
@dnlbox dnlbox self-assigned this May 20, 2026
@dnlbox dnlbox merged commit cd4652d into main May 20, 2026
3 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