Skip to content

Internal: Update Node.js runtime to 24.x (SUB-15388) - #4111

Open
DanielAR22 wants to merge 5 commits into
pinterest:masterfrom
DanielAR22:node-24-upgrade
Open

DanielAR22 wants to merge 5 commits into
pinterest:masterfrom
DanielAR22:node-24-upgrade

Conversation

@DanielAR22

@DanielAR22 DanielAR22 commented Oct 28, 2026 •

Copy link
Copy Markdown

Title: Internal: Upgrade Node.js runtime from 20 to 24

Labels: patch, dependencies


Summary

What changed?

Upgrades Gestalt's Node.js runtime from 20.x to 24.x across local development, CI, and the docs site build:

  • .nvmrc: 20 → 24.22.1. This is also the version Netlify uses to build the docs site.
  • package.json and docs/package.json: add "engines": { "node": "24.x" }.
  • GitHub Actions (ci.yml, alpha.yml, playwright.yml, release.yml):
    • node-version: 20 → node-version: 24, with check-latest: true so CI picks up the latest 24.x patch release.
    • actions/checkout@v4 → @v5 and actions/setup-node@v4 → @v5.
  • .devcontainer/devcontainer.json: image javascript-node:20 → javascript-node:24.
  • New .yarnrc with ignore-engines true. stylelint-value-no-unknown-custom-properties@5.0.0 declares engines.node: "^16 || ^18 || ^20", and Yarn 1 refuses to install it on Node 24 (The engine "node" is incompatible with this module). Versions 6.x support Node 24 but require stylelint >=16, a larger migration outside the scope of this ticket. With this setting, yarn install --frozen-lockfile completes on Node 24.22.1. It can be removed once stylelint is upgraded (follow-up ticket).

Why?

The Gestalt docs site still built on Node.js 20.x, which doesn't match the current site configuration and triggers a Node.js version override warning on every build. Node 20 is also reaching end-of-life. Moving to Node 24 (Active LTS) puts local dev, CI, releases, and the docs deploy on the same supported runtime, and removes the warning.

Links

Checklist

  • CI (ci, playwright) passes on Node 24
  • Docs site deploy preview builds on Node 24 without the version override warning
  • yarn install --frozen-lockfile succeeds locally on Node 24.22.1
  • yarn build succeeds locally on Node 24.22.1

@vercel

vercel Bot commented Oct 28, 2026

Copy link
Copy Markdown

@DanielAR22 is attempting to deploy a commit to the Pinterest - Subsites Team on Vercel.

A member of the Team first needs to authorize it.

@DanielAR22 DanielAR22 changed the title [SUB-15388] (Gestalt V1) Update Node.js runtime to 24.x Internal: Update Node.js runtime to 24.x (SUB-15388) Oct 28, 2026
@netlify

netlify Bot commented Oct 28, 2026 •

Copy link
Copy Markdown

✅ Deploy Preview for gestalt ready!

Built without sensitive environment variables

Name Link
🔨 Latest commit 0ecd123
🔍 Latest deploy log https://app.netlify.com/projects/gestalt/deploys/6ae28ab4ba797cac94fed226
😎 Deploy Preview https://deploy-preview-4111--gestalt.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.
🤖 Make changes Run an agent on this branch

To edit notification comments on pull requests, go to your Netlify project configuration.

@DanielAR22 DanielAR22 changed the title Internal: Update Node.js runtime to 24.x (SUB-15388) Internal: Update Node.js runtime to 24.x (SUB-15388) Oct 28, 2026
@DanielAR22
DanielAR22 marked this pull request as ready for review October 28, 2026 22:35
@DanielAR22
DanielAR22 requested a review from a team as a code owner October 28, 2026 22:35
DanielAR22 and others added 3 commits October 28, 2026 18:18
Use "24" instead of pinning 24.22.1 so local dev, devcontainer, and
Netlify stay aligned with CI, which uses check-latest on Node 24.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

This branch has not been deployed

No deployments
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