Organizace projektu – core a individuální nadstavba v gitu
- Kajda23
- Člen | 42
Ahoj,
řeším takový spíš filozofický problém a vlastně nevím, jaké jsou
možnosti, kudy se vydat.
Dejme tomu, že mám nějaké core aplikace (CMS, intra, atp. – jde
o moduly, modely, configy, router, atp.), které chci vytvářet jako
společný základ pro více individuálních webů. Nad tímto core je pak
postavena individuální aplikace (web – presentery, šablony, grafika). Core
i indivuduální nadstavby bych chtěl mít samostatně verzované gitem.
Vývoj ale v zásadě probíhá tak, že jádro je vyvíjeno zároveň
s individuální nadstavbou v případě potřeby.
Zkoušel jsem něco jako 2 samostatné repozitáře a podstrčení core skz hardlinky do individuální aplikace, kde jsou tyto core soubory v gitu ignorovány. V zásadě je to funkční, ale občas to přináší skryté problémy (např. git při checkoutech nezachovává hardlinky), v IDE není možné přímo sledovat git změny jádra a připadá mi to jako takové nečisté řešení.
Otázka zní: jak uspořádat projekt a git tak, aby to bylo funkční a v tomto duchu spravovatelné? Má např. git pro to nějaké nativní řešení?
Díky za nakopnutí.
- Kamil Valenta
- Člen | 820
My to děláme tak, že je v gitu samostatný repozitář pro core a samostatný pro projekt klienta. Deploy pak stáhne z gitu core a poté projekt, takže se to na webu „spojí“.
- Pavel Kravčík
- Člen | 1195
Ahoj,
my normálně verzujeme stejně jako Nette. Tj. náš
composer.json
vypadá nějak takhle:
nette/form: "^3"
company/user: "^1"
company/rabbit: "^1"
company/gitlab: "^1"
company/core: "^1"
Někde nepotřebuješ rabbit, tak ho dáme pryč a funguje to bez. Máme to formou extension a funguje to perfektně pro desítky projektů a a jejich aktualizace.
- Kajda23
- Člen | 42
Díky za odpovědi. Nejsem si jistý, jestli jste mě pochopili nebo já jen nechápu Vaši odpověď. Jde mi primárně o vývoj a o to, jak zařídit, abych v rámci jednoho projektu mohl transparentně spravovat 2 git repozitáře. Sem směřuje má otázka a ptám se proto, že v gitu nejsem úplně doma: možná jsem špatně pochopil už jeho filozofii, možná existuje nativní řešení, které já jenom neznám a možná existuje nějaká úplně snadná cesta úplně jinudy.
- Pavel Kravčík
- Člen | 1195
No ten druhý (potažmo X-tý) repositář si tam spravuješ přes composer. Pokud myslíš něco jako commitovat z jednoho projektu do dvou separátních repositářů – není to příliš dobrý nápad, ale mělo by to jít snadno přes nastavení složek. Tj. každá složka může mít vlastní.git.
Ukázka volání vlastního repo:
"repositories":
[
{
"name": "company/mail",
"type": "vcs",
"url": "ssh://git@xxx.cz/company/mail.git"
},
]
Editoval Pavel Kravčík (3. 2. 2021 14:06)