Skip to content

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

Closed
dnlbox wants to merge 1 commit into
mainfrom
chore/commander-14
Closed

chore: require Node 22+ and bump @types/node to 24#3
dnlbox wants to merge 1 commit into
mainfrom
chore/commander-14

Conversation

@dnlbox
Copy link
Copy Markdown
Owner

@dnlbox dnlbox commented May 20, 2026

Summary

Follow-up to #1 (commander 14 bump, now merged). Adds the coordinated Node 22 engine requirement that was being bundled into that PR.

  • engines.node >=20.0.0>=22.0.0
  • @types/node ^20^24 (LTS line)
  • CI matrix: ["20", "lts/*"]["22"]

Why now

PR #1 was merged while this commit was being prepared. The Node 22 requirement is still needed: pnpm 11.x dropped Node 20 support (uses `node:sqlite`, available in Node 22.13+ only), and the old matrix was causing CI failures on the Node 20 and `lts/*` legs.

Verification

  • `pnpm typecheck && pnpm lint && pnpm test && pnpm build` — all green (65 unit tests)
  • Workspace e2e contract suite (31 tests / 33 metric scenarios) — green
  • Pre-commit hook (lefthook) passed: typecheck + lint + test all green

Breaking changes

Test plan

  • Unit tests pass (65/65)
  • Workspace e2e suite green (31/31)
  • CI matrix simplified to Node 22 only
  • 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>
@dnlbox
Copy link
Copy Markdown
Owner Author

dnlbox commented May 20, 2026

Duplicate of #2. Same engine bump commit reached this branch via the bundled-PR agent path before learning that #1 had already been merged; #2 was opened manually from a properly-named chore/engines-node-22 branch. Closing this in favour of #2.

@dnlbox dnlbox closed this May 20, 2026
dnlbox added a commit that referenced this pull request May 23, 2026
…tifact path

Same workspace install bug as fhir-resource-diff PR #3: pnpm-workspace.yaml at
the repo root makes pnpm treat root as the workspace root, so `pnpm install`
from docs/site installs root packages only, leaving docs/site/node_modules empty.

Changes:
- pnpm-workspace.yaml: add packages: [docs/site]; add sharp to allowBuilds
- docs.yml: fix artifact path from .vitepress/dist to dist (Astro output)
- docs/site/package.json: replace sharp@0.34.5 + @img/sharp-darwin-arm64 with
  sharp@0.33.5 — the 0.34 @img/* approach fails under pnpm virtual store and
  breaks cross-platform CI (darwin binary in dependencies)
- docs/site/pnpm-workspace.yaml: deleted (was an attempted workaround, not needed)
- docs/site/pnpm-lock.yaml: deleted, absorbed into root lockfile
- pnpm-lock.yaml: regenerated to include docs/site deps

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
dnlbox added a commit that referenced this pull request May 24, 2026
…#5)

* docs: replace VitePress with Astro/Starlight; apply shared docs-theme

- Replace VitePress config (.vitepress/) with Astro + Starlight setup
  (astro.config.mjs, docs/site/package.json, pnpm-lock.yaml)
- Migrate all docs markdown from docs/site/{guide,reference,ecosystem,index}.md
  to docs/site/src/content/docs/ with Starlight frontmatter
- Add custom landing page (index.astro): blue-glow palette, interactive
  terminal demo with three tabs, feature grid, ecosystem pipeline map
- Add shared theme files under docs/site/src/theme/ (synced from
  packages/docs-theme): theme-blue.css tokens, base.css Starlight overrides,
  CommandOutput.astro component
- Update package.json: remove vitepress devDependency; change docs:* scripts
  to use pnpm --dir docs/site
- Update .gitignore: replace VitePress paths with Astro equivalents

* chore(deps): remove VitePress from pnpm lockfile after Astro migration

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* build: suppress tsup-injected baseUrl deprecation in TypeScript 6.0

tsup 8.x injects baseUrl into the DTS build worker. TypeScript 6.0
treats this as a deprecation error without ignoreDeprecations.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* fix(docs): declare docs/site as workspace member; fix CI build and artifact path

Same workspace install bug as fhir-resource-diff PR #3: pnpm-workspace.yaml at
the repo root makes pnpm treat root as the workspace root, so `pnpm install`
from docs/site installs root packages only, leaving docs/site/node_modules empty.

Changes:
- pnpm-workspace.yaml: add packages: [docs/site]; add sharp to allowBuilds
- docs.yml: fix artifact path from .vitepress/dist to dist (Astro output)
- docs/site/package.json: replace sharp@0.34.5 + @img/sharp-darwin-arm64 with
  sharp@0.33.5 — the 0.34 @img/* approach fails under pnpm virtual store and
  breaks cross-platform CI (darwin binary in dependencies)
- docs/site/pnpm-workspace.yaml: deleted (was an attempted workaround, not needed)
- docs/site/pnpm-lock.yaml: deleted, absorbed into root lockfile
- pnpm-lock.yaml: regenerated to include docs/site deps

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
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