Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Update using/windows to state that 3.12 supports Windows 10 and newer, not 8.1. #98383

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

Open
gpshead opened this issue Oct 18, 2022 · 5 comments
Labels
3.12 only security fixes docs Documentation in the Doc dir OS-windows

Comments

@gpshead
Copy link
Member

gpshead commented Oct 18, 2022

Documentation

Our (main branch using-python-on-windows docs)

Currently states "This means that Python 3.12 supports Windows 8.1 and newer. If you require Windows 7 support, please install Python 3.8."

I believe this is just a leftover claim from 3.11 given what we say in https://peps.python.org/pep-0011/#microsoft-windows and https://learn.microsoft.com/en-us/lifecycle/products/windows-81 as the Microsoft Extended Support end date is January 2023, 9 months before 3.12 will be released.

We probably want that to say "3.12 supports Windows 10 and newer. If you require Windows 8.1 support, please install Python 3.11" ?

Clarification from the Windows folks would be good here.

@gpshead gpshead added docs Documentation in the Doc dir OS-windows 3.12 only security fixes labels Oct 18, 2022
@eryksun
Copy link
Contributor

eryksun commented Oct 18, 2022

Python 3.12 won't support Windows 8.1 according to the support policy in PEP 11, which states that a "new feature release X.Y.0 will support all Windows versions whose extended support phase has not yet expired". Extended support for Windows 8.1 ends on 2023-01-10. Python 3.12 is scheduled for release on 2023-10-02.

Note that extended support for Server 2012 R2 ends on 2023-10-10, just past the planned release date of Python 3.12. There is no benefit in terms of unconditionally adopting new features from Windows 10 if Server 2012 R2 (6.3.9600) has to be supported. Maybe the planned release date of 3.12 should be delayed a bit to sync this up.

@zooba
Copy link
Member

zooba commented Oct 19, 2022

There's a 21/31 chance that we'll release 3.12 after the end of 2012 R2 extended support 😉

I vote we just fudge the dates and say that 2012 R2 will go at the same time. We normally refer to consumer releases anyway, and let Server users infer from that.

@CAM-Gerlach
Copy link
Member

CAM-Gerlach commented Nov 6, 2022

For the benefit of others reading this issue, see #76773 and its linked PRs for how this was handled for Windows Vista-8.0

Some points of note:

  • There is apparently no longer a working 8.1 buildbot; however, the latest main branch still builds, runs and the test suite passes (minus a few unrelated transient, environment-specific and defective-test failures) as of today on my Windows 8.1 Pro x64 test machine.
  • It makes sense to drop support for 8.1 and 2012 at the same time, either in 3.12 or 3.13, since there would be little benefit in dropping the former without the latter.
  • Windows 8.1 never had the uptake that Win 7 or Win 10 did, especially by the larger institutional users that tend to have slower upgrade cycles (not sure about 2012 server, though), and usage share as a percentage of total Windows versions is around 3%. 1
  • When dropping 8.1, it seems worth also thinking about whether support for EoL Windows 10 versions should be dropped too, at least those earlier than Windows Server 2016 (i.e. Windows 10 1607), the earliest still-supported mainstream version of Windows 10/Windows Server, which seems to strike a reasonable balance between tying support to consumer or even enterprise Win 10 GAC EoLs 2, and supporting all the way back to the earliest Win 10 LTSC release (1507) 3.

Our (main branch using-python-on-windows docs) currently states "This means that Python 3.12 supports Windows 8.1 and newer. If you require Windows 7 support, please install Python 3.8." I believe this is just a leftover claim from 3.11

More specifically, the current docs version is automatically injected here, so this will just continue to state the currently supported version until a decision to drop support for it is made and implemented, presumably on this issue.

Python 3.12 won't support Windows 8.1 according to the support policy in PEP 11, which states that a "new feature release X.Y.0 will support all Windows versions whose extended support phase has not yet expired".

Just to note, PEP 11 doesn't actually say that new feature releases will only support non-EoL Windows versions or that EoL Windows versions must not be supported in new feature releases; rather, it only requires that non-EoL Windows versions be supported.

Footnotes

  1. Full disclosure: I do have a personal interest in retaining 8.1 support through at least the initial 3.12 development cycle, because one of my main Windows dev machines is still on Windows 8.1, and I only plan to complete the migration to Win10 (which will require switching to a full clean Win10 installation I've installed in parallel to the original) once the the EoL occurs (i.e. on or about the first missing Patch Tuesday), due to the time and disruption that setting up and migrating everything properly will cost for little to no meaningful benefits to my workflow and a further downgrade in user interface, experience and control/customizability to mobile-OS standards. However, I figure my situation is fairly unusual; most folks in my shoes are likely either still on Windows 7 (as I would be, if not for the security and compatibility issues), bitten the bullet and upgraded to Win 10, or switched entirely to Linux (whereas I still need to retain a Windows machine for some key research, etc. software that won't work on Wine, and a few other things).

  2. Tying support to the home or even enterprise GAC EoLs seems problematic at best, as due to the 1.5 year consumer support cycle, the latest available version at the start of development will be EoL before that feature version of Python is released, and even with the 2.5-year Enterprise timeline, the earliest supported release could still be later than any release of Windows Server, leaving server users unable to install the latest version of Python.

  3. As LTSC is only intended for, and generally mostly only used by, embedded, IoT, safety/mission-critical and similar deployments, which would be unlikely to need or want an upgrade to the latest Python feature release.

@seanbudd
Copy link

Is python 3.14 going to drop Win 8.1 support?
It's quite challenging to know what platforms your product supports without clear communications on what platforms Python supports.
Does 3.12 and 3.13 even support Windows 8.1 anymore given #110375 and the above comment?
People on this reddit thread claim Windows 8 is only stable on Python 3.9.
The downloads on the python website still imply Windows 8.0 is supported, even though that's already been dropped in code.
If we switch to 3.12/3.13/3.14 are we unknowingly dropping support for Win 8.1 devices?

Would a PR be accepted to drop Windows 8.1 properly in code and update docs for 3.14?

@zooba
Copy link
Member

zooba commented Apr 14, 2025

Is python 3.14 going to drop Win 8.1 support?

Yes, but we're only likely to block it or break it if we need to (and if enough people ask questions like "why can I still use it?" then we may decide we need to, because those kind of questions waste our time).

Are we going to hold up releases or schedule updates to fix issues in 8.1? No. That's our definition of "support", not whether it's possible to use - whether we'll react to issues.

Would a PR be accepted to drop Windows 8.1 properly in code and update docs for 3.14?

A PR to update docs is fine. A PR to add a feature that requires Windows 10 and won't work at all on Windows 8.1 is also fine.

A PR to explicitly block Windows 8.1 without being tied to something that won't work is not fine.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
3.12 only security fixes docs Documentation in the Doc dir OS-windows
Projects
None yet
Development

No branches or pull requests

5 participants