Metodika verziovania a práce s repozitárom
Tento dokument obsauje odporúčané postupy a pravidlá používané pri práci s repozitárom, nástrojom git a platformou GitHub, na ktorej sa repozitár nachádza.
Klonovanie repozitára
Bežný GitHub workflow je keď si používateľ, ktorý sa chce spolupodieľať na vývoji našej aplikácie "forkne" repozitár, pomocou tlačidla Fork na stránke repozitára. To vytvorí kópiu repozitára, na ktorej môže používateľ pracovať bez toho aby ovplyvňoval originálny repozitár.
Po vytvorení kópie originálneho repozitára je možné vytvoriť jeho lokálny klon v súborovom systéme pomocou príkazu
git clone https://github.com/user/EvilFlowersViewer.git
Vetvy
Štruktúra vetiev
master- východzia vetva obsahujúca kód v produkciidev- vývojová vetva (staging prostedie), obsahujúca kód vo vývojifeat/<číslo tasku v Jire>- pridávanie nových funkcionalít, ktoré sa mergujú dodevvetvyfix/<číslo tasku v Jire>- opravy chýb
Užitočné príkazy na prácu s vetvami
Zobrazenie všetkých aktívnych vetiev v repozitári
git branch
Aktualizácia lokálnych vetiev
git fetch
Vytvorenie novej vetvy s aktuálnymi necommitnutými zmenami
git checkout -b <názov vetvy>
Prepnutie na inú vetvu
git switch <názov vetvy>
Commit
Po dokončení úlohy alebo jej časti sa vytvára commit, čím sa progress uloží do aktuálnej vetvy. Každý commit musí spĺňať stanovené pravidlá a kódu v commite by nemalo byť príliš veľa aby sa dal jednoduchšie čítať.
Pravidlá commitovania
- Commit správa by mala byť výstižná a krátka, dodatočné informácie o zmenách radšej napísať do Pull Requestu
- Jeden commit pokrýva jednu zmysluplnú časť kódu
- Necommitovať formátovacie zmeny spolu s novými funkcionalitami
Užitočné príkazy na prácu s commitmi
Commit so správou
git commit -m "<text správy>"
Pull request
Názov pull requestu by mal byť výstižný a popisovať funkcionalitu, ktorú chce vývojár zapracovať do aplikácie. Každý pull request musí obsahovať aj popis, v ktorom vývojár hlbšie opíše zmeny, ktoré obsahuje. Taktiež by mal obsahovať aj číslo tasku v Jire, s ktorým súvisí.
Na úspešný merge do dev vetvy musí byť kód skontrolovaný aspoň jedným členom tímu a schválený SCRUM masterom.
Po úspešnom merge sa vetva, z ktorej sa vytvoril pull request vymaže.
Verziovanie
Každá verzia dodržuje následujúci formát: v<major>.<minor>.<patch> (pr. v1.0.1) a pri verziovaní sa riadime
pravidlami sémantického verziovania.
- Major verzia sa zvyšuje, ak aplikácia obsahuje nové nekompatibilné zmeny
- Minor verzia sa zvyšuje, ak aplikácia obsahuje nové spätne kompatibilné funkcionality
- Patch verzia sa zvyšuje, ak aplikácia obsahuje spätne kompatibilné opravy chýb
Publikovanie
Pred publikovaním novej verzie je nutné sa uistiť že aktuálna verzia aplikácie v dev vetve je pripravená
na jej publikovanie a neobsahuje chyby. Pre publikovanie je nutné vytvoriť pull request z dev vetvy do master
vetvy. Tento pull request by mal obsahovať popis k novým funkcionalitám novej verzie.
Po mergnutí pull requestu sa v GitHube vytvorí nový release s tagom, ktorý nesie názov publikovanej verzie. pr v1.0.1. Podobne aj do poznámok release sa uvádza popis k novým funkcionalitám.
Po vytvorení nového releasu s konkrétnym tagom verzie GitHub spustí akciu, ktorá aplikáciu pripraví (build) na publikovanie a po dokončení buildu je vypublikuje do npm.js.
Autor: Rastislav Balcerčík