On Thu, Mar 31, 2022 at 4:40 PM Victor Stinner <vstin...@python.org> wrote:

> Hi,
>
> I don't think that the current PEP 11 draft (*) describes correctly
> the current status of a bunch of platforms which are not "actively"
> supported. I like to call these plaforms as "best effort support"
> platforms. I propose considering adding an explicit "Tier 3" to PEP
> 11.
>
> (*) https://github.com/python/peps/pull/2442/
>
> Rust defines its Tier 3 as: "Tier 3 targets are those which the Rust
> codebase has support for, but which the Rust project does not build or
> test automatically, so they may or may not work."
>
> Tier 3 requirements would be *very weak*:
>
> * No buildbot requirement
> * No assigned core dev needed
> * Don't revert a change breaking a Tier 3 platform
> * Don't hold a Python release if a Tier 3 platform is broken
>

> Currently, the "All other platforms" section is quite clear: code can
> be removed anytime:
>
> "Code changes to platforms not listed in the above tiers may rejected
> or removed from the code base *without a deprecation process* if they
> cause a maintenance burden or obstruct general improvements."
>
> The only difference between "Tier 3" and "All other platforms" would
> be that removing a platform from Tier 3 require a process. I'm not
> sure if a deprecation is needed. But we have to go through a
> discussion and someone (SC?) has to decide if it's ok to drop it
> (remove code).
>

If there's no buildbot making sure the platform works and no core dev
trying to keep it working, then what's the point of listing the platform in
the PEP? Otherwise I feel that listing a platform as tier 3 just says,
"there's some code in `main` for it, but we have no clue if it works and we
won't necessarily try to make it work." And if that's the case then why do
we need to keep the code around and the cost of readability of our code
base?


>
> Removing code from Python means in practice that the support *can*
> still continue, but outside of the Git upstream repository: in a fork
> instead.
>
> For me the main threat of (adding a platform to) Tier 3 is the risk
> that we might never ever able to drop support for these platforms. PEP
> 11 would be used by users as a holy document. Maybe we should be clear
> that Tier 3 is not a strong warranty of long term support, but is just
> a weak status. For example, put a time bomb: if no developer was
> available in the last 12 month to fix regressions, drop the platform
> for Tier 3.
>

But without a buildbot how do we know when there are regressions and when
that regression occurred? I wouldn't even know when those 12 months started
w/ this proposal.


>
> --
>
> I'm thinking at these platforms for Tier 3:
>
> * AIX 6.4 and newer (has a buildbot)
> * Android API 24
> * FreeBSD
> * OpenBSD
> * NetBSD
> * s390x arch
> * Solaris (has a buildbot)
>
> I would prefer to put FreeBSD and s390x in Tier 3 rather than Tier 2.
>
> Users of these platforms and contributors who added support for these
> platforms are going to be grumpy if we drop such platform without any
> warning or process.
>
> Android support seems to be stale for now. But I would prefer to keep
> it for now.
>
> --
>
> Last year, I proposed to drop immediately Solaris support (remove code):
>
> https://mail.python.org/archives/list/python-...@python.org/thread/VDD7NMEDFXMOP4S74GEYJUHJRJPK2UR3/
>
> I read that Solaris was no longer maintained by Oracle. I was wrong.
> Moreover, many Python users on Solaris started to complained loudly.
> Not only Solaris is maintained, but it's also under active
> development. After this thread, Oracle contributed Solaris patches to
> Python, and set up a buildbot!
>

If you're referring to https://buildbot.python.org/all/#/workers/47 then it
hasn't passed a build in months.


>
> I suggest thinking twice before adding a platform to Tier 3. Adding it
> is easy. But there will always be at least *one* very grumpy Python
> user of this platform who will fight to death to keep his old precious
> unmaintained broken platform, even if no one else in the world has
> access to the hardware (no longer sold) and no one is able to fix
> regressions.
>
> --
>
> For now, I would prefer to *not* add the following platforms to Tier
> 3. Keep them in the gray area of "unsupported" platforms.
>
> * DOS
> * Cygwin
> * HP-UX
> * MinGW
> * VMS (OpenVMS): https://vmspython.org/
>
> Time to time, I merge HP-UX fixes if someone proposes a fix and I have
> some free cycle to review it. Once, I fixed one Unicode issue specific
> to HP-UX without having access to HP-UX. It's not the most efficient
> development method for me: it requires a lot of back and forth
> exchanges with a developer having access to this platform. I don't
> want to list HP-UX in Tier 3: I don't have access to HP-UX.
>
> --
>
> My notes on platforms supported by Python:
> https://pythondev.readthedocs.io/platforms.html
>

Here's my counter-proposal.

Tier 3:
- 1 core dev
- Buildbot
- SC/consensus approval to be added/removed
- Can have a directory in `Tools/` to maintain things such as build configs
(see https://github.com/python/cpython/tree/main/Tools/wasm as an example)

*All* tiers:
- If a platform is not supported and stable by beta, there will be an
announcement (probably in What's New) about how the platform is slated to
not be officially supported in this release and we plan to drop support
completely for the platform in the final release unless the situation is
resolved by RC.

That would give the community 3 months between b1 and rc1 to work with the
core dev who has volunteered to make that platform work again (if it stops
working; hoping that won't happen). And being in tier 3 means the community
knows upfront that they have to test the betas and make sure things are
working appropriately, so there's no surprises.

We can also give all tier 3 platforms a "pass" for 3.11 where we won't
trigger any of this until 3.12b1 so there's enough time to line up a
Buildbot and core dev.

But even though I have a counter-proposal, I would still prefer to hear
people weigh in with their opinions on whether this tier 3 platform support
is worth it (either Victor's or my idea for it).
_______________________________________________
python-committers mailing list -- python-committers@python.org
To unsubscribe send an email to python-committers-le...@python.org
https://mail.python.org/mailman3/lists/python-committers.python.org/
Message archived at 
https://mail.python.org/archives/list/python-committers@python.org/message/6OGR3IEGXZW3YCBNWRSKYFKNFQRJ6RL4/
Code of Conduct: https://www.python.org/psf/codeofconduct/

Reply via email to