python-pillow / Pillow

Python Imaging Library (Fork)
https://python-pillow.org
Other
12.32k stars 2.23k forks source link

Test oldest Python on 32-bit Windows 2019 and remove AppVeyor #8525

Open hugovk opened 2 weeks ago

hugovk commented 2 weeks ago

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:

nulano commented 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.

hugovk commented 2 weeks ago

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.

nulano commented 2 weeks 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.