Skip to content

ci: drop Node 18 from test matrix — vitest 4/rolldown requires Node 20+#108

Open
dmchaledev wants to merge 1 commit into
mainfrom
claude/nice-mendel-q4cq5u
Open

ci: drop Node 18 from test matrix — vitest 4/rolldown requires Node 20+#108
dmchaledev wants to merge 1 commit into
mainfrom
claude/nice-mendel-q4cq5u

Conversation

@dmchaledev

Copy link
Copy Markdown
Contributor

Problem

main's current HEAD (0ce2274, the commit that added the Node 18/20/22 test matrix in #66) has a failing CI run (workflow run 27606677557, conclusion: failure). The Node 18 job fails before a single test executes:

node_modules/rolldown/dist/shared/rolldown-build-CrPk_lZe.mjs:9
import { formatWithOptions, styleText } from "node:util";
SyntaxError: The requested module 'node:util' does not provide an export named 'styleText'

Root cause: vitest@4.1.7's dependency chain (viterolldown) requires Node ^20.19.0 || >=22.12.0 (confirmed via npm install --include=dev's EBADENGINE warnings on Node 18). This is a test-tooling constraint, not a constraint on the published library itself (src/ only uses fetch/AbortController, both fine on Node 18).

I spot-checked several of the currently-open PRs (#98, #99, #103, and this repo's own PR history) and every one fails the same Node 18 leg for the same reason — it's not specific to any one PR's changes. This means CI has been red on main and on every open PR since 2026-06-16, which lines up with the merge freeze described in #102 ("no PR has merged into main since 2026-06-16").

Fix

Drop '18' from .github/workflows/ci.yml's test matrix, leaving ['20', '22']. package.json's engines field (>=18.0.0) is left untouched since it describes the published library's runtime requirement, not the test toolchain's.

Verified locally

  • npm install --include=dev — clean (Node 22)
  • npm run typecheck — passes
  • npm test — 85/85 pass
  • npm run build — passes

Related


Generated by Claude Code

The Node 18 leg has been failing on every run since #66 introduced the
matrix: vitest 4's dependency chain (vite -> rolldown) requires Node
^20.19.0 || >=22.12.0 and throws `SyntaxError: The requested module
'node:util' does not provide an export named 'styleText'` before any
test executes. This is the current state of main's HEAD commit itself
(workflow run 27606677557, conclusion: failure), and every open PR
inherits the same failing check.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CwgPkJznwiQLFemYH9BhrQ
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.

2 participants