Page MenuHomeSealhub

Review-workflow
Updated 2,837 Days AgoPublic

Version 4 of 12: You are viewing an older version of this document, as it appeared on Sep 10 2017, 14:09.

Jak pracujemy nad taskiem w trybie review.

Faza 1. - Tworzenie zmian (autor)

  1. Zidentyfikuj taska, nad którym pracujesz - przykładowo, T123
  2. Zcheckoutuj się na brancha roboczego w danym repozytorium (w tym przykładzie - alpha)

    git checkout alpha
  1. Spulluj zmiany z repozytorium:

    git pull --rebase

    Opcja --rebase jest bardzo ważna - pomaga zachować elegancką historię repozytorium.
  1. 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
  1. 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"
  1. 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)
  1. 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.
  1. Po potwierdzeniu Arcanist wyśle Diffa na Sealhuba i wyświetli link do niego w terminalu.

Faza 2. - Review (recenzent)

  1. Odwiedź stronę Diffa, np: D100
  2. 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
  3. 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.
  1. Przeczytaj uważnie kod Diffa - czy jest czytelny? Czy można go jakoś poprawić? Czy spełnia standardy kodu?
  2. 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.
  3. 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.

  1. Otwórz stronę Diffa
  2. 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.
  3. Kolejno odhaczaj w Sealhubie komentarze, które uznajesz za rozwiązane.
  4. Po zakończeniu wprowadzania zmian wykonaj:

    arc diff --update d100 origin/alpha

    I odpowiedz na pytania, jakie zadaje Arcanist.
  1. 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".
  1. 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

Event Timeline

kuba-orlik edited the content of this document. (Show Details)
kuba-orlik edited the content of this document. (Show Details)
kuba-orlik added a project: Unknown Object (Project).Jul 30 2018, 17:06
kuba-orlik shifted this object from the Restricted Space space to the S5 Publiczna space.Nov 21 2018, 19:05
kuba-orlik changed the title from Review-workflow to Review workflow.Aug 26 2019, 17:13