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

Python Enhancement Proposals

PEP 8001 – Python Governance Voting Process

Autor:
Brett Cannon <brett at python.org>, Christian Heimes <christian at python.org>, Donald Stufft <donald at stufft.io>, Eric Snow <ericsnowcurrently at gmail.com>, Gregory P. Smith <greg at krypto.org>, Łukasz Langa <lukasz at python.org>, Mariatta <mariatta at python.org>, Nathaniel J. Smith <njs at pobox.com>, Pablo Galindo Salgado <pablogsal at python.org>, Raymond Hettinger <python at rcn.com>, Tal Einat <tal at python.org>, Tim Peters <tim.peters at gmail.com>, Zachary Ware <zach at python.org>
Status:
Final
Typ:
Prozess
Thema:
Governance
Erstellt:
24-Aug-2018

Inhaltsverzeichnis

Zusammenfassung

Dieses PEP beschreibt den Prozess, wie das neue Modell der Python-Governance ausgewählt wird, im Anschluss an Guidos Rücktritt. Sobald das Modell nach den hier beschriebenen Verfahren gewählt wurde, wird es in PEP 13 kodifiziert.

Motivation und Begründung

Guidos Rücktritt von der BDFL-Rolle hat uns vor das Meta-Problem gestellt, auswählen zu müssen, *wie wir auswählen werden*, wie das Python-Projekt von nun an verwaltet werden soll.

Dieses Dokument präsentiert einen konkreten Vorschlag, wie diese Wahl getroffen werden kann. Es fasst die Diskussionen und Schlussfolgerungen der Proceedings einer Arbeitsgruppe beim Core Sprint in Redmond im September 2018 zusammen (Namen aller Teilnehmer sind als Autoren aufgeführt). Dieses PEP fasst auch einen anschließenden Thread zusammen, der auf discuss.python.org stattfand.

Die Governance-Situation sollte zeitnah gelöst werden. Idealerweise sollte dies bis Ende 2018 geschehen, um wesentliche Verbesserungen für Python 3.8 zu ermöglichen. Spätestens muss die Governance-Situation bis zur PyCon US 2019 gelöst sein, um eine PR-Krise zu vermeiden.

Implementierung

Worüber stimmen wir ab?

Wir stimmen darüber ab, welches Governance-PEP vom Python-Projekt umgesetzt werden soll. Die Liste der Kandidaten-PEPs ist in PEP 8000 aufgeführt und umfasst alle PEPs im Bereich 801X.

Um die Legitimität der Abstimmung zu gewährleisten, dürfen die genannten PEPs während des Abstimmungszeitraums nicht geändert werden.

Wer darf abstimmen?

Jeder CPython-Core-Entwickler ist zur Stimmabgabe eingeladen. Im Interesse von Transparenz und Fairness bitten wir die Core-Entwickler, sich selbst zu selektieren, je nachdem, ob die Governance-Situation sie direkt betrifft. Mit anderen Worten, wir empfehlen inaktiven Core-Entwicklern, *die inaktiv bleiben wollen*, von der Stimmabgabe abzusehen.

Wann findet die Abstimmung statt?

Der 16. November 2018 bis zum 30. November 2018 ist die offizielle PEP-Review-Periode für die Governance. Wir raten den PEP-Autoren davon ab, in dieser Zeit wesentliche inhaltliche Änderungen vorzunehmen, obwohl kleinere Anpassungen aufgrund der Diskussionen erwartet werden.

Die Abstimmung findet in einem 2-wöchigen Fenster vom 1. Dezember 2018 bis zum 16. Dezember 2018 statt (Überall auf der Welt).

Wo findet die Abstimmung statt?

Die Abstimmung findet über eine „private“ Umfrage auf dem Condorcet Internet Voting Service statt. Jeder Committer erhält eine E-Mail mit einem Link, der ihm erlaubt, die PEPs nach seiner Präferenz zu ordnen.

Die Wahl wird von Ee Durbin, dem Director of Infrastructure der PSF, beaufsichtigt.

Die Ergebnisse der Wahl, einschließlich anonymisierter Stimmzettel, werden am 17. Dezember nach Abschluss der Wahl veröffentlicht.

Die folgenden Einstellungen werden für die Abstimmung im CIVS-System verwendet

Name der Umfrage: Python governance vote (December 2018)

Beschreibung der Umfrage

This is the vote to choose how the CPython project will govern
itself, now that Guido has announced his retirement as BDFL. For
full details, see <a
href="https://peps.pythonlang.de/pep-8001/">PEP
8001</a>. Many discussions have occurred under <a
href="https://discuss.python.org/tags/governance">the "governance"
tag</a> on discuss.python.org.
<p>
All votes must be received <b>by the end of December 16th, 2018, <a
href="https://en.wikipedia.org/wiki/Anywhere_on_Earth">Anywhere on
Earth</a></b>. All CPython core developers are <a
href="https://github.com/python/voters">eligible to vote</a>.
It is asked that inactive core developers <i>who intend to remain
inactive</i> abstain from voting.
<p>
<b>Note: You can only vote once, and all votes are final.</b> Once
you click "Submit ranking", it's too late to change your mind.
<p>
All ballots will be published at the end of voting, but <b>without
any names attached</b>. No-one associated with the Python project or
the PSF will know how you voted, or even whether you voted.
<p>
If you have any questions, you can post in <a
href="https://discuss.python.org/c/committers">the Committers
topic</a>, on <a href="mailto:python-committers@python.org">the
python-committers list</a>, or <a
href="mailto:ee@python.org">contact the vote administrator
directly</a>.
<p>
<h1>Options</h1>
<p>
We're selecting between seven PEPs, each proposing a different
governance model.
<p>
The options below include links to the text of each PEP, as well
as their complete change history. The text of these PEPs was
frozen on December 1, when the vote started. But if you looked at
the PEPs before that, they might have changed. Please take the
time to check the current text of the PEPs if you read an older
draft.
<p>
A "Further discussion" option is also included. It represents the
option of not making a choice at all at this time, and continuing
the discussion instead. Including this option lets us demonstrate
the core team's readiness to move forward.
<p>
If you think a proposal is a particularly bad idea, you can
express that by ranking it below "Further discussion". If you
think all of the proposals are better than further discussion,
then you should rank "Further discussion" last.

Kandidaten (Hinweis: Zeilenumbrüche sind hier wichtig)

<a href="https://peps.pythonlang.de/pep-8010/">PEP 8010: The Technical Leader Governance Model</a> (Warsaw) (<a href="https://github.com/python/peps/commits/main/pep-8010.rst">changelog</a>)
<a href="https://peps.pythonlang.de/pep-8011/">PEP 8011: Python Governance Model Lead by Trio of Pythonistas</a> (Mariatta, Warsaw) (<a href="https://github.com/python/peps/commits/main/pep-8011.rst">changelog</a>)
<a href="https://peps.pythonlang.de/pep-8012/">PEP 8012: The Community Governance Model</a> (Langa) (<a href="https://github.com/python/peps/commits/main/pep-8012.rst">changelog</a>)
<a href="https://peps.pythonlang.de/pep-8013/">PEP 8013: The External Council Governance Model</a> (Dower) (<a href="https://github.com/python/peps/commits/main/pep-8013.rst">changelog</a>)
<a href="https://peps.pythonlang.de/pep-8014/">PEP 8014: The Commons Governance Model</a> (Jansen) (<a href="https://github.com/python/peps/commits/main/pep-8014.rst">changelog</a>)
<a href="https://peps.pythonlang.de/pep-8015/">PEP 8015: Organization of the Python community</a> (Stinner) (<a href="https://github.com/python/peps/commits/main/pep-8015.rst">changelog</a>)
<a href="https://peps.pythonlang.de/pep-8016/">PEP 8016: The Steering Council Model</a> (Smith, Stufft) (<a href="https://github.com/python/peps/commits/main/pep-8016.rst">changelog</a>)
Further discussion

Optionen

[x] Private
[ ] Make this a test poll: read all votes from a file.
[ ] Do not release results to all voters.
[x] Enable detailed ballot reporting.
    [ ] In detailed ballot report, also reveal the identity of the voter with each ballot.
[ ] Allow voters to write in new choices.
[ ] Present choices on voting page in exactly the given order.
[ ] Allow voters to select “no opinion” for some choices.
[ ] Enforce proportional representation

Diese Optionen werden dazu führen, dass

  • Die Wahl wird „privat“, d. h. nur auf Einladung, durchgeführt.
  • Die Ergebnisse der Wahl werden allen Wählern zugänglich gemacht.
  • Der Inhalt jedes Stimmzettels wird zusammen mit einem detaillierten Bericht über die Wahl des Gewinners veröffentlicht.
  • Die detaillierten Stimmzettel werden *keine* identifizierenden Informationen enthalten, und die E-Mail-Adressen der Wähler werden vom CIVS-System gelöscht, sobald die E-Mail mit ihrem Wahl-Link gesendet wurde.
  • Wähler können keine neuen Optionen hinzufügen, sodass sie auf die in der Wahl angegebenen Optionen beschränkt sind.
  • Wähler haben nicht die Möglichkeit, ihre Stimme zu ändern, nachdem sie einen Stimmzettel abgegeben haben. [no-changes]
  • Die Standardreihenfolge für jeden Stimmzettel wird zufällig bestimmt, um jeglichen Einfluss der Reihenfolge des Stimmzettels auf die Wahl zu beseitigen.
  • Wähler müssen alle Optionen in irgendeiner Weise einstufen, dürfen aber mehrere Optionen als gleichrangig einstufen.

Abstimmungsmechanik

Die Abstimmung erfolgt per Ranglistenwahl. Jeder Wähler ordnet alle Kandidaten-PEPs von der am meisten bevorzugten zur am wenigsten bevorzugten. Die Stimmen werden ausgezählt und ein Gewinner nach der Condorcet-Methode ermittelt.

Hinweis: Jeder Wähler kann nur eine einzige Stimme abgeben, ohne die Möglichkeit, seine Stimme später zu revidieren. [no-changes] Wenn Sie sich Ihrer Wahl nicht absolut sicher sind, warten Sie mit der Abgabe Ihres Stimmzettels bis später im Abstimmungszeitraum. Stimmen, die am letzten Tag der Wahl abgegeben werden, sind genauso gültig wie die, die am ersten Tag abgegeben werden.

Obwohl das CIVS-System keine Option für eine „reine“ Condorcet-Wahl bietet, wählt jede Condorcet-Methode den „reinen“ Condorcet-Gewinner, falls einer existiert, und weicht nur dann ab, wenn keiner existiert. Das CIVS-System unterscheidet zwischen einem Condorcet-Gewinner und einem Nicht-Condorcet-Gewinner, indem es angibt, ob der Gewinner ein Condorcet-Gewinner war oder ob er lediglich nicht gegen eine andere Option verloren hat. Ein Gewinner im CIVS-System wird also nur akzeptiert, wenn angegeben wird, dass er ein Condorcet-Gewinner war.

Im unwahrscheinlichen Fall eines Unentschiedens (oder Zyklus, wie er bei der Condorcet-Methode möglich ist), wird eine neue Wahl eröffnet, die auf die am Unentschieden oder Zyklus beteiligten Optionen beschränkt ist, um einen neuen Gewinner aus den unentschiedenen Optionen zu ermitteln. Diese neue Wahl wird eine Woche lang offen sein und wiederholt werden, bis ein einzelner Gewinner feststeht.

Fragen und Antworten

Warum die Condorcet-Methode?

  1. Sie ermöglicht es den Wählern, ihre Präferenzen durch Rangordnung der PEPs auszudrücken.
  2. Sie ist Konsensfindung.
  3. In einer Umfrage, die nur Core-Entwicklern offenstand und mit Approval Voting durchgeführt wurde, war sie die klare Präferenz.

Ist das Weglassen von Kandidaten-PEPs in der Rangfolge erlaubt?

Eine Abstimmung, die Kandidaten in der Rangfolge auslässt, ist ungültig. Dies liegt daran, dass solche Stimmen mit den oben genannten gewünschten Eigenschaften unvereinbar sind, nämlich

  • Wähler dazu zu bringen, Alternativen zu berücksichtigen, sowie
  • Alles zu tun, um in einer einzigen Wahl zu einem Ergebnis zu gelangen.

Warum wird empfohlen, dass inaktive Core-Entwickler nicht abstimmen?

Die Wahl des Governance-Modells wird weitreichende und langfristige Folgen für Python und seine Community haben. Wir bitten die Core-Entwickler, ihr „Skin in the Game“ zu beurteilen.

Hinweis: Dies ist kein Erlass und wird nicht kontrolliert. Wir vertrauen darauf, dass alle Mitglieder des Kernteams im besten Interesse von Python handeln.

Warum sollte die Abstimmung privat sein?

Bei der Diskussion des Wahlsystems äußerten eine Reihe von Core-Entwicklern Bedenken hinsichtlich öffentlicher Stimmzettel, wobei mindestens ein Core-Entwickler angab, dass er aufgrund der Nutzung öffentlicher Stimmzettel erwäge, überhaupt nicht abzustimmen. Eine auf Discourse durchgeführte Umfrage ergab, dass die überwältigende Mehrheit der Wähler private Stimmzettel bevorzugt. [private-vote]

Ein geheimes Wahlrecht wird von vielen als Voraussetzung für eine freie und faire Wahl angesehen, die es den Mitgliedern ermöglicht, ihre wahren Präferenzen zu wählen, ohne sich Sorgen über sozialen Druck oder mögliche Folgen ihrer Abstimmung machen zu müssen.

Warum die Verwendung von CIVS?

In der anschließenden Diskussion dieses PEP wurde festgestellt, dass die Core-Entwickler ein geheimes Wahlrecht wünschten. [private-vote] Leider erfordert ein geheimes Wahlrecht entweder neuartige Kryptografie oder eine vertrauenswürdige Partei zur Anonymisierung der Stimmzettel. Da keine bekannten neuartigen kryptografischen Systeme für Condorcet-Stimmzettel existieren, wurde das CIVS-System als vertrauenswürdige Partei gewählt.

Weitere Informationen über die Sicherheit und den Datenschutz von CIVS, einschließlich dessen, wie ein böswilliger Wähler, ein Wahlleiter oder ein CIVS-Administrator die Wahl beeinflussen kann, finden Sie hier.

Warum können Wähler ihre Stimme nicht ändern?

CIVS erlaubt es Wählern nicht, ihre Stimme zu aktualisieren, und dies gehört zu seinen Zielen, den Wahlleiter von der Beeinflussung der Stimmen abzuhalten.

Gibt es Mängel bei der Condorcet-Methode?

Es gibt keine perfekte Wahlmethode. Es wurde durch den Gibbard-Satterthwaite-Theorem gezeigt, dass jede einklassige Rangwahlmethode, die nicht diktatorisch ist, anfällig für sogenanntes „taktisches Wählen“ sein muss. Dies kann dazu führen, dass Menschen nicht so abstimmen, wie sie es wirklich glauben, um das Ergebnis zu beeinflussen.

Die Condorcet-Methode hat auch die Möglichkeit von Zyklen (bekannt als das Condorcet-Paradox). Da die Condorcet-Methode einen Gewinner auf der Grundlage ermittelt, ob er in einem 1-gegen-1-Rennen gegen die anderen Optionen gewinnen würde, besteht die Möglichkeit, dass PEP A > PEP B > PEP C > PEP A (oder in Bezug auf das Spiel Stein-Schere-Papier, stellen Sie sich ein Dreispiel vor, bei dem jemand Stein, ein anderer Papier und der letzte Schere gespielt hat; niemand gewinnt dieses Spiel, da jeder von jemandem besiegt wird). Für eine analysierte Menge von realen Wahlen mit 21 oder mehr Wählern trat ein Zyklus weniger als 1,5 % der Zeit auf.

Referenzen


Source: https://github.com/python/peps/blob/main/peps/pep-8001.rst

Last modified: 2025-02-01 08:55:40 GMT