Skip to content

Add Node 26 support - #268

Merged
Ian Clanton-Thuon (iclanton) merged 9 commits into
mainfrom
iclanton/node-26-support
Sep 30, 2026
Merged

Ian Clanton-Thuon (iclanton) merged 9 commits into
mainfrom
iclanton/node-26-support

Conversation

@iclanton

@iclanton Ian Clanton-Thuon (iclanton) commented Sep 28, 2026 •

Copy link
Copy Markdown
Contributor

Description

Adds Node.js 26 to the supported engine ranges for Rush, the SPFx CLI, template tests, and the build rig. Also documents the new range and adds a Node 26 Ubuntu CI leg.

This allows downstream SPFx framework tests to run this repository on Node 26 instead of failing the Rush version gate. It also requires Jest 30.4 or newer and overrides the Heft rig's older transitive constraint, avoiding Node 26 localStorage warnings that Rush treats as test failures.

How was this tested?

  • rush change --verify
  • rush test-and-package-solution --production --timeline --verbose on Node 26.10.0
  • rush test-and-package-solution --production --timeline --verbose on Node 22
  • Validated the Node engine range admits Node 22, 24, and 26 while rejecting unsupported majors
  • Parsed the updated GitHub Actions workflow as YAML
  • Validated changed JSON files and ran git diff --check

Type of change

  • Bug fix
  • New feature / enhancement
  • Template change
  • Documentation / CI / governance

Expand the repository and published package engine ranges so downstream framework tests can run on Node 26. Add a Node 26 CI leg and document the new supported range.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 6435e499-8b9d-4197-8ed5-ad0b0eb5ac37
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 6435e499-8b9d-4197-8ed5-ad0b0eb5ac37
Copilot AI lite review requested due to automatic review settings September 28, 2026 21:36
Require the Jest node environment version that fixes Node 26 localStorage warnings, and override the older transitive constraint from the Heft rig. This prevents successful tests from being reported as Rush warning failures.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 6435e499-8b9d-4197-8ed5-ad0b0eb5ac37

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot encountered an error and was unable to review this pull request. You can try again by re-requesting a review.

Jest 30's jest-resolve pulls in unrs-resolver, whose napi-postinstall
script downloads a native binding directly from the registry. That raw
download is unauthenticated against the internal ODSP feed and fails with
a 401, breaking rush update in the SPFx framework test pipeline. Add both
resolver packages to globalNeverBuiltDependencies so the postinstall never
runs and the packages fall back to their bundled WASM build.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 5f52707e-be36-4e3b-852d-51275c6f6849
Copilot AI lite review requested due to automatic review settings September 29, 2026 21:34

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot review overview

🟡 Changes recommended

Update the remaining repository-wide Node version guidance to consistently document Node 26 support.

Review effort: Lite
Findings: 1 Low severity

Open (1)
Files not reviewed (1)
  • common/config/rush/pnpm-lock.yaml: Generated file

Comment thread apps/spfx-cli/README.md
Update the root README badge and the dev-environment setup doc to list the
full supported range (Node 22, 24, and 26), matching the per-package
READMEs and rush.json. Addresses the Copilot PR review finding about
inconsistent Node version guidance.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 5f52707e-be36-4e3b-852d-51275c6f6849
Copilot AI lite review requested due to automatic review settings September 29, 2026 22:01

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot review overview

🔵 Needs a closer look

Scope the resolver workaround appropriately and reconcile the contradictory Node.js prerequisite documentation.

Review effort: Lite
Findings: 1 Low severity

Open (1)
Files not reviewed (1)
  • common/config/rush/pnpm-lock.yaml: Generated file

@svalenciasan svalenciasan left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Newly scaffolded projects (and the checked-in examples) still pinned only
Node 22 in their engines field, so they would not advertise Node 24/26
support even though the toolchain now allows it. Update all template and
example package.json engines ranges to match rush.json and the spfx-cli
package, and update the CLAUDE.md prerequisite note. Addresses review NIT.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 5f52707e-be36-4e3b-852d-51275c6f6849
Copilot AI lite review requested due to automatic review settings September 30, 2026 00:20

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot review overview

🟡 Changes recommended

The template test snapshot must be regenerated and reviewed before approval.

Review effort: Lite
Findings: 1 High severity

Open (1)
Resolved since last review (1)
Files not reviewed (1)
  • common/config/rush/pnpm-lock.yaml: Generated file

Comment thread templates/webpart-minimal/package.json
Copilot AI lite review requested due to automatic review settings September 30, 2026 03:55

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot review overview

🔵 Needs a closer look

The global resolver install setting disables native bindings for all developer and CI installs instead of limiting the workaround to affected environments.

Review effort: Lite
Findings: 1 High severity

Open (1)
Files not reviewed (1)
  • common/config/rush/pnpm-lock.yaml: Generated file

@microsoft/app-manifest's compiled build/index.js does require('fs-extra')
but only declares @types/fs-extra, so under pnpm's strict isolation the
SPFx copilotAgentPlugin fails to load with "Cannot find module 'fs-extra'"
when scaffolded solutions are built. Add a globalPackageExtensions entry
declaring the missing runtime dependency, mirroring the workaround already
present in odsp-web.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 5f52707e-be36-4e3b-852d-51275c6f6849
Copilot AI lite review requested due to automatic review settings September 30, 2026 04:16

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot review overview

🟢 Approval recommended

No unresolved review issues were identified.

Review effort: Lite
Findings: 1 High severity

Open (1)
Files not reviewed (1)
  • common/config/rush/pnpm-lock.yaml: Generated file

Copilot AI lite review requested due to automatic review settings September 30, 2026 05:39

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot review overview

🟢 Approval recommended

No unresolved review comments remain, and all readiness assessments approve the changes.

Review effort: Lite
Findings: 1 High severity

Open (1)
Files not reviewed (1)
  • common/config/rush/pnpm-lock.yaml: Generated file

@iclanton
Ian Clanton-Thuon (iclanton) merged commit c043938 into main Sep 30, 2026
10 checks passed
@iclanton
Ian Clanton-Thuon (iclanton) deleted the iclanton/node-26-support branch September 30, 2026 16:37
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.

3 participants