Skip to content

hotfix: pin pipeline to Node 22 to unblock 2.0.10 release#560

Merged
heyitsaamir merged 1 commit into
releasefrom
hotfix/ci-node-22
May 6, 2026
Merged

hotfix: pin pipeline to Node 22 to unblock 2.0.10 release#560
heyitsaamir merged 1 commit into
releasefrom
hotfix/ci-node-22

Conversation

@heyitsaamir

Copy link
Copy Markdown
Collaborator

Cherry-pick of #559 onto release to unblock the 2.0.10 publish pipeline.

Why

The publish pipeline fails on npm ci on Windows agents because Node 24 ships npm 11, which is stricter than the npm 10 pinned in packageManager. See #559 for full root-cause analysis.

Change

Pins the NodeTool@0 task in .azdo/publish.yml from 24.x to 22.x (npm 10). One-line fix, no lockfile or dependency changes.

After merge

Re-trigger the release pipeline on release with Public publish type to ship 2.0.10.

## Problem

The release pipeline fails on `npm ci` with errors like:

```
npm error Missing: [email protected] from lock file
npm error Missing: @esbuild/[email protected] from lock file
...
```

## Root cause

The pipeline's `NodeTool@0` task uses `versionSpec: '24.x'`, which
provisions Node 24 + **npm 11**. However:

- This repo pins `"packageManager": "[email protected]"` in `package.json`.
- npm 10 only records platform-specific optional dependencies for the
**current** platform when generating `package-lock.json` (so a lockfile
generated on macOS only contains Mac binaries for `@esbuild/*` and
`turbo-*`).
- npm 11 requires **all** platform binaries to be present in the
lockfile and treats missing ones as out-of-sync, failing `npm ci`.

Lockfile is valid under npm 10 — `npm ci` succeeds locally. The mismatch
is purely between the pipeline's npm and the project's pinned npm.

## Fix

Pin the pipeline to Node 22 (LTS), which ships with npm 10, matching the
`packageManager` field and every developer's local environment.

## Alternative considered

Bumping the project to npm 11 (update `packageManager`, regenerate
lockfile under npm 11, force every dev to upgrade). Rejected as larger
blast radius for an unblock-the-release fix.

## Follow-up

This same change needs to be cherry-picked to `release` to unblock the
2.0.10 publish.
@heyitsaamir
heyitsaamir merged commit 061da02 into release May 6, 2026
3 checks passed
@heyitsaamir
heyitsaamir deleted the hotfix/ci-node-22 branch May 6, 2026 22:32
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