Problem/Motivation

Node.js 20 reached end of life on 30 April 2026, and Drupal core main now requires "node": ">= 24.0" in core/package.json. The Varbase Project Template still pins Node 20 in its engines, DDEV config and CI images.

Node 24 is the Krypton LTS line, latest v24.22.2, and it is one of the lines the November 2026 security releases will patch. Pinning the major picks those patches up with no further change.

Steps to reproduce

  1. On 11.0.x, open package.json: the engines say "node": ">= 20.0".
  2. Open .ddev/config.yaml: nodejs_version: "20".
  3. Open .gitlab-ci.yml and .gitlab-ci-local.yml: the Node jobs run image: node:20, and the browser and Storybook jobs install NodeSource setup_20.x.

Proposed resolution

  • package.json engines: "node": ">= 24.0". Yarn moves to yarn@4.18.1 with "yarn": ">= 4.18.1", and .yarnrc.yml follows the Varbase standard.
  • .ddev/config.yaml: nodejs_version: "24".
  • .gitlab-ci.yml and .gitlab-ci-local.yml: node:20 to node:24, and NodeSource setup_20.x to setup_24.x.
  • The node:20 mention in tests/README.md follows.
  • No dependency or yarn.lock changes.

AI-Generated: Yes

Remaining tasks

  • ✅ File an issue
  • ✅ Addition/Change/Update/Fix
  • ✅ Testing to ensure no regression
  • ➖ Automated unit testing coverage
  • ➖ Automated functional testing coverage
  • ➖ UX/UI designer responsibilities
  • ➖ Readability
  • ➖ Accessibility
  • ➖ Performance
  • ➖ Security
  • ➖ Developer Documentation
  • ➖ User Guide Documentation
  • ❌ Reviewed by human
  • ❌ Code review by maintainers
  • ❌ Full testing and approval
  • ❌ Credit contributors
  • ❌ Review with the product owner
  • ❌ Release notes snippet
  • ❌ Release
  • ✅ Run the browser and Storybook jobs on the remote pipeline; they cannot run with gitlab-ci-local
  • ❌ Decide whether @types/node ^25.5.0 should follow the Node 24 runtime; left as is here

User interface changes

  • N/A

API changes

  • N/A

Data model changes

  • N/A

Release notes snippet

  • Node.js 24 or newer is now required, in the engines, DDEV and CI. Node 20 is end of life.
Command icon Show commands

Start within a Git clone of the project using the version control instructions.

Or, if you do not have SSH keys set up on git.drupalcode.org:

Comments

rajab natshah created an issue. See original summary.

rajab natshah’s picture

Issue summary: View changes
Status: Active » Needs review
rajab natshah’s picture

Backport branches are on the same issue fork, one MR each to follow:

  • 3635498-update-nodejs-to-24-10.1.x for 10.1.x
  • 3635498-update-nodejs-to-24-9.2.x for 9.2.x

Same change as 11.0.x: engines, DDEV, CI and the tests docs move to Node 24. 10.1.x also moves the node:22 report image, NodeSource setup_22.x and the Lando node service. Neither branch commits a yarn.lock.

AI-Generated: Yes

rajab natshah’s picture

Issue summary: View changes
rajab natshah’s picture

Issue summary: View changes

  • rajab natshah committed c1b14262 on 11.0.x
    task: #3635498 Update Node.js to >= 24.0 in package.json engines, DDEV...

rajab natshah’s picture

✅ Released in varbase_project 11.0.12