Zum Code beitragen

Planen Sie, zum Nette Framework beizutragen, und müssen sich noch mit den Regeln und Abläufen vertraut machen? Dieser Leitfaden für Einsteiger führt Sie durch die Schritte, mit denen Sie wirksam Code beisteuern, mit Repositories arbeiten und Änderungen umsetzen.

Vorgehensweise

Um Code beizusteuern, brauchen Sie unbedingt ein Konto auf GitHub und Grundkenntnisse im Umgang mit dem Versionsverwaltungssystem Git. Wenn Sie sich mit Git nicht auskennen, können Sie sich git – the simple guide ansehen und einen der vielen grafischen Clients in Betracht ziehen.

Vorbereitung der Umgebung und des Repositorys

  1. Erstellen Sie auf GitHub einen Fork des Repositorys des Pakets, das Sie ändern möchten
  2. Klonen Sie dieses Repository auf Ihren Computer
  3. Installieren Sie die Abhängigkeiten einschließlich Nette Tester mit dem Befehl composer install
  4. Überprüfen Sie mit composer tester, dass die Tests laufen
  5. Erstellen Sie einen neuen Branch auf Basis der zuletzt veröffentlichten Version

Implementierung eigener Änderungen

Jetzt können Sie Ihre eigenen Anpassungen am Code vornehmen:

  1. Implementieren Sie die gewünschten Änderungen und vergessen Sie die Tests nicht
  2. Vergewissern Sie sich mit composer tester, dass die Tests erfolgreich durchlaufen
  3. Prüfen Sie, ob der Code dem Coding Standard entspricht
  4. Speichern (committen) Sie die Änderungen mit einer Beschreibung in diesem Format

Sie können mehrere Commits anlegen, einen für jeden logischen Schritt. Jeder Commit sollte für sich genommen sinnvoll sein.

Senden der Änderungen

Sobald Sie mit den Änderungen zufrieden sind, können Sie sie einsenden:

  1. Pushen Sie die Änderungen zu GitHub in Ihren Fork
  2. Senden Sie sie von dort in das Nette-Repository, indem Sie einen Pull Request (PR) erstellen
  3. Geben Sie in der Beschreibung ausreichend Informationen an

Einarbeitung von Anmerkungen

Ihre Commits sind nun für andere sichtbar. Üblicherweise erhalten Sie Kommentare mit Vorschlägen:

  1. Behalten Sie die vorgeschlagenen Änderungen im Blick
  2. Arbeiten Sie sie als neue Commits ein oder führen Sie sie mit den vorherigen zusammen
  3. Senden Sie die Commits erneut zu GitHub, sie erscheinen dann automatisch im Pull Request

Erstellen Sie niemals einen neuen Pull Request, um einen bestehenden zu ändern.

Dokumentation

Wenn Sie eine Funktionalität geändert oder eine neue hinzugefügt haben, vergessen Sie nicht, sie auch in die Dokumentation aufzunehmen.

Neuer Branch

Nehmen Sie Änderungen nach Möglichkeit gegen die zuletzt veröffentlichte Version vor, also gegen den letzten Tag im Branch. Für den Tag v3.2.1 erstellen Sie den Branch mit diesem Befehl:

git checkout -b new_branch_name v3.2.1

Coding Standard

Ihr Code muss dem Coding Standard entsprechen, der im Nette Framework verwendet wird. Zum Prüfen und automatischen Korrigieren Ihres Codes dient das Werkzeug Nette Coding Standard, wo Sie auch eine Anleitung zu Installation und Verwendung finden.

Commit-Beschreibung

In Nette haben die Betreffzeilen von Commits das folgende Format: Presenter: fixed AJAX detection [Closes #69]

  • Bereich gefolgt von einem Doppelpunkt
  • Zweck des Commits in der Vergangenheitsform; beginnen Sie nach Möglichkeit mit Wörtern wie: “added (neue Funktion)”, “fixed (Korrektur)”, “refactored (Codeänderung ohne Verhaltensänderung)”, “changed”, “removed”
  • Bricht der Commit die Rückwärtskompatibilität, ergänzen Sie “BC break”
  • Ein etwaiger Bezug zum Issue-Tracker wie (#123) oder [Closes #69]
  • Nach der Betreffzeile kann eine Leerzeile und danach eine ausführlichere Beschreibung folgen, einschließlich etwa Links ins Forum

Beschreibung des Pull Requests

Beim Erstellen eines Pull Requests können Sie in der Oberfläche von GitHub einen Titel und eine Beschreibung eingeben. Geben Sie einen treffenden Titel an und schreiben Sie in die Beschreibung möglichst viele Informationen über die Gründe für Ihre Änderung.

Geben Sie im Kopf außerdem an, ob es sich um eine neue Funktion oder um eine Fehlerkorrektur handelt und ob die Rückwärtskompatibilität gestört werden kann (BC break). Gibt es ein zugehöriges Issue, verlinken Sie es, damit es mit der Annahme des Pull Requests geschlossen wird.

- bug fix / new feature?  <!-- #issue numbers, if any -->
- BC break? yes/no
- doc PR: nette/docs#?    <!-- highly welcome, see https://nette.org/en/writing -->