Slovenská technická univerzita v Bratislave Fakulta informatiky a informačných technológií Iľkovičova 2, , Bratislava 4 Metodika verziovania Tím

Podobné dokumenty
Metodika práce s gitom Spôsob práce s gitom V projekte sa budú udržovať dve hlavné vetvy: - Master - Hlavná vetva, ktorá odráža otestovaný funkčný kód

Slovenská technická univerzita v Bratislave Fakulta informatiky a informačných technológií Ilkovičova 2, Bratislava 4 Askalot meets Harvard Cou

Slovenská technická univerzita v Bratislave Fakulta informatiky a informačných technológií Zápisnica zo stretnutia #4 Tím sixpack Bc. Jozef Blažíček B

Slovenská technická univerzita v Bratislave Fakulta informatiky a informačných technológií Ilkovičova 2, , Bratislava 4 Deep Search Dokumentácia

Princípy tvorby softvéru GIT a iné užitocné veci

Snímka 1

Slovenská technická univerzita v Bratislave Fakulta informatiky a informačných technológií Iľkovičova 2, , Bratislava 4 Big picture - Riadenie p

Microsoft Word - Manažment_tagov_tim24_tema12_2017.docx

Slovenská technická univerzita v Bratislave Fakulta informatiky a informačných technológií Ilkovičova 2, , Bratislava 4 Deep Search Metodiky výv

SLOVENSKÁ TECHNICKÁ UNIVERZITA V BRATISLAVE FAKULTA INFORMATIKY A INFORMAČNÝCH TECHNOLÓGIÍ Metodika archivácie verzií HW Tímový projekt Stratos FIIT M

Slovenská technická univerzita v Bratislave Fakulta informatiky a informačných technológií Ilkovičova 2, , Bratislava 4 Internet vecí v našich ž

Slovenská technická univerzita v Bratislave Fakulta informatiky a informačných technológií Iľkovičova 2, , Bratislava 4 Tímový projekt MOB-UX Pr

Slovenská Technická Univerzita v Bratislave Fakulta Informatiky a Informačných Technológií Monitorovanie a vyhodnocovanie fyziologických procesov člov

EduVirutal (Tím číslo 4) Metodiky projektu Roly členov tímu, zodpovednosti: Koník Kristián Manažérske úlohy: Kontrola stavu systému na správu verzií (

Slovenská technická univerzita Fakulta informatiky a informačných technológií Ilkovičova 2, Bratislava 4 Prepájanie dát o vývoji softvéru Dokum

SPRINT 2

SK01-KA O1 Analýza potrieb Zhrnutie BCIME tím Vyhlásenie: "Podpora Európskej komisie pre výrobu tejto publikácie nepredstavuje súhlas

Balíčkovanie FreeSWITCH-u pre Debian Autor: Zdenko Holeša, InžProjekt 1, KIS FRI ŽU Predkompilované balíčky Predkompilované balíčky existujú pre Debia

Paralelné algoritmy, cast c. 2

Zápisnica stretnutia tímu EduVirtual (tím číslo 4) Téma stretnutia: Šprint review a plánovanie ďalšieho šprintu Dátum stretnutia: Miesto s

Slovenská technická univerzita Fakulta informatiky a informačných technológií Ilkovičová 3, Bratislava 4 Prepájanie dát o vývoji softvéru Dokum

EURÓPSKA KOMISIA V Bruseli C(2018) 6560 final ANNEX 1 PRÍLOHA k vyoknávaciemu rozhodnutiu Komisie, ktorým sa stanovuje metodika monitorov

Microsoft Word - pouzivatelska_prirucka.doc

Snímka 1

iot business hub whitepaper isdd_em_New.pdf

Dodatok č. 2 K ORGANIZAČNÉMU PORIADKU, Uradu Slovenskej akadémie vied 2014 /

Style Sample for C&N Word Style Sheet

Smernica kvestora Číslo: 2/ SK Vykonávanie finančnej kontroly na Rektoráte Slovenskej technickej univerzity v Bratislave a na centrálne financov

Start of the Week Call

Zmluva o spolupráci a prevode práva na riešenie uzavretá podľa 269 ods.2, zák.č. 513/1991 Z.z. Obchodný zákonník v znení neskorších predpisov medzi zm

Zásady prijímania na bakalárske štúdium na školský rok 2004/2005

Centrum vedecko-technických informácií, Odbor pre hodnotenie vedy, Oddelenie pre hodnotenie publikačnej činnosti Vyhľadávanie a práca so záznamami - C

NSK Karta PDF

Microsoft Word - Dokument_riadenia_k_timovemu_projektu.docx

Microsoft PowerPoint - OOP_prednaska_10.pptx

Prezentácia programu PowerPoint

EURÓPSKA KOMISIA V Bruseli C(2019) 2327 final ANNEXES 1 to 2 PRÍLOHY k nariadeniu Komisie, ktorým sa mení príloha IV k nariadeniu Európskeh

Microsoft PowerPoint - 1_eSO1

Sprievodný list SofComs.r.o., Priemyselná 1, Liptovský Mikuláš Program basic.sk Verzia ( ) Dátum Autor Ing. J. Malíček

User:tomas.melicher

Microsoft Word - prirucka_katedry_nova

Pracovný postup pre vypĺňanie údajov elektronického formulára IŠIS pre spravodajskú jednotku 1

Postupy na uplatnenie práv dotknutých osôb

fm 2012 a predajňa.doc

Komplexný informa ný a monitorovací systém Monitorovanie biotopov a druhov európskeho významu Používate ská dokumentácia KIMS modul Mobilná aplikácia

EURÓPSKA KOMISIA V Bruseli COM(2019) 123 final 2019/0068 (NLE) Návrh NARIADENIE RADY, ktorým sa mení nariadenie (EÚ) 2019/124, pokiaľ ide o

Slovenská technická univerzita Fakulta informatiky a informačných technológii Ilkovičova 2, Bratislava Tímový projekt Stratosférický balón Doku

MIESTNY ÚRAD MESTSKEJ ČASTI BRATISLAVA - RAČA

USMERNENIE RIADIACEHO ORGÁNU Č. 2 Verzia č. 1 Programové obdobie Vec: k príprave individuálneho projektu podľa kapitoly Systému ri

Microsoft Word - RolyRiadeniaZmien_V1.doc

Title

Vnútorný predpis Číslo: 2/ Výzva na predkladanie žiadostí o Inštitucionálne projekty MTF STU Vypracovala: doc. Ing. Kristína Gerulová

Slovensko-Žilina: Autobusy verejnej dopravy

Finančné riaditeľstvo Slovenskej republiky 9/ORP/2019/IM Stiahnutie identifikačných a autentifikačných údajov pri ORP - rola Administrátor/Technik Inf

2015_07_17_zmena_doplnenie_zakona_ERP

Microsoft Word - dokumentácia-k-riadeniu.docx

Template - Opinion - EN

Evidencia elektronickej prihlky

EURÓPSKA KOMISIA V Bruseli C(2017) 1143 final DELEGOVANÉ NARIADENIE KOMISIE (EÚ) / z o klasifikácii parametra horizontálneho s

PowerPoint Presentation

OBSAH

Microsoft Word - Manazment_projektov_tim24_tema12_2017.docx

Rozdeľovanie IT zákaziek UX Peter Kulich

Tue Oct 3 22:05:51 CEST Začiatky s jazykom C 2.1 Štruktúra programu Štruktúra programu by sa dala jednoducho popísať nasledovnými časťami, kto

Verejná konzultácia k článku 18 Nariadenia Komisie (EÚ) 2017/2195, ktorým sa ustanovuje usmernenie o zabezpečovaní rovnováhy v elektrizačnej sústave P

SKPOS

VŠEOBECNE ZÁVÄZNÉ NARIADENIE OBCE KOBYLY O PODMIENKACH NA UMIESTŇOVANIE VOLEBNÝCH PLAGÁTOV A ĎALŠÍCH NOSIČOV VOLEBNÝCH INFORMÁCIÍ NA VEREJNOM PRIESTRA

Microsoft Word - Usmernenie k skúške o OS.rtf

MOTIVAČNÝ DOKUMENT TÍMOVÝ PROJEKT TÍM Č. 21 GROMA Matej HORVÁTH Matej JURKÁČEK Peter KAMENSKÝ Jozef KŇAZE Adam MACKOVÁ Kristína PEJCHALOVÁ Lenka SEDLÁ

PowerPoint Presentation

PRAVIDLÁ SZC

MacBook Pro Sprievodca rýchlym štartom

PM pre Automotive a vyrobu-1

C(2014)5449/F1 - SK

Nová éra Microsoft Dynamics 365 v IT spoločnosti GAMO Vďaka dodanému riešeniu sme pomohli zlepšiť fungovanie kľúčových oblastí

PREZÍDIUM SKGA o.z. č. 11/2018 Dňa o hod. sa uskutočnilo zasadnutie Prezídia SKGA o.z. v priestoroch SKGA, na adrese Kukučínova 26, 8

Používateľská príručka POUŽÍVATEĽSKÁ PRÍRUČKA Generátor XML dávok pre Informačný systém kontrolných známok z MS Excel šablóny Dátum: Verzia

Slovensko-maďarská spolupráca v oblasti vedy a techniky

Smernica o pôsobnosti koordinátora pre študentov so špecifickými potrebami

Slovenská technická univerzita v Bratislave Fakulta informatiky a informačných technológií Projektová dokumentácia (Tím 01 suxess) Akademický rok: 201

Finančné riaditeľstvo Slovenskej republiky Testovacie scenáre

Opatrenie

Chemical Business NewsBase

TA

Kriteria 2019

VŠEOBECNE ZÁVÄZNÉ NARIADENIE OBCE ZBUDSKÉ DLHÉ O PRAVIDLÁCH NA UDRŽIAVANIE ČISTOTY V OBCI A OCHRANY VEREJNEJ ZELENE Návrh VZN : a) Zverejnený na úradn

Metódy dokazovanie v matematike 1 Základné pojmy Matematika exaktná veda vybudovaná DEDUKTÍVNE ZÁKLADNÉ POJMY základy každej matematickej teórie sú in

GENERÁLNY ŠTÁB

PRE ZASADNUTIE MESTSKÉHO ZASTUPITEĽSTVA V ŽIARI NAD HRONOM DŇA K BODU: 4 ) VZN o poskytovaní finančných príspevkov na vykonávanie opatrení

Microsoft Word - o06_Príručka k inštalácii a registrácii OverKupon_v4.doc

News Flash 25. augusta, 2015 Zabezpečenie stravovania pre zamestnancov

IT NEWS

dok_k_riadeniu

SMART_GOVERNANCE_Ftacnik

TEORETICKÉ ÚLOHY

Správa o overení ročnej účtovnej závierky Európskeho monitorovacieho centra pre drogy a drogovú závislosť za rozpočtový rok 2015 spolu s odpoveďami ce

Názov organizácie: Obec Turček Názov internej smernice: Smernica o príspevku zamestnávateľa na stravnú jednotku pre zamestnancov obce Turček Poradové

Slide 1

Slovenská technická univerzita Fakulta informatiky a informačných technológií Ilkovičova 2, Bratislava 4 Priebežné overovanie prípravy študento

Prepis:

Slovenská technická univerzita v Bratislave Fakulta informatiky a informačných technológií Iľkovičova 2, 842 16, Bratislava 4 Metodika verziovania Tímový projekt Tím č. 21 Vedúci: Ing. Ivan Srba, PhD. tim21.2018.fiit@gmail.com

Autor metodiky: Jakub Sedlář 1 Vymedzenie obsahu Nasledujúci dokument opisuje pravidlá a postupy pri práci s nástrojom git a platformou Github a pravidlá pre vytváranie a označovanie priebežných a finálnych verzií produktu. Metodike nepodlieha repozitár tímového webu, nakoľko povaha jeho úprav je veľmi odlišná od ostatných repozitárov a nie je hostovaný na platforme Github. Výnimkou je tiež repozitár Prototypes, ktorý slúži najmä na rýchle zdieľanie testovacích skriptov a prototypov na zahodenie a jeho obsah sa nepovažuje za súčasť vytváraného produktu. 2 Vymedzenie pojmov a skratiek 3 Dedikácia metodiky Metodikou sa riadia členovia tímu TrafficWatch, v rozsahu predmetu Tímový projekt. 4 Roly a zodpovednosti účastníkov 4.1 Autor pull requestu Osoba, ktorá vytvára pull request. Povinnosti: Reaguje na pripomienky reviewerov, dostáva pull request do stavu, v ktorom môže byť zlúčený. Zlučuje pull request po schválení. 4.2 Reviewer Osoba vykonávajúca code review Povinnosti: Prezerá kód, ktorý je zahrnutý v pull requeste, kontroluje jeho správnosť, dohliada na dodržiavanie metodiky písania kódu, podáva pripomienky, rozhoduje, kedy je pull request pripravený na zlúčenie. 4.3 Git master Osoba zodpovedná za metodiku a správu repozitárov. Povinnosti: Vytvára metodiku verzovania a dohliada na jej dodržiavanie. Rieši problémy, ktoré nastanú pri práci s nástrojom git. 1

5 Vetvy Pre každú user story sa vytvára jedna vetva pre každý nezávislý komponent, na ktorom sa v rámci story pracuje. Novú vetvu možno vytvoriť viacerými spôsobmi: git branch <názov vetvy> git checkout -b <názov vetvy> Názov každej vetvy (okrem vetiev master a develop) má tvar <typ>/<názov> kde <názov> pozostáva z kľúča tasku (tak ako je v Jire) a anglického opisu toho, čo sa vo vetve robí (malými písmenami bez diakritiky, s pomlčkami namiesto medzier), napr. TP-01-example-task, a <typ> je buď feature (ak je účelom vetvy pridanie funkcionality), bugfix (ak je účelom vetvy odstránenie chyby), hotfix (ak je účelom vetvy urýchlené odstránenie chyby), alebo release (špeciálne vetvy pre mergovanie do vetvy master). Zvyčajne vytvárame jednu vetvu pre každú user story, ak to však okolnosti vyžadujú je akceptovateľné vytvoriť vetvu aj pre subtask. Feature a bugfix vetvy sa vetvia z vetvy develop. Hotfix vetvy sa vetvia z vetvy master. Vetvy develop a master by mali obsahovať hotový, otestovaný kód. Kód vo vetve develop daného komponentu musí byť sám o sebe funkčný. Kódy vo vetvách master jednotlivých komponentov musia byť akceptované product ownermi a navzájom kompatibilné. Zmeny do vetvy develop sa pridávajú výhradne cez pull requesty z feature, bugfix a hotfix vetiev. Zmeny do vetvy master sa pridávajú výhradne cez pull requesty z hotfix vetiev a z vetvy develop. 6 Commity Commit message sa píše v angličtine, v minulom čase bez bodky na konci (napr. Ädded option to track only white cars"). Na konci každého commit message v samostatnom riadku musí byť kľúč úlohy z JIRA, s ktorou commit súvisí (dôležité kvôli integrácií týchto nástrojov). Pred pushnutím commitu na Github je vhodné ešte raz kód odskúšať a skontrolovať zmeny, ktoré v ňom boli zahrnuté, a commit message. Keď je commit pushnutý, riešenie problémov je náročnejšie. Na kontrolu správnosti commitu je niekoľko užitočných príkazov: git show - vypíše všetky zmeny vykonané v poslednom commite git log - vypíše zoznam commitov (umožní kontrolu commit messagu) ešte pred vykonaním commitu: git diff cached - vypíše všetky aktuálne zmeny, ktoré budú súčasťou commitu, ak sa hneď vykoná git diff - vypíše všetky aktuálne zmeny, ktoré nebudú súčasťou commitu (je možné pridať ich doňho prostredníctvom príkazu git add) riešenie vzniknutých problémov: git commit amend - podobné ako obyčajný git commit, ale namiesto vytvorenia nového commitu upraví ten predchádzajúci. Takýmto spôsobom je možné pridať do commitu ďalšie súbory, opraviť bugy alebo preklepy, alebo jednoducho zmeniť commit message. Keďže ide o prepisovanie histórie, nie je možné to použiť ak už commit bol pushnutý na Github. Keď commit spĺňa všetky kritéria, mal by byť čo najskôr pushnutý na Github prostredníctvom git push, resp. git push set-upstream origin <názov vetvy>, ak ide o novovytvorenú vetvu, ktorá ešte nikdy nebola pushnutá. 2

3

7 Pull requesty Názov pull requestu je totožný s názvom vetvy, z ktorej sa vytvára. Pull request by mal mať prideleného aspoň jedného reviewera a medzi reviewermi musí byť reporter pridelený na task v Jire, pokiaľ nie je zároveň tým, čo pull request vytvára. Pull request nie je možné mergenúť pokiaľ ho všetci revieweri neschvália. Maximálne raz za šprint sa z vetvy develop vytvorí vetva s názvom "release/<číslo verzie>", ktorá sa mergne do vetvy master. Pull request sa neotvára ak sa vo vetve develop od posledného šprintu neudiali žiadne zmeny. Ak by vykonané zmeny narušili kompatibilitu s inými komponentami, pull request sa môže vytvoriť, ale nebude schválený kým sa nevykonajú príslušné zmeny v dotknutých repozitároch. Pull requesty vo všetkých dotknutých repozitároch sa potom mergnú bezprostredne za sebou, čím sa zachová ich vzájomná kompatibilita. Pull requesty z hotfix vetiev sa najprv vytvoria pre vetvu master, kde sa reviewujú a upravujú. Keď je tento pull request schválený, vytvorí sa nový pull request aj pre vetvu develop, ktorý bude merguntý okamžite, keďže review pre dané zmeny už prebehol. Schválený pull request merguje ten, čo ho vytvoril. Pri vytváraní pull requestu a iných relevantných akciách musia byť revieweri a iné zainteresované osoby upozornené podľa metodiky komunikácie. 8 Číslovanie verzií Každej verzií komponentu aplikácie prináleží práve jeden commit v master vetve príslušného repozitára. Konvencia číslovania verzií vo fáze vývoja pred prvým verejným releasom je s viacerých dôvodov mierne odlišná od tej po ňom (omnoho nižšie nároky na stabilitu rozhrania, nepoužívanie verzie na marketingové účely atď.). Číslo verzie má tvar <major>.<minor>.<patch>, kde <major>, <minor> a <patch> sú prirodzené čísla. Číslovanie v pre-release fáze Prvá verzia (prvý commit do master vetvy okrem inicializácie repozitára) má označenie 0.0.0. Pravidlá pre inkrementáciu čísel sú nasledovné: Major Minor Patch počas pre-release fázy fixovaná na 0 inkrementuje sa po každej zmene, ktorá mení rozhranie komponentu platí aj pre spätne kompatibilné zmeny platí aj pre zmeny v používateľskom rozhraní, pokiaľ ide o pridanie/odobratie/redesign funkcionality alebo redesign navigácie. Drobné zmeny (zmena farby, posunutie tlačidla o pár cm,...) sa nepočítajú inkrementuje sa po výraznej zmene vnútornej implementácie. Výrazné zmeny sú: zmena, ktorá môže byť pozorovaná z iných komponentov napriek tomu, že rozhranie sa nezmenilo (výrazná zmena v performance, v presnosti odosielaných dát, frekvencií odosielania dát,...) veľmi rozsiahla refaktorizácia (úplný rewrite výraznej časti komponentu, alebo aj celého komponentu) podľa vlastného uváženia, po konzultácií s git mastrom/zvyškom tímu ak sa inkrementovala minor verzia, resetne sa na 0 inak sa inkrementuje 4

8.1 Číslovanie v release fáze Prvá produkčná verzia má označenie 1.0.0. Pravidlá pre inkrementáciu čísel sú nasledovné: Major Minor Patch inkrementuje sa po každej zmene vo verejnom rozhraní komponentu, ktorá nie je spätne kompatibilná s ostatnými komponentami zmeny v používateľskom rozhraní sa považujú za spätne nekompatibilné, ak bola funkcionalita odstránená alebo presunutá, teda používateľ nemôže dosiahnuť požadovaný výsledok vykonaním postupnosti krokov, na akú bol zvyknutý ak bola inkrementovaná major verzia, resetne sa na 0 inkrementuje sa po každej spätne kompatibilnej zmene vo verejnom rozhraní inkrementuje sa po výraznej zmene vnútornej implementácie. Výrazné zmeny sú: zmena, ktorá môže byť pozorovaná z iných komponentov napriek tomu, že rozhranie sa nezmenilo (výrazná zmena v performance, v presnosti odosielaných dát, frekvencií odosielania dát,...) veľmi rozsiahla refaktorizácia (úplný rewrite výraznej časti komponentu, alebo aj celého komponentu) podľa vlastného uváženia, po konzultácií s git mastrom/zvyškom tímu ak bola inkrementovaná alebo resetnutá minor verzia, resetne sa na 0 inak sa inkrementuje po každej zmene, ktorá nespĺňa požiadavky pre inkrementáciu minor alebo major verzie 5