SciPy Projekt-Governance#

Der Zweck dieses Dokuments ist die Formalisierung des Governance-Prozesses, der vom SciPy-Projekt in gewöhnlichen und außergewöhnlichen Situationen angewendet wird, und die Klärung, wie Entscheidungen getroffen werden und wie die verschiedenen Elemente unserer Community interagieren, einschließlich der Beziehung zwischen Open-Source-Kollaborationsentwicklung und Arbeiten, die von gewinnorientierten oder gemeinnützigen Organisationen finanziert werden.

Das Projekt#

Das SciPy-Projekt (Das Projekt) ist ein Open-Source-Softwareprojekt. Das Ziel von Das Projekt ist die Entwicklung von Open-Source-Software für wissenschaftliches Rechnen in Python und insbesondere des Pakets scipy. Die von Das Projekt entwickelte Software wird unter der BSD-Lizenz (oder einer ähnlichen) Open-Source-Lizenz veröffentlicht, offen entwickelt und in öffentlichen GitHub-Repositories unter der scipy GitHub-Organisation gehostet.

Das Projekt wird von einem Team verteilter Entwickler, sogenannter Mitwirkender (Contributors), entwickelt. Mitwirkende sind Personen, die Code, Dokumentation, Designs oder andere Arbeiten zum Projekt beigetragen haben. Jeder kann ein Mitwirkender sein. Mitwirkende können mit jeder juristischen Person oder keiner verbunden sein. Mitwirkende nehmen am Projekt teil, indem sie GitHub-Pull-Requests und Issues einreichen, überprüfen und diskutieren sowie an offenen und öffentlichen Projektgesprächen auf GitHub, in Foren und anderen Kanälen teilnehmen. Die Grundlage der Projektteilnahme sind Offenheit und Transparenz.

Die Projekt-Community besteht aus allen Mitwirkenden und Benutzern des Projekts. Mitwirkende arbeiten im Namen und sind dem größeren Projekt-Community verantwortlich, und wir streben danach, die Barriere zwischen Mitwirkenden und Benutzern so gering wie möglich zu halten.

Das Projekt ist keine juristische Person und hat derzeit keine formellen Beziehungen zu juristischen Personen.

Governance#

Dieser Abschnitt beschreibt das Governance- und Führungsmodell von Das Projekt.

Die Grundlagen der Projekt-Governance sind

  • Offenheit und Transparenz

  • aktive Beteiligung

  • institutionelle Neutralität

Traditionell wurde die Projektleitung von einer Untergruppe der Mitwirkenden, den sogenannten Kernentwicklern (Core Developers), bereitgestellt, deren aktive und konsistente Beiträge durch den Erhalt von "Commit-Rechten" für die GitHub-Repositories des Projekts anerkannt wurden. Im Allgemeinen werden alle Projektentscheidungen durch Konsens unter den Kernentwicklern mit Input aus der Community getroffen.

Obwohl dieser Ansatz uns gut gedient hat, sehen wir mit dem Wachstum des Projekts einen Bedarf an einem formelleren Governance-Modell. Die SciPy-Kernentwickler haben eine Präferenz für ein Führungsmodell geäußert, das einen BDFL (Benevolent Dictator for Life) einschließt. Daher wird die Projektleitung zukünftig aus einem BDFL und einem Lenkungsausschuss (Steering Council) bestehen.

BDFL#

Das Projekt wird einen BDFL (Benevolent Dictator for Life) haben, der derzeit Pauli Virtanen ist. Als Diktator hat der BDFL die Autorität, alle endgültigen Entscheidungen für Das Projekt zu treffen. Als wohlwollend (Benevolent) entscheidet der BDFL in der Praxis, diese Autorität an den Konsens der Community-Diskussionskanäle und des Lenkungsausschusses (siehe unten) zu delegieren. Es wird erwartet, und war in der Vergangenheit der Fall, dass der BDFL seine endgültige Autorität nur selten geltend macht. Da diese selten genutzt wird, bezeichnen wir die endgültige Autorität des BDFL als "spezielle" oder "überschreibende" Stimme. Wenn dies geschieht, geschieht die BDFL-Überschreibung typischerweise in Situationen, in denen es zu einer Blockade im Lenkungsausschuss kommt oder wenn der Lenkungsausschuss den BDFL bittet, eine Entscheidung in einer bestimmten Angelegenheit zu treffen. Um die Wohlwollenheit des BDFL zu gewährleisten, ermutigt Das Projekt andere, das Projekt zu forken, wenn sie mit der allgemeinen Richtung, die der BDFL einschlägt, nicht einverstanden sind. Der BDFL kann seine Autorität für eine bestimmte Entscheidung oder eine Reihe von Entscheidungen nach eigenem Ermessen an jedes andere Ratsmitglied delegieren.

