Mitwirken an einem Open-Source-Repository

Abgeschlossen

Wenn Sie einen Bereich gefunden haben, an dem Sie mitwirken möchten, müssen Sie als Nächstes Ihren Beitrag vorbereiten. In dieser Einheit wird erläutert, wie Sie Ihr Interesse an einer Beteiligung an dem Projekt bekunden, einen Pull Request erstellen und die Chancen erhöhen können, dass dieser akzeptiert wird.

Kommunikation ist besonders wichtig, wenn Sie sich an einem Open-Source-Projekt beteiligen möchten. Möglicherweise ist es Ihnen unangenehm, sich mit anderen über Ihre vorgeschlagenen Änderungen oder Verbesserungen auszutauschen. Dieser Dialog führt häufig zu Diskussionen und Kompromissen hinsichtlich Ihrer ursprünglichen Idee.

Wenn Sie die aktive Kommunikation mit anderen Benutzern vermeiden, die an einem Open-Source-Projekt beteiligt sind, bedeutet dies, dass Sie möglicherweise Ihre Zeit durch Arbeiten an Aufgaben verschwenden, an denen bereits eine andere Person arbeitet. Es kann auch sein, dass Sie an Features oder Verbesserungen arbeiten, die nicht den Werten oder bewährten Methoden des Projekts entsprechen. In beiden Fällen wird viel Zeit verschwendet. Im Umkehrschluss sorgen Sie durch aktive Kommunikation dafür, das Ihre Arbeit positiv angenommen wird und etwas bewirkt.

Aber wie tauschen Sie sich erfolgreich mit anderen Projektmitgliedern zu neuen Features und Änderungen aus? Versuchen Sie zunächst, unvoreingenommen zu sein. Seien Sie offen für Feedback, und üben Sie sich in Geduld. Maintainer von Open-Source-Projekten haben meistens einen festen Job und möchten sich auch ihrem Privatleben widmen. Wenn Sie nicht sofort eine Antwort erhalten, warten Sie eine längere Zeit lang ab, bevor Sie die Maintainer noch einmal anschreiben.

Vermitteln Ihrer Absicht an Maintainer

Bevor Sie mit der eigentlichen Arbeit beginnen, sollten Sie zunächst Ihr Interesse an einer Beteiligung bekunden. Wenn die README-Datei keine anderen Angaben enthält, eignet sich hierfür am besten die Problemverfolgung.

  • Wenn Sie an einem bestehenden Issue arbeiten möchten, vergewissern Sie sich, dass diesem niemand zugewiesen ist, indem Sie sich den Abschnitt Assignees (Zugewiesene Personen) ansehen. Überprüfen Sie auch den Abschnitt Linked pull requests (Verknüpfte Pull Requests). Ein verknüpfter Pull Request bedeutet, dass jemand bereits daran arbeitet. Gehen Sie die Kommentare durch, um herauszufinden, ob bereits jemand angegeben hat, an dem Issue arbeiten zu wollen. Wenn alles klar ist, posten Sie einen Kommentar zu dem Issue, um deutlich zu machen, dass Sie daran arbeiten möchten. Auf diese Weise können Sie anderen Benutzern, die sich nach Ihnen für die Bearbeitung des Issues interessieren, mitteilen, dass Sie es bereits bearbeiten. Außerdem können Ihnen die Maintainer bei Bedarf Anleitungen bereitstellen und Ratschläge geben.

    Screenshot showing the Assignees and Linked pull requests sections.

  • Wenn Sie an einem neuen Feature oder einem Fehler arbeiten möchten, das bzw. der noch nicht in der Problemverfolgung erwähnt wird, erstellen Sie ein neues Issue. Achten Sie darauf, sich an die Issuevorlage zu halten, falls vorhanden, und deutlich zu machen, dass Sie an dem Issue arbeiten möchten. Wenn Sie ein neues Feature vorschlagen möchten oder für das Issue viele Änderungen erforderlich sind, holen Sie erst die Genehmigung des Maintainers ein, bevor Sie mit dem nächsten Schritt fortfahren.

Erstellen eines Pull Requests für ein GitHub-Repository

Nachdem Sie deutlich gemacht haben, dass Sie sich an dem Projekt beteiligen möchten, können Sie mit der eigentlichen Arbeit beginnen.

In diesem Fall beteiligen Sie sich in Form eines Pull Requests (PR). Ein Pull Request ist ein besonderer Bereich von GitHub, der die folgenden Elemente umfasst:

  • Ein Titel und eine Beschreibung der Änderungen
  • Mindestens einen Commit, der die von Ihnen vorgeschlagenen Änderungen ausmacht
  • Kommentare, die jeder nutzen kann, um an einer Diskussion über die Änderungen teilzunehmen.
  • Code Reviews, die detailliertes Feedback zu Ihren Änderungen und mit der Zeit auch Vorschläge für Commits enthalten.
  • Statusüberprüfungen, die beispielsweise im Zusammenhang mit automatisierten Tests durchgeführt werden, die die Maintainer möglicherweise eingerichtet haben. Statusüberprüfungen können unterschiedliche Zwecke erfüllen. Beispielsweise können sie sicherstellen, dass bei Ihren Änderungen die Regeln des Projekts eingehalten werden oder dass Ihre Änderungen den Code nicht beeinträchtigen.

Nachdem ein Pull Request erstellt wurde, kann er mit neuen Commits, Kommentaren oder Reviews aktualisiert werden. Dieser Prozess wird fortgesetzt, bis die Maintainer des Projekts den Pull Request genehmigen und mergen oder die Änderungen ablehnen und den Pull Request schließen. Durch das Mergen des Pull Requests werden Ihre Änderungen in die Codebasis des Projekts integriert.

Details zum Erstellen eines Pull Requests

  1. Öffnen Sie die GitHub-Seite des Projekts, an dem Sie mitwirken möchten.

  2. Klicken Sie auf die Schaltfläche Fork (Forken), um eine Kopie des Repositorys in Ihrem GitHub-Konto zu erstellen. Dieser Schritt ist erforderlich, da Sie standardmäßig nicht über die Berechtigungen verfügen, die Sie benötigen, um Änderungen an einem öffentlichen Repository vorzunehmen, wenn es sich nicht um Ihre eigene Kopie handelt. Indem Sie das Projekt forken, erstellen Sie eine Kopie, an der Sie Änderungen vornehmen können.

    Screenshot showing the Fork button of a GitHub project.

  3. Wählen Sie Ihre Repositorys im Menü „Kontoprofil“ aus.

    Screenshot showing the profile drop-down menu and the entry called Your repositories.

  4. Wählen Sie den Repositoryfork aus.

  5. Klicken Sie auf die Schaltfläche Code, um Informationen dazu zu erhalten, wie Sie das Git-Repository auf Ihren lokalen Computer klonen können.

    Screenshot showing the options for cloning a GitHub project.

  6. Klicken Sie auf das Symbol für die Zwischenablage, um die Repository-URL zu kopieren, und geben Sie sie dann in ein Terminal ein:

    git clone <REPOSITORY_URL>
    

    Mit diesem Befehl wird eine Kopie des Repository auf Ihrem lokalen Computer erstellt.

    Alternativ können Sie GitHub Desktop verwenden, wenn Sie die Nutzung einer Anwendung bevorzugen. Sie können auch GitHub Codespaces verwenden, wenn Ihnen die Option vorgeschlagen wird. Wenn Sie Visual Studio Code verwenden, sollten Sie bereits mit GitHub Codespaces vertraut sein.

  7. Nachdem der Klonvorgang für das Projekt abgeschlossen ist, geben Sie den Projektordner ein:

    cd <PROJECT_FOLDER>
    
  8. (Optional) Erstellen Sie mit dem folgenden Befehl einen neuen Branch:

    git checkout -b <BRANCH_NAME>
    

    Dieser Schritt ist nicht obligatorisch, wird jedoch dringend empfohlen. Mit einem neuen Branch können Sie mehrere Beiträge separat bearbeiten, von denen jeder einen anderen Branch verwendet.

  9. Nehmen Sie die gewünschten Änderungen am Projekt vor, und committen Sie sie:

    git add .
    git commit -m "<COMMIT_MESSAGE>"
    

    Mit diesen Befehlen bereiten Sie Ihre Änderungen erst auf den Commit vor und erstellen dann einen Commit mit der angegebenen Nachricht. Stellen Sie sicher, dass die Änderungen in der Commitnachricht richtig beschrieben werden. Außerdem sollten Sie überprüfen, ob in der CONTRIBUTING-Datei Konventionen für Commitnachrichten erwähnt werden, die Sie einhalten müssen.

  10. Übertragen Sie Ihre Änderungen mit dem folgenden Befehl mithilfe von Push auf das Remoterepository:

    git push --set-upstream origin <BRANCH_NAME>
    

    Durch diesen Befehl wird ein neuer Branch für das Upstreamrepository auf GitHub (Ihr Fork) erstellt, und alle Ihre Commits werden mithilfe von Push auf diesen übertragen.

    Hinweis

    Das Upstreamrepository ist das Remoterepository, das mit Ihrem lokalen Repository verknüpft ist. origin ist der Standardalias für die Repository-URL, die in Schritt 4 von Git erstellt wurde.

    Wenn Sie noch keinen Branch erstellt haben, geben Sie nur git pushein.

  11. Öffnen Sie den Projektfork auf GitHub, und klicken Sie im angezeigten Feld für Vorschläge auf die Schaltfläche Compare & pull request (Vergleichen und Pull Request erstellen).

    Screenshot showing the pull request suggestion box on GitHub.

  12. Geben Sie den Titel und die Beschreibung ein, und wählen Sie Pull Request erstellen aus.

    Screenshot showing the pull request creation interface.

    Wenn es eine Vorlage für die Beschreibung von Pull Requests gibt, nehmen Sie sich die Zeit, alle erforderlichen Informationen einzugeben. Wenn dies nicht der Fall ist, stellen Sie den Maintainern genügend Kontext zur Verfügung, damit diese besser nachvollziehen können, welche Änderungen Sie aus welchen Gründen vorschlagen. Sie sollten ebenfalls eine Verknüpfung mit dem zugehörigen Issue herstellen, indem Sie mithilfe von #<ISSUE_NUMBER> auf dessen Nummer verweisen. Sie finden die Nummer neben dem Titel des Issues.

    Screenshot showing issue number.

Bestehen der Statusüberprüfungen

Nachdem Sie den Pull Request erstellt haben, wird Ihnen möglicherweise im unteren Bereich ein Abschnitt mit Statusüberprüfungen angezeigt, der wie folgt aussieht:

Screenshot showing status checks results on a pull request.

Bei diesen Statusüberprüfungen handelt es sich um automatisierte Überprüfungen, die die Maintainer eingerichtet haben, um eine einheitliche Qualität des Projekts sicherzustellen.

Damit Ihr Pull Request akzeptiert wird, muss er zunächst sämtliche automatisierten Überprüfungen bestehen. Wenn bei einer Überprüfung wie auf dem obigen Screenshot gezeigt ein Fehler auftritt, können Sie auf die Schaltfläche Details klicken, um mehr über den Fehler und mögliche Lösungen herauszufinden.

Wenn Sie sich nicht sicher sind, wie Sie mit einer Überprüfung umgehen sollen, bei der ein Fehler aufgetreten ist, können Sie die Kommentarfunktion nutzen, um die Maintainer bei der Problemlösung um Hilfe zu bitten.

Bitten um Ratschläge oder Reviews im Zusammenhang mit Pull Requests

Sie sind sich bei manchen Änderungen möglicherweise nicht sicher und möchten die Meinungen der Maintainer einholen. Die beste Vorgehensweise besteht darin, die Pull Requests direkt zu kommentieren. Wenn Ihre Änderungen noch nicht fertig sind, haben Sie darüber hinaus auch die Möglichkeit, stattdessen einen Entwurf für einen Pull Request zu erstellen, um andere Beteiligte um Tipps oder Hilfe zu bitten.

Screenshot showing the draft pull request option.

Sobald die Maintainer des Projekts Ihre Pull Requests sehen, können sie diese beantworten oder Ihre Änderungen direkt überprüfen. Die Überprüfung eines Pull Requests kann zu folgenden Ergebnissen führen:

  • Ihre Änderungen werden genehmigt. Glückwunsch!
  • Ihr Pull Request muss überarbeitet werden. Lassen Sie sich nicht entmutigen. Lesen Sie sich das bereitgestellte Feedback gut durch. Wenn Sie die vorgeschlagenen Änderungen implementieren, stehen die Chancen gut, dass Ihr Pull Request akzeptiert wird. Wenn Sie neue Commits an Ihren Branch pushen, wird der Pull Request automatisch mit den Änderungen aktualisiert.
  • Der Reviewer hat einige Kommentare hinterlassen. Das bedeutet in der Regel, dass weitere Details zu Ihren Änderungen oder Begründungen für diese benötigt werden.

Antworten auf Kommentare zu Ihrem Pull Request

Bleiben Sie beim Austausch mit anderen Benutzern stets höflich, und halten Sie sich an die Verhaltensregeln. Bevor Ihre Änderungen akzeptiert werden, müssen Sie sich wahrscheinlich mit den Maintainern oder anderen Mitwirkenden abstimmen.

Das Beitragen zu Open-Source-Projekten erfordert Geduld. Manchmal erhalten Sie das Feedback nicht sofort. Kontaktieren Sie die Maintainer nicht privat per E-Mail, Twitter oder auf anderem Weg, um schneller eine Antwort zu erhalten. Dieses Verhalten gilt als unerwünscht. Aus einer öffentlichen Unterhaltung können zudem auch andere Mitwirkende oder Besucher mehr über die Prozesse lernen, die hinter solchen Änderungen stehen, sowie über die geltenden Best Practices.