NuGet-GovernanceNuGet governance

Dieser Artikel basiert auf dem Governancemodell des wohlmeinenden Diktators der University of Oxford.This document is based upon the Benevolent Dictator Governance Model by the University of Oxford. Es steht unter der Creative Commons-Lizenz Namensnennung-Weitergabe unter gleichen Bedingungen 2.0 UK: England & Wales.It is licensed under a Creative Commons Attribution-ShareAlike 2.0 UK: England & Wales License.

Das NuGet-Projekt wird von einem wohlmeinenden Diktator geleitet und von der Community verwaltet.The NuGet project is led by a Benevolent Dictator and managed by the community. Das bedeutet, dass die Community aktiv an der täglichen Wartung des Projekts mitwirkt, aber die strategische Leitung dem wohlmeinenden Diktator zufällt.That is, the community actively contributes to the day-to-day maintenance of the project, but the general strategic line is drawn by the benevolent dictator. Im Zweifelsfall hat der wohlmeinende Diktator das letzte Wort.In case of disagreement, the benevolent dictator has the last word.

Die Aufgabe des wohlmeinenden Diktators ist es, Uneinigkeit innerhalb der Community zu klären und sicherzustellen, dass das Projekt koordiniert bearbeitet wird.It is the benevolent dictator’s job to resolve disputes within the community and to ensure that the project is able to progress in a coordinated way. Es ist wiederum die Aufgabe der Community, dem wohlmeinenden Diktator die Entscheidungsfindung durch aktive Teilnahme und engagiertes Mitwirken zu ermöglichen.In turn, it's the community’s job to guide the decisions of the benevolent dictator through active engagement and contribution.

Rollen und ZuständigkeitenRoles and responsibilities

An dieser Stelle werden vier Rollen beschrieben: der wohlmeinende Diktator, Committer, Mitwirkende und Benutzer.There are four roles described here: Benevolent Dictator, Committers, Contributors, and Users.

Wohlmeinender DiktatorBenevolent dictator

Das NuGet-Kernteam weist selbst einen wohlmeinenden Diktator oder eine Projektleitung zu.The NuGet core team is self-appointed as Benevolent Dictator or project lead. Da die Community immer forken kann, ist das Team für die Community verantwortlich.However, because the community always has the ability to fork, the team is fully answerable to the community. Die Projektleitung muss die Community als Ganzes verstehen und sich bemühen, so viele unterschiedliche Bedürfnisse wie möglich zu erfüllen, während gleichzeitig das langfristige Bestehen des Projekts sichergestellt wird.The project lead is expected to understand the community as a whole and strive to satisfy as many conflicting needs as possible, while ensuring that the project survives in the long term.

In vielerlei Hinsicht besteht die Rolle des wohlmeinenden Diktators weniger im Bestimmen als im Vermitteln.In many ways, the role of the benevolent dictator is less about dictatorship and more about diplomacy. Der entscheidende Punkt ist, den Richtigen Verantwortung für das Projekt zu übertragen, während dieses wächst, sodass die Community gemeinsam die Idee der Projektleitung verwirklichen kann.The key is to ensure that, as the project expands, the right people are given influence over it and the community rallies behind the vision of the project lead. Die Aufgabe der Projektleitung ist es, sicherzustellen, dass die Committers (siehe unten) die für das Projekt richtigen Entscheidungen treffen.The lead’s job is then to ensure that the committers (see below) make the right decisions on behalf of the project. Prinzipiell bedeutet dies, dass die Projektleitung nicht in deren Vorgehen eingreift, solange dieses der Strategie des Projekts entspricht.Generally speaking, as long as the committers are aligned with the project’s strategy, the project lead will allow them to proceed as they desire.

Zusätzlich ist die Projektleitung die wichtigste bzw. die erste Anlaufstelle für NuGet für .NET Foundation-Mitarbeiter bei Geschäftsvorgängen wie der Domänenregistrierung und bei technischen Diensten (z.B. Codesignierung).Additionally, .NET Foundation staff consider the project lead the primary or first point of contact for NuGet for purposes of business operations including domain registrations, and technical services (e.g. code-signing).

CommittersCommitters

Committers sind Mitwirkende, die nützliche Beiträge zu NuGet geleistet haben. Sie werden vom wohlmeinenden Diktator ernannt.Committers are contributors who have made sustained valuable contributions to NuGet and are appointed by the Benevolent Dictator. Ab ihrer Ernennung sollen Committers sowohl Code direkt in das Repository schreiben als auch die Beiträge anderer überprüfen.Once appointed, committers are relied upon to both write code directly to the repository and screen the contributions of others. Committers sind häufig Entwickler, können aber auch anderweitig zu einem Projekt beitragen.Committers are often developers but can contribute in other ways.

Normalerweise konzentriert sich ein Committer auf einen bestimmten Aspekt des Projekts. Dabei bringt er wichtiges Fachwissen und ein umfassendes Verständnis mit, die für das Projekt wesentlich sind.Typically, a committer focuses on a specific aspect of the project, and brings a level of expertise and understanding that earns them the respect of the community and the project lead. Die Rolle eines Committers ist keine offizielle Rolle, sondern eine Position, die einflussreiche Mitglieder der Community einnehmen, um die Projektleitung zu unterstützen.The role of committer is not an official one, it's simply a position that influential members of the community assume as the project lead looks to them for guidance and support.

Committers haben bei der Ausrichtung von NuGet keine Entscheidungsgewalt.Committers have no authority where the overall direction of NuGet is concerned. Allerdings haben sie das Vertrauen der Projektleitung, die mit Fragen an sie herantritt.However, they do have the ear of the project lead. Committers sollen sicherstellen, dass die Projektleitung über die Bedürfnisse und die gemeinsamen Ziele der Community informiert ist, und sie sollen Beiträge zum Projekt leisten oder in die Wege leiten.It is a committer’s job to ensure that the lead is aware of the community’s needs and collective objectives, and to help develop or elicit appropriate contributions to the project. Häufig erhalten Committers die inoffizielle Kontrolle über ihren Zuständigkeitsbereich, und ihnen werden Berechtigungen zum direkten Anpassen gewisser Abschnitte des Quellcodes erteilt.Often, committers are given informal control over their specific areas of responsibility, and are assigned rights to directly modify certain areas of the source code. Das heißt also, dass Committers zwar keine Entscheidungsbefugnis haben, ihre Handlungen aber häufig mit den Entscheidungen der Projektleitung übereinstimmen.That is, although committers do not have explicit decision-making authority, they will often find that their actions are synonymous with the decisions made by the lead.

ContributorsContributors

Mitwirkende sind Mitglieder der Community, die Patches in NuGet einreichen.Contributors are community members who submit patches to NuGet. Diese Patches können sowohl einmal als auch mehrmals über einen längeren Zeitraum vorkommen.These patches may be a one-time occurrence or occur over time. Es wird erwartet, dass Mitwirkende Patches einreichen, die zunächst klein sind und mit wachsendem Vertrauen des Mitwirkenden, der Committers und der Projektleitung in die Qualität von Patches des Mitwirkenden immer größer werden.Expectations are that contributors submit patches that are small at first and grow larger when the contributor, committers, and the project lead have built confidence in the quality of a contributor's patches. Mitwirkende werden in den Anmerkungen zu der jeweiligen Version des Produkts anerkannt.Contributors are recognized in the associated product release notes document.

Bevor der erste Patch eines Mitwirkenden in das Repository aufgenommen wird, muss er eine Lizenzvereinbarung für Mitwirkende oder einen Abtretungsvertrag für .NET Foundation unterzeichnen.Before a contributor’s first patch is put into the repository, they must sign a Contributor License Agreement or an assignment agreement to the .NET Foundation. Der Patch kann eingereicht und besprochen werden, aber er kann ohne die entsprechenden Dokumente nicht im Repository committet werden.The patch can be submitted and discussed but it can’t actually be committed to the repository without the appropriate paperwork in place. Senden Sie eine E-Mail an contributions@nuget.org, um eine Lizenzvereinbarung für Mitwirkende anzufordern.To obtain a contributor license agreement, please send a request in email to contributions@nuget.org.

Reichen Sie einen Pull Request in einem der folgenden Repositorys ein, um Mitwirkender zu werden:To become a contributor, submit a pull request to one of the following repositories:

Der genaue Prozess zum Einreichen eines Pull Requests unterscheidet sich je nach Repository:The detailed process for submitting a pull request varies by repository:

BenutzerUsers

Benutzer sind Mitglieder der Community, die NuGet benötigen und verwenden, sei es als Paketnutzer oder als -ersteller (oder beides).Users are community members who have a need for and use NuGet, as package consumers and/or authors. Benutzer sind die wichtigsten Mitglieder der Community, denn ohne sie hätte das Projekt keinen Nutzen.Users are the most important members of the community: without them, the project would have no purpose. Jeder kann ein Benutzer sein. Es gibt keine besonderen Anforderungen.Anyone can be a user; there are no specific requirements.

Benutzer werden dazu angehalten, sich so viel wie möglich am Lebenszyklus von NuGet und an der Community zu beteiligen.Users should be encouraged to participate in the life of NuGet and the community as much as possible. Durch Beiträge von Benutzern kann das Projektteam sicherstellen, dass sie auf die Bedürfnisse der Benutzer eingehen.User contributions enable the project team to ensure that they are satisfying the needs of those users. Zu üblichen Benutzeraktivitäten zählt u.a. Folgendes:Common user activities include but are not limited to the following:

  • das Einsetzen für den Gebrauch des PaketsAdvocating for use of the project
  • das Melden der Stärken und Schwächen eines Projekt aus der Perspektive eines neuen BenutzersInforming developers of project strengths and weaknesses from a new user’s perspective
  • moralische Unterstützung (auch mal Danke sagen)Providing moral support (a thank you goes a long way)
  • Schreiben von Dokumentationen und TutorialsWriting documentation and tutorials
  • Einreichen von Problemberichten und FeatureanforderungenFiling bug reports and feature requests
  • die Teilname an Communityereignissen wie Bug BashesParticipating in community events, such as bug bashes
  • das Beteiligen an Diskussionen oder in ForenParticipating on discussion boards or forums

Wenn Benutzer sich fortlaufend an einem Projekt und der dazugehörigen Community beteiligen, wird ihre Beteiligung immer größer.Users who continue to engage with the project and its community will often find themselves becoming more and more involved. Dann kann es sein, dass diese Benutzer wie oben beschrieben zu Mitwirkenden werden.Such users may then go on to become contributors, as described above.

Nachfolge unter besonderen UmständenPackage succession under special circumstances

Wenn der Besitzer eines NuGet-Kontos arbeitsunfähig ist oder verstirbt, versuchen wir in Zusammenarbeit mit der Community einen oder mehrere Nachfolger als Besitzer für Pakete zu finden, für die das betroffene Konto der alleinige Besitzer war und die unter einer OSI-genehmigten Lizenz veröffentlicht wurden.In the unfortunate situation where a NuGet account holder is incapacitated or deceased, we’ll work with the community to add appropriate owner/s to the package where the said account has sole ownership and the package is published under an OSI approved license. Um den Besitz zu beantragen, müssen Sie uns folgende Dokumente schicken:To request ownership you must send us the following documents:

  1. eine Kopie Ihres Ausweises mit FotoA photocopy of your government-issued photo ID.
  2. eines der folgenden Dokumente, das den Zustand des vorherigen Besitzers bestätigt:One of the following documents proving the previous account holder’s status:
    • eine offizielle, von der Regierung ausgestellte Sterbeurkunde, wenn der vorherige Besitzer verstorben ist, oderAn official, government-issued death certificate if the previous account holder is deceased, or,
    • eine Bescheinigung, z.B. eine ärztliche Bescheinigung, in der bestätigt wird, dass der Kontoinhaber arbeitsunfähig istA certified document such as a certificate signed by a medical professional in charge of the care of an incapacitated account holder.
  3. eines der folgenden Dokumente, in dem Ihr Recht zum Besitz bestätigt wird:One of the following documents proving your right to ownership:
    • eine Heiratsurkunde, die belegt, dass Sie der Ehepartner des verstorbenen Kontoinhabers sind,Marriage certificate showing that you are the surviving spouse of the account holder,
    • eine unterschriebene Bevollmächtigung,Signed power of attorney,
    • eine Kopie eines Testaments oder Treuhanddokuments, die Sie als Vollstrecker oder Begünstigten nennen,Copy of a will or trust document naming you as executor or beneficiary,
    • eine Geburtsurkunde des Kontoinhabers, falls Sie ein Elternteil sind oderBirth certificate for the account holder, if you are their parent, or,
    • Vormundschaftsdokumente, falls Sie der Vormund des Kontoinhabers sind.Guardianship paperwork if you are a legal guardian of the account holder.

Falls Sie diese Vorkehrung in Anspruch nehmen müssen, senden Sie uns eine E-Mail an support@nuget.org mit der ID und der Version des Pakets.If you find yourself in need of invoking this policy, please send us an email at support@nuget.org with the ID and version of the package.

TransparenzTransparency

Der Erfolg eines Open Source-Projekts hängt im Wesentlichen vom Vertrauen der Community in die Governance ab.Building community trust in the governance of an open-source project is vital to its success. Deshalb müssen Entscheidungen transparent und offen getroffen werden.To that end, decision making must be done in a transparent, open fashion. Eine Diskussion über die Ausrichtung eines Projekts muss öffentlich geführt werden.Discussion about the project’s direction must be done publicly. Die Community sollte niemals von einer Entscheidung des wohlmeinenden Diktators überrascht werden.The community should never be caught off-guard by a decision by the Benevolent Dictator. Darüber hinaus müssen Diskussionen über Projektentscheidungen archiviert werden, damit Mitglieder der Community den Prozess und Kontext einer Entscheidung verstehen können.Additionally, discussion about project decisions must be archived so that community members can understand the entire history of a decision and its context.