Skip to content

ci: nightly npm smoke test rejects expected engine warning #10064

Open

Description

@reggi

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 STEPEXIT string.

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.

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions