Skip to content

test(ci): DO NOT MERGE — control experiment for test_node (20) failure - #278

Open
chikara1608 wants to merge 1 commit into
mainfrom
test/ci-jsdom-node20-validation
Open

test(ci): DO NOT MERGE — control experiment for test_node (20) failure#278
chikara1608 wants to merge 1 commit into
mainfrom
test/ci-jsdom-node20-validation

Conversation

@chikara1608

Copy link
Copy Markdown
Collaborator

⚠️ Do not merge — CI control experiment

This PR exists only to test a hypothesis about CI. Close it once the checks have reported.

What's in it

One HTML comment appended to README.md. Nothing else:

 README.md | 2 ++
 1 file changed, 2 insertions(+)

package.json and package-lock.json are byte-identical to main — the dependency tree is completely untouched.

The hypothesis

#277 (postcss + shell-quote overrides) fails test_node (20). The claim is that this failure is environmental and unrelated to that diff:

test/node/node.js installs unpinned jsdom@latest at test runtime, out of band, ignoring the lockfile. jsdom then dropped Node 20:

  • jsdom@30.0.0 published 2026-07-27, 30.0.1 on 2026-07-29
  • jsdom@30.0.1 declares engines.node: "^22.22.2 || ^24.15.0 || >=26.0.0"

So on the Node 20 matrix leg the install fails with EBADENGINE and the following require('jsdom') throws MODULE_NOT_FOUND. The other legs report CANCELLED purely from matrix fail-fast, which makes the blast radius look wider than it is.

Supporting timeline — the same check passed on PRs whose runs predate the jsdom 30 releases:

PR test_node (20) ran at
#271 shell-quote (dependabot) SUCCESS 2026-07-24
#269 postcss (dependabot) SUCCESS 2026-07-24
#277 FAILURE 2026-07-31

How to read the result

Follow-up either way

The unpinned jsdom@latest in test/node/node.js should be pinned, or Node 20 dropped from the matrix. Note the repo's own devDependencies pin is jsdom@^27.0.0, which works fine on Node 20 — only the runtime @latest install is the problem. That needs its own ticket; it is deliberately not fixed here.

🤖 Generated with Claude Code

Adds a single HTML comment to README.md and nothing else. The dependency
tree is untouched (package.json and package-lock.json are identical to
main), so this isolates whether the `test_node (20)` matrix leg fails on
any PR opened today regardless of its diff.

Hypothesis: test/node/node.js installs unpinned `jsdom@latest`, and
jsdom 30.x dropped Node 20 (engines ^22.22.2 || ^24.15.0 || >=26.0.0),
so the Node 20 leg cannot install it. If this PR also fails test_node
(20), the failure on #277 is environmental, not caused by that diff.

Do not merge.

Co-Authored-By: Claude Opus 5 (1M context) <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