On Fri, Apr 8, 2022 at 5:03 AM Marc-Andre Lemburg <mal@egenix.com> wrote:
Last chance on whether my tier 3 proposal make sense! I will take silence as acceptance and plan to convert any current tier 2 platform with a single core dev to tier 3 and then ask the SC to approve/reject the list of
On 06.04.2022 20:48, Brett Cannon wrote: platforms. I
will also update the PEP about expectations of when things must be considered stable before b1, else a warning goes out that a platform risks being dropped in the RC (regardless of tier).
I will also be filling out the tiers to include the vendor, but I will be using
unknown
instead of*
since I haven't come across the latter online while I come across the former regularly (e.g. https://doc.rust-lang.org/nightly/rustc/platform-support.html).Could you please post the current proposal somewhere to read in one complete piece ? It's become hard to figure out what is on the table at the moment and the PR also doesn't appear to be up to date:
The PR is now up-to-date! For ease of reference, here's the critical part:
Support tiers
Platform support is broken down into *tiers*. Each tier comes with different requirements which lead to different promises being made about support.
To be promoted to a tier, steering council support is required and is expected to be driven by team consensus. Demotion to a lower tier occurs then the requirements of the current tier are no longer met for a platform for an extended period of time based on the judgment of the release manager or steering council. For platforms which no longer meet the requirements of any tier by b1 of a new feature release, an announcement will be made to warn the community of the pending removal of support for the platform (e.g. in the b1 announcement). If the platform is not brought into line for at least one of the tiers by the first release candidate, it will be listed as unsupported in this PEP.
Tier 1
CI failures < https://github.com/python/cpython/actions/workflows/build.yml?query=branch%3Amain+is%3Acompleted>
__ block releases.- Changes which would break the
main
branch are not allowed to be merged; any breakage should be fixed or reverted immediately. - All core developers are responsible to keep
main
, and thus these platforms, working. - Failures on these platforms **block a release**.
======================== ===== Target Triple Notes ======================== ===== i686-pc-windows-msvc x86_64-pc-windows-msvc x86_64-apple-darwin BSD libc, clang x86_64-unknown-linux-gnu glibc, gcc ======================== =====
Tier 2
- Must have a reliable buildbot.
- At least **two** core developers are signed up to support the platform.
- Changes which break any of these platforms are to be **fixed or reverted within 24 hours**.
- Failures on these platforms **block a release**.
=========================== ========================== ============================================== ======== Target Triple Notes Buildbot Contacts =========================== ========================== ============================================== ======== aarch64-apple-darwin clang https://buildbot.python.org/all/#/builders/725 Ned Deily, Ronald Oussoren, Dong-he Na aarch64-unknown-linux-gnu glibc, gcc https://buildbot.python.org/all/#/builders/125 Petr Viktorin, Victor Stinner
glibc, clang
https://buildbot.python.org/all/#/builders/234 Victor Stinner, Gregory P. Smith powerpcle-unknown-linux-gnu glibc, gcc https://buildbot.python.org/all/#/builders/90 Petr Viktorin, Victor Stinner x86_64-unknownlinux-gnu glibc, clang https://buildbot.python.org/all/#/builders/441 Victor Stinner, Gregory P. Smith =========================== ========================== ============================================== ========
Tier 3
- Must have a reliable buildbot.
- At least **one** core developer is signed up to support the platform.
- No response SLA to failures.
- Failures on these platforms do **not** block a release.
=========================== ========================== ============================================== ======== Target Triple Notes Buildbot Contacts =========================== ========================== ============================================== ======== aarch64-pc-windows-msvc https://buildbot.python.org/all/#/builders/729 Steve Dower powerpcle-unknown-linux-gnu glibc, clang https://buildbot.python.org/all/#/builders/435 Victor Stinner x86_64-unknown-freebsd BSD libc, clang https://buildbot.python.org/all/#/builders/172 Victor Stinner =========================== ========================== ============================================== ========
All other platforms
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 rejected or removed from the code base without a deprecation process if they cause a maintenance burden or obstruct general improvements.
Platforms not listed here may be supported by the wider Python community in some way. If your desired platform is not listed above, please perform a search online to see if someone is already providing support in some form.
-Brett
Thanks.
On Fri, Apr 1, 2022 at 6:50 PM Victor Stinner <vstinner@python.org <mailto:vstinner@python.org>> wrote:
On Fri, Apr 1, 2022 at 11:19 PM Christian Heimes <
christian@python.org <mailto:christian@python.org>> wrote: > How about: > > * a buildbot is required. For a transition period a public CI system, > that runs Python's test suite at least once per day, is also acceptable. > > * at least one active contributor who acts as a point of contact, > monitors CI and provides fixes in a timely fashion.
Sadly, I'm not sure that a regular contributor is enough to get fixes merged even fixes are written. Maybe it's better to require one core dev per Tier 3 platform. What if tomorrow someone sets up a MinGW buildbot. Is it enough to promote MinGW as Tier 3? There are many MinGW patches awaiting in the bug tracker for *years* and nobody is available to review and merged them. (I didn't check recently, maybe some of them have been merged
in the meanwhile?)
For the buildbot, IMO it's important that the whole test suite pass. I'm fine with skipping a large number of tests. But a single failure makes a buildbot really annoying, barely usuable, because buildbots are unable to say if a change adds more errors than previously. It's
a boolean: either all tests pass, or "at least one test fails": you have to dig into logs to know the exact number :-(
Victor -- Night gathers, and now my watch begins. It shall not end until my
death.
-- Marc-Andre Lemburg eGenix.com
Professional Python Services directly from the Experts (#1, Apr 08 2022)
Python Projects, Coaching and Support ... https://www.egenix.com/ Python Product Development ... https://consulting.egenix.com/
::: We implement business ideas - efficiently in both time and costs :::
eGenix.com Software, Skills and Services GmbH Pastor-Loeh-Str.48 D-40764 Langenfeld, Germany. CEO Dipl.-Math. Marc-Andre Lemburg Registered at Amtsgericht Duesseldorf: HRB 46611 https://www.egenix.com/company/contact/ https://www.malemburg.com/