Skip to content

ci: pin release npm to ^11 to fix EBADENGINE blocking releases#1757

Open
nbouliol wants to merge 1 commit into
mainfrom
fix/ci-pin-npm-11
Open

ci: pin release npm to ^11 to fix EBADENGINE blocking releases#1757
nbouliol wants to merge 1 commit into
mainfrom
fix/ci-pin-npm-11

Conversation

@nbouliol

@nbouliol nbouliol commented Jul 13, 2026

Copy link
Copy Markdown
Member

Problem

The Release packages job on main fails before multi-semantic-release runs, so no packages have been published for the last several commits.

Root cause: the step Install npm >= 11.15.0 runs npm install -g npm@latest. npm@latest is now npm@12.0.0, which requires node ^22.22.2 || ^24.15.0 || >=26.0.0. The runner uses node 24.10 (.nvmrc), which does not satisfy ^24.15.0, so the step fails with EBADENGINE and the release never runs:

npm error code EBADENGINE
npm error notsup Required: {"node":"^22.22.2 || ^24.15.0 || >=26.0.0"}
npm error notsup Actual:   {"npm":"11.6.1","node":"v24.10.0"}

Fix

Pin the release npm install to npm@^11, matching the step intent (>= 11.15.0) and staying compatible with the current node version.

Note: the separate LLM Integration Tests (ai-proxy) red is an unrelated flaky failure (Anthropic HTTP 529 overloaded) and does not block the release job.

🤖 Generated with Claude Code

Note

Pin npm to ^11 in release workflow to fix EBADENGINE errors

The build.yml release workflow was installing npm@latest, which caused EBADENGINE errors when a newer npm version dropped support for the Node version in use. Pinning to npm@^11 keeps the install on the 11.x line.

Macroscope summarized e4c2bad.

npm@latest resolved to npm@12 which requires node ^24.15.0; runner is
on node 24.10 (.nvmrc), so the release job failed with EBADENGINE
before multi-semantic-release ran, blocking all publishes.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@qltysh

qltysh Bot commented Jul 13, 2026

Copy link
Copy Markdown

Qlty


Coverage Impact

This PR will not change total coverage.

🚦 See full report on Qlty Cloud »

🛟 Help
  • Diff Coverage: Coverage for added or modified lines of code (excludes deleted files). Learn more.

  • Total Coverage: Coverage for the whole repository, calculated as the sum of all File Coverage. Learn more.

  • File Coverage: Covered Lines divided by Covered Lines plus Missed Lines. (Excludes non-executable lines including blank lines and comments.)

    • Indirect Changes: Changes to File Coverage for files that were not modified in this PR. Learn more.

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