On Fri, Apr 1, 2022 at 12:22 PM Brett Cannon <br...@python.org> wrote:

>
> 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)
>

Clarify that Tier 3 doesn't have release blocker status.  I'm not sure we
should maintain that as a list in a PEP... but I'm not going to object
given we're saying it won't just be random edits by requiring SC/consensus
approval to change the list.


>
> *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/
>
_______________________________________________
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/3EJ3DDN6WTAGNIKWAOAJP6J7W52YK5XG/
Code of Conduct: https://www.python.org/psf/codeofconduct/

Reply via email to