Workflow vývoje Joomla webů a verzování GIT
13. led 2020 16:52 #141499
Odpověď od Leoš

Pokročilý uživatel
Ahoj kluci,
moc vám všem děkuji za zapojení do diskuze. Vysvětlení je opravdu výživné.
Ano, jsem jednotlivec dělající weby. Jen jsem chtěl konzultovat právě verzování do GITu. Hlavně pro přehled všech změn kódu, který jsem udělal. Už po půl roce si nepamatuji proč, kde ale kouknu do repozitáře a mám tam okomentované změny.
Verzování obsahu článků je super pomocí samotné Joomly, to je fakt. Override souborů je také samozřejmost.
Z toho všeho mi vyplývá, že by stačilo hodit do GITu poprvé celou Joomlu se vším rozšířením a potom už si verzovat do GITu jen co je potřeba.
Databázi zálohuji pravidelně po každé změně, která ji ovlivní. Manuálně pomocí PhpMyAdmina.
Nějaké velké zásahy do core kódu nedělám, spíše jen frontend. To verzování mám i jako jednu z forem zálohy.
Je hodně zajímavé sledovat, jak to každý dělá trochu jinak
A je to i poučné.
Dík moc a kdyby měl někdo ještě nějaký tip, neváhejte se mi svěřit
moc vám všem děkuji za zapojení do diskuze. Vysvětlení je opravdu výživné.
Ano, jsem jednotlivec dělající weby. Jen jsem chtěl konzultovat právě verzování do GITu. Hlavně pro přehled všech změn kódu, který jsem udělal. Už po půl roce si nepamatuji proč, kde ale kouknu do repozitáře a mám tam okomentované změny.
Verzování obsahu článků je super pomocí samotné Joomly, to je fakt. Override souborů je také samozřejmost.
Z toho všeho mi vyplývá, že by stačilo hodit do GITu poprvé celou Joomlu se vším rozšířením a potom už si verzovat do GITu jen co je potřeba.
Databázi zálohuji pravidelně po každé změně, která ji ovlivní. Manuálně pomocí PhpMyAdmina.
Nějaké velké zásahy do core kódu nedělám, spíše jen frontend. To verzování mám i jako jednu z forem zálohy.
Je hodně zajímavé sledovat, jak to každý dělá trochu jinak

Dík moc a kdyby měl někdo ještě nějaký tip, neváhejte se mi svěřit

13. led 2020 17:07 - 13. led 2020 17:34 #141500
Ano.¨
Dnes mi programátor doprogramoval úpravu naši pro discontinued produkty pro plugin catproduct-content (vypadá to že vývojáři skončili, tak to bude asi další rozšíření, které převezmeme a budeme rozvíjet) a core plugin VirtueMartu - generická varianta productu (Customfield typu A).
Protože úkol má číslo 17013,
- v gitu si vytvořil z mastera branch - 17013
- do ní commitnul změny s poznámkou - 17013 - discontinued v catproduct (vmcustom) + customfield(type A)
- v kódu označil změny - // #17013 - discontinued product
- udělal screen po nasazení
- přidal URL testovacího produktu po úpravě == že to funguje, aby testér mohl otestovat
- odeslal úpravu do gitu
- vložil do poznámky v úkolu URL commitu, abych si prohlédl kód nebo jiný programátor a zkontroloval
Jakmile schválím výsledek:
- udělám merge do branch devel a nasadím na vývoj, kde to již zkontroluje zákazník.
- následně merge do master a nasazení na ftp produkce
- vyfakturuji
Celkem programátorovi přibyla práce v řádu 1-2 minuty aby takto postupoval + zápis do úkolu (to by ale musel dělat tak jako tak).
Jakmile si takto zvyknou kolegové pracovat, již nic neřeší, protože to následně ušetří mnoho hodin práce při chybách nebo dalších úpravách.
P.S.
Mimochodem,celý tento dotaz v kostce byla plánovaná přednáška, kterou jsem chtěl udělat v Olomouci (pokud tam někdy tedy dorazím
Obrovská výhoda tohoto postupu je ta, že následně na další eshop prostě vezmu všechny úpravy v branch Discontinued a nasadím na další eshop (to už mohu nasazovat já jako admin a ne programátor).
MiniJoomla! - www.minijoomla.cz - eshop s rozšířením Joomla/VM
Email Manager - aplikace na správu šablon emailů pro VirtueMart
Easy Feeder - aplikace na generování XML/CSV feedů a napojení na ERP pro VM
PragueClassicconcert - portál pro prodej vstupenek na systému Joomla
Odpověď od Rudolf

Joomla Expert
Z toho všeho mi vyplývá, že by stačilo hodit do GITu poprvé celou Joomlu se vším rozšířením a potom už si verzovat do GITu jen co je potřeba.
Ano.¨
Dnes mi programátor doprogramoval úpravu naši pro discontinued produkty pro plugin catproduct-content (vypadá to že vývojáři skončili, tak to bude asi další rozšíření, které převezmeme a budeme rozvíjet) a core plugin VirtueMartu - generická varianta productu (Customfield typu A).
Protože úkol má číslo 17013,
- v gitu si vytvořil z mastera branch - 17013
- do ní commitnul změny s poznámkou - 17013 - discontinued v catproduct (vmcustom) + customfield(type A)
- v kódu označil změny - // #17013 - discontinued product
- udělal screen po nasazení
- přidal URL testovacího produktu po úpravě == že to funguje, aby testér mohl otestovat
- odeslal úpravu do gitu
- vložil do poznámky v úkolu URL commitu, abych si prohlédl kód nebo jiný programátor a zkontroloval
Jakmile schválím výsledek:
- udělám merge do branch devel a nasadím na vývoj, kde to již zkontroluje zákazník.
- následně merge do master a nasazení na ftp produkce
- vyfakturuji

Celkem programátorovi přibyla práce v řádu 1-2 minuty aby takto postupoval + zápis do úkolu (to by ale musel dělat tak jako tak).
Jakmile si takto zvyknou kolegové pracovat, již nic neřeší, protože to následně ušetří mnoho hodin práce při chybách nebo dalších úpravách.
P.S.
Mimochodem,celý tento dotaz v kostce byla plánovaná přednáška, kterou jsem chtěl udělat v Olomouci (pokud tam někdy tedy dorazím

Obrovská výhoda tohoto postupu je ta, že následně na další eshop prostě vezmu všechny úpravy v branch Discontinued a nasadím na další eshop (to už mohu nasazovat já jako admin a ne programátor).
MiniJoomla! - www.minijoomla.cz - eshop s rozšířením Joomla/VM
Email Manager - aplikace na správu šablon emailů pro VirtueMart
Easy Feeder - aplikace na generování XML/CSV feedů a napojení na ERP pro VM
PragueClassicconcert - portál pro prodej vstupenek na systému Joomla
13. led 2020 17:20 #141501
Je to celkem jednoduchý, stačí se vyhnout D1
Phoca Cart - www.phoca.cz/phocacart - e-shop, e-commerce
Phoca Gallery - www.phoca.cz/phocagallery - obrázková galerie
Phoca Download - www.phoca.cz/phocadownload - stahování souborů
Phoca Guestbook - www.phoca.cz/phocaguestbook - guestbook
Odpověď od H13

Admin
Mimochodem,celý tento dotaz v kostce byla plánovaná přednáška, kterou jsem chtěl udělat v Olomouci (pokud tam někdy tedy dorazím
Je to celkem jednoduchý, stačí se vyhnout D1

Phoca Cart - www.phoca.cz/phocacart - e-shop, e-commerce
Phoca Gallery - www.phoca.cz/phocagallery - obrázková galerie
Phoca Download - www.phoca.cz/phocadownload - stahování souborů
Phoca Guestbook - www.phoca.cz/phocaguestbook - guestbook
14. led 2020 09:04 #141504
V sobotu ta D1 není tak špatná 😁😁
Odpověď od klucon

Pokročilý uživatel
H13 napsal:
Mimochodem,celý tento dotaz v kostce byla plánovaná přednáška, kterou jsem chtěl udělat v Olomouci (pokud tam někdy tedy dorazím
Je to celkem jednoduchý, stačí se vyhnout D1
V sobotu ta D1 není tak špatná 😁😁
14. led 2020 15:55 #141506
Odpověď od Cony

Moderátor
No ona je to docela štreka i bez tý D1 
Ale přednáška z praxe (s názornými ukázkami:) ) by byla určitě zajímavá, takže Rudo, už se těšíme

Ale přednáška z praxe (s názornými ukázkami:) ) by byla určitě zajímavá, takže Rudo, už se těšíme

14. led 2020 22:33 #141507
MiniJoomla! - www.minijoomla.cz - eshop s rozšířením Joomla/VM
Email Manager - aplikace na správu šablon emailů pro VirtueMart
Easy Feeder - aplikace na generování XML/CSV feedů a napojení na ERP pro VM
PragueClassicconcert - portál pro prodej vstupenek na systému Joomla
Odpověď od Rudolf

Joomla Expert
Ok, bude rozdělena na verzování pro jednotlivce a práce v týmu.
A prezentována na praktickém projektu existujícího eshopu nebo webu.
Natrénuji na max 30-40 minut.
A prezentována na praktickém projektu existujícího eshopu nebo webu.
Natrénuji na max 30-40 minut.
MiniJoomla! - www.minijoomla.cz - eshop s rozšířením Joomla/VM
Email Manager - aplikace na správu šablon emailů pro VirtueMart
Easy Feeder - aplikace na generování XML/CSV feedů a napojení na ERP pro VM
PragueClassicconcert - portál pro prodej vstupenek na systému Joomla
Poděkovali: Leoš, Cony, Bong, klucon
17. úno 2023 19:44 #147881
Odpověď od Leoš

Pokročilý uživatel
Ahoj Rudo,
nebylo by možné si k této problematice dát pokec na čtvrtečním online baru?
Mě by hlavně zajímalo, jak kdo má vyřešen vývoj webu na localhostu a jeho workflow - tedy základní systém nebo postup. Rád bych si to u sebe trochu urovnal a vylepšil, tak že bychom si to mohli porovnat a poplivat
Co na to ostatní vývojáři?
nebylo by možné si k této problematice dát pokec na čtvrtečním online baru?
Mě by hlavně zajímalo, jak kdo má vyřešen vývoj webu na localhostu a jeho workflow - tedy základní systém nebo postup. Rád bych si to u sebe trochu urovnal a vylepšil, tak že bychom si to mohli porovnat a poplivat

Co na to ostatní vývojáři?
17. úno 2023 23:57 #147885
MiniJoomla! - www.minijoomla.cz - eshop s rozšířením Joomla/VM
Email Manager - aplikace na správu šablon emailů pro VirtueMart
Easy Feeder - aplikace na generování XML/CSV feedů a napojení na ERP pro VM
PragueClassicconcert - portál pro prodej vstupenek na systému Joomla
Odpověď od Rudolf

Joomla Expert
ok, ve čtvrtek příští týden budu online

MiniJoomla! - www.minijoomla.cz - eshop s rozšířením Joomla/VM
Email Manager - aplikace na správu šablon emailů pro VirtueMart
Easy Feeder - aplikace na generování XML/CSV feedů a napojení na ERP pro VM
PragueClassicconcert - portál pro prodej vstupenek na systému Joomla
Poděkovali: Leoš
18. úno 2023 16:08 - 18. úno 2023 16:15 #147887
Phoca Cart - www.phoca.cz/phocacart - e-shop, e-commerce
Phoca Gallery - www.phoca.cz/phocagallery - obrázková galerie
Phoca Download - www.phoca.cz/phocadownload - stahování souborů
Phoca Guestbook - www.phoca.cz/phocaguestbook - guestbook
Odpověď od H13

Admin
Co na to ostatní vývojáři?
A ) Co se týče vývoje webové stránky, nebo spíš sestavení webové stránky:
1. veškerý vývoj s plným debug modem a error reportingem na localhostu
2. poté export z localhostu a import na hosting (standardní SQL export - osvědčil se mi spíše v adminerovi než v phpMyAdmin, a standardní FTP přesun souborů)
3. Úprava configuration.php na serveru:
public $user = 'xxx';
public $password = 'xxx';
public $db = 'xxx';
public $log_path = 'xxx';
public $tmp_path = 'xxx';
B ) Co se týče vývoje např. rozšíření:
1. veškerý vývoj s plným debug modem a error reportingem na localhostu
2. pomocí vlastního php skritptu sestavení finálního instalačního balíčku a kopírování všech souborů do speciální složky, kde pomocí GIT proběhne "Commit to master" (případně do jiné branche, např. Dev), poté "push" na Github.
Opak trochu složitější, ale neděje se tak často:
1. Pull z branche do speciální složky a poté kopie souborů na localhost
(Protože mi systém automaticky sám vytváří balíčky, pak podpůrný věci jako automaticky vytvořený obrázky pro sociální sítě, nebo Read Me soubory, atd. mám tam ten mezikrok se speciální složkou a nejedu přímo localhost <--> Github).
Omlouvám se za nečeské výrazy commit, branch, push, pull, ... ale nechci to přeložit špatně, neznám český výrazy.
A ) Co se týče vývoje webové stránky, nebo spíš sestavení webové stránky:
1. veškerý vývoj s plným debug modem a error reportingem na localhostu
2. poté export z localhostu a import na hosting (standardní SQL export - osvědčil se mi spíše v adminerovi než v phpMyAdmin, a standardní FTP přesun souborů)
3. Úprava configuration.php na serveru:
public $user = 'xxx';
public $password = 'xxx';
public $db = 'xxx';
public $log_path = 'xxx';
public $tmp_path = 'xxx';
B ) Co se týče vývoje např. rozšíření:
1. veškerý vývoj s plným debug modem a error reportingem na localhostu
2. pomocí vlastního php skritptu sestavení finálního instalačního balíčku a kopírování všech souborů do speciální složky, kde pomocí GIT proběhne "Commit to master" (případně do jiné branche, např. Dev), poté "push" na Github.
Opak trochu složitější, ale neděje se tak často:
1. Pull z branche do speciální složky a poté kopie souborů na localhost
(Protože mi systém automaticky sám vytváří balíčky, pak podpůrný věci jako automaticky vytvořený obrázky pro sociální sítě, nebo Read Me soubory, atd. mám tam ten mezikrok se speciální složkou a nejedu přímo localhost <--> Github).
Omlouvám se za nečeské výrazy commit, branch, push, pull, ... ale nechci to přeložit špatně, neznám český výrazy.
Phoca Cart - www.phoca.cz/phocacart - e-shop, e-commerce
Phoca Gallery - www.phoca.cz/phocagallery - obrázková galerie
Phoca Download - www.phoca.cz/phocadownload - stahování souborů
Phoca Guestbook - www.phoca.cz/phocaguestbook - guestbook
Poděkovali: Leoš
18. úno 2023 19:01 #147889
Odpověď od Leoš

