Discussion: Unify/solidify Node.js support #21668
Replies: 11 comments
-
Here are some easy requirements:
Not easy ones:
|
Beta Was this translation helpful? Give feedback.
-
A reminder of LTS schedule: {
"v4": {
"start": "2015-09-08",
"lts": "2015-10-12",
"maintenance": "2017-04-01",
"end": "2018-04-30",
"codename": "Argon"
},
"v5": {
"start": "2015-10-29",
"maintenance": "2016-04-30",
"end": "2016-06-30"
},
"v6": {
"start": "2016-04-26",
"lts": "2016-10-18",
"maintenance": "2018-04-30",
"end": "2019-04-01",
"codename": "Boron"
},
"v7": {
"start": "2016-10-25",
"maintenance": "2017-04-30",
"end": "2017-06-30"
},
"v8": {
"start": "2017-05-30",
"lts": "2017-10-31",
"maintenance": "2019-04-01",
"end": "2019-12-31",
"codename": "Carbon"
},
"v9": {
"start": "2017-10-01",
"maintenance": "2018-04-01",
"end": "2018-06-30"
},
"v10": {
"start": "2018-04-24",
"lts": "2018-10-01",
"maintenance": "2020-04-01",
"end": "2021-04-01",
"codename": ""
},
"v11": {
"start": "2018-10-23",
"maintenance": "2019-04-01",
"end": "2019-06-30"
}
} Meaning:
Therefore the next major change is that on 2018-10-01, 10 will be added to the list of "active" LTS. Here is our internal list, used for Travis-only right now: const policies = {
lts: [6, 8],
active: [8, 10],
current: [10],
lts_active: [8],
lts_latest: [8],
}; I think this is how it would change: const policies = {
lts: [6, 8, 10],
active: [8, 10, 11],
current: [11],
lts_active: [8, 10],
lts_latest: [10],
};
|
Beta Was this translation helpful? Give feedback.
-
So something to work out is how to "bump" ranges where the lower end is now unsupported. e.g. someone currently using e.g. if you care about supported/LTS versions only then you would want to bump to Note: I am not aware of any place where the Node.js project contains a semantic or even scrape-compatible list of minimum LTS versions or secure versions, so we would have to store these ourselves. Another challenge if we do this is how to communicate it in PRs. Right now we don't really have a way to say "Version X is now LTS" or "Version Y is now in maintenance mode", etc. Similar for if we need to bump a range for security reasons. |
Beta Was this translation helpful? Give feedback.
-
@types/node is also interesting, because Y.Z versions are not kept in sync with node releases (e.g. @types/node 8.9.0 might be the best declarations for Node 8.12.0) |
Beta Was this translation helpful? Give feedback.
-
Thanks @nevir. Indeed, |
Beta Was this translation helpful? Give feedback.
-
For node, I think matching the major version is good enough; but that heuristic definitely doesn't work for all |
Beta Was this translation helpful? Give feedback.
-
Link to PR discussion: #2079 |
Beta Was this translation helpful? Give feedback.
-
Until recently, we had observed the correct behavior of Thanks! Note: Please LMK if this belongs in https://github.com/renovatebot/config-help/issues |
Beta Was this translation helpful? Give feedback.
-
We haven’t intentionally changed it. Can you reproduce in a public repo? |
Beta Was this translation helpful? Give feedback.
-
In a new issue please |
Beta Was this translation helpful? Give feedback.
-
@rarkins I need a This would also help to unify the node handling for all managers (at least for single replacement). So i would start to create a new |
Beta Was this translation helpful? Give feedback.
-
Node.js support is still not where I'd like it to be, so I'm creating this issue to bring all topics together and hopefully work out a plan.
Node.js can be updated in:
package.json
>engines
package.json
>devDependencies
.nvmrc
.travis.yml
: often multiple versions, easy to parse.circleci/config.yml
: also often contains multiple versions, difficult to parse because there's no convention for how multiple versions are includedDockerfile
docker-compose.yml
In addition:
@types/node
that we want to keep in sync toofoo/node
if people build their own custom oneThe main difficulty is trying to guess if people actually want their Node.js updated to next major versions or not.
The second difficulty is handling when certain package files contain multiple versions (e.g. Travis). To help with that, we have
supportPolicy
defined but it isn't really used widely.Finally, for now we disable major updates to
node
and*/node
packages.Beta Was this translation helpful? Give feedback.
All reactions