Přihlásit se

Joomla 5.0.1 a 4.4.1 bezpečnostní vydání (29 lis 2023)

Joomla 5.0.1 a 4.4.1 je nyní k dispozici. Jedná se o bezpečnostní vydání pro Joomla 4.x. a 5.x.

Workflow vývoje Joomla webů a verzování GIT

13. led 2020 13:10 #141493
Odpověď od Cony
Moderátor
Rudo, jak řešíte instalaci rozšíření / aktualizaci Joomly apod.? Když např. doinstaluji komponentu, tak se sice změní hromady kódu, ale hlavně jsou to změny v databázi. Takže pokud ten tester také nespustí instalaci, nebo jinak neaktualizuje databázi, tak je v git sice hromada nových souborů, ale v podstatě k ničemu, protože se v Joomle neprojeví...

Řešil jsem kdysi staging na jedné Joomle, představa byla taková, že aktualizace a změny se provedou na dev site, a pak jen záměnou docker kontejnerů se nasadí na live site, ale vzhledem k složitosti instalací rozšíření jsme to nakonec opustili, aktualizační skript by toho prostě musel obsahovat strašně moc, nehledě k tomu, že by musel obsahovat SQL např. pro přidání položek menu apod.

Chápu použití git pro jednotlivá rozšíření, šablony apod. verzovat celou Joomlu mi přijde docela overkill...

13. led 2020 13:41 #141494
Odpověď od Rudolf
Joomla Expert
Cony,

Rudo, jak řešíte instalaci rozšíření / aktualizaci Joomly apod.?


Řešíme jako samostatnou branch aktualizace. Ta jede průběžně a do ní se vkládají instalace. Průběžně se také merguje z master.

Před spuštěním produkce stačí jen mergovat do master a devel, následně se překlopí celá DB.
Po spuštění produkce se provádí manuální instalace nejprve v branch aktualizace na vývojovém webu (FTP == propíše se i do DB) a následně po zmergování do devel a master, se provede:

- pull master na ftp produkce
- manuální instalace stejných aktualizací

Výsledkem jsou na ftp stejné soubory jako v master, které nevytvoří nutnost commitu.
Co je dynamického se negituje (např. některé soubory akeeba)

Tohle je důležité, protože při aktualizaci je provést také vyřešení konfliktů == my upravujeme Virtuemart asi na 50 místech v core, joomla na 2-3 místech (podle typu webu), o ostatních aplikacích nemluvím.

Ze začátku jsem si nebyl jistý jestli to bude fungovat a požadoval jsem od programátorů vymyslet přírůstky v DB a gitovat i tyto změny, ale protože celý systém jsem musel vymyslet sám a otestovat a tu mysql opravdu neumím a kluci na hostingu nebyli za 7 let schopni tento systém vymyslet, jedeme tímto způsobem.

Rád bych měl ale lepší systém, jako používají kolegové při vývoji eshopu Vodafone. Používají konfigurační soubory (YAML), takže jsou schopni z PHPStormu přímo spouštět synchronizace a vytvářet branch v gitlabu včetně kontroly kvality kódu (joomla, virtuemart, less soubory).

Bohužel v prostředí programátorů joomla v CZ je tohle jen moje zbožné přání a žádný z programátorů, kteří pro mě pracovali, tohle neumí. Většinu jsem musel učit já jako neprogramátor :)

Co se týká DOCKER for Joomla, na ten se chystáme tento rok (moc ho ještě neumíme :))). Chceme ho nasadit pro naše klienty, zatím využíváme jen oddělené vhosty z důvodu bezpečnosti
Stage děláme jako samostatnou branch, která jede na dalším hostingu.
Docker se bude tedy teprve vyvíjet (snad).

Také chceme naprogramovat nový Elastic Seach pro Virtuemart a Joomla (kdysi jsme použili existující řešení a nasadili na VirtueMart a použili Amazon DB. Účet byl tak mastný, že po 3 měsících jsme ho vypnuli) a nové filtrování pro VirtueMart. Aspoň jsem to v prosinci zadával programátorovi, že tohle bude hlavní práce na tento rok.

Aktuálně jsme na filtrování pro kolo-park.cz (přeprogramované CF Filtering) strávili 80 programových hodin (bez testování a stylování) == 6 měsíců práce junior programátora Joomla a senior programátora Virtuemart.

MiniJoomla! - www.minijoomla.org - 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 14:01 #141495
Odpověď od Rudolf
Joomla Expert
No a ještě máme na jednoduchých webech nasazenou automatiku aktualizací.

Cože je super, jen mi přijde email:
- aktualizován JCE
- aktualizováno RSForm
- aktualizováno RSFirewall

O nic se nestarám, nic neinstaluji, nic nestahuji jen na konci roku zákazníkovi vyúčtuji roční aktualizace a licence.

MiniJoomla! - www.minijoomla.org - 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 16:06 #141496
Odpověď od Cony
Moderátor
Aha, takže jestli to chápu, tak je to opravdu jen pro vývoj, protože se nepočítá s tím, že se mezitím změní DB na produkčním webu.

Aktualizace pomocí nějakých konfiguráků by byla krásná, ale když jsem to zkoumal, narážel jsem právě na
1/ instalaci 3rd party rozšíření - instálátory nejsou jednotné, v podstatě bych musel vždy rozpitvat instalátor a udělat z něj nějaký doplňkový skript pro upgrade.
2/ změny v administraci DEV (např. přidání nové položky v menu) - pokud se nemá překlápět celá DB, ale jen rozdíly, musel by se opět vymyslet nějaký rozdílový skript, který by změny reflektoval.

S Dockerem jsem si chvíli hrál, ale zatím ho zavrhl, protože neumí běžet současně s VMWare, který dost nutně potřebuju.

13. led 2020 16:14 #141497
Odpověď od Rudolf
Joomla Expert

protože se nepočítá s tím, že se mezitím změní DB na produkčním webu.


Počítá :)

Při určitém stavu nekonzistentnosti se zmerguje master do develu (mimochodem to by se mělo dělat pravidelně po nasazení várky úprav == úkolů == branches) se také MANUALNE zkopíruje DB z master na devel, se všema náležitostma (rozdílné configy, co se ukládají do DB, v našem případě OPC)

A jede se dále....

Oddělení DB a Gitu má svou jednu výhodu - úpravy můžete gitovat i při nekonzistentosti DB :)

MiniJoomla! - www.minijoomla.org - 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 16:22 - 13. led 2020 16:23 #141498
Odpověď od H13
Admin
Jinak ještě všeobecně k těmo automatickým procesům. Jak to popisuješ, tak to vypadá skvěle, bohužel v praxi to někdy dře, protože ne všichni jsou ochotni pracovat tímto způsobem. Je to také například důvod, proč ještě není hotová Joomla! 4. Mnoho vývojářů právě díky tomuto přestalo přispívat kódem, v podstatě většina testerů přestala testovat, protože prostě nebyli schopni tyto procesy ovládnout (a to můžeme říct, že nainstalovat composer, node.js, npm apod. je triviální).

A není to jen o lidech, kteří tomu nerozumí nebo to nechtějí používat. Naposledy takto přestal přispívat jeden velmi významný přispěvatel, když mu ESlint nepovolil přispět kvůli nějakému nesmyslnému pravidlu v Javascript kódě.

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

Powered by Fórum