Open hugovk opened 2 weeks ago
I would still consider whether we want to test on Windows Server 2016, but if this simplifies the CI configs then I suppose this is fine as well.
How useful is testing Windows Server 2016?
It looks like its standard support is EOL and only extended, paid support is available.
https://learn.microsoft.com/en-us/lifecycle/products/windows-server-2016
If it was a Linux distro, we would have dropped it 2.5 years ago.
As I understand it, paid extended support is currently only available for Server 2008 and Server 2012: https://learn.microsoft.com/en-us/windows-server/get-started/extended-security-updates-overview
For Server 2016 and Server 2019, there appears to be 10 years of regular support: https://learn.microsoft.com/en-us/windows-server/get-started/servicing-channels-comparison
With the Long-Term Servicing Channel, a new major version of Windows Server is typically released every 2-3 years. Users are entitled to five years of mainstream support and five years of extended support.
In fact, it seems that even Windows 10 Enterprise version 1507 (which is older than Server 2016) is still in Extended Support (i.e. free security updates according to https://learn.microsoft.com/en-us/lifecycle/policies/fixed#extended-support), assuming https://endoflife.date/windows has the correct date (I couldn't find any date on Microsoft's website).
This level of support to me sounds similar to Ubuntu Maintenance & Security Support (currently Ubuntu 20.04 LTS and later) or RHEL Maintenance Support (currently RHEL 8 and later).
We dropped Ubuntu 18 when it left Maintenance & Security Support around May 2023, https://github.com/python-pillow/docker-images/pull/180, and Ubuntu 20 slightly ahead of schedule because it only has Python 3.8 by default, https://github.com/python-pillow/Pillow/pull/8183#discussion_r1660807544.
However, I'd be fine with dropping support for VS2017 (dropping https://github.com/python-pillow/Pillow/blob/2e7da079cdadf24a5d17cc4b0d32df434777c789/winbuild/build_prepare.py#L441) and Windows 1507 (replacing this runtime linking with regular dynamic linking https://github.com/python-pillow/Pillow/blob/2e7da079cdadf24a5d17cc4b0d32df434777c789/src/display.c#L346-L348) if we decide that we don't include the only-security-updates phase of standard Windows support.
Closes https://github.com/python-pillow/Pillow/issues/7910. Replaces and closes https://github.com/python-pillow/Pillow/pull/8437.
Changes proposed in this pull request: