Skip to content

chore: update Node.js from 20 to 24 across CI, packages, and extension#9141

Open
lambrianmsft wants to merge 2 commits into
mainfrom
lambrian/node-updates
Open

chore: update Node.js from 20 to 24 across CI, packages, and extension#9141
lambrianmsft wants to merge 2 commits into
mainfrom
lambrian/node-updates

Conversation

@lambrianmsft
Copy link
Copy Markdown
Contributor

@lambrianmsft lambrianmsft commented May 7, 2026

  • Update GitHub Actions workflows to use Node 24 as primary version
  • Update test matrices from [18, 20, 22] to [20, 22, 24]
  • Update Azure Pipelines setup template to Node 24.x
  • Update root engines.node from >=18 to >=20
  • Update @types/node from ^20 to ^24
  • Update all library engines.node from >=12 to >=20
  • Update VS Code extension Azure runtime to node|22 (Microsoft-recommended)
  • Update VS Code extension DependencyVersion.nodeJs to 24.15.0

Commit Type

  • feature - New functionality
  • fix - Bug fix
  • refactor - Code restructuring without behavior change
  • perf - Performance improvement
  • docs - Documentation update
  • test - Test-related changes
  • chore - Maintenance/tooling

Risk Level

  • Low - Minor changes, limited scope
  • Medium - Moderate changes, some user impact
  • High - Major changes, significant user/system impact

What & Why

Impact of Change

  • Users:
  • Developers:
  • System:

Test Plan

  • Unit tests added/updated
  • E2E tests added/updated
  • Manual testing completed
  • Tested in:

Contributors

Screenshots/Videos

- Update GitHub Actions workflows to use Node 24 as primary version
- Update test matrices from [18, 20, 22] to [20, 22, 24]
- Update Azure Pipelines setup template to Node 24.x
- Update root engines.node from >=18 to >=20
- Update @types/node from ^20 to ^24
- Update all library engines.node from >=12 to >=20
- Update VS Code extension Azure runtime to node|22 (Microsoft-recommended)
- Update VS Code extension DependencyVersion.nodeJs to 24.15.0

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot AI review requested due to automatic review settings May 7, 2026 04:11
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 7, 2026

🤖 AI PR Validation Report

PR Review Results

Thank you for your submission! Here's detailed feedback on your PR title and body compliance:

PR Title

  • Current: chore: update Node.js from 20 to 24 across CI, packages, and extension
  • Issue: None — the title is concise and informative for this change.
  • Recommendation: Keep as-is. If you want to be even more explicit, you can add a short note about the scope (e.g., CI/workflows, package engines, types, and VS Code extension runtime), but this is optional.

Commit Type

  • Properly selected (chore). Only one box is checked which is correct for maintenance/tooling updates.
  • Note: Good.

Risk Level

  • Assessment: The PR body marks the risk as High, which is appropriate given the scope (CI, runtime engines, types and lockfile changes). However, the PR is missing a risk label on the PR itself.
  • Required action: Add one of the repository risk labels that matches the PR body (for this PR add risk:high). The repository currently has only label needs-pr-update on this PR and no risk:* label was applied.

What & Why

  • Current: (Missing / empty)
  • Issue: The What & Why section is required and currently empty. For an impactful change like updating Node versions across CI and packages, reviewers and release coordinators need a short explanation.
  • Recommendation: Add 2–4 sentences summarizing what changed and why. Example to paste/edit:
    • "What: Bump Node.js used in CI and package engines from 20 to 24 (including @types/node to ^24) and update the VS Code extension dependency/runtime to 24.15.0. This updates GitHub Actions matrices and Azure Pipelines setup to test and use Node 24.
    • Why: Keep runtime and dev types current to obtain security fixes, performance improvements, and align with Microsoft tooling recommendations. This also prepares the extension and libraries for Node 24 compatibility."

⚠️ Impact of Change

  • Issue: The Impact section is empty. With this scope, the impact must be explicit.
  • Recommendation: Fill with short bullet points for Users, Developers and System. Example:
    • Users: No direct user-visible feature changes, but runtime or extension compatibility could be affected for local environments or the VS Code extension.
    • Developers: Local development now requires Node >=20 (many libs engines changed from >=12 to >=20). Update dev environment docs, onboarding, and CI runners. Consider communicating to contributors to upgrade Node locally or use nvm/nodenv.
    • System: CI pipelines, release artifacts and the VS Code extension build/runtime may require updated infrastructure (build images, hosted runners) and verification with existing integrations.

Test Plan

  • Assessment: The Test Plan section has all boxes unchecked and no explanation. The diff shows CI/workflow matrices updated to include Node 24 and other workflow changes, but the PR body does not describe how testing was validated.
  • Issue: For a high-risk runtime change you must provide explicit testing details. If no unit/E2E tests were added, explain why and list manual or CI validations performed.
  • Recommendation: At minimum, update the Test Plan section to state:
    • Which CI jobs were run and passed (link to successful runs if available).
    • Which key apps/components were built and smoke-tested locally or in CI (e.g., Standalone app build, VS Code extension build, production-build).
    • If unit/E2E tests were updated, list them and their results. If not, add justification (e.g., "no code logic changes, only tooling/engines, CI matrix covers the new runtime") and add a plan to run full test suites in Node 24.
    • Check the boxes accordingly (Unit tests / E2E / Manual testing completed) after providing the details.

⚠️ Contributors

  • Assessment: Blank. This is optional, but good to credit reviewers and contributors.
  • Recommendation: Add any teammates who assisted, or add a note to credit PMs/designers if they were involved. Not required to pass but recommended.

⚠️ Screenshots/Videos

  • Assessment: Not applicable for tooling/runtime changes.
  • Recommendation: Leave blank unless you changed UI. This is fine.

Summary Table

Section Status Recommendation
Title Keep as-is or optionally include short scope note.
Commit Type chore is correct.
Risk Level Add a risk:high label to the PR to match the body.
What & Why Fill in 2–4 sentences describing what changed and why.
Impact of Change ⚠️ Add Users/Developers/System bullets (see recommendation).
Test Plan Provide CI/test run details and check boxes, or justify absence.
Contributors ⚠️ Optional: add contributors to credit.
Screenshots/Videos ⚠️ N/A for this PR.

Final recommendations & next steps

  1. Add a risk:high label to the PR (label must exactly match your Risk Level selection in the body).
  2. Populate the "What & Why" with a short clear explanation (example provided above).
  3. Fill the "Impact of Change" section with explicit Users/Developers/System bullets.
  4. Update the "Test Plan": describe which CI jobs were run (or will run), link to passing runs, indicate whether unit/E2E tests were updated or why they are not needed, and then check the appropriate boxes.
    • Because this PR changes runtime engines and CI matrices, verify at least: full build + unit test suites + extension build run successfully on Node 24 in CI.
  5. If you intend this to be a high-risk change, ensure a release/rollback plan is described (for the extension and any production builds that might rely on Node runtime versions).
  6. Optionally add Contributors and mention any manual verification steps you did locally (node version manager used, smoke tests, VS Code extension run, etc.).

Summary: The PR content and diff justify a High risk level (advisedRiskLevel = High). The PR currently fails because the body is missing required explanatory sections (What & Why, Impact, Test Plan) and the PR itself lacks the corresponding risk:high label. Please update the PR body with the items above and add the risk label; once updated I will re-check and re-evaluate.


Last updated: Thu, 07 May 2026 06:57:11 GMT

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 7, 2026

🤖 AI PR Validation Report

PR Review Results

Thank you for your submission! Here's detailed feedback on your PR title and body compliance:

PR Title

  • Current: chore: update Node.js from 20 to 24 across CI, packages, and extension
  • Issue: Title is generally clear and descriptive. Minor suggestion: include scope token (ci, packages, extension) is fine already; optionally prefix with ci/ or chore(ci): if your repo enforces more granular conventional commits.
  • Recommendation: Current title is acceptable. Example alternative for extra clarity: chore(ci,packages,extension): bump Node.js (20 -> 24) and update @types/node

Commit Type

  • Properly selected (chore).
  • Note: Only one box is checked which is correct.

Risk Level

  • Assessment: The PR body marks the risk level as High, which is appropriate given the breadth of changes (CI workflows, engines across many packages, @types/node bump, lockfile updates, and VS Code extension dependency/runtime changes). I agree with the High risk classification.
  • Issue: There is no risk:* label on the PR. Every PR should have a risk label that matches the risk stated in the PR body (e.g., risk:high).
  • Recommendation: Add the label risk:high to the PR so label state matches the Risk Level in the body.

What & Why

  • Current: (Missing / empty)
  • Issue: This section is empty. For a cross-cutting change like upgrading Node across CI and all packages, reviewers need a short rationale explaining goals and any compatibility constraints or vendor guidance that informed choices (for example: Microsoft guidance to keep Azure Functions runtime at node|22).
  • Recommendation: Add 2–3 short lines explaining:
    • What is changing (summary: CI workflows to Node 24, package engines to >=20, @types/node -> ^24, VS Code extension dependency updated to 24.15.0, extension Azure runtime set to node|22).
    • Why: security/feature/support reasons, alignment with platform recommendations, or dependency requirements.
    • Any exceptions/compatibility notes (see below about runtime vs dependency mismatch).
    • Example: This PR bumps CI Node to 24, updates package engines to >=20 and @types/node to ^24 to align with current Node LTS and ensure packages build under modern Node. The VS Code extension runtime is set to node|22 per Microsoft recommendation for Azure Functions host, while local dev/runtime dependency is set to 24.15.0 for tooling.

