Skip to content

fix: allow installs on Node 21 through 26 - #87

Merged
adamjudd merged 2 commits into
mainfrom
fix/node-engines-v1
Nov 4, 2026
Merged

adamjudd merged 2 commits into
mainfrom
fix/node-engines-v1

Conversation

@pheekus

@pheekus pheekus commented Nov 3, 2026

Copy link
Copy Markdown
Collaborator

@foxy.io/sdk v1 declared "node": ">=10 <=20". On any current Node LTS (22, 24, 26), npm warns with EBADENGINE, and Yarn 1 refuses to install. This raises the upper bound to 26, the newest major the tests ran on. The bound stays, so consumers only see versions we have tested.

  • engines.node: >=10 <=26.
  • The test script ran NODE_OPTIONS=--no-experimental-fetch jest. Node 24 removed that flag, so npm test stopped before jest started. The flag was a workaround for source-map 0.7.3, used by jest's v8 coverage, which took Node for a browser once native fetch existed. The lockfile moves it to 0.7.6, which fixes the detection, and the flag is gone. It is a dev-only dependency.
  • .nvmrc and the release workflow move from Node 20 to 22. Node 20 reached end of life in April 2026.

Proof

  • npm test: Test Suites: 24 passed, 24 total, Tests: 271 passed, 271 total on Node 20.20.2, 22.23.4, 24.22.1 and 26.13.0. Coverage thresholds pass on all four.
  • npm run prepack (cjs, esm, types and CDN builds) passes on Node 20, 22, 24 and 26.

Check by hand

  • After merge, the release job logs Node 22 and publishes a patch version. npm view @foxy.io/sdk engines shows >=10 <=26.

Risks

  • The release now runs on Node 22. semantic-release 17.3.0 declares node >=10.18. Its first run on 22 is this merge.

🤖 Generated with Claude Code

pheekus and others added 2 commits November 3, 2026 11:02
The engines range stopped at Node 20, so npm warned and Yarn 1 refused
to install the package on any current LTS line. The upper bound stays,
at the newest major the tests ran on; raise it when a new LTS is tested.

The test script disabled native fetch because source-map 0.7.3 (used by
jest's v8 coverage) mistook Node for a browser when fetch exists. Node
24 removed that flag, so source-map moves to 0.7.6, which fixes the
detection, and the flag goes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@pheekus pheekus self-assigned this Nov 3, 2026
@adamjudd
adamjudd merged commit 441042b into main Nov 4, 2026
2 checks passed
@github-actions

github-actions Bot commented Nov 4, 2026

Copy link
Copy Markdown

🎉 This PR is included in version 1.19.1 🎉

The release is available on:

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants