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

Python Enhancement Proposals

PEP 731 – Charta der C-API-Arbeitsgruppe

Autor:
Guido van Rossum <guido at python.org>, Petr Viktorin <encukou at gmail.com>, Victor Stinner <vstinner at python.org>, Steve Dower <steve.dower at python.org>, Irit Katriel <irit at python.org>
Discussions-To:
Discourse thread
Status:
Aktiv
Typ:
Prozess
Thema:
Governance
Erstellt:
11-Okt-2023
Post-History:
13-Okt-2023, 23-Mai-2024, 19-Jun-2024
Resolution:
Discourse-Nachricht

Inhaltsverzeichnis

Zusammenfassung

Diese PEP schlägt die Einrichtung der C-API-Arbeitsgruppe vor: ein kleines Komitee von Python-Kernentwicklern, das für die Überwachung und Koordination der Entwicklung und Wartung der Python C-API verantwortlich ist.

Die Arbeitsgruppe wird Dokumentation, Testsuiten und Werkzeuge im Zusammenhang mit der Python C-API pflegen. Im Auftrag des Steering Council ist sie das entscheidende Gremium für Änderungen an der C-API, von der Hinzufügung oder Entfernung einzelner API-Funktionen, Typen usw. bis hin zur Annahme neuer Entwürfe mehr oder weniger radikaler Natur.

Das Mandat der Arbeitsgruppe ist es, die Interessen aller Python-Benutzer zu vertreten, insbesondere aber aller Maintainer von Code, der die Python C-API verwendet, sei es im Kontext von CPython, der Verwendung einer alternativen Python-Implementierung oder der Verwendung eines Bindungs-Frameworks für andere Programmiersprachen (wie C++ und Rust).

Die Arbeitsgruppe agiert nach dem Ermessen des Python Steering Council. Dieses Dokument dient als Charta der Arbeitsgruppe.

Epigraph

KEEPER
Halt! Wer die Brücke des Todes überqueren will, muss mir drei Fragen beantworten, bevor er die andere Seite sieht.
  1. Warum wurde Python benannt?
  2. Was war das Ende des Lebenszyklus von Python 2?
  3. Was ist die optimale Strategie zur Weiterentwicklung der CPython C-API?
LANCELOT
Auuuuuuuugh!

Motivation

Trotz zahlreicher Diskussionen und persönlicher Treffen bei Core Developer Sprints und Language Summits sowie einer gründlichen Bestandsaufnahme der Probleme und Interessengruppen der C-API wurde bei vielen strittigen Themen, einschließlich, aber nicht beschränkt auf, kein Konsens erzielt

  • Konventionen für das Design neuer API-Funktionen;
  • Wie man mit Kompatibilität umgeht;
  • Was die beste Strategie für die Fehlerbehandlung ist;
  • Die Zukunft der Stable ABI und der Limited API;
  • Ob auf eine Handle-basierte API-Konvention umgestellt werden soll (und wie).

Das allgemeine Gefühl ist, dass es zu viele Interessengruppen, Vorschläge, Anforderungen, Einschränkungen und Konventionen gibt, um Fortschritte zu erzielen, ohne eine kleine vertrauenswürdige Gruppe von Entscheidungsträgern zu haben.

Auf dem Language Summit 2023 in Salt Lake City wurde beschlossen, mit der Erstellung einer Bestandsaufnahme der Probleme zu beginnen. Auf dem Core Developer Sprint 2023 in Brünn ist diese Arbeit mehr oder weniger abgeschlossen, und nach einer Diskussion stellte sich heraus, dass der nächste Schritt die Einrichtung einer Arbeitsgruppe ist, um sicherzustellen, dass wir nicht für immer blockiert werden.

Das Steering Council hat seine Bereitschaft signalisiert, Entscheidungen über die C-API an eine solche Arbeitsgruppe zu delegieren und rechnet mit ihrer formellen Einrichtung.

Spezifikation

Wir schlagen die Schaffung einer neuen Gruppe vor, der C-API-Arbeitsgruppe. Diese Gruppe wird für die Überwachung und Koordination der Entwicklung und Wartung der Python C-API verantwortlich sein. Sie wird dies tun, indem sie die Prinzipien festlegt, die der Arbeit zugrunde liegen, und Richtlinien veröffentlicht, auf die sich die Kernentwickler beziehen können.

Der Abschnitt „Betrieb und Prozess“ beschreibt, wie die Arbeitsgruppe operiert und wie sie gesteuert wird.

Mitglieder

Die Mitglieder der Arbeitsgruppe sind

  • Erlend Aasland
  • Petr Viktorin
  • Serhiy Storchaka
  • Steve Dower
  • Victor Stinner

Mandat

Das Mandat der Arbeitsgruppe besteht darin, sicherzustellen, dass die Python C-API für alle Benutzer und Mitwirkenden der API geeignet ist, ohne eine Gruppe unangemessen gegenüber einer anderen zu bevorzugen. Die Arbeitsgruppe wird exemplarische Interessengruppen, ihre Bedürfnisse und Präferenzen identifizieren und einen Plan zur gerechten und nachhaltigen Erfüllung dieser Bedürfnisse entwickeln. Sie wird die Ausführung des Plans überwachen.

Betrieb und Prozess

Die Arbeitsgruppe hat mindestens drei Mitglieder, bestehend aus prominenten Python-Kernentwicklern. Die Mitglieder sollten die Bedürfnisse der verschiedenen Interessengruppen sorgfältig berücksichtigen.

Das Steering Council ernennt die anfängliche Arbeitsgruppe. Es gibt keine Amtszeitbegrenzung für die Mitglieder der Arbeitsgruppe. Die Mitglieder der Arbeitsgruppe können ihre Position jederzeit und aus beliebigem Grund niederlegen. Es besteht die Erwartung, dass sich die Mitgliedschaft im Laufe der Zeit ändern wird.

Um Ersatzleute zu bestimmen, werden Vorschläge aus der Gemeinschaft der Kernentwickler gesammelt. Selbstvorschläge sind zulässig. Die bestehende Arbeitsgruppe entscheidet dann aus den Nominierten über das/die Ersatzmitglied(er). Es wird davon ausgegangen, dass dies per Dekret geschieht, aber die Arbeitsgruppe kann einen Ersatz auf jede beliebige Weise bestimmen, einschließlich einer Abstimmung.

Die Arbeitsgruppe bleibt dem Steering Council gegenüber rechenschaftspflichtig. Das Steering Council kann jederzeit und aus beliebigem Grund (öffentlich oder privat) eine spezifische Änderung vornehmen oder eine nicht-spezifische Änderung an der Zusammensetzung der Arbeitsgruppe fordern.

Wir erkennen an, dass dies keine besonders demokratische Struktur ist und der Arbeitsgruppe viel Vertrauen entgegengebracht wird. Die Python-Community hat jedoch eine lange Erfolgsgeschichte mit Strukturen, die nicht vollständig demokratisch sind! Wir glauben, dass Selbstverwaltung, wechselnde Mitgliedschaft und Rechenschaftspflicht gegenüber dem Steering Council ausreichen werden, um sicherzustellen, dass die C-API-Arbeitsgruppe die Bedürfnisse der Community erfüllt.

Die Arbeitsgruppe kann hauptsächlich über die Überprüfung von GitHub-Issues und PRs operieren. Regelmäßige Treffen sind wahrscheinlich nicht notwendig, aber die Arbeitsgruppe kann Videokonferenzen, einen privaten Chat oder andere Mechanismen einrichten, die sie intern festlegt.

Die Arbeitsgruppe sollte auf Transparenz abzielen und alle Entscheidungen öffentlich auf discuss.python.org veröffentlichen, nach Möglichkeit mit einer Begründung. Bevor die Arbeitsgruppe eine Entscheidung trifft, sollte sie allen interessierten Community-Mitgliedern (als Beispiele für verschiedene Kategorien von Interessengruppen) die Möglichkeit geben, sich zu äußern. Zwischen dem Beginn einer Diskussion und der Entscheidung der Arbeitsgruppe sollten mindestens eine Woche liegen.

Beziehung zum Steering Council

Wie heute bleibt das Python Steering Council für die Gesamtrichtung der Python C-API verantwortlich und entscheidet weiterhin über PEPs im Zusammenhang mit der C-API unter Verwendung des standardmäßigen PEP-Review-Prozesses (Community-Diskussion usw.). Die C-API-Arbeitsgruppe gibt schriftliche Meinungen und Empfehlungen an das Steering Council zu PEPs im Zusammenhang mit der C-API ab.

Kleinere Änderungen an der C-API kann die Arbeitsgruppe jedoch direkt vornehmen. Das Steering Council kann auch beschließen, Entscheidungen über einige PEPs an die Arbeitsgruppe zu delegieren (genau wie jede andere PEP-Delegation).

Änderungen

Diese PEP dient als Charta für die Arbeitsgruppe. Änderungen an ihrer Funktionsweise können entweder durch eine neue PEP oder durch eine Änderung dieser PEP vorgenommen werden. In beiden Fällen wird die Änderung vom Steering Council nach Diskussion in der Community beschlossen.

Kontakt

Um die C-API-Arbeitsgruppe um eine Entscheidung zu bitten, können Community-Mitglieder ein Issue im Repository capi-workgroup/decisions eröffnen.


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

Zuletzt geändert: 2025-10-08 12:21:13 GMT