Projekt

Obecné

Profil

Konvence » Historie » Verze 5

Miroslav Krýsl, 2021-04-20 18:32

1 1 Zhanel Mukanova
h1. Konvence
2
3 5 Miroslav Krýsl
Zde jsou popsána pravidla pro vývoj produktu.
4 1 Zhanel Mukanova
5 5 Miroslav Krýsl
h2. Verzování
6
7
Verzování produktu je těsně spjato s vývojovými iteracemi. Na konci každé iterace musí vzniknout jedna production-ready verze produktu.
8
Název verzí produktu se skládá z prefixu *@ioi-@*, který následují čísla major a minor verze oddělené tečkou.
9
Major verze je číslo iterace, ke které se verze vztahuje.
10
Minor verze se začíná s každou iterací číslovat od 0 a při každém commitu související s toutéž iterací se číslo inkrementuje o 1.
11
12
Příklad první verze produktu z 3. iterace: *@ioi-3.0@*
13
Příklad verze produktu z 4. iterace po dvou mergnutých hotfixech: *@ioi-4.2@*
14
15 1 Zhanel Mukanova
h2. Git
16
17 5 Miroslav Krýsl
Pravidla pro tvoření větví ve VCS git.
18
19
Následující pravidla jsou převzata a mírně upravena z článku:
20
https://nvie.com/posts/a-successful-git-branching-model/
21
22
h3. main
23
24
* hlavní release větev
25
* pojmenována jako *@main@*
26
* HEAD obsahuje vždy nejnovější production-ready verzi produktu
27
* do této větve se merguje z release a hotfixes větví
28
* každý commit musí být jednoznačně identifikovaný názvem verze produktu
29
30
h3. develop
31
32
* hlavní vývojová větev
33
* pojmenována jako *@develop@*
34
* HEAD obsahuje vždy nejnovější dodané vývojové změny
35
* mohou zde probíhat menší bugfixy
36
* do této větve se merguje z vývojových větví a slouží jako zdroj pro větvění pro release větve
37
38
h3. vývojové větve
39
40
* každá feature, bugfix nebo enhancement musí mít vlastní větev
41
* na těchto větvích probíhá samotný vývoj
42
* pojmenování libovolné, pokud nekoliduje s názvy *@main@*, *@develop@* a *@release-*@*, musí však reflektovat podstatu feature
43
* větvit by se měli z větve *@develop@*
44
* mergovat zpět se musí pouze do větve *@develop@*
45
* merge commit by měl být pro identifikaci jednoznačně spárován s příslušným issue (v commit message)
46
47
h3. release větve
48
49
* přípravné větve pro budoucí release, tzn. production-ready verzi produktu
50
* každá release má svou vlastní větev
51
* pojmenování s prefixem *@release-@*, po kterém následuje název verze produktu
52
* na těchto větvích nesmí probíhat žádné přidávání funkcionality nebo jiné změny, než opravy bugů či změny související s procesem release (číslování verzí atp.)
53
* větvit se musí z větve *@develop@*
54
* všechny změny se nakonec zmergují do větve *@main@* a také zpět do větve *@develop@*
55
* merge commit do *@main@* větve musí být pro identifikaci verze jednoznačně identifikován tagem
56
    
57
h3. hotfixes větvě
58
59
* větve pro kritické opravy kódu v *@main@* větvi
60
* větvit se musí z *@main@* větve
61
* mergovat se musí zpět do *@main@* větvě a současně i do větve *@develop@*
62
* merge commit do *@main@* větve musí být pro identifikaci verze jednoznačně identifikován tagem
63
64
65
ukázkové schéma správného větvění při vývoji:
66
!{width:30%}git_branching.png!
67
zdroj: https://nvie.com/posts/a-successful-git-branching-model/
68 1 Zhanel Mukanova
69
h2. Komunikace
70
71
* *Zákazník:* Microsoft Teams - Chat
72
* *Mentor:* Microsoft Teams - Tým iOI - Genealogy (CATVUSA)
73
* *Tým:* Discord
74
75
h2. Projekt
76
77
* Vedoucí týmu založí hlavní úkol práce. Každý účastník projektu si vybere část práce za kterou bude zodpovědný a vytvoří si vlastní podúkoly daného zadání.
78 2 Zhanel Mukanova
* Na začátku iterace se status *ACCEPTED* nastaví vždy na všechny úkoly. 
79
* Jakmile někdo z tymu si zvolí nějaký task, tak změní status úkolu na *ASSIGNED*. 
80
* Po dokončení úkolu se status nastaví na *RESOLVED*. 
81
* Vedoucí tymu na konci každé iteraci nastaví statusy z *RESOLVED* na *CLOSED*.