-
Notifications
You must be signed in to change notification settings - Fork 239
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
⚠️ [RRFC] Breaking changes for npm@8
#445
Comments
What about the "stricter peer deps" change becoming default? |
Can we drop the programmatic API so that we can iterate on it in node8 before we (potentially) allow it again? |
the "flat out refuse to install a version of itself that is incompatible" should land in npm@7 |
Dropping the programmatic API should be non-breaking for Node.js, because it doesn't affect npm's use as a CLI. Anyone listing npm as a dependency and using |
npm@8
npm@8
Why not leapfrog straight to <14? A more aggressive deprecation process might yield even more benefits for NPM’s maintenance. To be frank, it wouldn’t upset me if there was an NPM major version per major Node version. |
node 12 is still in LTS. |
Yeah, Node.js 12 is still actively supported. It would be a mistake to not support something that is still supported by the Node.js project. |
As most of you probably already know, when dropping support for Node.js 12 many maintainers in the ecosystem has also decided to start adopting ESM, like eg. @sindresorhus and @wooorm: https://gist.github.com/sindresorhus/a39789f98801d908bbc7ff3ecc99d99c Would that be a wish from the npm team as well? For both npm itself and the modules, like And if so, maybe supported versions should be limited to Or should a move to ESM-style modules wait until at least |
I think this is a good move. Node 12 is in "maintenance" LTS, not "active" and users wouldn't be forced to move to npm@8. Something else I'd also like to see in npm@8 is the return of engine-checks, at least for npm and Node versions. |
@mrmckeb Actually the strict engines check just for npm itself just landed in v7. That way, we can prevent npm 7 users from upgrading to npm 8 if they're using node 10. |
Dependencies that are strictly ESM can be easily replaced with ones that prefer maximum compatibility, so i don't think that's much of a blocker. |
We will also be updating |
We're working on updating the docs site. Version 8 is identical to version 7 except for an engines update so those docs should be accurate for v8. |
Motivation ("The Why")
npm
CLI (ie.v8
)node@16
"Active LTS" Release milestone & want to make some decisions quicklynode
's release cadence & versioning (ex. keeping odd numbers as more experimental)How
npm@8
drops support fornode<12
npm@8
will refuse to install in node versions it doesn't work withDropping
node<12
Today, we have rather a lot of workarounds for node 10 to keep things working. Part of this step will involve actively seeking those workarounds and removing them.
This will reduce the overall volume of code we maintain, and allow for simplifying things in other places.
Refuse to install in old
node
versionsA lesson we learned with the release of
npm@7
is that we need to be more careful about how we interact with versions ofnode
we don't work on. Quite a few folks had problems caused bynpm@6
allowingnpm@7
to be installed innode@8
, this is something we intend to resolve.Actively refusing to install an
npm
version that does not work with the user's current version ofnode
will help reduce confusion and frustration for our users, as well as reducing support requests. With clear messaging, we can also encourage users to keep theirnode
versions up to date.Questions and concerns
Please share them here!
The text was updated successfully, but these errors were encountered: