Following system colour scheme Selected dark colour scheme Selected light colour scheme

Python Enhancement Proposals

PEP 609 – Python Packaging Authority (PyPA) Governance

Autor:
Dustin Ingram <di at python.org>, Pradyun Gedam <pradyunsg at gmail.com>, Sumana Harihareswara <sh at changeset.nyc>
Sponsor:
Paul Ganssle <paul at ganssle.io>
Discussions-To:
Discourse thread
Status:
Aktiv
Typ:
Prozess
Thema:
Governance, Packaging
Erstellt:
05-Nov-2019
Post-History:
05-Nov-2019

Inhaltsverzeichnis

Zusammenfassung

Dieses Dokument beschreibt ein Governance-Modell für die Python Packaging Authority (PyPA). Das Modell basiert eng auf bestehenden informellen Praktiken und zielt darauf ab, Klarheit in die Funktionsweise der PyPA zu bringen und transparente Prozesse für die PyPA zu formalisieren.

Begründung

Die Python Packaging Authority (PyPA) ist eine kollaborative Gemeinschaft, die viele der relevanten Projekte im Bereich Python Packaging pflegt und vorantreibt. Die über die PyPA entwickelten Software und Standards werden verwendet, um Python-Software zu verpacken, zu teilen und zu installieren sowie um mit Indizes von herunterladbarer Python-Software wie PyPI, dem Python Package Index, zu interagieren.

Derzeit ist die PyPA eine informelle und lose definierte Organisation, der es an echter Autorität mangelt. Die Aufnahme eines bestimmten Projekts unter dem Schirm der PyPA oder die Erstellung neuer Projekte erfolgte ad hoc und einzeln. Ebenso ist die individuelle Mitgliedschaft in der PyPA nicht klar definiert.

Auch wenn dieses Modell in der Vergangenheit mehr oder weniger gut für die PyPA funktioniert hat, führt es zu einer Organisation, der bestimmte Merkmale eines stabilen Ökosystems fehlen, nämlich ein klares und transparentes Entscheidungsverfahren. Dieses PEP zielt darauf ab, dies zu beheben, indem ein Governance-Modell für die PyPA definiert wird.

Terminologie

Relevante Begriffe für Gruppen von einzelnen Mitwirkenden, die in diesem PEP verwendet werden

PyPA-Mitglieder:
Jede Person mit dem Triage-Bit oder dem Commit-Bit auf mindestens einem Projekt in der PyPA-Organisation.
PyPA-Committers:
Jede Person mit dem Commit-Bit auf mindestens einem Projekt in der PyPA-Organisation, was jedem auf der PyPA-Committers Mailingliste entsprechen sollte.
PyPA-Community:
Jede Person, die an den Aktivitäten der PyPA interessiert ist und mitverfolgen, beitragen oder Vorschläge machen möchte.
Packaging-WG-Mitglieder:
Wie auf der Packaging-WG Wiki-Seite beschrieben. Zur Klarstellung: Es gibt keine formelle Beziehung zwischen der Packaging-WG und der PyPA. Diese Gruppe wird nur in dieser Liste aufgeführt, um sie von der PyPA zu unterscheiden.

Ziele

Der folgende Abschnitt formalisiert die Ziele (und Nicht-Ziele) der PyPA und dieses Governance-Modells.

Ziele der PyPA

Diese Ziele sind die Hauptmotivation für die Existenz der PyPA. Diese Ziele werden größtenteils bereits verfolgt, auch wenn die meisten noch nicht explizit definiert wurden.

Unterstützung bestehender Projekte unter der PyPA bereitstellen

Falls ein bestimmtes Projekt zusätzliche Unterstützung benötigt oder keine aktiven Maintainer mehr hat, wird die PyPA sicherstellen, dass das betreffende Projekt für die Benutzer im notwendigen Umfang weiterhin unterstützt wird.

Förderung der Schaffung und Akzeptanz von Standards für PyPA-Projekte

Die PyPA sollte sich, soweit wie möglich, um Standardisierung und Koordination zwischen PyPA-Projekten bemühen, hauptsächlich durch den unten beschriebenen Governance-Prozess. Von PyPA-Projekten wird erwartet, dass sie die von der PyPA gepflegten relevanten Spezifikationen einhalten.

Entscheidungen leiten, die mehrere PyPA-Projekte betreffen

Von der PyPA-Community (insbesondere von PyPA-Mitgliedern) wird erwartet, dass sie Meinungen, Einblicke und Erfahrungen einbringen, wenn standortweite Änderungen vorgeschlagen werden.

Bestimmen, welche Projekte unter der Leitung der PyPA stehen sollen

Zum Beispiel: Aufnahme neuer Projekte aus der Community, organische Schaffung von Projekten innerhalb der PyPA usw.

Durchsetzung der Einhaltung eines Verhaltenskodex für alle Projekte

Im Allgemeinen bedeutet dies, mit gutem Beispiel voranzugehen, aber gelegentlich kann dies auch eine explizitere Moderation erfordern.

Nicht-Ziele der PyPA

Dies sind spezifische Punkte, die ausdrücklich _keine_ Ziele der PyPA sind.

Bestimmen, wer PyPA-Mitglied ist und wer nicht

Dies ist Sache der Mitglieder einzelner Projekte, zu entscheiden, wenn sie neue Mitglieder zu ihren Projekten hinzufügen. Die Betreuung eines Projekts, das unter der PyPA-Organisation steht, überträgt automatisch die Mitgliedschaft in der PyPA.

Einzelne Projekte mikromanagen

Solange das Projekt den Verhaltenskodex einhält und von der PyPA unterstützte Spezifikationen befolgt, sollte sich die PyPA nur mit großen, standortweiten Änderungen befassen.

Eigenständigen Verhaltenskodex entwickeln und pflegen

PyPA-Projekte folgen dem PSF-Verhaltenskodex.

Ziele des Governance-Modells der PyPA

Dies sind neue Ziele, die das Governance-Modell ermöglichen soll.

Transparenz bei der PyPA-Mitgliedschaft

Bereitstellung eines transparenten Prozesses für Entscheidungen bezüglich der Projektmitgliedschaft in der PyPA.

Dokumentation der Verwendung von PEPs durch die PyPA

Formale Dokumentation, wie die PyPA Python Enhancement Proposals (PEPs) zur Pflege von Interoperabilitäts-Spezifikationen, die von der PyPA definiert werden, verwendet.

Prozesse

Die Prozesse für die Aktivitäten der PyPA sind unten aufgeführt

Spezifikationen

Die PyPA wird PEPs verwenden, um die von der PyPA gepflegten Interoperabilitäts-Spezifikationen zu definieren und zu ändern. Somit hat der Python Steering Council das letzte Wort bei der Annahme dieser Interoperabilitäts-Spezifikationen.

Es wird erwartet (aber nicht gefordert), dass der Python Steering Council die Befugnis delegiert, PEPs im Zusammenhang mit Packaging-Interoperabilitäts-Spezifikationen zu sponsern und/oder zu genehmigen/zurückzuweisen, an Einzelpersonen innerhalb der PyPA-Community. Zum Zeitpunkt der Niederschrift (Juni 2020) hat der Python Steering Council ständige Delegationen für derzeit aktive Packaging-Interoperabilitäts-Spezifikationen.

Die Details des Prozesses zur Einreichung und Aktualisierung der Interoperabilitäts-Spezifikationen sind im Dokument PyPA-Spezifikationen beschrieben.

Governance

PyPA Committer-Abstimmungen

Ein PyPA-Mitglied kann einen Vorschlag einreichen und eine Abstimmung über einen öffentlichen PyPA-Kommunikationskanal ausrufen. Eine PyPA Committer-Abstimmung wird ausgelöst, wenn ein PyPA Committer (nicht der Antragsteller) den Vorschlag unterstützt.

Der Vorschlag wird über einen Zeitraum von 7 Tagen auf der PyPA-Committers Mailingliste zur Abstimmung gestellt. Jeder PyPA Committer kann einmal abstimmen und kann eine der Optionen +1 und -1 wählen. Wenn mindestens zwei Drittel der abgegebenen Stimmen +1 sind, ist die Abstimmung erfolgreich.

PyPA Committer-Abstimmungen sind für die folgenden Arten von Vorschlägen erforderlich und darauf beschränkt

Aufnahme eines Projekts in die PyPA

Vorschlag zur Aufnahme eines Projekts in die PyPA-Organisation. Dieser Vorschlag darf nicht von den bestehenden Maintainern des Projekts abgelehnt werden.

Erstellung eines neuen Projekts in der PyPA

Vorschlag zur Erstellung eines neuen Tools / Projekts in der PyPA-Organisation.

Entfernung eines Projekts aus der PyPA

Vorschlag zur Entfernung eines Projekts aus der PyPA-Organisation.

Aktualisierungen der Governance/Spezifikationsprozesse

Vorschlag zur Änderung der Funktionsweise der PyPA, einschließlich, aber nicht beschränkt auf Änderungen ihrer Spezifikations- und Governance-Prozesse sowie dieses PEPs.

Austritt aus der PyPA

Ein Projekt, das Teil der PyPA-Organisation ist, kann beantragen, die PyPA zu verlassen.

Solche Anträge können von einem Committer des Projekts auf der PyPA-Committers Mailingliste gestellt werden und müssen deutlich den GitHub-Benutzer/die Organisation angeben, an die das Repository übertragen werden soll.

Wenn der Antrag nicht innerhalb eines Zeitraums von 7 Tagen von einem anderen Committer desselben Projekts abgelehnt wird, verlässt das Projekt die PyPA und wird gemäß Antrag aus der PyPA-Organisation übertragen.

Durchsetzung des Verhaltenskodex

Jedes Projekt, das Teil der PyPA-Organisation ist, folgt dem PSF-Verhaltenskodex, einschließlich seiner Richtlinien zur Meldung von Vorfällen und seiner Durchsetzungsverfahren.

PyPA-Mitglieder sind dafür verantwortlich, mit gutem Beispiel voranzugehen. PyPA-Mitglieder müssen möglicherweise gelegentlich das Verhalten in ihren Projekten expliziter moderieren, und jedes Projekt, das Teil der PyPA-Organisation ist, muss mindestens ein PyPA-Mitglied benennen, das im Falle eines Vorfalls gegen den Verhaltenskodex als Ansprechpartner zur Verfügung steht. Bei Bekanntwerden von Verstößen gegen den Verhaltenskodex in ihren Projekten werden von PyPA-Mitgliedern erwartet, diese Vorfälle an die PSF Conduct WG zu melden, zu Dokumentationszwecken und für potenzielle Unterstützung.


Quelle: https://github.com/python/peps/blob/main/peps/pep-0609.rst

Zuletzt geändert: 2025-02-01 08:55:40 GMT