Kontrybuowanie do kodu
Planujesz kontrybuować do Nette Framework i musisz zapoznać się z regułami i procedurami? Ten przewodnik dla początkujących przeprowadzi Cię przez kroki, jak efektywnie kontrybuować kod, pracować z repozytoriami i wprowadzać zmiany.
Procedura
Żeby kontrybuować kod, konieczne jest posiadanie konta na GitHubie i znajomość podstaw pracy z systemem kontroli wersji Git. Jeśli nie znasz Gita, możesz zajrzeć do git – the simple guide i rozważyć użycie jednego z wielu klientów graficznych.
Przygotowanie środowiska i repozytorium
- Na GitHubie utwórz fork repozytorium pakietu, który zamierzasz zmodyfikować
- Sklonuj to repozytorium na swój komputer
- Zainstaluj zależności, wraz z Nette Testerem,
poleceniem
composer install - Sprawdź, czy testy działają, uruchamiając
composer tester - Utwórz nową gałąź na podstawie ostatnio wydanej wersji
Wprowadzanie własnych zmian
Teraz możesz wprowadzać własne poprawki w kodzie:
- Zaimplementuj pożądane zmiany i nie zapomnij o testach
- Upewnij się, że testy przechodzą pomyślnie, za pomocą
composer tester - Sprawdź, czy kod spełnia standardy kodowania
- Zapisz (zacommituj) zmiany z opisem w tym formacie
Możesz utworzyć wiele commitów, po jednym na każdy logiczny krok. Każdy commit powinien mieć sens sam w sobie.
Zgłaszanie zmian
Gdy jesteś zadowolony ze zmian, możesz je zgłosić:
- Wypchnij zmiany na GitHuba do swojego forka
- Stamtąd zgłoś je do repozytorium Nette, tworząc pull request (PR)
- Podaj w opisie wystarczające informacje
Uwzględnianie uwag
Twoje commity są teraz widoczne dla innych. Często dostaje się komentarze z sugestiami:
- Śledź proponowane zmiany
- Uwzględniaj je jako nowe commity albo łącz je z poprzednimi
- Wypchnij commity ponownie na GitHuba, a pojawią się automatycznie w pull requeście
Nigdy nie twórz nowego pull requesta, żeby zmodyfikować istniejący.
Dokumentacja
Jeśli zmieniłeś funkcjonalność albo dodałeś nową, nie zapomnij dodać jej także do dokumentacji.
Nowa gałąź
Jeśli to możliwe, wprowadzaj zmiany względem ostatnio wydanej wersji, czyli ostatniego tagu w gałęzi. Dla tagu
v3.2.1 utwórz gałąź tym poleceniem:
git checkout -b nazwa_nowej_galezi v3.2.1
Standardy kodowania
Twój kod musi spełniać standard kodowania używany w Nette Framework. Do sprawdzenia i automatycznej poprawy kodu użyj narzędzia Nette Coding Standard, gdzie znajdziesz też instrukcje instalacji i użycia.
Opis commitu
W Nette tematy commitów mają następujący format: Presenter: fixed AJAX detection [Closes #69]
- Obszar, po nim dwukropek
- Cel commitu w czasie przeszłym; jeśli to możliwe, zaczynaj od słów: “added (nowa funkcja)”, “fixed (poprawka)”, “refactored (zmiana kodu bez zmiany zachowania)”, “changed”, “removed”
- Jeśli commit łamie kompatybilność wsteczną, dodaj “BC break”
- Ewentualny odnośnik do issue trackera, jak
(#123)albo[Closes #69] - Za tematem może być jedna pusta linia, a po niej bardziej szczegółowy opis wraz z, na przykład, odnośnikami do forum
Opis pull requesta
Przy tworzeniu pull requesta interfejs GitHuba pozwoli Ci wpisać tytuł i opis. Podaj zwięzły tytuł i umieść w opisie jak najwięcej informacji o powodach swojej zmiany.
Podaj też w nagłówku, czy chodzi o nową funkcję, czy o poprawkę błędu i czy może to spowodować problemy z kompatybilnością wsteczną (BC break). Jeśli istnieje powiązane issue, podlinkuj je, żeby zostało zamknięte po zatwierdzeniu pull requesta.
- bug fix / new feature? <!-- #issue numbers, if any -->
- BC break? yes/no
- doc PR: nette/docs#? <!-- highly welcome, see https://nette.org/en/writing -->