Der BDFL kann seinen Nachfolger ernennen, es wird jedoch erwartet, dass der Lenkungsausschuss in diese Entscheidung einbezogen wird. Wenn der BDFL keinen Nachfolger ernennen kann, wird der Lenkungsausschuss diese Entscheidung treffen – vorzugsweise durch Konsens, bei Bedarf aber auch durch Mehrheitsbeschluss.

Beachten Sie, dass der BDFL jederzeit zurücktreten kann und in gutem Glauben auch ernste Aufforderungen dazu berücksichtigen wird. Beachten Sie auch, dass der BDFL eher eine Rolle für die Entscheidungsvorbereitung im Notfall als die eines Direktors/Geschäftsführers ist.

Lenkungsausschuss#

Das Projekt wird einen Lenkungsausschuss haben, der aus Projektmitwirkenden besteht, die substanzielle Beiträge in Qualität und Quantität geleistet haben und dies über mindestens ein Jahr aufrechterhalten haben. Die Hauptaufgabe des Ausschusses ist es, durch die Zusammenarbeit mit dem BDFL und unter Berücksichtigung des Inputs der Community das langfristige Wohl des Projekts, sowohl technisch als auch als Community, zu gewährleisten.

Der Ausschuss wird einen Vorsitzenden haben, der für die Organisation der Funktionsweise des Ausschusses und des Projekts zuständig ist. Der Ausschuss wird auch einen Release Manager für das Projekt ernennen, der die endgültige Verantwortung für eine oder mehrere Veröffentlichungen trägt.

Im Rahmen der alltäglichen Projektaktivitäten nehmen die Ausschussmitglieder als Kollegen mit allen anderen Mitwirkenden und der Community an allen Diskussionen, Code-Reviews und anderen Projektaktivitäten teil. Bei diesen alltäglichen Aktivitäten haben die Ausschussmitglieder aufgrund ihrer Mitgliedschaft im Ausschuss keine besonderen Befugnisse oder Privilegien. Aufgrund der Qualität und Quantität ihrer Beiträge und ihres Fachwissens über die Projektsoftware und -dienste wird jedoch erwartet, dass die Ausschussmitglieder nützliche Anleitungen, sowohl technischer Natur als auch in Bezug auf die Projektrichtung, für potenziell weniger erfahrene Mitwirkende geben.

Der Lenkungsausschuss und seine Mitglieder spielen in bestimmten Situationen eine besondere Rolle. Insbesondere kann der Ausschuss

  • Entscheidungen über den Gesamtumfang, die Vision und die Richtung des Projekts treffen.

  • Entscheidungen über strategische Kooperationen mit anderen Organisationen oder Einzelpersonen treffen.

  • Entscheidungen über spezifische technische Probleme, Funktionen, Fehler und Pull-Requests treffen. Sie sind der primäre Mechanismus zur Steuerung des Code-Review-Prozesses und zum Zusammenführen von Pull-Requests.

  • Entscheidungen über die vom Projekt betriebenen Dienste treffen und diese Dienste zum Wohle des Projekts und der Community verwalten.

  • Entscheidungen treffen, wenn die reguläre Community-Diskussion innerhalb eines angemessenen Zeitrahmens keinen Konsens zu einer Frage erzielt.

  • Richtliniendokumente wie dieses aktualisieren.

Mitgliedschaft im Ausschuss#

Um für die Mitgliedschaft im Lenkungsausschuss in Frage zu kommen, muss eine Person ein Projektmitwirkender sein, der substanzielle Beiträge in Qualität und Quantität geleistet hat und dies über mindestens ein Jahr aufrechterhalten hat. Potenzielle Ausschussmitglieder werden von bestehenden Ausschussmitgliedern nominiert und von den bestehenden Ausschussmitgliedern gewählt, nachdem sie gefragt wurden, ob das potenzielle Mitglied interessiert und bereit ist, diese Funktion auszuüben. Der Ausschuss wird zunächst aus der Menge der bestehenden Kernentwickler gebildet, die ab Januar 2017 in den letzten zwei Jahren aktiv waren.

