Iterace 3 zadavatel dotazy 2 » Historie » Verze 6
Štěpán Faragula, 2025-04-01 14:25
doplnění požadavků
1 | 1 | Štěpán Faragula | h1. 3. iterace - Schůzka se zadavatelem ohledně technických dotazů 2 |
---|---|---|---|
2 | |||
3 | ---- |
||
4 | |||
5 | h3. Informace o schůzce |
||
6 | |||
7 | * *Datum: 1.4.2025* |
||
8 | 5 | Štěpán Faragula | * *Čas: 10:00 - 11:00* |
9 | 1 | Štěpán Faragula | * *Forma: online přes Teams* |
10 | |||
11 | h3. Účastníci: |
||
12 | |||
13 | * Bc. Jakub Pavlíček, jpvlck@students.zcu.cz |
||
14 | * Bc. Štěpán Faragula, farag844@students.zcu.cz |
||
15 | |||
16 | h3. Poznámky ze schůzky |
||
17 | |||
18 | Zeptali jsme se na dotazy: |
||
19 | 3 | Štěpán Faragula | # Jak máme uložit data do tabulky <code>project</code>? Je <code>startDate</code> datum prvního commitu? |
20 | ** Ano, <code>startDate</code> je datum prvního commitu. |
||
21 | ** Ne každé ALM má svůj vlastní koncept pro startdate, máme vzít jakékoliv první datum čehokoliv (první commit / první změna v projektu čehokoliv) |
||
22 | *** <code>startDate</code> máme uložit na konci dolování až po tom, co budeme znát všechny <code>work_item</code> a <code>configuration</code> |
||
23 | *** Na konci vybereme položku s nejnižší hodnotou |
||
24 | # V tabulce <code>work_unit</code> je atribut <code>progress</code> nastavený na NOT NULL, jakou hodnotu zde máme nastavit pro GitHub pumpu? |
||
25 | ** Máme nastavit 0, tak jak děláme teď |
||
26 | # Máme dodržovat strukturu dat v ukázkových datech? Např. že URL GitHub projektu končí koncovkou <code>.git</code> či název <code>project_instance</code> obsahuje i datum. |
||
27 | ** Je to jedno, ale u Git pumpy to dává smysl, u GitHub pumpy to může být jinak |
||
28 | *** Dříve bylo nutné zadat .git kvůli knihovně JGit, protože to procházelo Git pumpou, když se repository muselo stáhnout na lokál |
||
29 | ** Datum u <code>project_instance</code> = datum těžení (nemusíme vyplňovat, sloužilo pro debug, můžeme ignorovat) |
||
30 | # Můžeme v tabulce <code>project_instance</code> do atributu <code>description</code> dát text z About na GitHubu? Tento text je uložen v atributu <code>description</code> tabulky <code>project</code>, takže bychom ho ukládali i zde (tj. <code>project_instance.description</code> by byl stejný jako <code>project.description</code>). |
||
31 | ** Může být v obojím |
||
32 | 6 | Štěpán Faragula | ** Otázka, jestli dávat podle délky (nejdelší popis je správný), nebo přidávat k existujícím -> víc detailnější |
33 | 3 | Štěpán Faragula | *** Na <code>description</code> nebude žádná analýza viset, jde spíš o orientační záznam a lepší vědět co nejvíce informací (appendování) |
34 | 4 | Štěpán Faragula | ** <code>project_instance</code> může mít každá jiný název, u těch se vezme nejdelší možné jméno (dobrá heuristika, fungovalo dříve) |
35 | 3 | Štěpán Faragula | # V tabulce <code>role</code> jsou uloženy role (v případě GitHub repozitáře), které se nepoužívají, např. documenter, tester apod., máme je tedy také vždy vytvářet? Můžeme v GitHub pumpě mapovat roli <code>Contributor</code> na SPADe <code>Developer</code>? |
36 | ** Ano, je to tam z důvodu, když se chtějí lidi po těžení přemapovat |
||
37 | 6 | Štěpán Faragula | *** Člověk reálně ví, jaké role zastává a měli bychom umožnit přemapování dat, když už budou v databázi a budou se nad nimi dělat analýzy |
38 | ** I u ostatních enumů bychom měli vytvářet všechny |
||
39 | 3 | Štěpán Faragula | *** Dává smysl u stavů, resolutions |
40 | *** Priority nejspíše ne |
||
41 | ** Contributor a developer dává smysl |
||
42 | # Máme počítat s tím, že Git pumpa se bude spouštět také na lokálním repozitáři, tj. bez zadaného URL? |
||
43 | 6 | Štěpán Faragula | ** Není pro to rozumný usecase, i kdyby chtěl uživatel těžit na lokále, tak repozitář spíš zveřejní online a vytěží |
44 | 3 | Štěpán Faragula | *** Důvod: na lokále jsou necommitované změny a ty nás nezajímají |
45 | 1 | Štěpán Faragula | # U Git pumpy, do jaké tabulky máme ukládat změny souborů (tj. smazán, přidán, upraven)? Co všechno by měla Git pumpa umět? Naše zatím umí dolovat: <code>Identity</code>, <code>Person</code>, <code>Commit</code>, <code>Tag</code>, <code>Branch</code>, <code>Project</code>, <code>ProjectInstance</code> a <code>ToolInstance</code>. |
46 | 3 | Štěpán Faragula | ** work_item_change -> atribut name |
47 | 6 | Štěpán Faragula | ** U čistě gitové pumpy není nic jiného, co by se dalo těžit, takhle stačí |
48 | 3 | Štěpán Faragula | ** Configuration person relation se dá najít přes parsování řádků na commit message |
49 | *** Lze se spoléhat na formát, kde je na konci commitu je "Reviewed by: ...", můžeme splitnout dvojtečkou a vzít člověka |
||
50 | # V GitHub pumpě, jak máme těžit tabulky <code>iteration</code>, <code>phase</code>, <code>milestone</code>? U <code>iteration</code> a <code>phase</code> jsou v ukázkových datech stejná data, proč? V <code>milestone</code> není nic, proč? Když GitHub milestone nemá žádný issues, máme milestone i tak těžit? |
||
51 | ** Data u <code>phase</code> a <code>milestone</code> jsou stejné kvůli testům |
||
52 | ** U těchto dvou položek je lepší je dávat do iterace, protože to více odpovídá skutečnému kontextu. |
||
53 | *** Vše dáme do iterace, zbytečné dávat data do obou |
||
54 | ** Milestones neřešíme vůbec |
||
55 | *** Velmi zřídka se dá najít koncept v ALM který by jim odpovídal |
||
56 | *** Spíše odpovídá popisu na Wiki a to je moc složitý koncept těžení |
||
57 | *** Uživatel si dodefinuje sám |
||
58 | 6 | Štěpán Faragula | ** Když GitHub nemá issues, i tak to máme těžit, je to zajímavá informace |
59 | 1 | Štěpán Faragula | # Když ukládáme časy do tabulek, máme vždy používat časová pásma těch akcí, nebo naše? Tj. <code>issue.createdAt() = "Mon Jun 01 19:10:43 CEST 2020"</code> -> <code>“2020-06-01T19:10:43Z"</code> s Timezone, nebo <code>"2020-06-01T17:10:43Z"</code> bez Timezone (tj. -2 hodiny). |
60 | ** Bez timezone a vše máme převést na UTC |
||
61 | ** Lidé mohou commitovat z různých timezone, takže je potřeba standarzidovat |
||
62 | # Jaký význam má relace mezi <code>work_item</code> a <code>configuration</code>? |
||
63 | ** id w_i = id configuration |
||
64 | *** Relace 1:1 |
||
65 | 6 | Štěpán Faragula | ** <code>configuration</code> je jeden z typů work itemu (speciální typ work_item) |
66 | *** <code>configuration</code> je rozšíření <code>work_item</code>, stejně jako <code>work_unit</code> je rozšíření <code>work_item</code> |
||
67 | ** <code>configuration</code> = změna ticketů/artefaktů |
||
68 | ** <code>commited_configuration</code> = worklog (nutné rozlišovat kdy se vytvořil záznam a kdy se strávil čas, může být i zpětně) |
||
69 | ** ve SPADe PDF je hierarchická struktura mezi jednotlivými typy <code>configuration</code> |
||
70 | |||
71 | Dále jsme se bavili o schématu architektury systému |
||
72 | * High-level má dobré schéma, dále to chce lépe popsat systém uvnitř Docker kontejneru (udělat nové, detailnější schéma) |
||
73 | ** Bude tam popis naší abstraktní třídy na pumpy |
||
74 | *** Popis jednotlivých tříd a rozhraní, pak jak jsou implementovány v jednotlivých pumpách |
||
75 | *** DAO vrstva |
||
76 | ** Můžeme tam zanést i věci co se budou dělat v TSP2 |
||
77 | *** Modul na pseudonimizaci, modul na čtení konfigurací a na těžení jednotlivých konceptů |
||
78 | * Se zadavatelem jsme se dohodli, že *dosavadní architektura je pro tuto iteraci dostačující*, detailnější pohled můžeme udělat v další iteraci |
||
79 | |||
80 | Poté nám přidal zadavatel nový požadavek týkající se způsobu pumpování a také GUI |
||
81 | * Pumpy by měly umožňovat zakomponovat různé <code>project_instance</code> (Redmine, GitLab) do již vydolovaného projektu |
||
82 | ** Tím se rozšíří sada lidí a identit (buďto se identity přiřadí k již existujícím lidem z vydolovaného <code>project_instance</code>, nebo se vytvoří nové) |
||
83 | *** *Pozor*, lidé jsou připojeni k <code>project</code> a ne k <code>project_instance</code> |
||
84 | ** Dále nám to i umožní propojení mezi ticketama a commitama |
||
85 | *** Když dotahujeme další instanci tak musíme dohledávat propojující dotazy |
||
86 | *** Nutné projet všechny commit messages již uložených instancí -> nutné udělat manuálně zpětně |
||
87 | **** Kdybychom spojovali 4 ALM dohromady, u přidávání posledního projdeme commit messages všech 3 předchozích |
||
88 | *** Odkazy na tickety se mohou vyskytovat např. u Redmine i v popisu a komentářích |
||
89 | **** Zachyceno v tabulce <code>work_item</code> odkazem sama na sebe (odkaz ticket -> ticket) |
||
90 | **** Vše se propojí v tabulce <code>project</code> |
||
91 | * GUI by mělo umožňovat |
||
92 | ** Před těžením se zeptá, jestli bude těžit *nový projekt* nebo jestli bude *přidávat do existujícího projektu* |
||
93 | *** Implementace přes CheckBox (chci/nechci přidávat do exitujícího) + SelectBox (když chci, do jakého konkrétně) |
||
94 | * Nové požadavky by bylo *vhodné zprovoznit do konce TSP1* v základní verzi, funkcionalitu *můžeme však přesunout do TSP2* |
||
95 | * Důležité je zdokumentovat, co všechno jsme zprovoznili do konce TSP1 |
||
96 | |||
97 | Nakonec ještě přibyl požadavek na CICD |
||
98 | * Měla by být možnost připojení na vlastní reálnou databázi místo dockerizované |
||
99 | * Důvod: na tuto reálnou databázi se následně mohou napojit i jiné nástroje |
||
100 | * Tuto funkcionalitu máme naplánovat *až na TSP2*, zatím nedává smysl |
||
101 | 2 | Štěpán Faragula | |
102 | 1 | Štěpán Faragula | ---- |
103 | |||
104 | Autor: Štěpán Faragula |
||
105 | Datum: 1.4.2025 |
||
106 | Stav: hotový |