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

Initiative: v10.0.0 #487

Closed
1 of 10 tasks
darcyclarke opened this issue Apr 28, 2022 · 4 comments
Closed
1 of 10 tasks

Initiative: v10.0.0 #487

darcyclarke opened this issue Apr 28, 2022 · 4 comments
Assignees

Comments

@darcyclarke
Copy link
Contributor

darcyclarke commented Apr 28, 2022

Timeline:

  • Roadmap Locked-in: July 2023
  • Betas/Release Candidates: July - September 2023
  • Generally Available: October 2023
  • End of Life: October 2024

Note: the below items are subject to change right up until July 2023

v9

Release Target: July 2023

Tasks

  1. 8 of 9
    epic
    wraithgar

v10

Release Target: September 2023

See #487 (comment) for breaking changes list

v11 and beyond

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

Breaking Changes:

Features (v10 or v11 or beyond):

Tasks

Risks

  • node 16 is Eol on Sep-2023
  • we should ga npm 10 atlease a month of node 20
@ljharb
Copy link

ljharb commented Apr 28, 2022

Where can we discuss using isolated mode by default? That breaks valid use cases, and I don't think it would ever be a good default behavior.

@darcyclarke darcyclarke pinned this issue May 2, 2022
@darcyclarke darcyclarke changed the title Initiative: v10.0 Initiative: v10.x May 2, 2022
@darcyclarke darcyclarke changed the title Initiative: v10.x Initiative: v10.0.0 Aug 22, 2022
@darcyclarke darcyclarke unpinned this issue Aug 22, 2022
lukekarrys added a commit to npm/package-json that referenced this issue Jun 1, 2023
Full list of changes are as follows:
- ignore `directories.bin` if `bin` is present
- walk up filesystem to look for git directory
- log a warning for inaccessible bin entries but dont delete

These changes will be tracked in npm/statusboard#487 to see if they
should be made as breaking changes with npm 10.

These changes are tested by including `read-package-json` as a dev
dependency and running the `test/prepare.js` test suite against both
packages. This test can be removed once we have decided to make these
breaking changes.

Ref: npm/cli#6470
Fixes: #35
lukekarrys added a commit to npm/package-json that referenced this issue Jun 1, 2023
Full list of changes are as follows:
- ignore `directories.bin` if `bin` is present
- walk up filesystem to look for git directory
- log a warning for inaccessible bin entries but dont delete

These changes will be tracked in npm/statusboard#487 to see if they
should be made as breaking changes with npm 10.

These changes are tested by including `read-package-json` as a dev
dependency and running the `test/prepare.js` test suite against both
packages. This test can be removed once we have decided to make these
breaking changes.

Ref: npm/cli#6470
Fixes: #35
lukekarrys added a commit to npm/package-json that referenced this issue Jun 1, 2023
…ackages

Due to npm/cli#6470, I added `read-package-json` and
`read-package-json-fast` to this repo as dev deps to run the new tests
from #31 against those packages. I found a few discrepancies which I
fixed in this PR.

Full list of changes are as follows:

**`normalize` / `read-package-json-fast`**
- convert `bundleDependencies: false` to `[]`

**`prepare` / `read-package-json`**
- ignore `directories.bin` if `bin` is present
- walk up filesystem to look for git directory
- log a warning for inaccessible bin entries but dont delete

These changes will be tracked in npm/statusboard#487 to see if they
should be made as breaking changes with npm 10.

These legacy tests can be removed once we have decided to make these
breaking changes.

Ref: npm/cli#6470
Fixes: #35
lukekarrys added a commit to npm/package-json that referenced this issue Jun 2, 2023
…ackages

Due to npm/cli#6470, I added `read-package-json` and
`read-package-json-fast` to this repo as dev deps to run the new tests
from #31 against those packages. I found a few discrepancies which I
fixed in this PR.

Full list of changes are as follows:

**`normalize` / `read-package-json-fast`**
- convert `bundleDependencies: false` to `[]`