Bei der Berücksichtigung potenzieller Mitglieder wird der Ausschuss Kandidaten mit einer umfassenden Sicht auf ihre Beiträge betrachten. Dies umfasst, ist aber nicht beschränkt auf, Code, Code-Reviews, Infrastrukturarbeit, Foren- und Chat-Teilnahme, Community-Hilfe/-Aufbau, Bildung und Öffentlichkeitsarbeit, Designarbeit usw. Wir legen bewusst keine willkürlichen quantitativen Metriken fest (wie z. B. „100 Commits in diesem Repository“), um Verhaltensweisen zu vermeiden, die auf die Metriken und nicht auf das allgemeine Wohl des Projekts abzielen. Wir möchten eine Vielfalt von Hintergründen, Perspektiven und Talenten in unserem Team fördern, weshalb wir Code nicht ausdrücklich als alleinige Metrik definieren, anhand derer die Ausschussmitgliedschaft bewertet wird.

Wenn ein Ausschussmitglied für einen Zeitraum von einem Jahr im Projekt inaktiv wird, wird seine Entfernung aus dem Ausschuss geprüft. Vor der Entfernung wird das inaktive Mitglied kontaktiert, um zu sehen, ob es plant, die aktive Teilnahme wieder aufzunehmen. Wenn nicht, wird es sofort nach Abstimmung des Ausschusses entfernt. Wenn es plant, bald zur aktiven Teilnahme zurückzukehren, erhält es eine Gnadenfrist von einem Jahr. Wenn es innerhalb dieses Zeitraums nicht zur aktiven Teilnahme zurückkehrt, wird es durch Abstimmung des Ausschusses ohne weitere Gnadenfrist entfernt. Alle ehemaligen Ausschussmitglieder können jederzeit in Zukunft erneut für die Mitgliedschaft in Betracht gezogen werden, wie jeder andere Projektmitwirkende auch. Ruhende Ausschussmitglieder werden auf der Projekt-Website aufgeführt und würdigen den Zeitraum, in dem sie im Ausschuss aktiv waren.

Der Ausschuss behält sich das Recht vor, aktuelle Mitglieder, mit Ausnahme des BDFL, zu entlassen, wenn sie als aktiv schädlich für das Wohl des Projekts angesehen werden und Versuche der Kommunikation und Konfliktlösung fehlgeschlagen sind.

Eine Liste der aktuellen Mitglieder des Lenkungsausschusses wird auf der Seite Über uns geführt.

Vorsitzender des Ausschusses#

Der Vorsitzende wird vom Lenkungsausschuss ernannt. Der Vorsitzende kann so lange im Amt bleiben, wie er möchte, kann aber jederzeit zurücktreten und wird ernste Aufforderungen dazu (ähnlich der Rolle des BDFL) berücksichtigen. Der Vorsitzende ist verantwortlich für

  • Einleitung einer Überprüfung der technischen Ausrichtung des Projekts (wie in der SciPy Roadmap dargestellt) halbjährlich, etwa Mitte April und Mitte Oktober.

  • Zu den gleichen Zeiten im Jahr Zusammenfassung aller relevanten organisatorischen Aktualisierungen und Probleme im vorhergehenden Zeitraum und Einholung von Feedback/Vorschlägen im Forum.

  • Sicherstellung, dass die Zusammensetzung des Lenkungsausschusses aktuell bleibt.

  • Sicherstellung, dass im privaten Kreis des Lenkungsausschusses besprochene Angelegenheiten im Forum zusammengefasst werden, um die Community auf dem Laufenden zu halten.

  • Sicherstellung, dass andere wichtige Organisationsdokumente (z. B. Verhaltenskodex, Vereinbarung zur finanziellen Förderung) nach ihrer Aufnahme aktuell bleiben.

Release Manager#

Der Release Manager hat die endgültige Verantwortung für die Erstellung einer Veröffentlichung. Dies beinhaltet

  • Vorschlag und Entscheidung über den Zeitpunkt einer Veröffentlichung.

  • Festlegung des Inhalts einer Veröffentlichung, falls kein Konsens zu einer bestimmten Änderung oder Funktion besteht.

  • Erstellung der Veröffentlichung und Ankündigung auf den relevanten öffentlichen Kanälen.

Weitere Details zu diesen Verantwortlichkeiten finden Sie unter Erstellung einer SciPy-Veröffentlichung.

Interessenkonflikt#

Es wird erwartet, dass der BDFL und die Ausschussmitglieder bei einer Vielzahl von Unternehmen, Universitäten und gemeinnützigen Organisationen angestellt sind. Daher ist es möglich, dass Mitglieder einen Interessenkonflikt haben. Solche Interessenkonflikte umfassen, sind aber nicht beschränkt auf

  • Finanzielles Interesse, wie z. B. Investitionen, Anstellungen oder vertragliche Tätigkeiten außerhalb des Projekts, die ihre Arbeit am Projekt beeinflussen könnten.

  • Zugang zu proprietären Informationen ihres Arbeitgebers, die potenziell in ihre Arbeit mit dem Projekt einfließen könnten.

Alle Mitglieder des Ausschusses, einschließlich des BDFL, müssen dem Rest des Ausschusses jeden Interessenkonflikt offenlegen, den sie haben könnten. Mitglieder mit einem Interessenkonflikt zu einer bestimmten Angelegenheit können an den Diskussionen des Ausschusses zu dieser Angelegenheit teilnehmen, müssen sich jedoch von der Abstimmung über diese Angelegenheit enthalten. Wenn sich der BDFL für eine bestimmte Entscheidung enthalten hat, wird der Ausschuss einen Ersatz-BDFL für diese Entscheidung ernennen.

Private Kommunikation des Ausschusses#

Sofern nicht ausdrücklich erforderlich, werden alle Diskussionen und Aktivitäten des Ausschusses öffentlich und in Zusammenarbeit und Abstimmung mit den Projektmitwirkenden und der Community geführt. Der Ausschuss verfügt über eine private Mailingliste, die sparsam und nur dann verwendet wird, wenn eine bestimmte Angelegenheit Vertraulichkeit erfordert. Wenn private Kommunikation und Entscheidungen erforderlich sind, wird der Ausschuss sein Bestes tun, diese der Community zusammenzufassen, nachdem persönliche/private/sensible Informationen entfernt wurden, die nicht im öffentlichen Internet veröffentlicht werden sollten.

Entscheidungsfindung im Ausschuss#

Wenn es für den Lenkungsausschuss notwendig wird, eine formelle Entscheidung zu treffen, wird eine Form des Abstimmungsprozesses der Apache Foundation verwendet. Dies ist eine formalisierte Version des Konsenses, bei der +1-Stimmen Zustimmung bedeuten, -1-Stimmen Veto darstellen (und wie oben mit einer Begründung versehen sein müssen) und man auch bruchstückhaft abstimmen kann (z. B. -0,5, +0,5), wenn man seine Meinung ausdrücken möchte, ohne ein vollständiges Veto einzulegen. Diese numerischen Stimmen werden oft auch informell als Möglichkeit genutzt, um ein allgemeines Gefühl für die Meinungen zu einem Thema zu erhalten, und sollten normalerweise nicht als formelle Abstimmungen betrachtet werden. Eine formelle Abstimmung findet nur statt, wenn sie ausdrücklich erklärt wird, und wenn dies geschieht, sollte die Abstimmung lange genug offen gehalten werden, um allen interessierten Ausschussmitgliedern die Möglichkeit zu geben, zu antworten – mindestens eine Woche.

In der Praxis gehen wir davon aus, dass für die meisten Entscheidungen des Lenkungsausschusses (z. B. die Aufnahme neuer Mitglieder) ein informellerer Prozess ausreicht.

Institutionelle Partner und Finanzierung#

Der Lenkungsausschuss ist die primäre Führung für das Projekt. Keine externe Institution, Einzelperson oder juristische Person hat die Fähigkeit, das Projekt zu besitzen, zu kontrollieren, zu usurpieren oder zu beeinflussen, außer durch die Teilnahme am Projekt als Mitwirkende und Ausschussmitglieder. Da Institutionen jedoch ein wichtiger Finanzierungsmechanismus für das Projekt sein können, ist es wichtig, die institutionelle Teilnahme am Projekt formell anzuerkennen. Dies sind Institutionelle Partner.

Ein institutioneller Mitwirkender ist jede einzelne Projektmitwirkende, die im Rahmen ihrer offiziellen Pflichten bei einem institutionellen Partner zum Projekt beiträgt. Ebenso ist ein institutionelles Ausschussmitglied jedes Mitglied des Projekt-Lenkungsausschusses, das im Rahmen seiner offiziellen Pflichten bei einem institutionellen Partner zum Projekt beiträgt.

Mit diesen Definitionen ist ein institutioneller Partner jede anerkannte juristische Person in jedem Land, die mindestens einen institutionellen Mitwirkenden oder ein institutionelles Ausschussmitglied beschäftigt.

Institutionen werden zur Teilnahme als institutioneller Partner berechtigt, indem sie Einzelpersonen beschäftigen, die aktiv zum Projekt beitragen und dies als Teil ihrer offiziellen Pflichten tun. Anders ausgedrückt: Der einzige Weg für einen Partner, das Projekt zu beeinflussen, besteht darin, aktiv zur offenen Entwicklung des Projekts beizutragen, und zwar zu gleichen Bedingungen wie jedes andere Mitglied der Community von Mitwirkenden und Ausschussmitgliedern. Die bloße Nutzung von Projektsoftware im institutionellen Kontext ermöglicht es einer Organisation nicht, ein institutioneller Partner zu werden. Finanzielle Schenkungen ermöglichen einer Organisation nicht, ein institutioneller Partner zu werden. Sobald eine Institution berechtigt ist, ein institutioneller Partner zu werden, muss der Lenkungsausschuss die Partnerschaft vorschlagen und genehmigen.

Wenn ein bestehender institutioneller Partner zu einem bestimmten Zeitpunkt keine beitragenden Mitarbeiter mehr hat, beginnt eine einjährige Gnadenfrist. Wenn am Ende dieser einjährigen Frist weiterhin keine beitragenden Mitarbeiter vorhanden sind, verfällt die institutionelle Partnerschaft, und die Wiederaufnahme erfordert den normalen Prozess für neue Partnerschaften.

Ein institutioneller Partner ist frei, die Finanzierung seiner Arbeit am Projekt auf jede legale Weise zu verfolgen. Dies kann die Beschaffung von Mitteln durch eine gemeinnützige Organisation von privaten Stiftungen und Spendern oder den Aufbau proprietärer Produkte und Dienstleistungen durch ein gewinnorientiertes Unternehmen, das Projektsoftware und -dienste nutzt, umfassen. Von institutionellen Partnern zur Arbeit am Projekt erhaltene Finanzmittel werden als institutionelle Finanzierung bezeichnet. Jedoch kann keine von einem institutionellen Partner erhaltene Finanzierung den Lenkungsausschuss außer Kraft setzen. Wenn ein Partner über Mittel für SciPy-Arbeiten verfügt und der Ausschuss beschließt, diese Arbeit nicht als Projekt zu verfolgen, steht es dem Partner frei, sie auf eigene Faust zu verfolgen. In diesem Fall liegt dieser Teil der Arbeit des Partners jedoch nicht unter dem SciPy-Schirm und darf die Projektmarken in keiner Weise verwenden, die eine formelle Beziehung suggeriert.

Vorteile für institutionelle Partner sind

  • Anerkennung auf der SciPy-Website und in Vorträgen

  • Möglichkeit, eigene Finanzierungsquellen auf der SciPy-Website und in Vorträgen zu nennen

  • Möglichkeit, das Projekt durch die Teilnahme seines Ausschussmitglieds zu beeinflussen

  • Einladung von Ausschussmitgliedern zu SciPy-Entwicklertreffen

Eine Liste der aktuellen institutionellen Partner wird auf der Seite Über uns geführt.

Dokumentenhistorie#

scipy/scipy

Danksagungen#

Erhebliche Teile dieses Dokuments wurden aus dem Governance-Dokument des Jupyter/IPython-Projekts und dem Governance-Dokument von NumPy angepasst.

Lizenz#

Soweit nach geltendem Recht möglich, haben die Autoren alle Urheberrechte und verwandten oder nachbarrechtlichen Rechte am SciPy-Projekt-Governance-Dokument verzichtet, gemäß der CC-0 Public Domain Dedication / License.