Skip to content

chore: support Node 22 and 24 ahead of the Nx 23 upgrade - #683

Merged
Paul Mardling (PaulGMardling) merged 2 commits into
mainfrom
chore/node-22-prerequisite
Oct 21, 2026
Merged

Paul Mardling (PaulGMardling) merged 2 commits into
mainfrom
chore/node-22-prerequisite

Conversation

@PaulGMardling

@PaulGMardling Paul Mardling (PaulGMardling) commented Oct 21, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Prepare the repository's runtime baseline for the planned Nx 23 upgrade without upgrading Nx itself.

  • Support Node.js ^22.12.0 || ^24.0.0 in the root engine declaration and contributor documentation, retaining two supported majors as requested in review.
  • Move all five CI/release runtime selectors from Node 20 to ^22.12.0: main CI, React integration CI, changelog checks, Storybook deployment, and the Azure release pipeline. These jobs remain on Node 22; this PR does not add a Node 24 CI matrix.
  • Replace the Azure theme README's stale Node 20 guidance with the repository's contributor prerequisites.

Nx remains 22.7.7 and Yarn remains 4.12.0. Dependency versions, the lockfile, application code, and build configuration are unchanged. The Nx migration itself is outside this PR.

Both runtime majors are supported by the official compatibility matrix at the Nx 23.3.0 tag.

Validation

Local validation used macOS with Node 22.23.1 and Node 24.18.0, through the committed Yarn 4.12.0 binary (node .yarn/releases/yarn-4.12.0.cjs). Nx task caching and the daemon were disabled for representative checks.

  • Immutable install, deduplication, dependency consistency, and changed-file formatting passed on both runtimes during this PR's development; the final Node 24 support change was checked again for formatting and dependency consistency.
  • nx run-many -p nx-plugin,react-headless-provider -t build,type-check,test,lint --skipNxCache --parallel=2 --outputStyle=static passed on Node 22, including after the Node 24 support change. The equivalent Node 24 run also included build-storybook and passed. The plugin has build/test/lint targets, while the representative package also has type-check. Plugin tests: 8 suites, 23 tests, 25 snapshots; package tests: 1 suite, 1 test.
  • The representative react-headless-provider:build-storybook target passed on both runtimes.
  • jest -c apps/react-<version>-tests/jest.config.ts --runInBand --no-cache --testPathPatterns=HeadlessFluentProvider.test.tsx passed for React 17, 18, and 19 on both runtimes.
  • Parsed YAML assertions confirmed all five CI selectors remain on supported Node 22. Semver boundary assertions accept Node 22.12.0/22.23.1 and 24.0.0/24.18.0, and reject Node 20, Node 22 below the floor, and Node 23/25/26. Dependency and Nx/Yarn pin assertions passed.
  • Beachball reported No change files are needed. No published-package source changes are included.

Existing peer-dependency and Storybook bundle-size warnings remain. Exact minimum versions (22.12.0 and 24.0.0), Windows, hosted GitHub/Azure execution, browser/E2E tests, the full integration type/build matrix, and all-package builds were not exercised by these local checks. Hosted CI results should be assessed separately.

Align CI, release tooling, and contributor prerequisites on Node ^22.12.0 while retaining Nx 22.7.7 and Yarn 4.12.0.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 38109ed6-7135-420d-a514-21798b843f1d
@PaulGMardling
Paul Mardling (PaulGMardling) marked this pull request as ready for review October 21, 2026 11:23
Comment thread package.json
Retain Node 22 in CI and release jobs while documenting both supported runtime majors.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 38109ed6-7135-420d-a514-21798b843f1d
@PaulGMardling Paul Mardling (PaulGMardling) changed the title chore: require Node 22 ahead of the Nx 23 upgrade chore: support Node 22 and 24 ahead of the Nx 23 upgrade Oct 21, 2026
@PaulGMardling
Paul Mardling (PaulGMardling) merged commit 92559d2 into main Oct 21, 2026
9 checks passed
@PaulGMardling
Paul Mardling (PaulGMardling) deleted the chore/node-22-prerequisite branch October 21, 2026 13:21
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.

2 participants