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 theme still declares Node 20, which it moved to in #3555742.

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.

Steps to reproduce

  1. On 5.0.x, open package.json: the engines say "node": ">= 20.0".
  2. Open .gitlab-ci.yml: the Cucumber dry-run job runs image: node:20.
  3. Open scripts/install-needed-tools.sh: it installs Node from NodeSource setup_18.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.
  • .gitlab-ci.yml: node:20 to node:24.
  • scripts/install-needed-tools.sh and scripts/README.md: NodeSource setup_18.x to setup_24.x.
  • AGENTS.md: the tooling line says Node.js 24.x.
  • 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 Varbase Starter host and accessibility jobs on the remote pipeline
  • ❌ @types/node ~20 still arrives through @vardot/varbase-e2e in tests/package-lock.json; 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 to build the theme. 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 branch is on the same issue fork, an MR to follow:

  • 3635499-update-nodejs-to-24-4.1.x for 4.1.x

Same change as 5.0.x: engines "node": ">= 24.0", Yarn yarn@4.18.1 with "yarn": ">= 4.14.0" and the Varbase standard .yarnrc.yml, NodeSource setup_24.x in CI and the install scripts, node:24 in .gitlab-ci-local.yml, and yarn.lock re-resolved within the existing ranges with the transitive @types/node kept at 24.10.1. yarn install --immutable and theme:build pass on Node 24.22.2.

AI-Generated: Yes

rajab natshah’s picture

Issue summary: View changes
rajab natshah’s picture

Issue summary: View changes

  • rajab natshah committed a1ac8f39 on 5.0.x
    task: #3635499 Update Node.js to >= 24.0 in package.json engines and CI
    

rajab natshah’s picture

Issue tags: +vartheme_bs5-4.1.4

✅ Released vartheme_bs5-4.1.4

rajab natshah’s picture

Issue summary: View changes
Status: Needs review » Fixed
Issue tags: +vartheme_bs5-5.0.9

✅ Released vartheme_bs5-5.0.9

Now that this issue is closed, review the contribution record.

As a contributor, attribute any organization that helped you, or if you volunteered your own time.

Maintainers, credit people who helped resolve this issue.