Skip to content

Request for npm 12 (re-)submission to Node.js main branch #9997

Closed

Description

@MikeMcC399

Background

npm@12.0.0, released on 2026-07-08, introduced many breaking changes.

nodejs/Release#1161 (comment) notes:

The Release WG has decided not to land npm 12 on Node.js 26, 24 or 22.

A previous PR nodejs/node#64882 attempted to submit npm@12.0.2, however it came into conflict with nodejs/node#64883 that landed npm@11.19.0 in the Node.js main branch. The npm@12.0.2 PR nodejs/node#64882 was closed without any further follow-up.

The Node.js repo documentation describes that the .github/workflows/create-node-pr.yml workflow is used to create a PR to submit npm to Node.js.

A previous version of this request was submitted as nodejs/Release#1183 to the Node.js Releasers team who pointed to the need for action by the npm team.

Request

This is a request to re-submit npm 12 to the main branch of Node.js so that it can be included in the Node.js 27 Alpha phase from 2026-10-28 to 2027-04-22.

The next opportunity to bundle npm 12 is the future Node.js 27. To be included in Node.js 27, npm 12 would need to be submitted and landed before the cutoff date for the release of Node.js 27.0.0.

Node.js 27 Alpha begins on 2026-10-28. The Node.js 27.0.0 release is planned for 2027-04-22. The cutoff date for SEMVER-MAJOR changes is one month prior, which would be 2027-03-21.

Rationale

Maintainers of packages published to the npm registry and private project maintainers need to be given an early and simple opportunity of testing against npm 12 in CI during the Node.js 27 Alpha phase. Although it is possible today to update workflows to use npm 12, in general, users rely on the version of npm bundled in Node.js without taking any steps to install any different npm version (with npm install -g npm@latest for instance).

It's expected that a significant number of projects will require changes to continue to work with npm 12.

Additional exposure of npm 12 to more packages and projects may also lead to discovery of additional bugs in npm 12 with the opportunity to fix these before Node.js 27 exits its Alpha phase.

In the unlikely event that npm 12 were not to land in Node.js 27 Alpha, then by default Node.js 27 would continue to bundle npm 11 until Node.js 27's planned end-of-life in April 2030.

Related

#9827

Activity

  1. MikeMcC399 commented on Sep 22, 2026

    @MikeMcC399
    ContributorAuthor

    Resolved by nodejs/node#66212

  2. MikeMcC399 commented on Sep 23, 2026

    @MikeMcC399
    ContributorAuthor

    Re-opening, as now two PRs for different versions of npm have been submitted to the same main branch of Node.js. This causes a conflict that needs resolution:

    The suggestion from the Node.js releasers team to first land npm@11.20.0 will delay npm@12 once again.

    I will leave this issue open until npm@12 has actually successfully landed on Node.js main. Deadline would be 2027-03-21 for Node.js 27.0.0 (first non-alpha release) - with earlier option to participate in Node.js 27 alpha phase starting 2026-10-28.

  3. reggi commented on Sep 24, 2026

    @reggi
    Contributor

    Current status after discussing the conflict with Node.js contributors:

    Mike proposed closing nodejs/node#66245, reopening the npm 11.20.0 update against v26.x-staging, and keeping nodejs/node#66212 targeted at main so npm 12.1.0 would not be delayed. I agreed to that approach and was prepared to recreate the npm 11 update against staging.

    Additional guidance from @aduh95 was to keep the npm 11 update on main and land it before npm 12. The reasoning is that the first Node.js 27 Alpha release is still about a month away, which should leave enough time to land both updates. Opening directly against a staging branch should generally be avoided when another path is available because the commit queue does not work on staging branches and doing so adds work for the people responsible for Node.js releases.

    The current plan is therefore to keep both PRs targeted at main, land nodejs/node#66245 for npm 11.20.0 first, then update or rebase nodejs/node#66212 as needed and land npm 12.1.0. I am leaving the final sequencing to the people responsible for Node.js releases and will help with any npm-side changes they need.

  4. MikeMcC399 commented on Sep 25, 2026

    @MikeMcC399
    ContributorAuthor

    Since nodejs/node#66212 for npm@12.1.0 was submitted first, had received 6 approvals (more than then minimum 2 required) and had had the commit-queue label applied to it (by the releasers team), it was automatically merged 48 hours after being submitted.

    npm@12 is now in the main branch of Node.js, so I'm closing this issue.

    Thanks @reggi for your persistence! I also have to leave a final determination of the strategy to the Node.js releasers team. I have to limit my involvement to providing advice only, as I'm not a member of that team.

  5. MikeMcC399 commented on Sep 25, 2026

    @MikeMcC399
    Author
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

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions