Skip to content

Upgrade CI and local development to Node 24 - #2392

Merged
spaceninja merged 1 commit into
mainfrom
upgrade/node-24
Aug 20, 2026
Merged

Upgrade CI and local development to Node 24#2392
spaceninja merged 1 commit into
mainfrom
upgrade/node-24

Conversation

@spaceninja

Copy link
Copy Markdown
Member

Overview

Node 16 has been end-of-life since September 2023, and nearly every pending dependency upgrade in our backlog requires Node 18 or newer — so the entire queue is stuck behind this one bump. This PR moves CI and local development to Node 24 on its own, so the mechanical upgrades behind it can proceed without waiting on the much larger Storybook/Vite migration.

The reason this hasn't been a one-line change: Node 22 removed the deprecated util type-check predicates, and Twing 3 calls util.isNullOrUndefined() in the code it generates for every template. On Node 22+ that means every Twig render throws, which is why the automated Node bump (#2350) failed its test and build-storybook checks. Twing 7 fixes this, but that upgrade is bound up with replacing webpack — so this PR adds a small shim that restores the removed predicates, letting the Node upgrade land independently. The shim is documented as temporary and gets deleted with the Twing 7 upgrade.

This also drops the Update npm step that pinned npm 7. Node 24 ships npm 11, so re-pinning would install an unsupported release.

Screenshots

Testing

Most of this is CI configuration, so the main thing to confirm is that all four CI jobs pass on this branch. Beyond that, it's worth verifying the pattern library still works locally on the new Node version:

  • Check out this branch and run nvm use (or otherwise switch to Node 24) — it should select 24.19.0
  • Run npm ci — it should complete without engine errors
  • Run npm start and open the pattern library in a browser
  • Browse to a few components with Twig templates — Badge, Button, and Sky Nav are good ones — and confirm each renders normally rather than showing an error
  • On any component's docs page, expand Show code and confirm the Twig source snippet still appears and is syntax-highlighted
  • Run npm test — all 9 suites should pass, including the 20 snapshots

@changeset-bot

changeset-botBot commented Aug 19, 2026

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: 4b10e41

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@netlify

netlifyBot commented Aug 19, 2026

Copy link
Copy Markdown

Deploy Preview for cloudfour-patterns ready!

NameLink
🔨 Latest commit4b10e41
🔍 Latest deploy loghttps://app.netlify.com/projects/cloudfour-patterns/deploys/6a86453bbf390c00080f2e98
😎 Deploy Previewhttps://deploy-preview-2392--cloudfour-patterns.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

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

Node 16 has been end-of-life since September 2023, and nearly every pending
dependency upgrade requires Node 18 or newer, so the whole backlog is stuck
behind this bump.
Node 22 removed the deprecated util type-check predicates, and Twing 3 calls
util.isNullOrUndefined() in the code it generates for templates. Twing 7 fixes
this, but that upgrade is bound up with the Storybook/Vite migration. A small
shim restores the predicates so the Node upgrade can land on its own.
Also drops the "Update npm" step, which pinned npm 7 -- Node 24 ships npm 11,
so pinning back would install an unsupported release.
@spaceninja
spaceninja merged commit 4d14a94 into mainAug 20, 2026
8 checks passed
@spaceninja
spaceninja deleted the upgrade/node-24 branch August 20, 2026 00:20
Sign up for freeto 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

@spaceninja