-
Notifications
You must be signed in to change notification settings - Fork 594
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
[rush] Add support for "Current" Node version (12.x) #1373
Comments
We've generally only supported versions of Node once they enter LTS. 12.x.x will enter LTS on October 22, 2019 (https://nodejs.org/en/about/releases/). Node's docs say:
So we haven't supported versions of of Node until Node's developers deem them "ready for general use." We could consider revising that to also include Current versions of Node. Are there specific features in Node 12 that you need? |
After some offline discussion, I'm convinced that we should support Current node versions in addition to LTS versions. Many teams use Rush to build tools and libraries that are published publicly, and from the Node docs:
We should help developers who use Rush make sure their projects are ready for the LTS release during the six-month transition period. |
A few questions:
|
My thoughts on above:
|
I will submit a PR for this today. |
That seems reasonable.
If it's not a simple formula, then there should really be an NPM package that maintains a table of NodeJS version numbers, with an API that allows you to query whether a given version number is:
Does that exist? If not, it should be pretty easy to create. We could just stick it in node-core-library, but I'd imagine other community people would want to use it. When we tried to offer support for "Unstable" builds (and by consequence, encouraged users to go down that road), it was a dumpster fire. |
Node does expose an API to detect whether a release is LTS:
|
Hrmm... I was confused before. I had wrongly assumed that "Current" was applied after a certain amount of stabilization releases, just like "LTS" From PR #1381 I now understand that "Current" simply means the latest major version. In other words, The full story is here: https://github.com/nodejs/Release#release-plan They say:
This seems to imply that pre-LTS Is that correct? Their CHANGELOG.md seems to support this. For example 10.16.0 latest LTS is fairly tame. Whereas 12.6.0 latest Current and 12.5.0 Current have comparably more churn. It might be useful to revisit the point of this PR. The original error message said:
The motivation behind that message was:
Thinking about this though, "The Rush team will not accept issue reports" is a fairly heavy-handed statement that arguably goes way beyond the actual goals. Lemme chat with @iclanton and see if we can come up with a clearer statement. It may seem like nitpicking, but we put a lot of energy into supporting people, so it's important to accurately communicate our position to the community. |
Here's what we came up with:
How's that sound? |
Here's a PR that makes those changes to Rush: #1388 |
In #1388 (comment) @mikeharder said:
Per our discussion above, the odd-numbered releases are not on any path to Long Term Support. Presumably they do stabilize over time, as compared to the If you just want to make the Rush warnings go away in your master branch, we can provide a setting for that. 👍 But if you're asking the Rush maintainers to invest resources in supporting non-LTS release branches, I'm curious about the rationale. Node.js isn't just a library, it's the runtime that executes every file from your toolchain. In the past we've seen serious Node.js regressions in bread-and-butter APIs like writing a file to disk. I'm somewhat uncomfortable about leading people to use half-baked releases for serious work. |
This plan seems fine to me! One minor suggestion:
Could be read in two ways: that the major version is not even, or that the major version is unusual 🤣. Also maybe people not familiar with Node's versioning tick-tock won't understand the import of an odd version number. Suggestion:
"odd-numbered" is seemingly the official nomenclature. I'm not sure they also call them "pre-release" so I'm happy with some other term. |
BTW I didn't mean to sound dismissive about allowing odd-numbered builds. I interpreted this issue as calling attention to a usage scenario that we haven't considered in the past. Thus my wall of text is about understanding exactly how you guys use Rush, to make sure we can document it and support it properly. I'm usually reachable on Gitter chat if anyone wants to talk through more details offline. |
I chatted about this offline with @mikeharder and he agreed that odd-numbered versions aren't important to support and the warning shouldn't be disabled for them. Thus I think we have a consensus about the design. Mike also pointed out a couple logic issues in the current PR that made the intent less obvious. We'll add PR comments about that. |
Please add support for the "Current" Node version (
12.x
), in addition to the "Active LTS" (10.x
) and "Maintenance LTS" versions (8.x
).https://github.com/microsoft/web-build-tools/blob/b31c2e73ce549ce37531ef39034c860cf5782cd4/apps/rush/src/start.ts#L22-L36
The text was updated successfully, but these errors were encountered: