Repository navigation
Description
Summary
The npm 12.2.0 release integration runs npm's smoke tests on Node.js nightly v27.0.0-pre. npm correctly emits its unsupported-engine warning, but the smoke test for npm with no arguments requires empty stderr and fails.
This is different from #10024. That issue owns the stale stable Node 23 target, while nightly is intentionally retained as forward-compatibility coverage.
Affected run
Release: npm 12.2.0
Branch: latest
Commit: c276cadf785c1018d82dd287fe7742567055efb9
Workflow: https://github.com/npm/cli/actions/runs/36746332014
Failing job: https://github.com/npm/cli/actions/runs/36746332014/job/110043487985
Failure
The smoke test invokes npm on Node.js nightly:
npm info using npm@12.2.0
npm info using node@v27.0.0-pre
npm warn cli npm v12.2.0 does not support Node.js v27.0.0-pre.
The command exits as expected, but the test fails because stderr is not empty:
not ok 2 - should have no stderr output
found: "npm warn cli npm v12.2.0 does not support Node.js v27.0.0-pre..."
wanted: ""
The workspace test failure is later obscured by the existing result-aggregation bug:
exit: STEPEXIT: numeric argument required
That aggregation defect is already tracked as a cross-cutting item in #10027, but fixing it will only expose the original smoke-test failure more accurately.
Investigation and resolution
Decide what the nightly integration contract should be when nightly is intentionally outside npm's declared engine range. Preserve nightly forward-compatibility coverage without suppressing engine warnings globally or weakening the supported-runtime assertions.
Possible resolutions must distinguish expected unsupported-engine output in the nightly integration context from unexpected stderr on supported runtimes.
Acceptance criteria
- The nightly npm test job has an explicit contract for npm's unsupported-engine warning.
- Supported-runtime smoke assertions remain unchanged.
- The npm test suite actually executes on nightly and reports its real result.
- The workflow propagates the original numeric failure code rather than the literal
STEPEXITstring.
Scope boundary
This is not the stable Node 23 matrix mismatch in #10024. It is also separate from the Node nightly source-download failure in #10016 and the native CITGM fixture failures.
Activity