Skip to content
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

npm cli breaking changes #488

Open
1 task
darcyclarke opened this issue Apr 28, 2022 · 15 comments
Open
1 task

npm cli breaking changes #488

darcyclarke opened this issue Apr 28, 2022 · 15 comments

Comments

@darcyclarke
Copy link
Contributor

darcyclarke commented Apr 28, 2022

This is the issue where we file our future breaking changes for the npm cli.

Breaking Changes:

  1. Remove legacy lifecycle scripts support (ie. pre/post scripts)
@wraithgar
Copy link
Member

wraithgar commented Sep 6, 2023

Copied from v10 initiative

v11 and beyond

These are still future looking breaking changes that we want to keep in consideration going forward

### Breaking Changes:
- [ ] stop reading process.env.NODE in config for nodeBin
- [ ] remove man pages
- [ ] Remove install scripts support
- [ ] Support for reading `stdin` across **all** commands (ie. https://github.com/npm/rfcs/blob/3d5b2130504139bdc8a3b599923aa07d2ff79c96/accepted/0000-dependency-selector-syntax.md#commands-could-read-from-stdin)
- [ ] Support Package Distributions by default
- [ ] Consider changing strict-ssl default based on environment variables https://github.com/npm/make-fetch-happen/pull/257
- [ ] https://github.com/npm/npm-packlist/pull/168
- [ ] Revert all of the hacks around "globstar" in packlist.  Just use node-glob's patterns.

Features (v10 or v11 or beyond):

- [ ] New `npm link` experience
- [ ] Add new "lifecycle events" API - differentiate between scripts & events - user/project & dependency defined usecases)
- [ ] First-class `import-maps` Support
- [ ] Warn/error on unecessary config items in publishConfig

@ljharb
Copy link

ljharb commented Sep 6, 2023

Let's figure out the "store the range i asked for" change for v11 too?

@wraithgar
Copy link
Member

I just lost an hour of my day to this "clever" helpful line. We should drop support for this.

https://github.com/npm/cli/blob/1114a12f2b4691d403d0863d4dca44f25580f57d/lib/cli-entry.js#L9-L12

  // if npm is called as "npmg" or "npm_g", then run in global mode.
  if (process.argv[1][process.argv[1].length - 1] === 'g') {
    process.argv.splice(1, 1, 'npm', '-g')
  }
$ node /Users/wraithgar/Development/npm/cli/branches/gar_semver-debug pkg set description='test'
npm ERR! code EPKGGLOBAL
npm ERR! There's no package.json file to manage on global mode

@wraithgar
Copy link
Member

wraithgar commented May 13, 2024

  • Revert all of the hacks around "globstar" in packlist. Just use node-glob's patterns.

This is just a bug factory at this point.

@lukekarrys
Copy link
Contributor

lukekarrys commented May 14, 2024

A few things I've found in the issue tracker lately that can't be fixed due to how they would likely break things:

@wraithgar

This comment has been minimized.

@wraithgar

This comment has been minimized.

@wraithgar

This comment has been minimized.

@karenjli

This comment has been minimized.

@wraithgar wraithgar changed the title Initiative: v11.0 npm cli breaking changes Sep 25, 2024
@wraithgar
Copy link
Member

Repurposed this issue as the bucket for all breaking changes. Actual v11 roadmap is at #898

@reggi
Copy link

reggi commented Nov 26, 2024

@reggi
Copy link

reggi commented Nov 26, 2024

get rid of the idea of "package.json as comment in a index file" https://github.com/npm/package-json/blob/main/lib/index.js#L141-L147 😆

@ljharb
Copy link

ljharb commented Nov 26, 2024

@reggi does that last one mean that pre-existing gists might stop being npm-installable?

@wraithgar
Copy link
Member

wraithgar commented Nov 26, 2024

@ljharb it's a chesterton's fence issue. We want to explain why it's in the road and decide if we want to remove it. If you have a small gist example that could help us add an explanatory comment in our package-json parser.

ETA: it may also help us add better regression tests for this use case.

@ljharb
Copy link

ljharb commented Nov 26, 2024

Chesterton's fence says to not remove it until you can explain why it's in the road :-p

https://gist.github.com/isaacs/1837112 is the original canonical example. I'll see if I can find some modern usages.

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

No branches or pull requests

6 participants