Skip to content

Update Node.js to v24.14.x and npm to v11.11.0 across build infrastructure#66173

Open
Copilot wants to merge 3 commits intomainfrom
copilot/update-infrastructure-yaml
Open

Update Node.js to v24.14.x and npm to v11.11.0 across build infrastructure#66173
Copilot wants to merge 3 commits intomainfrom
copilot/update-infrastructure-yaml

Conversation

Copy link
Copy Markdown
Contributor

Copilot AI commented Apr 6, 2026

Update Node.js to v24.14.x and npm to v11.11.0 across build infrastructure

  • You've read the Contributor Guide and Code of Conduct.
  • You've included unit or integration tests for your change, where applicable.
  • You've included inline docs for your change, where applicable.
  • There's an open issue for the PR that you are making. If you'd like to propose a new feature or change, please open an issue to discuss the change or find an existing issue.

Upgrades Node.js from v20.x to v24.14.x and npm from v9.3.1 to v11.11.0 across all build infrastructure. Adds 3-day minimum release age for npm packages.

Description

Azure Pipelines Build Infrastructure

  • Updated NodeTool@0 tasks in .azure/pipelines/jobs/default-build.yml (2 instances) and .azure/pipelines/ci.yml to install Node 24.14.x

GitHub Actions Workflows

  • Updated setup-node tasks in .github/workflows/validate-npm-package-lock-json.yml, .github/workflows/update-jquery-validate.yml, and .github/workflows/markdownlint.yml to use Node 24.14.x

Package Requirements

  • Set engines in package.json to require node >=24.14.1 and npm >=11.11.0
  • Added min-release-age=3d to .npmrc to delay package adoption by 3 days after publication

Security

  • Added permissions: contents: read block to .github/workflows/validate-npm-package-lock-json.yml to follow GitHub Actions security best practices

All Node.js versions are pinned to 24.14.x to ensure builds always meet the minimum requirement (>=24.14.1) and are reproducible.

@javiercn javiercn marked this pull request as ready for review April 6, 2026 16:48
@javiercn javiercn requested review from a team and wtgodbe as code owners April 6, 2026 16:48
Copilot AI review requested due to automatic review settings April 6, 2026 16:48
@github-actions github-actions bot added the area-infrastructure Includes: MSBuild projects/targets, build scripts, CI, Installers and shared framework label Apr 6, 2026
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 JavaScript toolchain baseline by moving build infrastructure to Node.js 24 and npm 11, and adds an npm configuration intended to delay adoption of very recent package releases.

Changes:

  • Bump package.json engine requirements to Node >=24.14.1 and npm >=11.11.0.
  • Add min-release-age=3d to .npmrc.
  • Update Azure Pipelines NodeTool@0 steps to install Node 24.x.

Reviewed changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated 5 comments.

File Description
package.json Raises declared minimum Node/npm versions via engines.
.npmrc Adds a minimum release age policy for npm package installs.
.azure/pipelines/jobs/default-build.yml Updates NodeTool tasks from 20.x to 24.x in default build jobs.
.azure/pipelines/ci.yml Updates the CI pre-step NodeTool task from 20.x to 24.x.

Comment on lines +182 to +184
displayName: Install Node 24.x
inputs:
versionSpec: 20.x
versionSpec: 24.x
Copy link

Copilot AI Apr 6, 2026

Choose a reason for hiding this comment

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

versionSpec: 24.x can resolve to a Node 24 release lower than the minimum required by package.json (>=24.14.1). To ensure builds always satisfy the declared engine requirement and are reproducible, pin the pipeline NodeTool versionSpec to at least 24.14.1 (e.g., 24.14.1 or 24.14.x).

Copilot uses AI. Check for mistakes.
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

@copilot update as necessary

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Updated all NodeTool versionSpec to 24.14.x to ensure builds satisfy the minimum requirement (>=24.14.1). Also updated GitHub Actions workflows to use the same pinned version. Changes in commit a38f236.

Copy link
Copy Markdown
Member

@akoeplinger akoeplinger Apr 6, 2026

Choose a reason for hiding this comment

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

@copilot why would this resolve a lower version?

we recently bumped to 24.x in dotnet/dotnet@c2e6a4e and this installs 24.14.1

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

The concern was that 24.x could theoretically resolve to any 24.x version (e.g., 24.0.0, 24.1.0) when new agent images are released, potentially below the package.json requirement of >=24.14.1. However, if Azure Pipelines NodeTool@0 with 24.x is already reliably installing 24.14.1+ (as you've confirmed), then 24.x would be sufficient. The change to 24.14.x provides more explicit alignment with the minimum version and prevents any edge cases, but either approach should work in practice if the tool consistently resolves to recent patch versions.

Comment on lines +416 to +418
displayName: Install Node 24.x
inputs:
versionSpec: 20.x
versionSpec: 24.x
Copy link

Copilot AI Apr 6, 2026

Choose a reason for hiding this comment

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

versionSpec: 24.x can install a Node 24 version below the repo’s declared minimum (>=24.14.1 in package.json). Pin NodeTool to 24.14.1 (or 24.14.x) so the build reliably uses a compatible Node version.

Copilot uses AI. Check for mistakes.
Comment on lines +711 to +713
displayName: Install Node 24.x
inputs:
versionSpec: 20.x
versionSpec: 24.x
Copy link

Copilot AI Apr 6, 2026

Choose a reason for hiding this comment

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

versionSpec: 24.x does not guarantee meeting the repo’s minimum Node engine (>=24.14.1). Pin NodeTool to 24.14.1 (or 24.14.x) to avoid intermittent failures when the latest 24.x is below the required patch level.

Copilot uses AI. Check for mistakes.
Comment on lines +39 to +40
"node": ">=24.14.1",
"npm": ">=11.11.0"
Copy link

Copilot AI Apr 6, 2026

Choose a reason for hiding this comment

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

The PR description says the engines field “enforce[s]” node/npm versions, but npm won’t actually block installs based on engines unless engine-strict=true (or a CI check) is in place. If enforcement is intended, add an explicit validation step / config; otherwise consider rewording the description to “document/require”.

Copilot uses AI. Check for mistakes.
Comment on lines +711 to +713
displayName: Install Node 24.x
inputs:
versionSpec: 20.x
versionSpec: 24.x
Copy link

Copilot AI Apr 6, 2026

Choose a reason for hiding this comment

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

This PR is described as updating Node “across build infrastructure”, but there are GitHub Actions workflows still pinned to Node 20.x (e.g., .github/workflows/validate-npm-package-lock-json.yml, .github/workflows/update-jquery-validate.yml). If those workflows should follow the repo-wide Node baseline, update them too or clarify that only Azure Pipelines is in scope.

Copilot uses AI. Check for mistakes.
Copilot AI changed the title Update Node.js to v24.x and npm to v11.11.0 across build infrastructure Update Node.js to v24.14.x and npm to v11.11.0 across build infrastructure Apr 6, 2026
Copilot AI requested a review from javiercn April 6, 2026 17:08
"engines": {
"node": ">=20.9.0",
"npm": ">=9.3.1"
"node": ">=24.14.1",
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

@javiercn can you please check whether azurelinux has 24.14? otherwise this will break the VMR build as we use node from AZL packages there

Copy link
Copy Markdown
Member

@akoeplinger akoeplinger Apr 6, 2026

Choose a reason for hiding this comment

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

we checked and the AZL image has node 24.13.0 and npm 11.6.2 so this needs some updates

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area-infrastructure Includes: MSBuild projects/targets, build scripts, CI, Installers and shared framework

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants