Review-workflow
Jak pracujemy nad taskiem w trybie review.
Faza 1. - Tworzenie zmian (autor)
- Zidentyfikuj taska, nad którym pracujesz - przykładowo, T123
- Zcheckoutuj się na brancha roboczego w danym repozytorium (w tym przykładzie - alpha)
git checkout alpha
- Spulluj zmiany z repozytorium:
git pull --rebase
Opcja --rebase jest bardzo ważna - pomaga zachować elegancką historię repozytorium.
- Stwórz nowego brancha, o nazwie opisującej taska, nad którym pracujesz. Nazwa brancha nie będzie częścią Review, jest tylko dla Ciebie.
git checkout -b t123-nowy-layout
- Zacznij pracę nad zmianami w plikach projektu. Jeżeli chcesz, możesz robić dowolną ilość commitów. Miej na uwadze, że wszystkie commity zostaną zesquashowane w jeden duży pod koniec procesu.
git commit -a -m "checkpoint"
- Gdy prace nad Review są skończone, użyj Arcanista aby utworzyć nowego Diffa:
arc diff origin/alpha
(alpha to nazwa roboczego brancha w danym repozytorium)
- Uzupełnij dane, o które spyta Cię Arcanist. Pamiętaj, aby w opisie umieścić referencje do wszystkich tasków, których tyczy się dany Review (może być więcej niż jeden)
Ref T123 T125
W polu "Test plan" opisz, jak należy funkcjonalnie przetestować poprawność wykonania zadania (co kliknąć, jaki url odwiedzić, itp). Jeżeli zmiany wymagają np. przeinstalowania node_modules lub innych kroków przed odpalaniem projektu, informację o tym zawrzyj również w tym polu.
W polu "Reviewers" należy nicki użytkowników którzy będą recenzentami tego Diffa. Aby oznaczyć danego recenzenta jako "blocking", należy dodać "!" po jego nicku, np:
arkadiusz-wieczorek!, kuba-orlik
Oznacza, że recenzentami danego diffa są Kuba i Arkadiusz oraz że Diff nie może być zakaceptowany bez akceptacji Arkadiusza.
Jeden Diff może mieć 0 lub więcej "blocking" recenzentów.
PS - można użyć Heralda do automatycznego dodawania Recenzentów do danego Diffa.
- Po potwierdzeniu Arcanist wyśle Diffa na Sealhuba i wyświetli link do niego w terminalu.
Faza 2. - Review (recenzent)
- Odwiedź stronę Diffa, np: D100
- Zapoznaj się z treścią tasków, do których jest przypięty dany Review - jeżeli nie ma żadnych tasków, skonsultuj się z autorem Diffa i poproś o zaktualizowanie danych
- Zapoznaj się z Test Planem i wykonaj go. Aby uruchomić kod na swojej lokalnej maszynie, zcheckoutuj się u siebie na brancha roboczego i wykonaj:
arc patch D100
Zostanie utworzony nowy, lokalny, tymczasowy branch, zawierający zmiany opisane w danym Diffie. Aby powrócić do stanu przed patch, po prostu zcheckoutuj się na innego brancha.
- Przeczytaj uważnie kod Diffa - czy jest czytelny? Czy można go jakoś poprawić? Czy spełnia standardy kodu?
- Wszelkie uwagi umieść w komentarzach (ogólnych lub dotyczących konkretnych linijek). Komentarze możesz oznaczyć hasłami:
- "(must)" - komentarz krytyczny, zaadresowanie go jest kluczowe do poprawności wykonania taska
- "(should)" - komentarz niekrytyczny, ale nie można zamknąć Diffa bez konsensusu co do sprawy w nim zawartej
- "(could)" - komentarz niekrytyczny, opcjonalny. Drobne sugestie, które nie blokują akceptacji diffa.
- Jeżeli Diff jest gotowy do zaakceptowania (rozwiązane zostały już komentarze "must" i "should"), zaznacz Diffa jako "Accepted". (następuje przejście do Fazy 4. - Lądowanie). W przeciwnym wypadku oznacz go jako "Request Changes" (następuje Faza 3. - Poprawki).
Faza 3. - Poprawki (autor)
Jeżeli Twój branch zostanie oznaczony jako "Changes Requested" (co jest jak najbardziej OK), czas wprowadzić zmiany i ustosunkować się do umieszczonych w Diffie komentarzy.
- Otwórz stronę Diffa
- Odpowiedz na komentarze. Jeżeli wymagane są zmiany w kodzie, wprowadź je (upewniając się, że jesteś na branchu utworzonym w Fazie 1.). Dobrze będzie, jeżeli zmiany odnośnie każdego z komentarzy będziesz umieszczał w osobnych commitach - wtedy ich tytuły zostaną dodane do opisu aktualizacji Diffa.
- Kolejno odhaczaj w Sealhubie komentarze, które uznajesz za rozwiązane.
- Po zakończeniu wprowadzania zmian wykonaj:
arc diff --update d100 origin/alpha
I odpowiedz na pytania, jakie zadaje Arcanist.
- Po pomyślnej aktualizacji sprawdź, że w Sealhubie twoje odpowiedzi na komentarze zostały wysłane oraz że stan Diffa zmienił się na "Needs Review".
- Następuje przejście do Fazy 2 - poczekaj na powiadomienie o zmianie statusu Diffa.
Faza 4. - Lądowanie
Faza ta następuje, kiedy diff został zaakceptowany przez wszystkich wymaganych recenzentów.
"Lądowanie" oznacza domerge'owanie Diffa do brancha roboczego repozytorium. Aby tego dokonać, wykonaj następujące komendy:
arc patch d100 arc land
Jeżeli pojawi się komunikat, że nastąpił konflikt przy merge'owaniu, oznacza to, że odkąd oddałeś diffa do review, stan brancha roboczego zmienił się w konfliktujący z Twoimi zmianami sposób. W takim wypadku:
- zcheckoutuj się na brancha reprezentującego Twojego Diffa
- domerguj branch roboczy: git merge --no-ff origin/alpha
- rozwiąż potencjalne konflikty
- zacommituj zmiany rozwiązujące konflikt - np. git commit -a -m "Rebase to alpha")
- zaktualizuj Diffa - arc diff --update d100
- następuje przejście do Fazy 2.
W wypadku braku konfliktów i pomyślnego wylądowania proces został zakończony - Twoje zmiany znajdują się już na branchu roboczym :)
- Last Author
- kuba-orlik
- Last Edited
- Sep 10 2017, 14:09