Skip to content

build(workflows): add upper npm version bounds for Node.js v12/v14/v16 in test workflows#12447

Open
Planeshifter wants to merge 1 commit into
developfrom
philipp/ci-fix-npm-engine-test-workflows-2026-06-02
Open

build(workflows): add upper npm version bounds for Node.js v12/v14/v16 in test workflows#12447
Planeshifter wants to merge 1 commit into
developfrom
philipp/ci-fix-npm-engine-test-workflows-2026-06-02

Conversation

@Planeshifter
Copy link
Copy Markdown
Member

@Planeshifter Planeshifter commented Jun 2, 2026

Description

What is the purpose of this pull request?

This pull request:

  • Adds upper bounds to NPM_VERSION matrix entries for Node.js v12, v14, and v16 in linux_test.yml and macos_test.yml.

The NPM_VERSION: '>2.7.0' range is unbounded and now resolves to npm@11.x, which requires Node.js ^20.17.0 || >=22.9.0. This causes the "Update npm" step to fail on every daily run for all Node.js v12/v14/v16 matrix jobs with:

npm error code EBADENGINE
npm error engine Unsupported engine
npm error engine Not compatible with your version of node/npm: npm@11.x
npm error notsup Required: {"node":"^20.17.0 || >=22.9.0"}
npm error notsup Actual:   {"npm":"8.x","node":"v16.x.x"}

The fix applies the same upper-bound pattern already used in the sibling linux_test_install.yml and macos_test_npm_install.yml workflows:

Node.js version NPM_VERSION before NPM_VERSION after
v16 >2.7.0 >2.7.0 <10.0.0
v14 >2.7.0 >2.7.0 <10.0.0
v12 >2.7.0 >2.7.0 <9.0.0

npm@9.x is the last release supporting Node.js v12. npm@10.x and above require Node.js >=14.17.0 at minimum; npm@10.x requires ^18.17.0 or >=20.5.0.

Related Issues

Does this pull request have any related issues?

This pull request has the following related issues:

  • No open issue on file; identified via automated CI failure analysis on 2026-06-02.

Questions

Any questions for reviewers of this pull request?

No.

Other

Any other information relevant to this pull request? This may include screenshots, references, and/or implementation notes.

Sibling workflows that already carry correct bounds and served as reference:

  • .github/workflows/linux_test_install.yml
  • .github/workflows/macos_test_npm_install.yml

Checklist

Please ensure the following tasks are completed before submitting this pull request.

AI Assistance

When authoring the changes proposed in this PR, did you use any kind of AI assistance?

  • Yes
  • No

If you answered "yes" above, how did you use AI assistance?

  • Code generation (e.g., when writing an implementation or fixing a bug)
  • Test/benchmark generation
  • Documentation (including examples)
  • Research and understanding

Disclosure

If you answered "yes" to using AI assistance, please provide a short disclosure indicating how you used AI assistance. This helps reviewers determine how much scrutiny to apply when reviewing your contribution. Example disclosures: "This PR was written primarily by Claude Code." or "I consulted ChatGPT to understand the codebase, but the proposed changes were fully authored manually by myself.".

This PR was written primarily by Claude Code as part of an automated CI failure investigation routine. The root cause (npm engine incompatibility) and the fix pattern (matching bounds from sibling workflows) were identified and validated by the AI agent. A human should verify the npm semver ranges are correct before merging.


@stdlib-js/reviewers


Generated by Claude Code

The linux_test and macos_test workflows specify NPM_VERSION '>2.7.0'
for Node.js v12, v14, and v16 matrix entries. npm@11.x, released with
a new engine requirement of {"node":"^20.17.0 || >=22.9.0"}, now
satisfies '>2.7.0', causing the 'Update npm' step to fail with
EBADENGINE on those Node.js versions.

Cap Node.js v16 and v14 to '<10.0.0' (npm@10+ requires >=18.17.0)
and Node.js v12 to '<9.0.0' (npm@9+ requires >=14.17.0), consistent
with the bounds already used in linux_test_install.yml and
macos_test_npm_install.yml.

Ref: https://github.com/stdlib-js/stdlib/actions/runs/26814282283
Ref: https://github.com/stdlib-js/stdlib/actions/runs/26814321669

https://claude.ai/code/session_01F6HMgfZ1MCE9N74ZFrTYim
@Planeshifter Planeshifter marked this pull request as ready for review June 2, 2026 16:05
@Planeshifter Planeshifter requested review from a team and kgryte June 2, 2026 16:05
@stdlib-bot stdlib-bot added the Needs Review A pull request which needs code review. label Jun 2, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Needs Review A pull request which needs code review.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants