Git workflow

Základné info

  • Pre verziovanie všetkých projektov používame Gitlab (Gitlab.com)
  • Štandardne používame role Developer a Maintainer.
  • Developer nemôže mergovať do protected branches (obvykle je to master prípadne v niektorých prípadoch aj iné)
  • Pre efektívnejšiu prácu používame Merge requests, čo znamená, že v prípade, že Developer chce/potrebuje deploynúť nejaký commit do protected branchu, vytvorí cez Gitlab rozhranie nový merge request a priradí niektorého Maintanera, aby merge schválil a vykonal.

Zásady pre branche

  • master - branch s live/pre-deploy verziou, kde nasadzujeme len otestované a funkčné zmeny. Vykonáva ich vždy len Maintainer repozitára. O automatizáciu sa stará CI ak existuje (viď súbor gitlab-ci.yml v roote projektu)
  • demo / test - branche pre testovaciu verziu, obvykle tiež s auto-deployom na testovaciu verziu projektu (CI).
  • feature/... - skupina branchov, kde vyvíjame väčšie features, ktorých vývoj trvá aj dlhší čas. Ideálne je použiť čo najvýstižnejší názov branchu.
  • bugfix/... - skupina branchov, kde opravujeme konkrétne chyby, resp. skupiny chýb (vrámci jedného tasku). Ak je to možné, použi názov branchu na základe tasku z Asany.

Ak ešte projekt, s ktorým práve pracuješ, nemá túto štruktúru alebo nevieš ako to vyriešiť, opýtaj sa ma ( @1ohnny ).

Zásady pre commity

  • Commit vždy po dokončení úlohy alebo jej časti, minimálne raz za deň (na konci dňa). Pri feature/... branchi nad ktorým pracuje viac ako 1 človek ideálne aj častejšie po dohode medzi sebou, aby nedochádzalo k zbytočným konfliktom alebo WTF situáciám.
  • Commit message by mal stručne vyjadrovať, čoho sa zmena týka a optimálne aj to, čo sa tam zmenilo. Netreba žiadne omáčky, ale poprosím nepoužívať nezmyselnosti typu: hotovo / lepsie som to nevedela urobit / done. Taktiež je prísne zakázané používať akékoľvek smajlíky v commit messages!!! (budem za ne trhať ruky)
  • Commit message ideálne v angličtine, ale ak sa pomýliš, svet sa nezrúti. Hlavne, aby mal zmysel.

Postup: Merge request

  1. Po commite zmien do vývojového branchu vytvoríme nový merge request (buď na dashboarde daného repozitára alebo v sekcii: Merge requests) s tlačidlom
    Create merge request
  2. Nastav rozumný title pre merge request (napr: Merge branch xxx)
  3. Ak nie si Maintaner projektu, priraď niektorého v parametri: Assignee. Je to dosť dôležité, lebo ináč si tvoj merge request nemusí nik všimnúť. Obvykle priraď mňa ( @1ohnny ), ak nie som dostupný, tak: Jakuba ( @wbn_ja ) alebo Maťa ( @matejminar ).
  4. Po potvrdení príde email Maintainerovi a zároveň bude svietiť v pravom hornom rohu gitlabu notifikácia.
    Notification
  5. V detaile merge requestu môžeme vidieť všetky detaily, prezrieť si samotné zmeny, komentovať (pridať nejakú poznámku a pod.) V pravom paneli je možné zároveň meniť rôzne parametre - najmä zmenu Assignee, ak sa pri vytváraní requestu pomýliš.
    Request detail
  6. Pokiaľ ide o maintanera, tlačidlom Merge môže potvrdiť Merge request a nasadiť zmeny do cieľového branchu.