**`prepare` / `read-package-json`**
- ignore `directories.bin` if `bin` is present
- walk up filesystem to look for git directory
- log a warning for inaccessible bin entries but dont delete

These changes will be tracked in npm/statusboard#487 to see if they
should be made as breaking changes with npm 10.

These legacy tests can be removed once we have decided to make these
breaking changes.

Ref: npm/cli#6470
Fixes: #35
@wraithgar
Copy link
Member

wraithgar commented Jun 6, 2023

Here is a more detailed writeup of the v10 changes. Tasklists don't allow annotations like this in sub-bullet-points so I'm putting it here.

v10 breaking changes

  • Engines Settings
  • Revisit "strip prerelease" logic from supported node version checker
    • We currently run process.version.replace(/-.*$/, '') before checking if the node version we are using is compatible with our engines entry. We should stop doing this and determine if we just drop that replace, or change our satisfies call to include prereleases. If the former it's technically a breaking change.
    • Not a breaking change
  • add "obey user specifier" RFC | rfcs#547
  • [FEATURE] Expand the list of default ignored files | npm-packlist#48
  • Remove metrics-registry hard coded config
    • This is a custom getter we add to the config object itself, it is not flattened. npm itself does not use this but removing it is technically a breaking change.
  • use @npmcli/agent
    • The existing http/s agent/proxy libs we use do not have very good timeout configurations and also diverge from the spec in odd ways. The new agent is intended to be identical to the existing way of doing things, but because of the scope of the change we are waiting on a semver major before cutting over.
  • Remove unused tmp config
    • This config is already deprecated and unused within npm
  • remove ci-name config
    • This config is already deprecated and will no longer be used in v10
  • remove flat.hashAlgorithm from npm config (unused)
    • This is a hard coded attribute on the flatOptions passed from npm to its submodules, none of them use it anymore.
  • remove implicit "if-present" logic from run-script in workspace mode
    • Currently when calling npm run-script on workspaces if any of the scripts are missing it is treated as a silently ignored error, making there an implicit "if-present" config in this mode. Users who want this behavior will need to include this config.
  • remove rfc 8909 code from npa (remove strict mode environment check altogether, keep current behavior w/o strict flag)
    • Currently if users set an enviromnent variable NPM_PACKAGE_ARG_8909_STRICT to 1 npm will enter a strict mode when parsing package specs. We don't have any real plan with making that mode permanent so we are removing this functionality. Too many existing packages rely on our "fixing" behavior and it is not worth breaking so many people to force compliance. Anyone currently using this mode will need to find a third party way to strictly enforce the package specs in their package.json
  • Don't retry 409 errors in libnpmpublish
    • Currently if npm gets a 409 from the registry during publish it attempts a single retry by re-fetching the manifest and attempting to apply a new patch on what's being published. This is not the safest approach, especially as the code used to patch is not the same code that is used to build the original manifest. It is much safer to simply have the user re-run the publish command.

lukekarrys added a commit to npm/package-json that referenced this issue Jun 6, 2023
…ackages

Due to npm/cli#6470, I added `read-package-json` and
`read-package-json-fast` to this repo as dev deps to run the new tests
from #31 against those packages. I found a few discrepancies which I
fixed in this PR.

Full list of changes are as follows:

**`normalize` / `read-package-json-fast`**
- convert `bundleDependencies: false` to `[]`

**`prepare` / `read-package-json`**
- ignore `directories.bin` if `bin` is present
- walk up filesystem to look for git directory
- log a warning for inaccessible bin entries but dont delete

These changes will be tracked in npm/statusboard#487 to see if they
should be made as breaking changes with npm 10.

These legacy tests can be removed once we have decided to make these
breaking changes.

Ref: npm/cli#6470
Fixes: #35
@wraithgar
Copy link
Member

user-agent switchover npm/make-fetch-happen#255

@wraithgar
Copy link
Member

Most of the smaller v10 changes in the cli npm/cli#6641

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

4 participants