Impact of Change

  • Issue: This section is blank. Given the scope, you must state who/what is affected and how.
  • Recommendation:
    • Users: Note whether there are any user-facing changes (likely none, but mention potential extension consumers who run VS Code extension in Azure Functions or local runtimes).
    • Developers: call out that local dev machines and any CI runner images must support Node 24. Mention changes to package engine fields which may affect npm/pnpm installs on older Node versions.
    • System: note lockfile updates, potential build/test flakiness until CI images are updated, and the VS Code extension runtime nuance (see below).
    • Example bullets to include in the PR body:
      • Users: No user-facing UI changes expected. Extension consumers may need a compatible runtime for VSIX.
      • Developers: Local environments must upgrade Node >=20 (recommended Node 24 for local dev/test). CI images must be updated to Node 24. Some subpackages previously supporting Node 12 will now require Node >=20.
      • System: lockfile/pnpm-lock updated extensively; ensure the monorepo is validated by full CI runs and smoke tests.

Test Plan

  • Assessment: Missing/empty. The PR shows no Unit or E2E tests added/updated and no manual testing explanation.
  • Issue: For a repo-wide Node bump, a clear test plan is required. The instructions for this review state: if no unit or E2E tests are added and no explanation given why, the PR should fail.
  • Recommendation — Required before merging:
    • Run full CI pipeline with Node 24 and include its results in the PR or provide a clear link to a successful CI run. If CI cannot finish prior to review, provide a plan and timeline.
    • Add/confirm the following checks are run in CI with Node 24:
      • Full monorepo build (all packages)
      • Unit tests (all packages that have them)
      • E2E/playwright tests (where applicable)
      • VS Code extension build and smoke test under the recommended extension runtime
    • If you cannot update all tests now, explain explicitly why (e.g., temporary lockfile-only bump to unblock other work), list a follow-up PR plan, and include manual verification steps performed (commands run, environments used, failures found/fixed).
    • Add - [x] Manual testing completed plus details, or mark unit/E2E boxes if CI updated them.

⚠️ Contributors

  • Assessment: Empty. Not required to pass, but recommended to credit contributors.
  • Recommendation: Add contributors (author, reviewers, PM/Designers if applicable).

⚠️ Screenshots/Videos

  • Assessment: Not applicable — no visual changes. Marked optional.

Additional important notes found in the code diff

  • The changes include widespread updates: 26 files changed, large lockfile updates (pnpm-lock), engines updates in many package.json files (many libs updated from >=12 to >=20), @types/node bumped from ^20 to ^24, and updates in many GitHub Actions workflows and Azure Pipelines setup to set Node to 24.x.
  • In apps/vs-code-designer/src/constants.ts you updated:
    • workflowappRuntime from 'node|20' -> 'node|22' (this matches your PR description that Azure runtime is Microsoft-recommended node|22).
    • DependencyVersion.nodeJs from '20.18.3' -> '24.15.0'.
      Potential confusion: the VS Code extension runtime is set to node|22 while the extension's node tooling dependency is 24.15.0. Please document clearly in the PR Why this difference exists (Microsoft recommends Azure Functions host/runtime node|22 while local tooling may run on Node 24). If Azure Functions requires node|22 and you are shipping the extension with dependency toolchain at Node 24, ensure the extension packaging and runtime compatibility are validated.
  • Because change affects many packages, lockfile integrity updates are expected. Please ensure CI checks the monorepo build.

Summary Table

Section Status Recommendation
Title Title is fine; optionally make scope explicit.
Commit Type chore is correct.
Risk Level Add label risk:high to match PR body.
What & Why Add concise rationale and note any exceptions.
Impact of Change Describe Users / Developers / System impact.
Test Plan Add CI success artifacts or detailed manual test steps + follow-ups.
Contributors ⚠️ Add contributors or note none.
Screenshots/Videos ⚠️ Not applicable — optional.

Final message:
This PR is a large-surface maintenance change and is correctly classified as High risk — I agree with that classification. However, the PR does not pass automated PR body checks because the PR is missing a matching risk:high label and does not contain a Test Plan, What & Why, or Impact sections with content. Please update the PR body to include the missing sections and add the risk:high label. In particular:

  • Add the missing What & Why (2–3 lines) and explicitly explain the Node 22 vs Node 24 choices for extension runtime vs tooling.
  • Fill the Impact of Change with Users / Developers / System bullets.
  • Provide a Test Plan: attach or link to successful CI runs on Node 24, or list exact manual commands run and their outputs if CI is not yet available. Ensure unit and E2E tests are executed where applicable.
  • Add the PR label risk:high (or another matching label if you change the risk selection).

Once you update the PR body and add the label and either: (a) provide CI run results showing builds/tests passed on Node 24, or (b) provide a clear manual test log and follow-up rollout plan, this check should pass.

Thank you — this is a necessary maintenance change; documenting the testing and impact will make it much easier for reviewers to approve safely.


Last updated: Thu, 07 May 2026 04:12:03 GMT

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Updates the repo’s Node.js baseline to align CI/tooling with Node 24, while raising package engine requirements and refreshing related dependencies and VS Code extension runtime settings.

Changes:

  • Updated GitHub Actions and Azure Pipelines to use Node 24 (and shifted test matrices to include 24).
  • Bumped @types/node to v24 and raised engines.node across the monorepo (root and libraries) to >=20.
  • Updated VS Code designer extension constants to reflect newer Node/runtime dependency versions.

Reviewed changes

Copilot reviewed 25 out of 26 changed files in this pull request and generated 9 comments.

Show a summary per file
File Description
pnpm-lock.yaml Lockfile refresh reflecting @types/node@24 and updated dependency resolution metadata.
package.json Bumps @types/node to ^24 and raises root engines.node to >=20.
libs/vscode-extension/package.json Raises library engines.node to >=20.
libs/logic-apps-shared/package.json Raises library engines.node to >=20.
libs/designer/package.json Raises library engines.node to >=20.
libs/designer-v2/package.json Raises library engines.node to >=20.
libs/designer-ui/package.json Raises library engines.node to >=20.
libs/data-mapper/package.json Raises library engines.node to >=20.
libs/data-mapper-v2/package.json Raises library engines.node to >=20.
libs/chatbot/package.json Raises library engines.node to >=20.
apps/vs-code-designer/src/constants.ts Updates Azure workflow runtime string and fallback Node dependency version used by the extension.
apps/docs/package.json Raises docs app engines.node to >=20.
.github/workflows/vscode-e2e.yml Updates workflow Node version to 24.x.
.github/workflows/version-release.yml Updates workflow Node version to 24.
.github/workflows/upload-templates.yml Updates workflow Node version to 24.x.
.github/workflows/update-changelog.yml Updates workflow Node version to 24.
.github/workflows/test.yml Updates CI Node matrix to [20.x, 22.x, 24.x].
.github/workflows/real-e2e.yml Updates workflow Node version to 24.
.github/workflows/production-build.yml Updates workflow Node version references to 24.
.github/workflows/private-vsix-build.yml Updates CI Node matrix and build Node version references to include/use 24.
.github/workflows/pr-coverage.yml Updates workflow Node version to 24.x.
.github/workflows/playwright.yml Updates workflow Node version to 24.x.
.github/workflows/Deploy-Standalone.yml Updates workflow Node version to 24.x.
.github/workflows/Deploy-Documentation.yml Updates workflow Node version to 24.x.
.github/workflows/compile-loc.yml Updates workflow Node version to 24.x.
.azure-pipelines/templates/setup.yml Updates Azure Pipelines NodeTool versionSpec to 24.x.
Files not reviewed (1)
  • pnpm-lock.yaml: Language not supported

Comment thread .github/workflows/Deploy-Standalone.yml Outdated

- name: Set up Node.js version 20.x
- name: Set up Node.js version 24.x
uses: actions/setup-node@v1

- name: Set up Node.js version 20.x
- name: Set up Node.js version 24.x
uses: actions/setup-node@v1
Comment thread .github/workflows/compile-loc.yml Outdated
@@ -18,7 +18,7 @@ jobs:
- name: Set up Node.js
uses: actions/setup-node@v1
Comment on lines 12 to 15
strategy:
matrix:
node-version: [18.x, 20.x, 22.x]
node-version: [20.x, 22.x, 24.x]

Comment on lines +61 to +64
- name: Set up Node.js version 24
uses: actions/setup-node@v1
with:
node-version: 20
node-version: 24
Comment thread .github/workflows/production-build.yml Outdated
@@ -54,7 +54,7 @@ jobs:
- name: Set up Node.js
uses: actions/setup-node@v1
Comment thread .github/workflows/production-build.yml Outdated

- name: Set up Node.js version 20
- name: Set up Node.js version 24
uses: actions/setup-node@v1
Comment thread .github/workflows/production-build.yml Outdated
@@ -148,7 +148,7 @@ jobs:
- name: Set up Node.js
uses: actions/setup-node@v1
Comment on lines 13 to 16
strategy:
matrix:
node-version: [18.x, 20.x, 22.x]
node-version: [20.x, 22.x, 24.x]

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 7, 2026

📊 Coverage check completed. See workflow run for details.

Address PR review comments: actions/setup-node@v1 is deprecated and may
cause workflow failures. Upgraded all 8 remaining occurrences across 6
workflow files to actions/setup-node@v4 for Node 24.x support.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants