-
Notifications
You must be signed in to change notification settings - Fork 30.1k
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
Dispute of "block running on EOL Windows versions #31954" - Alternative Suggestion #33034
Comments
Reference Issue: #33000 |
Node.js has been doing that for some time. There are only so much resources to go around and we choose to spend them elsewhere. If you insist on using an unsupported, end-of-lifed operating system, your options are:
I'm closing this as a wontfix. |
Fwiw, I also disagree with the practice of exiting the process if the OS is unsupported. I get that people shouldn’t be using Windows 7 anymore, but if they want to and we tell them it’s unsupported, that’s not really our problem but theirs, right? @xCykrix If you open a PR that removes the |
The current practice came about after ample discussion. The reason I closed this so quickly is that trying to backtrack on it just wastes everyone's time, including the OP's. Please close this again. |
@bnoordhuis Do you have a reference to that discussion? |
@bnoordhuis I see zero discussion on this particular topic in that thread. The most popular suggestion in it actually seems to be a warning. I’ll be re-opening this and keeping it open. |
@addaleax I don't understand what is unique to this particular issue was not discussed previously. What I saw was:
"stop on startup" is specifically mentioned several times, final mention in CTC meeting notes above:
|
What's unclear about #3804 (comment)? The PR is #5167 in case you missed it. |
@bnoordhuis The comment does not mention stop-on-startup behaviour, only dropping support? And the PR doesn’t contain any discussion about it, either. The CTC meeting notes do contain a reference, but nowhere do I see a reason why we chose to go that particular path of not allowing Node.js to run at all under unsupported Windows versions. |
The vote was to stop it from running because we don't want users to waste time when it doesn't work, we don't want to receive bug reports or pull requests that need to be triaged/reviewed, etc. To be clear: I don't want to revisit that discussion, I'm posting this only to clarify. I really would like for you to close this issue again. It's either that or bringing it before the TSC again. |
Having had a couple of years to stew on it, rather than removing the stop-on-startup and warning by default, I'd certainly be open to a command-line option that would skip the check on startup with a warning emitted to the terminal. Doing so would at least make it easier to test what does or does not work without having to do a recompile and, if by some miracle things continue to work, fantastic.
... Seems reasonable enough. |
Not that my opinion has any influence, but anyway I'll share my thoughts. I see several reasons for not fully dropping Win7 support:
|
many vendors allow free upgrade. looks like that is not the case here? pros (of allowing untested / life-ended platforms):
cons:
I do not see one outweighing another; so may be other parameters could be brought in to the considerations. |
The idea @jasnell made, isn't that bad. It wouldn't be either hard nor very intrusive to add the proposed flag only to the binary (node_main.cc). It wouldn't be added to the installer then, so only those who really want it, can get the binaries and use those. This would still stop those who shouldn't be using it, but enables those who know what they are doing/really need it on win7. I can therefore only second his suggestion. EDIT: For now, I just compiled my own windows executable without the newly added check. It works, but it's far from the best solution and I doubt many people want to do the same. |
@fastcoder15 -
agree, to the extent of windows is not free and upgrading is not free, so the current state causes users to spend more. This is the very strong reason that makes this issue relevant IMO.
couple of concerns here:
bottom-line: w.r.t do this or don't do this, I am still in the middle, and can reach to an opinion based on more user feedback or more insights. |
I am very happy to see this actually got some discussion. I was quite discouraged to see it closed so quickly with only one member's feedback being present. @addaleax @jasnell @gireeshpunathil What is your stance after all the further discussion? Removing the check or adding the flag ( @Jisagi @fastcoder15 Thank you both for your insight into this! I appreciate people taking a second look at this and leaving suggestions. I'll be hopefully opening an official PR for it shortly depending on responses. I'd want to know what is favored (deprecation notice or bypass flag). I'm favoring the deprecation notice at runtime as that would break fewer applications currently active that may not be actively monitored. |
@xCykrix - for me, removing the check or adding the flag is an implementation detail with differing level of abstraction and control; and a consensus on doing or not doing it should happen first, and for me, as notes earlier, I am unable to make an opinion with the current info. |
@gireeshpunathil What would be the best way to gather a "consensus"? Is there a favored location for discussing this or should I do a PR implementing one of these with the alternative also being present in discussion for future before approval and etc.? My apologies, as I wasn't even considering to open it myself at the time of writing as I still have a lack of understanding for the development cycle. I've been reading all of the documentation and currently installing the Windows build tools required to even test. |
there are few ways:
Technically this code change proposal implies a policy change proposal too, and hence I am personally inclined to second and third options. |
There's no "optionally" unless the rules changed radically since I stepped down. The policy was set by the CTC, what is nowadays the TSC. Revisiting it means it needs to be ratified again. |
Have you tested it yourself? The article you referenced is not reliable. We tested these and similar articles earlier using a virtual machine and the Windows 10 cannot be installed without entering a valid Windows 10 serial key. Please read the official FAQ page. It clearly says that the Windows 10 free upgrade ended on July 29, 2016. Especially read this:
|
Yes (not on a virutal machine though, but I have a feeling that it wouldn't work properly on VMs). Maybe it's not officially supported by Microsoft, but they didn't disable that feature either. |
No, it’s just Windows. |
@addaleax so I have the Should I go ahead and open it with that knowledge heavily present first? It is far above my scope of knowledge with this language haha. |
@xCykrix It’s expected that tests will fail when there is output on stderr, so that should be okay. 👍 |
I wonder if we should make it consistent across platforms (either remove the check from Windows or add it to other platforms). Does anyone know why we went with a different (more "proactive") approach for Windows? |
We actually do on macos because we specify the minimum at build time. The binaries simply won't load on older versions of macos. So that's windows + macos. The reason we don't on linux is because It's Complicated: the heterogeneous nature of linux makes reliable distro detection difficult. In practice the binaries won't load because of missing symbols, or won't run because of missing system calls. That effectively enforces our baseline so you could say it's really windows + macos + linux. |
As per the docs, there is no difference between issue and PRs w.r.t tsc agenda. What matters is whether we are in an impasse or not:
either ways, there is a PR opened already, so this (tsc agenda or not) is resolved |
@Muv1 While I can see your frustration, as that was my reason for creating this, that is no reason to lash out at the development team. It has been the technical practice to disable using Node.js for EOL operating systems, but it is inconsistent and does not have a way to disable that check at this time (which this is aiming to fix!). While I am still leaning more towards warnings that are posted at runtime, the contributors have brought good points that may land this with @joaocgreis's suggestion regarding environment variables given that a flag would not be easily passed to child processes of Node.js. Windows 7 has been around for almost the entire Node.js project so Windows deprecation does not yet have well-defined precedences yet and thus only went how Windows XP and Vista have been deprecated in their supported time. You can find the general overview of what the technical steering committee thought of this while talking on this subject Node.js YouTube April 29th, 2000 TSC Archive Meeting. Just give it a little time to be discussed, it will be brought up again in the next TSC meeting that it was referenced in right above your message, and isn't something that can be changed overnight. I wouldn't jump ship just yet. Give it a little time to be discussed and check back on the 7th in either this issue or the other one referenced by joaocgreis to see what is happening. 🙂 |
Looks like #33176 should address this. Removing agenda tag. |
To prevent any future confusion, I'm going to go ahead and close this and my attached pull request as I am in support of #33176 myself, and it seems consensus has been met for it. |
Fixes: nodejs#33034 PR-URL: nodejs#33176 Reviewed-By: Bartosz Sosnowski <bartosz@janeasystems.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com> Reviewed-By: Anatoli Papirovski <apapirovski@mac.com> Reviewed-By: Gireesh Punathil <gpunathi@in.ibm.com> Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
Fixes: #33034 PR-URL: #33176 Reviewed-By: Bartosz Sosnowski <bartosz@janeasystems.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com> Reviewed-By: Anatoli Papirovski <apapirovski@mac.com> Reviewed-By: Gireesh Punathil <gpunathi@in.ibm.com> Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
Fixes: #33034 PR-URL: #33176 Reviewed-By: Bartosz Sosnowski <bartosz@janeasystems.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com> Reviewed-By: Anatoli Papirovski <apapirovski@mac.com> Reviewed-By: Gireesh Punathil <gpunathi@in.ibm.com> Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
Can I do this? @addaleax? Does it still matter? |
Can I remind anyone that Windows 7 is still supported through 2023 under MS's Long-Term Support contracts? Should people assume that node is actually checking for support? I don't suppose the issue of support has anything to do with purchasing and now owning github? |
Is your feature request related to a problem? Please describe.
Dispute of PR #31954
Describe the solution you'd like
Changing of "Windows 8.1+ Required" to a warning regarding the usage of EOL operating systems that may inexplicably lead to the software failing to function for any reason.
Continuing support of Windows 7 at its EOL, even in a minimal state, up until the point that it becomes a burden to the active scope of the project.
It is currently in a known working state at the last version before
14.0.0
, and I believe it will continue to work for the near future given that no significant changes will be made to Windows 7... ever...Describe alternatives you've considered
I cannot see any possible alternatives besides removing the commit in a local fork and compiling the binaries myself.
This could also be circumvented by using a Linux virtual machine, but that is a significant hassle and is the last resort for me.
My full schpeel
While I struggle to understand the reasoning behind this, I deeply disagree with #31954 restricting the ability to use Windows 7.
I feel this should be removed and/or at least optional in some form. This could be achieved with a warning at runtime instead of failing to enter runtime) to the risk of using an EOL operating system that may result in the software inexplicably not working. Even going as far as offering minimal support for EOL operating systems if you do not wish to support this operating system any further past compiling it with its known working state.
Windows 10 left a bitter taste in the mouth of many with poor quality control and update mechanics. Given that Windows 7 is quite stable at its End of Life, I believe it should be supported up until a point that it cannot be supported any longer due to limitations in the scope of the project that prevents it.
The text was updated successfully, but these errors were encountered: