From 1d956c9a67ce47377fbe7fdbb44cd8c4dedce063 Mon Sep 17 00:00:00 2001 From: Petr Viktorin Date: Fri, 21 Nov 2025 12:27:03 +0100 Subject: [PATCH 1/5] PEP 11: Unsupported platforms & POSIX --- peps/pep-0011.rst | 84 ++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 68 insertions(+), 16 deletions(-) diff --git a/peps/pep-0011.rst b/peps/pep-0011.rst index 16002dd539f..8b65a3c5dae 100644 --- a/peps/pep-0011.rst +++ b/peps/pep-0011.rst @@ -35,15 +35,20 @@ unmaintainability: without having experts for a large number of platforms, it is not possible to determine whether a certain change to the CPython source code will work on all supported platforms. - To reduce this risk, this PEP specifies what is required for a -platform to be considered supported by CPython as well as providing a -procedure to remove code for platforms with few or no CPython -users. +platform to be considered supported by the CPython core team, +as well as providing a procedure to remove code for platforms +with few or no CPython users. + +On the other hand, allowing these fragments in the main repository +can promote collaboration, can help identify non-portable parts of +the code base, and is necessary for bootstrapping support for +a "new" platform. +This PEP specifies what it means for a platform to be "unsupported", +and how the core team handles code for such platforms. -This PEP also lists what platforms *are* supported by the CPython -interpreter. This lets people know what platforms are directly -supported by the CPython development team. +This PEP also explicitly lists what platforms are directly +*supported* by the CPython development team. Support tiers @@ -135,17 +140,43 @@ x86_64-unknown-freebsd BSD libc, clang Victor Stinner ================================ =========================== ======== -All other platforms -------------------- +Unsupported platforms +--------------------- + +All platforms not listed in the above tiers are *unsupported* by the core team. +The core team does not develop and test on such platforms, and so they +cannot provide any promises that Python will work on them. + +However, the code base does include unsupported code -- that is, code +specific to unsupported platforms. +Contributions in this area are welcome as long as they: + +- pose a minimal maintenance burden to the core team, and +- benefit substantially more people than the contributor. + +We assume contributors are able to maintain modifications/patches, +test patched builds, redistribute modified code, make promises to their users, +and otherwise support "their" platform. +With that in mind, it is generally unnecessary to backport unsupported +fixes to CPython's maintenance branches. + +Unsupported code that *does* cause a maintenance burden, or obstructs +general improvements, may be rejected or removed from the code base +without a deprecation process. +Core team members that do this intentionally are expected to seek out +and notify interested parties, to review any submitted fixes +(if inobtrusive), and to consider adding configuration or extension +capabilities necessary for workarounds. + +People interested in unsupported platforms may add themselves to the +`Platforms experts list`_ in the Cpython contributor's guide to request that +they be notified on issues related to "their" platform. +There is, however, no formal guarantee that they *will* be notified. -Support for a platform may be partial within the code base, such as -from active development around platform support or accidentally. -Code changes to platforms not listed in the above tiers may be rejected -or removed from the code base without a deprecation process if they -cause a maintenance burden or obstruct general improvements. +.. _Platforms experts list: https://devguide.python.org/core-team/experts/#platforms -Platforms not listed here may be supported by the wider Python -community in some way. If your desired platform is not listed above, +Platforms not listed in this PEP may also be supported by the wider Python +community in other ways. If your desired platform is not listed above, please perform a search online to see if someone is already providing support in some form. @@ -207,6 +238,27 @@ source tree 3 years after the extended support for the compiler has ended (but continue to remain available in revision control). +POSIX +''''' + +Features specified in POSIX are expected to work according to the standard. +This cuts two ways: + +- If a POSIX feature is available, it is expected to conform to POSIX. + + Workarounds for out-of-spec platforms are acceptable. + For unsupported platforms, disabling functionality is + preferred over a non-trivial workaround. + +- CPython should make no assumptions about POSIX features beyond what's + specified in POSIX. + + For example, while POSIX specifies ``errno`` as an ``int`` with no + restrictions, error codes on all supported platforms happen to be positive. + Relying on this would be considered a bug, even if it only manifests on + unsupported platforms. + + Legacy C Locale ''''''''''''''' From e6657219ca56f1566428c051f96bf39d5b404646 Mon Sep 17 00:00:00 2001 From: Petr Viktorin Date: Tue, 25 Nov 2025 16:37:13 +0100 Subject: [PATCH 2/5] Apply suggestions from code review Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com> --- peps/pep-0011.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/peps/pep-0011.rst b/peps/pep-0011.rst index 8b65a3c5dae..7c4ab68b70b 100644 --- a/peps/pep-0011.rst +++ b/peps/pep-0011.rst @@ -169,7 +169,7 @@ and notify interested parties, to review any submitted fixes capabilities necessary for workarounds. People interested in unsupported platforms may add themselves to the -`Platforms experts list`_ in the Cpython contributor's guide to request that +`Platforms experts list`_ in the CPython contributor's guide to request that they be notified on issues related to "their" platform. There is, however, no formal guarantee that they *will* be notified. @@ -254,7 +254,7 @@ This cuts two ways: specified in POSIX. For example, while POSIX specifies ``errno`` as an ``int`` with no - restrictions, error codes on all supported platforms happen to be positive. + restrictions, error codes on all supported platforms happen to be positive. Relying on this would be considered a bug, even if it only manifests on unsupported platforms. From bbd33a53c27396f6b6fbcb215b154b09386f0a18 Mon Sep 17 00:00:00 2001 From: Petr Viktorin Date: Tue, 25 Nov 2025 16:39:30 +0100 Subject: [PATCH 3/5] Encourage (not expect) core devs to notify people; use experts list --- peps/pep-0011.rst | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/peps/pep-0011.rst b/peps/pep-0011.rst index 7c4ab68b70b..b8b3e8de291 100644 --- a/peps/pep-0011.rst +++ b/peps/pep-0011.rst @@ -163,14 +163,14 @@ fixes to CPython's maintenance branches. Unsupported code that *does* cause a maintenance burden, or obstructs general improvements, may be rejected or removed from the code base without a deprecation process. -Core team members that do this intentionally are expected to seek out -and notify interested parties, to review any submitted fixes -(if inobtrusive), and to consider adding configuration or extension -capabilities necessary for workarounds. +Core team members that do this intentionally are encouraged to notify people +listed in the `Platforms experts list`_ in the CPython contributor's guide, +to review any submitted fixes (if inobtrusive), and to consider adding +configuration or extension capabilities necessary for workarounds. People interested in unsupported platforms may add themselves to the -`Platforms experts list`_ in the CPython contributor's guide to request that -they be notified on issues related to "their" platform. +`Platforms experts list`_ to request that they be notified on issues +related to "their" platform. There is, however, no formal guarantee that they *will* be notified. .. _Platforms experts list: https://devguide.python.org/core-team/experts/#platforms From 3e88afbc48649ebebd5eda3439b83f292853e76d Mon Sep 17 00:00:00 2001 From: Petr Viktorin Date: Thu, 27 Nov 2025 12:42:53 +0100 Subject: [PATCH 4/5] Add Discussion links --- peps/pep-0011.rst | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/peps/pep-0011.rst b/peps/pep-0011.rst index b8b3e8de291..6d83805a6e1 100644 --- a/peps/pep-0011.rst +++ b/peps/pep-0011.rst @@ -9,6 +9,7 @@ Post-History: `18-Aug-2007 `__, `20-Feb-2015 `__, `10-Mar-2022 `__, + `21-Nov-2025 `__, Abstract @@ -425,6 +426,9 @@ No-longer-supported platforms Discussions =========== +* November 2025: `Policy for unsupported platforms + `_ + (Petr Viktorin) * April 2022: `Consider adding a Tier 3 to tiered platform support `_ (Victor Stinner) From 167cabca8ab80bce94ea7a9c2d5e6d2ecb1f7955 Mon Sep 17 00:00:00 2001 From: Petr Viktorin Date: Fri, 23 Jan 2026 15:38:26 +0100 Subject: [PATCH 5/5] Fix typo Co-authored-by: Barry Warsaw --- peps/pep-0011.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/peps/pep-0011.rst b/peps/pep-0011.rst index 6d83805a6e1..9c2e60f9fe3 100644 --- a/peps/pep-0011.rst +++ b/peps/pep-0011.rst @@ -166,7 +166,7 @@ general improvements, may be rejected or removed from the code base without a deprecation process. Core team members that do this intentionally are encouraged to notify people listed in the `Platforms experts list`_ in the CPython contributor's guide, -to review any submitted fixes (if inobtrusive), and to consider adding +to review any submitted fixes (if unobtrusive), and to consider adding configuration or extension capabilities necessary for workarounds. People interested in unsupported platforms may add themselves to the