-
Notifications
You must be signed in to change notification settings - Fork 18k
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
all: announce end of support for old Windows releases #52188
Comments
@zx2c4 The creation of this issue does not signal a plan to drop support. This issue has been created in order to add an explicit step for the consideration of our support stance during each release. |
Makes sense. One nit though:
Windows 7 is basically out of support now by Microsoft. But it's still supported by Chrome. I tried to come up with a reasonable set of criteria for when I should/could drop support for old Windows for my own software, but ultimately I kept coming back to, "if Chrome supports it, why shouldn't I?" I wonder if Go finds itself in a similar situation there too. |
I still use Windows 7 on one of my computers. And I have to install Microsoft updates on it pretty regularly (every week). So there are still enough users for Microsoft to care. Alex |
Adding a data point observed in Git for Windows release notes upcoming breaking changes section:
|
Another data point: .NET support for Windows 7 and 8.1 will end in January 2023: dotnet/announcements#226 |
Only kind of:
2012R2 is v6.3, like 8.1. |
@thanm recently ran into a problem where it seems recent Windows C toolchains produce binaries that don't run on the Windows 2008 (≈ Windows 7) builder, which is further support for dropping Windows 7. I'm probably summarizing that poorly. Than? |
Details for the problem I ran into can be found in #56904. Use case is a bit on the obscure side (external linking + race + windows-amd64-2008 builder). I have to admit that I am not sure exactly what vintage of windows this builder is. |
I suspect windows-amd64-2008 builder runs Windows Server 2008 (search for "Windows Server 2008" in https://en.wikipedia.org/wiki/List_of_Microsoft_Windows_versions ) and Windows Server 2008 is just a Windows Vista (search for "Windows Vista" in https://en.wikipedia.org/wiki/Windows_Server_2008 ). Windows Vista is a version between Windows XP and Windows 7 (search https://en.wikipedia.org/wiki/List_of_Microsoft_Windows_versions for "Windows Vista"). Windows Vista was never a big / important version of Windows. I doubt there are many Windows Vista users. Windows 7 is different from Windows Vista. And the problem @thanm is having is most likely to do with gcc and not Windows. Windows does not come with free C compiler. So Go uses gcc for cgo. So we cannot blame Windows if gcc does not work in some situations / or Windows versions. I don't think we should drop support of old versions of Windows if gcc does not work there. I doubt many Go Windows users use cgo, and broken gcc does not affect them. Personally I only have Windows 10 these days. And I don't even use it day to day anymore. So whatever you decide here is fine with me. Alex |
Trouble with the race detector doesn't seem like reason enough to drop a Windows version to me. However, Chrome is dropping Windows 7 and 8.1 support at about the same time Go 1.20 will come out, so maybe the timing is right anyway. |
I am not against dropping Windows 7 support in Go 1.20. But what are the benefits of dropping support for the Go Team? Chrome might have some problems supporting Windows 7. What are the problems with Windows 7 that Go Team have? Alex |
Every first-class port is a drain on our resources to some extent; tests can flake, compilers can be broken as above, running builders costs money. So perhaps we have opposite perspectives: my attitude is that things have to continuously justify their existence, whereas yours is that we should only remove them if they're causing substantial trouble. Maybe we should be able to declare particular OS versions second-class; if we could do that I'd say that we can just demote 8.1 and lower to second-class and let interested parties such as yourself maintain them. |
I don't believe that Windows 7 users report more issues than others. And Go Team does not have Windows 7 builder. So I don't see why Go Team would pick on Windows 7 users. On the other hand it is good marketing for the project when it supports its existing users (while other projects dropping support for their OS). Alex |
As a reminder, from a Go project policy perspective, we've already set the criteria for keeping an operating system supported. That discussion was #19002, and the documented policy is at https://github.com/golang/go/wiki/PortingPolicy#removing-old-operating-system-and-architecture-versions. Quoting that text:
For Windows, the manufacturer support factor is the most important one. Since MS has dropped Windows 7, so should we (by announcing in Go 1.20 that it will be removed in Go 1.21). |
Nothing left to do until the proposals above are processed and we decide what to put in the release notes. OK after RC. |
Yep, Line 459 in 704401f
This is info you are looking for: https://go.dev/wiki/PortingPolicy. The first step would be to create a proposal asking to reintroduce Windows 7 support and volunteering to support it. Just take in account that it might be rejected. In fact, IMO it will be much easier for your to just maintain a private fork of Go that can support your business needs instead of having to maintain something for the whole community. |
@qmuntal thanks for the info! I will bring it back to my team to decide how we want to move forward. |
Updates golang/go#52188. Change-Id: I97c3e8ebcfd325016b6610cf219a48c50d0584be Reviewed-on: https://go-review.googlesource.com/c/wiki/+/556896 Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org> Commit-Queue: Quim Muntal <quimmuntal@gmail.com>
I would support this change if it's not too invasive. |
I'm feeling like there may be some bystander effect going on here. Who should make this change? I'm happy to do it, but I will have to ramp up as a golang contributor. I'm not sure if there's a core team that would normally make changes in this part of the code. |
I found this project, which can make programs compiled by the new version of golang run on win7. |
I've successfully compiled the latest version of Hugo (v0.125.4) using the latest version of Go (v1.22.2), with VxKex enabled. Hugo itself (which also needs to have VxKex enabled) and the website I built with it are functioning perfectly. While I'm not exactly a programmer, it appears that only a select few Win 10+ APIs were causing trouble for Go on Windows 7. It would be absolutely fantastic if some compatibility enhancements could be implemented, perhaps in the upcoming 1.21 & 1.22 update to ensure it's at least functional on Windows 7, even if it's not officially supported. Kudos to the team for all their hard work! |
This comment was marked as off-topic.
This comment was marked as off-topic.
I wonder why Plan9 (with a market share around 0) receives a better support than windows 7 still supported on embedded devices with extended support (market share around 3% for online devices, but higher in developed countries and on industrial devices). I understand that it's expensive to keep windows 7 supported as first class platform, but I don't even think it's wise to completely broken it. |
Go doesn't support old versions of Plan 9 either. And, more importantly, nobody on the core Go team works on it; it is maintained by Plan 9 supporters. I have already indicated that it would be OK if a Windows 7 supporter sent in a patch to fall back to |
You keep breaking it, we keep fixing it; Simple binary patcher to make Go >=1.21 exe's work on Win7/Server 2008: https://github.com/stunndard/golangwin7patch |
There are no changes here for the Go 1.24 milestone. Moving to the next. |
https://github.com/thongtech/go-legacy-win7/releases/tag/v1.23.4-2 Big thanks to thongtech for the work. |
Support for Windows 10 will end in October 2025. According to the porting policy, we should pre-announce the end of support for Windows 10 and Go 1.26 in the Go 1.25 release notes. |
Several Windows 10 LTSC releases will continue to be supported by Microsoft well past that date. We are running Windows 10 IoT Enterprise LTSC 2021 for example, which is supported until January 2032. |
Microsoft dropped support of Windows 7 POSReady ESU 3 on 7 October 2024: https://learn.microsoft.com/en-us/lifecycle/products/windows-embedded-posready-7 Microsoft is still supporting Windows Server 2012 (equivalent to windows 8) until October 13, 2026 via ESU: https://learn.microsoft.com/en-us/windows-server/get-started/extended-security-updates-overview Windows 10 Enterprise LTSC 2021 will be supported until 2032, and support will be probably extended via ESU. So don't rush to drop support |
Please don't drop Win 10 support any time soon. We support clients that are not tech savvy and are very slow to upgrade their software. We can't control what OS they run. Dropping Win7 was a huge headache for us. |
@CameronGo @StefanoBalzarottiNozomi @jlevitt These are great points. Thank you for posting them. Please note that we won't drop support for Windows 10 without an accepted proposal. |
Microsoft continuously releases new version of Windows. We should announce end of support for Windows versions as we discover that they are either no longer supported by Microsoft or no longer have any use as a builder.
Relevant recent discussion: #47845
/cc @golang/release
The text was updated successfully, but these errors were encountered: