Menü
Developer

Python-Projekt beschließt neues Governance-Modell

Seit dem Rückzug des "wohlwollenden Diktators" Guido van Rossum ringt die Community um eine neue Führung. Künftig soll ein Lenkungsausschuss das Projekt leiten.

vorlesen Drucken Kommentare lesen 16 Beiträge

(Bild: Pixabay / Python)

Der Streit über den von Guido van Rossum vorgelegten PEP 572, mit dem Assignment Expressions in Python eingeführt werden sollten, führte zur Jahresmitte zum Rückzug des Python-Erfinders von seiner Führungsrolle als Benevolent Dictator for Life (BDFL) – zu Deutsch "Wohlwollender Diktator auf Lebenszeit". Seither bemüht sich die Community um ein neues Governance-Modell, um die Führung des Projekts auf ein solides Fundament zu stellen. Am 17. Dezember 2018 entschieden sich die Wähler – eine Gruppe von CPython-Core-Entwicklern – nun für einen von sechs Python Enhancement Proposals: Der PEP 8016 ("The Steering Council Model") sieht die Einrichtung eines fünfköpfigen Lenkungsausschuss vor, den das Core-Team von Python wählen soll.

Der auf Nathaniel J. Smith und Donald Stufft zurückgehende Vorschlag baut wie die meisten anderen auf eine duale Führungsstruktur aus Vorstand und Core-Team. Zum Start des neuen Governance-Modells sollen sich die aktiven Mitglieder des Core-Teams aus den im GitHub-Projekt gelisteten Kandidaten rekrutieren. Als inaktives Mitglied kommt jeder in Frage, der in der Vergangenheit als Committer zu Python beigetragen hat. Interessanterweise beschränkt der PEP 8016 die Rolle der Core-Team-Mitglieder aber nicht wie üblich auf Developer, stattdessen ist explizit die Rede von "vertrauenswürdigen Freiwilligen", die das Python-Projekt managen sollen. Ihnen fällt unter anderen die Verantwortung über die komplette Infrastruktur zu, sie ernennen weitere Teammitglieder und wählen den Steering Council.

Die Neuaufnahme in das Core-Team erfordert eine Entscheidung mit Zweidrittelmehrheit der Mitglieder. Allerdings räumt das neue Governance-Modell dem Lenkungsausschuss dabei ein Vetorecht ein, das sich nach Aussage von Smith am Vorbild des Django-Projekts orientiert. Im Zweifelsfall kann der Vorstand sogar über den Ausschluss eines aktiven Core-Teammitglieds entscheiden, wenn mindestens vier der fünf Council-Abgeordneten dafür stimmen.

Dem Lenkungsausschuss kommt darüber hinaus auch eine breit angelegte Entscheidungsbefugnis zur grundlegenden Ausrichtung und Lenkung des Python-Projekts zu. Erklärtes Ziel sei es aber, dass der Steering Council seine Autorität – ebenso wie den Ermessensspielraum bei der Wahl der Core-Teammitglieder – aber nur möglichst selten ausübt. Die Führung solle vorzugsweise auf Konsens setzen und die operative Leitung des Projekts auf möglichst viele Schultern verteilen. Dazu soll ein weiterer PEP ausgearbeitet werden, der künftige Entscheidungsprozesse so definiert, dass es nur in Ausnahmefällen zu Vetos durch den Council kommt. Die Führung soll dadurch in der Lage sein, sich auf die Sicherung von Qualität und Stabilität von Python und den CPython-Implementierungen fokussieren zu können.

Über eine Änderung des gewählten Governance-Modells darf nur das Core-Team entscheiden – mit mindestens Zweidrittelmehrheit. Die Mitglieder des Steering Council sind nur jeweils für die Dauer eines Python Feature Release gewählt – üblicherweise rund 18 Monate. Dem aktuellen Ausschuss bleiben bis zur geplanten Veröffentlichung von Python 3.8 im Oktober 2019 allerdings nur noch gut 10 Monate. Danach muss ein neuer Lenkungsausschuss zusammengestellt werden, dessen Kandidaten das Core-Team nominiert. Die Core-Teammitglieder dürfen bis zu fünf Kandidaten wählen. Die fünf mit den meisten Stimmen rücken anschließend in das Gremium. Bei Stimmengleichheit entscheidet entweder das Los oder die Kandidaten einigen sich untereinander.

Um Interessenkonflikte bei der Arbeit für den Steering Council zu vermeiden, gilt die Beschränkung, dass maximal zwei Mitglieder für das gleiche Unternehmen tätig sein dürfen. Sollte außerdem eine Situation eintreten, in der das Core-Team der Arbeit des Lenkungsausschusses nicht mehr folgen will, kann ein Misstrauensantrag gegen einzelne Mitglieder oder den gesamten Council beantragt werden. Den Antrag müssen mindestens zwei Mitglieder des Core-Teams unterstützen.

Der Wahl des neuen Governance-Modells gingen seit van Rossums Rücktritt zahlreiche Diskussionen über die Wahlmethoden, die Dauer der Wahlperiode sowie das Verfahren zur Ermittlung des Gewinners voraus, die zu Verzögerungen führten. Ursprünglich sollte die Entscheidung bereits am 1. Dezember fallen. Unter den zur Wahl stehenden Governance-Modellen fanden sich zwei Vorschläge, die entweder am bisher praktizierten "wohlwollenden Diktator" festhalten (PEP 8010 – "The Technical Leader Governance Model") oder aber zugunsten der Community ganz auf eine zentrale Autoritätsinstanz verzichten wollten (PEP 8012 – "The Community Governance Model"). Während PEP 8010 in der Abstimmung nur auf dem letzten Platz landete, verpasste der Community-zentrierte PEP 8012 nur knapp den Sieg. (map)