Repository navigation
build!: support Node.js 22, 24, and 26 - #1071
Open
Ramses Sanchez-Hernandez (ramsessanchez) wants to merge 4 commits into
Open
Ramses Sanchez-Hernandez (ramsessanchez) wants to merge 4 commits into
Ramses Sanchez-Hernandez (ramsessanchez) wants to merge 4 commits into
Conversation
BREAKING CHANGE: Declare support for Node.js 22.x, 24.x, and 26.x only; Node.js 20 and other unlisted major versions are no longer supported. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 24155334-621f-447c-988e-c1e5c9732fdd
Ramses Sanchez-Hernandez (ramsessanchez)
requested a review
from a team
as a code owner
October 22, 2026 00:43
Ramses Sanchez-Hernandez (ramsessanchez)
had a problem deploying
to
build_test
October 22, 2026 00:43 — with
GitHub Actions
Failure
Ramses Sanchez-Hernandez (ramsessanchez)
had a problem deploying
to
build_test
October 22, 2026 00:43 — with
GitHub Actions
Failure
Ramses Sanchez-Hernandez (ramsessanchez)
had a problem deploying
to
build_test
October 22, 2026 00:43 — with
GitHub Actions
Failure
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 24155334-621f-447c-988e-c1e5c9732fdd
Ramses Sanchez-Hernandez (ramsessanchez)
deployed
to
build_test
October 27, 2026 20:16 — with
GitHub Actions
Active
Ramses Sanchez-Hernandez (ramsessanchez)
deployed
to
build_test
October 27, 2026 20:16 — with
GitHub Actions
Active
Ramses Sanchez-Hernandez (ramsessanchez)
deployed
to
build_test
October 27, 2026 20:16 — with
GitHub Actions
Active
Revert optional, non-blocking integration tests now that the test tenant has been renewed. Preserve the existing client-secret availability gate. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 24155334-621f-447c-988e-c1e5c9732fdd
Ramses Sanchez-Hernandez (ramsessanchez)
deployed
to
build_test
October 27, 2026 21:23 — with
GitHub Actions
Active
Ramses Sanchez-Hernandez (ramsessanchez)
deployed
to
build_test
October 27, 2026 21:23 — with
GitHub Actions
Active
Ramses Sanchez-Hernandez (ramsessanchez)
deployed
to
build_test
October 27, 2026 21:23 — with
GitHub Actions
Active
This branch was successfully deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
A similar PR may already be submitted! Please search among the Pull request before creating one.
Thanks for submitting a pull request! Please provide enough information so that others can review your pull request.
NOTE: PR's will be accepted only in case of appropriate information is provided below
Summary
Declare support for exactly Node.js 22.x, 24.x, and 26.x.
[20.x, 22.x]to[22.x, 24.x, 26.x].engines.node: "22.x || 24.x || 26.x"to the root and all 69 workspace package manifests, including the private test package, and synchronize the corresponding lockfile engine metadata.No dependency versions, generated SDK code, TypeScript targets, or publishing behavior are changed.
Motivation
Node.js 20 remains in the CI matrix and Azure daily build, while the packages do not declare a supported Node.js range. Align package compatibility metadata, automated coverage, and documentation with the requested Node.js 22, 24, and 26 support policy.
This intentionally excludes Node.js 20, odd-numbered majors, and unlisted future majors. npm's default engine-warning behavior is unchanged; this does not introduce
engine-strictor runtime guards.The initial CI run installed and compiled successfully on all three supported runtimes, but Graph integration tests failed with
AADSTS5000229because the test tenant expired. The tenant has now been renewed, so the temporary opt-in and non-blocking behavior has been reverted. Tests run automatically when the configured client secret is available, and failures block CI.Test plan
Completed local validation:
npm ci --no-audit --no-fundnpm run buildnpm ci --no-audit --no-fundnpm run buildnode $npmCli ci --no-audit --no-fundnode $npmCli run buildgit diff --checkFor the Node.js 26 commands, PATH selected Node.js 26.12.1 and
$npmCliwas set to"$env:NVM_HOME\v22.22.2\node_modules\npm\bin\npm-cli.js", reusing npm 10.9.7 without changing the machine-wide Node.js selection.Additional local assertions passed under all three runtimes: all 70 first-party manifests have the exact agreed engine range and matching lockfile metadata; supported majors are accepted and unsupported majors are excluded; third-party lockfile metadata and dependencies are unchanged; CI runtime selectors and documentation are consistent.
For the revert of the temporary optional-test behavior,
node -with inline assertions passed: the workflow and contributor documentation exactly match their versions before the optional-test change, the Node.js 22/24/26 matrix is preserved, and tests retain the original secret gate withoutcontinue-on-erroror a manual opt-in input.git diff --check -- .github\workflows\build.yml CONTRIBUTING.mdpassed.In the initial remote CI run,
npm ciandnpm run buildpassed on Node.js 22, 24, and 26.npm run testfailed on all three due to the expired test tenant. The tenant has since been renewed; the original automatic, blocking test behavior has been restored.npm testwas not run locally because the required Microsoft Graph integration-test environment variables (TENANT_ID,CLIENT_ID,CLIENT_SECRET, andUSER_ID) are unavailable. No new standalone test files were added.Closing issues
N/A; no linked issue.
Types of changes
Checklist