On 21/02/2021 13.13, Victor Stinner wrote:
> Hi,
> 
> I propose to actively remove support for *legacy* platforms and
> architectures which are not supported by Python according to PEP 11
> rules: hardware no longer sold and end-of-life operating systems. The
> removal should be discussed on a case by case basis, but I would like
> to get an agreement on the overall idea first. Hobbyists wanting to
> support these platforms/archs can continue to support them with
> patches maintained outside Python. For example, I consider that the
> 16-bit m68k architecture is legacy, whereas the OpenBSD platform is
> still actively maintained.
[...]
> Python has different kinds of platform and architecture supports. In
> practice, I would say that we have:
> 
> * (1) Fully supported. Platform/architecture used by core developers
> and have at least one working buildbot worker: fully supported. Since
> core developers want to use Python on their machine, they fix issues
> as soon as they notice them. Examples: x86-64 on Linux, Windows and
> macOS.
> 
> * (2) Best effort. Platform/architecture which has a buildbot worker
> usually not used by core developers. Regressions (buildbot failures)
> are reported to bugs.python.org, if someone investigates and provides
> a fix, the fix is merged. But there is usually no "proactive" work to
> ensure that Python works "perfectly" on these platforms. Example:
> FreeBSD/x86-64.
> 
> * (3) Not (officially) supported. We enter the blurry grey area. There
> is no buildbot worker, no core dev use it, but Python contains code
> specific to these platforms/architectures. Example: 16-bit m68k and
> 31-bit s390 architectures, OpenBSD.
> 
> The Rust programming language has 3 categories of Platform Support,
> the last one is :

Thanks Victor!

(short reply, I'm heading out)

I'm +1 in general for your proposal. I also like the idea to adopt
Rust's platform support definition.

For 3.10 I propose to add a configure option to guard builds on
unsupported / unstable platforms. My draft PR
https://github.com/python/cpython/pull/24610/commits/f8d2d56757a9cec7ae4dc721047336eaba097125
implements a checker for unsupported platforms and adds a
--enable-unstable-platforms flag. Configuration on unsupported platforms
fails unless users explicitly opt-in.

The checker serves two purposes:

1) It gives users an opportunity to provide full PEP 11 support
(buildbot, engineering time) for a platform.
2) It gives us the leverage to remove a flagged platform in the future
or refuse support on BPO.

Christian
_______________________________________________
Python-Dev mailing list -- python-dev@python.org
To unsubscribe send an email to python-dev-le...@python.org
https://mail.python.org/mailman3/lists/python-dev.python.org/
Message archived at 
https://mail.python.org/archives/list/python-dev@python.org/message/JKSE43ASVGV4DURGOEWVTQIJJM4EBOEI/
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to