-
Notifications
You must be signed in to change notification settings - Fork 74
Closed
Description
Summary
We want to ensure that the CLI's engines field is as up-to-date as possible & reflects a realistic set of node versions that it will work on & that our team cares to "support".
Details
- Use the
enginesspec:^12.22.0 || ^14.17.0 || >=16.0.0- note: this means
15&17won't be supported byv9(this is becausenodedoes not support them anymore - ref. https://nodejs.org/en/about/releases/)
- note: this means
- Do not error but warn on undocumented
nodeversions
Exit Criteria
- Update engines in
cli - Update engines in
template-oss - Update dependencies blocked by old engines
- Update/refactor
knownBrokeninnpm/cli(ref../lib/cli.js)
Notes & References
Proposed major version support for npm 9.
12- npm 8:
^12.13.0 - npm 9: support for node 12 will be dropped
- npm 8:
14- npm 8:
^14.15.0 - npm 9:
^14.15.0 - I don't see a reason to change the supported versions of node 14. I couldn't find any features we would be unable to use by changing node 14 versions.
- npm 8:
16:- npm 8:
>=16 - npm 9:
^16.13.0 - In the past we've backstopped major version support at the version where it entered Active LTS support, which in this case is
16.13.0. This made sense for us but caused problems if other parts of the ecosystem settled on a different minor/patch version for LTS. For example,npm@8used^12.13.0andnode-gyp@9used^12.22.0which made upgrading difficult. We should collaborate with other packages to see what version of node 16 we should support.
- npm 8:
18:- npm 8: technically supported via
>=16 - npm 9:
>=18 - This drops support for node 17 but allows us to support node 19 as it is developed.
- npm 8: technically supported via
- Odd numbered major versions:
- npm 8:
^17and^19supported via>=16 - npm 9: All non-EOL odd versions with the caveat that dropping support for EOL odd versions is NOT a breaking change
- We want to support all non-EOL odd versions, but dropping support for them (eg when going from
>=16to>=18) is a breaking change in our current support contract. The proposed solution above would be documented in aSUPPORT.mdfile in all relevant repos.
- npm 8: