MLAB-project / Modules

MLAB hardware modules and building blocks
http://www.mlab.cz/modules
GNU General Public License v3.0
16 stars 13 forks source link

Změna struktury a editace repozitáře #7

Closed VCO34 closed 4 years ago

VCO34 commented 5 years ago

1, při commitu uvádět i čeho se commit týká - 8x pod sebou mít napsáno edit, moc přehlednosti nepřidá. viz. obrázek

2, začít používat branch. Je to celkem dobrá věc a hlavně to commity grupuje k sobě. Graficky se dá velmi jednoduše orientovat ve struktuře. Taky to přináší výhodu mít zvlášť vývojovou část a ostrý kod v masteru, který je přístupný z webu.

image

ChroustJan commented 5 years ago

@VCO34 tohle jsme již poměrně dlouho diskutovali a nedošli moc k lepšímu řešení:( Přemýšleli jsme i o variantě, že by každý modul byl repozitář, ale to by jsme se v tom asi pak úplně ztratili a přišli jsme zas na další nedostatky a nevýhody. Pokud ti to pomůže, můžeš si udělat vlastní větev, ale pro mě je nepředstavitelné, kdyby to tak bylo u všech otevřených modulů. Jsou situace kdy kreslím třeba 5modulů naráz a to ještě třeba střídám 3-4počítače. Nedovedu si představit, jak bych si uhlídal stále přepínání mezi větvemi při každé změně. I teď mám problém odesílat všechny repozitáře jak jich máme strašně moc. K tomu že tam píši edit mám určitý důvod:(, Jakub ti ho může osobně přiblížit.

Myslím si, že tebe zajímá vidět změny, které se týkají tvého modulu. K tomu jde využít tlačítka History, kde je vidět jaké změny se týkají dané složky. O této funkci jsi věděl? History

VCO34 commented 5 years ago

@kaklik @ChroustJan - určité rozvětvení repo modulů, by asi stálo za zvážení. např. proč neudělat jednotlivé repo dle All categories viz. web mlab.cz image

všechny projekty jsou public, takže neomezené množství na GitHub a pravděpodobně údržba by i byla snažší. Je otázka, co máte s mlab v plánu do budoucna?

Další výhoda používání branchs, je zavedení pull request. Jednoduchý kontrolní systém a eliminace chyb ať už v návrhu nebo programu, ale i mezi vývojáři samotnými - více očí více vidí.

Vše, co píšu, má smysl pokud na modulech pracuje více jak jeden dva lidi a mají mít určitou zastupitelnost, kde je komentování commitů případně údržba dokumentace nezbytností. V jednom člověku to asi moc smysl nemá a spíše je to brzda. :) což chápu a taky to tak někdy dělám.

Jinak History - opět neřeší problém přehlednosti - pokud bude všude napsáno edit :).

Neber to prosím nijak zle, já respektuji tvoje důvody, jen to dost omezuje možnost pracovat více lidí na modulech nebo SW.

kaklik commented 5 years ago

Co se týká dělení repozitáře Modules na menší části, tak zatím to vypadá spíše na rozdělení na submoduly. Proti tomuto kroku je pouze fakt, že rozdělením by byla snížena přehlednost vyhledávání jednotlivých repozitářů. Má to tedy smysl až v případě, že budeme mít nějaké webové rozhraní, kde budou nalezitelné i konstrukce, které se jinak mezi záplavou modulů na githubu ztratí.

Přiznám se že komentář @ChroustJan k používání větví a nemožnosti uhlídat commitování do správných větví nějak moc nerozumím. Neboť je to poměrně bězný způsob práce s gitem, který používá mnoho lidí. Zároveň ale myslím Honzu nikdo nenutí, aby to dělal. Vytvořit si větev a pak se o ní starat je v podstatě na odpovědnosti člověka, který si tu větev vytvoří za nějakým účelem.

roman-dvorak commented 5 years ago

Vytvoření repozitářů podle kategorií mi přijde jako úplně nejhorší varianta. Protože v tom bude docela zmatek a přesun modulu do jiné kategorie bude znamenat z jednoho repozitáře ho odebrat a vložit do druhého, čímž se úplně ztratí jeho historie. Jak se Ti @VCO34 nelíbí, že je všude 'edit', tak tam už nebude vůbec nic. A bude v tom strašný zmatek, kde který modul je atd...

Mě by se dnes (dříve jsem na to měl trošku jiný pohled a nepřemýšlel jsem o této variantě) nejvíce líbí varianta, že každý modul bude mít vlastní repozitář. Zřejmě to obnáší dost práce při změně této struktury (znovu).

Jako velkou výhodu vidím, že by bylo možné mít jednotlivé verze modulu v jednotlivých větvích. A vždy bude nastavena poslední větev jako výchozí. Tím by se trošku zlepšila přehlednost.

A pak může být nějaký celkový repozitář 'Modules', kde budou všechny moduly naimportované pomocí submodulů. Aby zde bylo zachováno, že uvidíš všechny verze toho modulu, tak tam bude submodul zaveden vícekrát. A pokaždé bude odkazovat na jinou verzi - větev. A úplně stejně by se to použilo u projektů (konstrukcí, jak píše @kaklik), kde by jednotlivé moduly (včetně použitých verzí) byly přidané pomocí submodulů.

Tohle by možná mohlo vyřešit problém, který řešíš @ChroustJan

ChroustJan commented 5 years ago

@VCO34 @kaklik

Závěrem:

O tom, že ta struktura není ideální víme a nenašli jsme lepší řešení (aby to vše bylo časově úměrné).

Prezentační vrstva je mlab.cz a s vyhledáváním modulů přes git jsme zatím nepočítali. Pokud by začalo na modulech pracovat větší množství lidí, tak asi narazíme, ale osobně bych počkal až to nastane, protože máme rozjetých moc akcí a skoro žádný čas na tyto úpravy.

Pokud někomu bude vyhovovat, že si rozjede vlastní větev, je to možné. A já se pokusím zlepši ty popisy, protože to jiný systém nevyřeší.

kaklik commented 5 years ago

Dobře, myslím že původní záměr tohoto issue, je vyřešený. @ChroustJan se zřejmě bude snažit usnadnit jiným lidem orientaci ve vlastních commitech. A na změnu struktury repozitářů zatím nemáme konkrétní plán a kapacitu. Trochu jsem o tom dnes ještě diskutoval s @VCO34 a taktéž padl návrh na jednotlivé moduly udělat separátní organizaci, ale je těžko představitelné domyslet všechny důsledky takového rozhodnutí.

kakl commented 5 years ago

Taky jsem za pro kazdy modul udelat vlastni projekt.

kaklik commented 5 years ago

Rozdělení na jednotlivé submoduly se zřejmě musí udělat tímhle relativně složitým procesem: https://stackoverflow.com/questions/17413493/create-a-submodule-repository-from-a-folder-and-keep-its-git-commit-history

VCO34 commented 5 years ago

zde přímo návod od github, ale na složitosti to moc neubírá https://help.github.com/en/articles/splitting-a-subfolder-out-into-a-new-repository

kaklik commented 4 years ago

Rozdělení repozitáře modules jsme začali testovat na konstrukci anemometru. Anemometr je tak v separátním repozitáři. A celé to je v nové organizaci, která slouží pouze na uložení modulů. Anemometr, je pak submodulem v repozitáři Modules.

Uvidí se, jak to bude fungovat dál. Zatím se zdá, že je to docela použitelné.

kaklik commented 4 years ago

Vytvořil jsem nový základní repozitář, který má sloužit jako Template repository.
To by mělo kromě jiného i ujednotit zacházení s větvemi jednotlivých modulů.

Tímto pokládám toto issue za vyřešené.