-
-
Notifications
You must be signed in to change notification settings - Fork 929
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
Remove Node.js 16 support #7240
Comments
👎 for me Also could you add a list of the dependencies that are currently affected? |
I don't think I have a strong opinion on this, though personally I have no issue dropping two node LTS issues in a major release (since it is EOL). We could also always release a v17 of Stylelint relatively soon after v16, if we want to pace it out (there are some other major-breaking changes that are smaller-scale that I could work on there).
Would that be affected? |
Exactly my point. |
Listing up dependencies is a good idea. Sharing $ npx ls-engines@latest
`node_modules` found; loading tree from disk...
┌────────┬─────────────────────────────────────────────────────────────────┐
│ engine │ Currently available latest release of each valid major version: │
├────────┼─────────────────────────────────────────────────────────────────┤
│ node │ v20.8.1, v19.9.0, v18.18.2 │
└────────┴─────────────────────────────────────────────────────────────────┘
┌───────────────────────────────────┬───────────────────────────┐
│ package engines: │ dependency graph engines: │
├───────────────────────────────────┼───────────────────────────┤
│ "engines": { │ "engines": { │
│ "node": "^16.13.0 || >= 18.0.0" │ "node": ">= 18" │
│ } │ } │
└───────────────────────────────────┴───────────────────────────┘
┌────────┬─────────────────┬─────────────────┬──────────────────────────┐
│ engine │ current version │ valid (package) │ valid (dependency graph) │
├────────┼─────────────────┼─────────────────┼──────────────────────────┤
│ node │ v20.8.1 │ yes! │ yes! │
└────────┴─────────────────┴─────────────────┴──────────────────────────┘
Your “engines” field allows more node versions than your dependency graph does.
┌──────────────────────────────┬──────────────┐
│ Conflicting dependencies (1) │ engines.node │
├──────────────────────────────┼──────────────┤
│ postcss-safe-parser │ >=18.0 │
└──────────────────────────────┴──────────────┘
If you want to narrow your support, you can run `ls-engines --save`, or manually add the following to your `package.json`:
"engines": {
"node": ">= 18"
} Currently, the following deps require Node.js 18:
Also, the following are dev deps:
|
We should follow lint-staged footsteps and go directly to ≥18.12.0 for v17. |
Major releases have historcally been troublesome for the ecosystem (especially for plugin authors), which is why we only usually do one a year. As Node 16.0.0 has already reached EOL, I suggest we jump straight to Node 18.12.0 for |
I am not against it but that will delay v16 even more.
What about changing that to once every 6 months? |
I admit I'm not familiar with the 16-18 migration, but is there a specific reason why? I would have thought that dropping support for a Node version is pretty low-lift. I've been unable to help with larger reviews, but bumping dependencies / changing the package requirements is definitely something I can put some cycles into! |
@jeddy3 Thanks for the supplement. Considering the burden on plugin authors, I agree with keeping the one-year pace of major releases. I don't have a strong opinion here, but if we could drop Node.js 16 support with Stylelint 16.0.0, the number of possible dependency problems (e.g., cannot update some deps requiring Node.js 18 or later) would decrease from now on. Although I'm unsure about the disadvantages of cutting Node.js 16 users away. |
Apart from our dependencies being outdated and the EOL state there's possibly another reason that would warrant stepping directly to 18: switching the test runner. would be updated
punted to v17 due to pure ESM
|
@Mouvedia Thanks for listing the deps. I have the same idea about them.
I believe this built-in test support with Node.js 18 is unstable yet, right? Also, the test coverage feature may not be mature. Probably, we should open another ticket to discuss the migration to |
It seems like the consensus is that the pros of jumping to 16 outweigh the cons. I'll label it accordingly. I can pick this one up. |
We will remove Node.js 14 support in the next Stylelint version 16.0.0 (#6740).
But Node.js 16 also reached EOL in September 2023. See the announcement about Node.js 16 EOL:
Bringing forward the End-of-Life Date for Node.js 16
Thus, some of the dependencies or libraries have dropped the support for Node.js 16. So should we also drop Node.js 16 in the next version 16.0.0 (#6930)?
I want any feedback. Thank you.
The text was updated successfully, but these errors were encountered: