-
Notifications
You must be signed in to change notification settings - Fork 30k
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
Should we drop support for 32 bit Windows? #42543
Comments
I'm surprised that 32-bit support on Windows wasn't downgraded completely to Experimental at the same time that 32-bit on Linux was downgraded. |
As far as I remember linux 32 bit was dropped because of toolchain issues and the initial plan was to fix it later. That never happend and it seems noone really cares. FWIW the default on Azure WebApps/Functions is still 32 Bit windows. Don't know why and they support also 64 Bit but the default is 32 bit as far as I know. Maybe because the lower mem requirement of 32 bit windows allows significant savings for a cloud provider. |
That's also the kind of issues we have with Windows. |
@nodejs/tsc @nodejs/build @nodejs/platform-windows What do you think? |
My gut feel is that we'd get quite a bit more pushback for removing 32-bit windows compared to 32-bit xlinux. I know that there are still customers, at least for java, that still need the 32-bit Windows builds for whatever reason, so I suspect that would be the same for node.js as well. Although saying that, we could perhaps do with a few more windows devs at the project to help with issues such as the one you reference ... Perhaps dropping the tier it would make us find some volunteers more easily? ;-) |
Well, that time it was not even possible to get a compiler for the build machines to compile 32Bit code at all understanding the C++ standard require by v8. Google Chrome is available for 32Bit so in general it should work. But not sure if google uses msvc. Anyhow, I fully understand the problem and if there are not enough people to solve them it's better to drop 32Bit only instead delaying/blocking the whole project. |
Maybe someone could crawl through the daily download metrics in https://storage.googleapis.com/access-logs-summaries-nodejs/index.html (linked to from https://nodejs.org/metrics/) to gather some sort of evidence (either way). |
I actually think this is a good metric to track, specifically because a lot of the apps that "gamers" use end up bundling Node.js somehow (Electron or QT + Node.js).
I agree. |
What if Node.js adds a warning to Windows 32bit builds and we see if people notice/care? I agree with Matteo and Tierney that if companies care about this they should allocate some people to fix it. |
Based on the pushback we got around dropping Windows 7 I'm not that keen to go down this route. I'm open to downgrading 32-bit Windows from tier 1 if it's becoming impossible to keep working. |
The problem now is that we are not able to build it at all (with V8 10.1). |
With regards to when we dropped support for 32-bit Linux we also put in place the unofficial builds project https://unofficial-builds.nodejs.org/ where you could go (and can still go) to get x86 Linux binaries. We don't have anything in place to do anything similar for 32-bit Windows and from the sounds of it if the current problem(s) isn't solved we wouldn't have a binary at all (official or unofficial). |
Some numbers from the last quarter in terms of downloads. These are from => Operating System: => Architecture: The x86 number I believe is across all architectures but I think windows may be the only one that we still |
Build seems fixed in V8 10.2. |
I care. I now can't run NodeBB on my 32-bit virtual machine. Or, for that matter, Electron on v86. |
Those releases don't have npm. |
@hello-smile6 Electron builds Node.js differently than the Node.js builds we're talking about here. While I'm not sure if they'll follow suit, this theoretically doesn't impact Electron since they don't use our builds. |
😕 They should do. |
They don't. Also, Node.js is no longer in the Debian software repositories. Why were old versions removed? |
Those were never maintained by the Node.js project. Ask Debian software repository maintainers. |
Strangely, the latest release seems to have npm. It wasn't available the last time I checked. |
Actually, npm isn't available. |
There are binaries for npm, but they're in node_modules. |
If you'd like to create a separate issue for that, please do. Let's try to keep this issue on the subject of dropping 32 bit binaries. |
What will happen for people who use wine for some reason with nodejs? |
Use a 64-bit wine prefix? |
Another issue #46445 (comment) I propose we drop 32-bit win support on Node.js 20. otherwise it will be a heavy maintaining burden for us. |
I think that's probably the right decision now. We should also consider that Windows 11 and Server versions from 2012 onwards (2008 is out of support now, Win10 still supports it and is supported til Oct.2025 and is available via https://www.microsoft.com/en-gb/software-download/windows10ISO) did not have 32-bit versions, so the only use cases people would have to continue to be using it should be:
So I support dropping it in 20 - it will, if nothing else, let is gauge the reaction from the user base. |
+1 to dropping 32-bit Windows in v20+. Re-sharing the numbers from the OP one year later, usage of both Windows 7 32-bit (-0.08) and Windows 10 32-bit (-0.03) have dropped even further which suggests a trend of Windows users updating off of the versions of Windows that currently support 32-bit. Further, according to @sxa, there's no Windows Server version that supports 32-bit, so there's not uncertainty there anymore. |
We are currently gathering and analyzing usage data and telemetry from different sources, to better understand the need for support for this version at a more global level, and share those results with the core team. Hopefully we have more insights next week. |
@anfibiacreativa Do you have any results to share? |
A while ago a colleague in the Windows experience team reached out about this issue. Please let me bring this issue back to their attention. |
IMO if there's not a compelling reason soon, we should drop it in the next SemVer major. |
@anfibiacreativa thanks for following up. |
As noted above Win10 and thus 32bit is supported by Microsoft until October 2025.
It seems reasonable to have the build of NodeJS that will be in LTS at that point in time to be the last version with 32bit support. My understanding of this page, https://nodejs.org/en/about/previous-releases, indicates v22 would be best aligned, though a strong argument could be made that v20 would suffice given the general low usage of 32bit node. |
I develop software that has a decent userbase on weaker machines in poorer countries, and even they've seen 32 bit usage plummet to around 0.4% of users, with Windows 7 usage still at around 2%. I'm already having to use out of date build tools in our CI for both Rust and Go to get everything working for these users, whether Node drops it or not developers are going to be forced into it because of lowest common denominator sometimes. |
What would this mean for the Also, PassMark also has numbers on this: https://www.pcbenchmarks.net/os-marketshare.html. |
I don't think there's much point in deviating from the existing |
Closes: nodejs#42543 PR-URL: nodejs#53184 Fixes: nodejs#42543 Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: Michael Dawson <midawson@redhat.com> Reviewed-By: Marco Ippolito <marcoippolito54@gmail.com> Reviewed-By: Yagiz Nizipli <yagiz.nizipli@sentry.io> Reviewed-By: Robert Nagy <ronagy@icloud.com> Reviewed-By: Richard Lau <rlau@redhat.com> Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com> Reviewed-By: Jiawen Geng <technicalcute@gmail.com> Reviewed-By: Stefan Stojanovic <stefan.stojanovic@janeasystems.com> Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com>
Closes: nodejs#42543 PR-URL: nodejs#53184 Fixes: nodejs#42543 Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: Michael Dawson <midawson@redhat.com> Reviewed-By: Marco Ippolito <marcoippolito54@gmail.com> Reviewed-By: Yagiz Nizipli <yagiz.nizipli@sentry.io> Reviewed-By: Robert Nagy <ronagy@icloud.com> Reviewed-By: Richard Lau <rlau@redhat.com> Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com> Reviewed-By: Jiawen Geng <technicalcute@gmail.com> Reviewed-By: Stefan Stojanovic <stefan.stojanovic@janeasystems.com> Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com>
It's not really something that I want, but given the issues I'm having with #42115, I thought it was worth to bring up the idea.
There are some stats on https://store.steampowered.com/hwsurvey which show that there are actually much less Steam users (I know that's probably not representative of Node.js Windows users, feel free to share better numbers) on 32 bit Windows (0.27%) than on 64 bit Windows 7 (4.08%, and we already stopped supporting Windows 7):
The text was updated successfully, but these errors were encountered: