Skip to content

Move the Node floor off EOL 20 to 24 - #3244

Open
olaservo wants to merge 1 commit into
mainfrom
olaservo/node-24-engines-floor
Open

Move the Node floor off EOL 20 to 24#3244
olaservo wants to merge 1 commit into
mainfrom
olaservo/node-24-engines-floor

Conversation

@olaservo

@olaservo olaservo commented Aug 14, 2026

Copy link
Copy Markdown
Member

Motivation and Context

CONTRIBUTING.md already states "Node.js 24 or above" and .nvmrc pins v24.2.0, but package.json still declared engines.node: ">=20" and three workflow entries still provisioned Node 20.

Node 20 ("Iron") reached end of life on 2026-04-30 (nodejs/Release schedule) — about three months ago — so it no longer receives security patches. The most notable case is cut-release.yml, where the job that promotes the draft spec and cuts a release was provisioning an unsupported runtime.

How Has This Been Tested?

  • npx tsc --noEmit passes clean.
  • The lockfile was refreshed with npm install --package-lock-only; the resulting diff is the root engines field only, with no dependency versions moving.
  • Changed workflows were reviewed for other Node assumptions; the version string is the only thing touched.

Breaking Changes

None

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)
  • Documentation update
  • Other (please describe): repository tooling / CI maintenance

Checklist

  • I have read the MCP Documentation
  • My code follows the repository's style guidelines
  • New and existing tests pass locally
  • I have added appropriate error handling
  • I have added or updated documentation as needed

Additional context

Files deliberately left alone: main.yml, markdown-format.yml, and render-seps.yml were already on 24.

Two pre-existing local check failures are worth noting so they aren't attributed to this change — npm run check:schema:ts (prettier) and npm run check:schema:json both fail identically on a pristine main checkout on Windows, because core.autocrlf=true gives the schema files CRLF terminators. They are a Windows-checkout artifact, not a regression here, and CI on Linux is unaffected.

🤖 Generated with Claude Code

CONTRIBUTING.md already states "Node.js 24 or above" and .nvmrc pins
v24.2.0, but package.json still declared `engines.node: ">=20"` and three
workflow entries still provisioned Node 20. Node 20 reached end of life on
2026-04-30, so the release-cutting job in particular was running on an
unsupported runtime.

Align the stragglers with the requirement the repo already documents:

- package.json (and the lockfile root it mirrors): >=20 -> >=24
- cut-release.yml: the `final` job's setup-node 20 -> 24
- sep-lifecycle.yml / sep-lifecycle-manual.yml: NODE_VERSION 20 -> 24

main.yml, markdown-format.yml, and render-seps.yml were already on 24 and
are unchanged. No dependency versions move; the lockfile diff is the root
`engines` field only.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@olaservo
olaservo requested review from a team as code owners August 14, 2026 18:03
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