Skip to content

chore(deps): drop Node 20 support, pin CI Node 24 for docs build#817

Merged
BYK merged 2 commits intomainfrom
build/docs-astro-6-node-setup
Apr 22, 2026
Merged

chore(deps): drop Node 20 support, pin CI Node 24 for docs build#817
BYK merged 2 commits intomainfrom
build/docs-astro-6-node-setup

Conversation

@BYK
Copy link
Copy Markdown
Member

@BYK BYK commented Apr 22, 2026

Summary

Node 20 reached EOL in April 2026. This PR drops it from the supported set and cleans up the Astro 6 engine-check workaround that #816 left in place.

Changes

package.json — tighten engines

  • engines.node: >=22>=22.12 (matches Astro 6 and reflects Node 20 EOL).

docs/package.json — revert bun --bun astro workaround

  • Scripts are back to plain astro dev / build / preview.
  • security(deps): upgrade docs to Astro 6 / Starlight 0.38 #816 prefixed them with bun --bun only to route around the GHA runner's Node 20 shipping below Astro 6's engines.node: ">=22.12". With a real Node pin in CI (below) and Node 24 locally, there's no reason to keep it.

Workflows — pin Node 24 for docs jobs

  • ci.yml Build Docs and docs-preview.yml preview now both run actions/setup-node@v6 with node-version: "24" before the docs build.
  • Dropped the # works on Node < 22.12 … comments.

Unchanged

  • Build npm Package CI matrix stays at ["22", "24"]. Node 22 is still LTS (EOL April 2027) and above the new 22.12 minimum.
  • Other jobs already pinning node-version: 22 (release workflows) are fine as-is.

Verification

cd docs && rm -rf node_modules && bun install --frozen-lockfile && bun run build
# 29 pages built in ~6s

Node 20 reached end of life in April 2026, and the prior workaround
for Astro 6's `engines.node >= 22.12` requirement was putting `bun
--bun astro` into docs/package.json scripts just to route around the
GHA runner's Node 20.

- Tighten repo engines.node from `>=22` to `>=22.12` to reflect
  the real minimum (Astro 6) and drop support for EOL'd Node 20.
- Add `actions/setup-node@v6` (node-version 24) to the `Build Docs`
  and `preview` jobs so the docs build has a Node matching Astro's
  engine requirement, removing the `--bun` workaround.
- Revert docs/package.json scripts to plain `astro dev/build/preview`
  now that every runtime context has a compatible Node.

The Build npm Package job's `"22", "24"` matrix stays; Node 22 is
still LTS (EOL April 2027) and comfortably above the 22.12 minimum.
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Apr 22, 2026

PR Preview Action v1.8.1

QR code for preview link

🚀 View preview at
https://cli.sentry.dev/_preview/pr-817/

Built to branch gh-pages at 2026-04-22 13:22 UTC.
Preview will be ready when the GitHub Pages deployment is complete.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Apr 22, 2026

Codecov Results 📊

138 passed | Total: 138 | Pass Rate: 100% | Execution Time: 0ms

📊 Comparison with Base Branch

Metric Change
Total Tests
Passed Tests
Failed Tests
Skipped Tests

✨ No test changes detected

All tests are passing successfully.

✅ Patch coverage is 100.00%. Project has 1954 uncovered lines.
✅ Project coverage is 95.19%. Comparing base (base) to head (head).

Coverage diff
@@            Coverage Diff             @@
##          main       #PR       +/-##
==========================================
+ Coverage    95.18%    95.19%    +0.01%
==========================================
  Files          282       282         —
  Lines        40664     40665        +1
  Branches         0         0         —
==========================================
+ Hits         38705     38711        +6
- Misses        1959      1954        -5
- Partials         0         0         —

Generated by Codecov Action

Outside-review follow-ups on #817:

- script/bundle.ts: the generated dist/bin.cjs wrapper checked only
  `parseInt(process.versions.node) < 22`, which would let Node 22.0 –
  22.11.x past the runtime guard even though package.json declares
  `engines.node: ">=22.12"`. Tighten the inline check to
  major < 22 || (major === 22 && minor < 12) and update the error
  message to match.
- sentry-release.yml: drop the "(ubuntu-latest ships 20)" parenthetical
  on the setup-node step — now stale after dropping Node 20 support.
  The step itself is unchanged (already pins node 22, which satisfies
  >=22.12 via latest 22.x LTS).

Verified:
- `SENTRY_CLIENT_ID=x bun run bundle && node dist/bin.cjs --help` runs
  on Node 24.
- Boundary check: 22.11.5 errors, 22.12.0 passes, 24.13.0 passes.
@BYK BYK merged commit 2374112 into main Apr 22, 2026
26 checks passed
@BYK BYK deleted the build/docs-astro-6-node-setup branch April 22, 2026 13:28
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