Pokročilý uživatel
Díky za tvůj tip. Já to asi dělám podobně. Na localhostu sestavuji web - vlastně co se dá naklikat v administraci Joomly a šablony. Na to asi žádné workflow není třeba. Ale když se dostanu k nějakým úpravám kódu - přepisům šablon atd., nebo řeším úpravy css, tak jsem chtěl mít možnost se podívat i zpětně co jsem kde a kdy změnil. Např. si klient za dva roky vzpomene, že už v eshopu nechce mít u zboží položku skladem počet ks a já vzpomínám kde to přesně mám a kdy jsem to dělal. Proto jsem si začal tyto soubory ukládat do GITu a mám tam komentáře, které mě navedou.
Takže tak si ukládám vlastní css a override souborů.
Když mám hotovou nějakou část práce, tak si udělám zálohu db a souborů a nahraju ji na test server aby se klient nebo spolupracovníci mohli podívat a otestovat.
Tak postupuji dokud není web připraven na spuštění do produkce.
Soubory nahrávám klasicky přes ftp a db přes phpMyAdmina. Zkoušel jsem úspěšně i deploytment automaticky ale narážím na to, že musím přenášet celý kód Joomly, když neměním jen části kódu ale např. píšu články nebo naklikávám strukturu menu atd.
To jsem si chtěl nějak ulehčit nebo zrychlit, např. když aktualizuji - záloha, aktualizace, test na localhostu, import na produkci, test produkce.
Ale asi to moc automatizovat nejde....
Takže tak si ukládám vlastní css a override souborů.
Když mám hotovou nějakou část práce, tak si udělám zálohu db a souborů a nahraju ji na test server aby se klient nebo spolupracovníci mohli podívat a otestovat.
Tak postupuji dokud není web připraven na spuštění do produkce.
Soubory nahrávám klasicky přes ftp a db přes phpMyAdmina. Zkoušel jsem úspěšně i deploytment automaticky ale narážím na to, že musím přenášet celý kód Joomly, když neměním jen části kódu ale např. píšu články nebo naklikávám strukturu menu atd.
To jsem si chtěl nějak ulehčit nebo zrychlit, např. když aktualizuji - záloha, aktualizace, test na localhostu, import na produkci, test produkce.
Ale asi to moc automatizovat nejde....
18. úno 2023 19:26 #147890
MiniJoomla! - www.minijoomla.cz - eshop s rozšířením Joomla/VM
Email Manager - aplikace na správu šablon emailů pro VirtueMart
Easy Feeder - aplikace na generování XML/CSV feedů a napojení na ERP pro VM
PragueClassicconcert - portál pro prodej vstupenek na systému Joomla
Odpověď od Rudolf

Joomla Expert
Vývoj na localhostu je ok pro "One Man Show"
Jakmile se vyvíjí v týmu, je tohle nežádoucí.
Proto vývoj webů nebo zrozšíření probíhá vždy na serveru - na vývojové doméně, která má stejné parametry jako produkce.
Web je napojený na git a jednotlivé úpravy se gitují podle čísla požadavku do samostatných branch nebo do branch devel s číslem požadavku
Jakmile je odsouhlaseno, nastane merge do master (to může proběhnout lokálně) a následně na produkci nastane pull.
Tím pádem je nasazení změn na produkci (tzv. deploy) otázka několika minut.
Je třeba si odladit v gitignore to co se nebude gitovat.
Také je třeba odladit změny v DB - například já abych nemusel programovat rozdílové tabulky (což například dělají kolegové při změnách na vodafone eshopu), tak po pull provádím znovu instalaci na produkci.
Samozřejmostí jsou SSH klíče pro jednotlivé uživatele.
Jakmile se vyvíjí v týmu, je tohle nežádoucí.
Proto vývoj webů nebo zrozšíření probíhá vždy na serveru - na vývojové doméně, která má stejné parametry jako produkce.
Web je napojený na git a jednotlivé úpravy se gitují podle čísla požadavku do samostatných branch nebo do branch devel s číslem požadavku
Jakmile je odsouhlaseno, nastane merge do master (to může proběhnout lokálně) a následně na produkci nastane pull.
Tím pádem je nasazení změn na produkci (tzv. deploy) otázka několika minut.
Je třeba si odladit v gitignore to co se nebude gitovat.
Také je třeba odladit změny v DB - například já abych nemusel programovat rozdílové tabulky (což například dělají kolegové při změnách na vodafone eshopu), tak po pull provádím znovu instalaci na produkci.
Samozřejmostí jsou SSH klíče pro jednotlivé uživatele.
MiniJoomla! - www.minijoomla.cz - eshop s rozšířením Joomla/VM
Email Manager - aplikace na správu šablon emailů pro VirtueMart
Easy Feeder - aplikace na generování XML/CSV feedů a napojení na ERP pro VM
PragueClassicconcert - portál pro prodej vstupenek na systému Joomla
Poděkovali: Leoš
18. úno 2023 23:16 #147892
Odpověď od Cony

Moderátor
Za mně podobně jako Honza, jen pro přenos na server používám Akeeba Backup, je to výrazně rychlejší.
Jinak vývoj na localhostu je běžný i pro velké týmy, záleží hodně na typu projektu a na způsobu deploy.
Pokud budu hodně "extrémní" tak vše probíhá v rámci dockeru. Tzn. Vývojář si může stáhnout aktuální image pro databázi, souborový systém a webový server, vše si zprovozní u sebe na localhostu a pak jede přesně na stejném prostředí jako je produkční server. Změny pak nahraje na Git, odkud se automaticky mohou dostat znovu do obrazů pro vývoj. Deploy pak může proěhnout jen "záměnou" obrazů. Ale pro vývoj na Joomle to není úplně nejjednoduší nastavit, protože databáze a souborový systém jsou hodně provázané (instalací nové verze rozšíření dojde ke změnám souborů i databáze).
Jinak vývoj na localhostu je běžný i pro velké týmy, záleží hodně na typu projektu a na způsobu deploy.
Pokud budu hodně "extrémní" tak vše probíhá v rámci dockeru. Tzn. Vývojář si může stáhnout aktuální image pro databázi, souborový systém a webový server, vše si zprovozní u sebe na localhostu a pak jede přesně na stejném prostředí jako je produkční server. Změny pak nahraje na Git, odkud se automaticky mohou dostat znovu do obrazů pro vývoj. Deploy pak může proěhnout jen "záměnou" obrazů. Ale pro vývoj na Joomle to není úplně nejjednoduší nastavit, protože databáze a souborový systém jsou hodně provázané (instalací nové verze rozšíření dojde ke změnám souborů i databáze).
Poděkovali: Leoš
19. úno 2023 18:53 #147895
Odpověď od Leoš

Pokročilý uživatel
Ano, divadlo si hraji sám:-) takže si s localhostem vystačím, v týmu vyvíjím nárazově a to pak řešíme na test serveru.
Jak to čtu ty vaše odpovědi, tak jsem nabyl dojmu, že to nedělám zase tak špatně.
Co se týká Akeeba Backup - jak řešíte místo na hostingu - zálohy něco zaberou a co vytížení host serveru, je v pohodě? Jakou verzi používáte?
Zatím jsem zkoušel free verzi Easy Joomla Backup nebo klasicky FTP a DB.
Jak to čtu ty vaše odpovědi, tak jsem nabyl dojmu, že to nedělám zase tak špatně.
Co se týká Akeeba Backup - jak řešíte místo na hostingu - zálohy něco zaberou a co vytížení host serveru, je v pohodě? Jakou verzi používáte?
Zatím jsem zkoušel free verzi Easy Joomla Backup nebo klasicky FTP a DB.
19. úno 2023 21:57 #147897
Odpověď od Cony

Moderátor
Akeeba backup používám primárně pro přenost localhost - server, resp. naopak. Ono při přenosu přes FTP / SFTP / FTPS je rozdíl v čase přenosu tisíců malých souborů a jednoho velkého obrovský (pár sekund vs. pár, možná i desítek, minut).
Na serveru spoléhám primárně na zálohování od hostingu, Zálohy pomocí Akeeba Backup dělám obvykle jen např. při aktualizaci, a to bez složky images. Záloha pak má někde mezi 30-50MB, a udržuju jen tak jednu dvě poslední.
Na vše si vystačím s Akeeba Backup v základní free verzi, Akeeba backup PRO jsem nasazoval jen asi jednou, když poněkud paranoidní klient chtěl posílat denní zálohy na FTP.. Plánování záloh ani podobné další speciality nepoužívám, od toho mám zálohování na hostingu...
Na serveru spoléhám primárně na zálohování od hostingu, Zálohy pomocí Akeeba Backup dělám obvykle jen např. při aktualizaci, a to bez složky images. Záloha pak má někde mezi 30-50MB, a udržuju jen tak jednu dvě poslední.
Na vše si vystačím s Akeeba Backup v základní free verzi, Akeeba backup PRO jsem nasazoval jen asi jednou, když poněkud paranoidní klient chtěl posílat denní zálohy na FTP.. Plánování záloh ani podobné další speciality nepoužívám, od toho mám zálohování na hostingu...
Poděkovali: Leoš
24. úno 2023 15:34 #147916
Odpověď od Leoš

Pokročilý uživatel
Ahoj kluci,
díky za plodnou diskuzi zde i ve čtvrtek na online baru. Dalo mi to trošku jiný pohled a snad se mi podaří některé věci implementovat i u sebe.
Jinak se omlouvám za nečekané odpojení z online baru - vypli nám proud
)) takže pokud jsem o něco přišel, musíte mi to příště povyprávět
díky za plodnou diskuzi zde i ve čtvrtek na online baru. Dalo mi to trošku jiný pohled a snad se mi podaří některé věci implementovat i u sebe.
Jinak se omlouvám za nečekané odpojení z online baru - vypli nám proud

