Framework: Update Node.js to v24 LTS and npm to v11 - #80395
Conversation
5f5be68 to
e799289
Compare
|
Size Change: 0 B Total Size: 7.92 MB |
|
Flaky tests detected in 877e45c. 🔍 Workflow run URL: https://github.com/WordPress/gutenberg/actions/runs/32840553913 last-inserted block should be given and keep the selection (large viewport) in
|
I thought by now npm v24 was already live in the project 😢 Has the core already been updated to v24? |
The work is being tracked in Node.js 24.x Upgrade |
a6d37d3 to
5712b24
Compare
5712b24 to
94435ad
Compare
94435ad to
db3e211
Compare
eb520f7 to
ffea766
Compare
I am looking into it right now and I think it's better to do it before merging this to avoid people wondering why the checks are not running. |
|
Here is the PR to enforce PR update after an infra or a repo wide change - #82272 |
662f0de to
f22f9e3
Compare
🤖 PR meta 🤖📦 Bundle sizeSize Change: 0 B Total Size: 8.01 MB
⚡ PerformanceShow the resultsClient side metrics exclude the server response time. front-end-block-theme
front-end-classic-theme
media-processing
media-upload
post-editor
site-editor
|
48659a0 to
ac2f339
Compare
ac2f339 to
bf0018c
Compare
Node.js v20 reaches end-of-life in April 2026, and the project had drifted from its stated goal of tracking the Active LTS release. Pin .nvmrc to 24.18, the version provisioned on the wordpress.org build server, so local, CI, and build environments agree. engines is metadata the w.org build server reads, so npm is floored there at 11.16.0, the version bundled with Node.js 24.18.0. npm ignores engines for the local project whenever devEngines is present, so the two serve different readers. devEngines drives local and CI installs. Its npm target of 11.18.0 is not bundled with any Node.js release, so it warns rather than errors: actions/setup-node invokes npm to set up caching before any pin step can upgrade it, and erroring there fails the job before it starts. See #72973.
devEngines.runtime now requires Node.js >=24.18.0 and errors by default, so npm install fails outright on Node.js 20 and 22. Those versions can no longer be tested. Replace them with 24 (Active LTS, matching .nvmrc) and 26 (Current, LTS in October). Pull requests continue to run a single version, now 24, with the full matrix reserved for trunk. See #72973.
Co-authored-by: Jonathan Desrosiers <359867+desrosj@users.noreply.github.com> Co-authored-by: Manzoor Wani <manzoorwani.jk@gmail.com>
Co-authored-by: Jonathan Desrosiers <359867+desrosj@users.noreply.github.com>
bf0018c to
98ffca4
Compare
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Team Run ID: ⛔ Files ignored due to path filters (1)
📒 Files selected for processing (6)
Included review availability: Your plan provides up to 8 included reviews per hour; 7 remain after this review. 📝 WalkthroughWalkthroughThe project now requires Node.js 24.18 and npm 11.16. CI tests Node.js 24 and 26, while pull requests use Node.js 24 on Ubuntu. Local configuration and contributor documentation match these requirements. ChangesNode.js runtime upgrade
Estimated code review effort: 2 (Simple) | ~10 minutes Merge Risk: ⚪ Minimal · up to This PR updates the supported Node.js and npm versions across development, CI, and documentation; no actionable merge-blocking risk remains beyond normal checks and review. Suggested reviewers: 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
Full details: Docstring CoverageExplanation No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0 files. (6 skipped: 6 unsupported.) ✨ Finishing Touches 💡 1🛠️ Fix failing CI checks 💡
🧪 Generate unit tests (beta)
Warning Some tools did not complete. Review the errors below. 🔧 ESLint
package.jsonESLint skipped: missing config or dependency (missing-dependency). The ESLint configuration references a package that is not available in the sandbox. Comment |
|
Alright, we are ready to roll this out after making the new checks required, including the new |
|
Synchronous coordination is happening in Slack: https://wordpress.slack.com/archives/C02QB2JS7/p1788371572173079 |
|
Thank you, everyone! Hold your breath! 🚢 🚀 |
|
This had an unexpected and not-immediately-resolvable impact on |
What?
Related to #72973.
Moves the project to Node.js v24 LTS and npm v11, with matching CI matrices and docs.
See Core-65451 and the Core PR WordPress/wordpress-develop#11776.
Why?
Node.js v20 reached end-of-life in April 2026. The Systems Team has provisioned
24.18.0on the WordPress.org build server, the last blocker.How?
.nvmrcpins24.18, the build server's version, so local, CI, and build environments agree.Both npm floors move to
11.16.0, which24.18.0bundles. Same range, different readers:npm 10 is therefore blocked locally, while npm 12 stays allowed.
Testing Instructions
nvm install && nvm use. Confirm Node.js24.18.0and npm11.16.0.npm install. Confirm noEBADDEVENGINESoutput.npm install --global npm@10 && npm install. Confirm anEBADDEVENGINESerror.nvm use 20 && npm install. Confirm anEBADDEVENGINESerror fordevEngines.runtime.Testing Instructions for Keyboard
N/A
Screenshots or screencast
N/A
Use of AI Tools
Authored with the assistance of Claude Code, reviewed and tested locally.
Summary by CodeRabbit
Chores
Documentation