Přihlásit se

Joomla 5.2.2 Security & Bugfix Release

Joomla 5.2.2 je nyní k dispozici. Jedná se o bezpečnostní vydání pro Joomla 5.x.

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

11. led 2020 20:25 #141483
Workflow vývoje Joomla webů a verzování GIT od Leoš
Pokročilý uživatel
Ahoj vespolek,
měl bych dotaz na místní vývojáře a stavitele webů:

Chtěl bych pojmout moderně vývoj svých webů postavených na Joomle tak abych měl kompletní vývoj pouze na localhostu s možností verzování v Gitu. Potom co web dodělám a odskouším, použiju ftp-deployment na zkušební hosting, kde si ověřím plnou funkčnost na hostingu a následně web nahodím na ostrý live hosting.

Napadá mě spousta otázek jak to dělat ale základní otázka je tato:

Verzujete na localhostu kompletní instalaci joomly nebo pouze její části? Když části, tak jaké? Jen šablony?

Moc díky za vaše názory, nápady a informace.

Leoš

11. led 2020 21:22 #141484
Odpověď od H13
Admin
Ahoj,

jde o to, jestli ti při vývoji nějak verzování pomůže? Předpokládám, že máš na mysli verzování změn při vývoji kompletního webu.

Dokážu si představit, že někteří lidi využijí verzování např. při modifikaci něčeho (komponent, šablony, ...), co vytvořil někdo jiný. Když si někdo dělá vlastní modifikace, např. v komponentě nebo šabloně, rád ví, jaké externí vývojař udělal v každém souboru změny, tak, aby se mohl věnovat jen oblastem, ve kterých má změny. Ale verzovat pro vlastní potřebu, jak často?

Nedokážu si představit, že bych pro někoho dělal web, on by měl upozornil, že např. něco nesedí v nějaké části designu, já bych upravil CSS a hned bych změny označil - verzoval. Pokud by někde nastal v budoucnosti konflikt, pomohlo by mi, že to vše mám odverzované a řešil bych konflikt pomocí nahlížení do jednotlivých "verzí" nebo bych ho prostě rovnou řešil na aktuální verzi, bez ohledu na historii?

Opravdu těžko říct. Když už verzovat, jakou hranici pro verzování vybrat (časovou, práce na jendotlivých oddílech, velikost provedených změn, ...) ???

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

11. led 2020 23:02 - 11. led 2020 23:28 #141485
Odpověď od Bong
Moderátor
V případě běžné stavby webu je to podle mého jen další práce pro práci.

Normálně se web postavený na Joomle skládá:

  • složky a soubory Joomly a nainstalovaných rozšíření
  • override souborů výstupů z Joomly a rozšíření (ty mají být správně ve složkách použité šablony)
  • soubory na které je odkazováno z obsahu (obrázky, videa, soubory ke stažení,...)
  • databáze obsahu webu Joomly (většina nastavení, články, uživatelé, moduly, položky menu, obsah rozšíření,...)

Složky a soubory uživatelsky neměníte, při upgrade (downgrade) stejně o změny přijdete.
Override souborů výstupů a celé šablony, soubory obsahu a databázi je dobré zálohovat. Zpravidla všechny najdete ve složce images, některá rozšíření mohou mít svoje speciální složky ukládání (třeba komponenty stahování, galerie, shopy,...). Vzhled a rozvržení, úpravy výstupu jsou ve složce použité šablony.

Pro zálohování a tedy i verzování celkové nebo určitých oblastí, ale bohatě postačuje použít třeba Akeeba Backup. Tam si v případně můžete nastavit různé typy zálohování podle potřeby. Navíc pak přesun stránek pomocí Akeeba Backup z local na web (web na local, z webu na web,...) je jednoduchý, rychlý a hlavně spolehlivý.

Joomla také obsahuje nástroje: Záznam činností uživatele a Verzování (důležité u článků). A to je podle mě to, co hlavně potřebujete. To lze zapnout jak pro práci v Joomla, tak i pro některá rozšíření, která verzování nebo záznam činností podporují.
Vrátit se do nějakého bodu, nebo do něj jen nahlédnout je rychlé, efektivní a nic podobného vám žádný externí nástroj neumožní.

I'm sorry, my responses are limited...you must ask the right questions.

11. led 2020 23:45 - 12. led 2020 00:00 #141486
Odpověď od Rudolf
Joomla Expert
Děkuji že jste položil tento dotaz.

Jak se zdá, je vidět, že stejně jako většina programátorů co pro mě kdy pracovala (a přesvědčovala že jejich systém je nejlepší, nejrychleší a vůbec), jsou i ostatní z joomla prostředí v české republice zvyklí pracovat jen na localhost (maximálně verzovat změny pomocí interního systému jednotlivého pracovníka v netbeans nebo phpstorm na lokální počítač každého pracovníka samostatně) a následně změny kopírovat na ftp.

My jsme to dělali od roku 2011 (a nadále v tom pokračujeme) úplně jinak.

- Celý web (původně i DB, nyní bez DP a bez fotek) verzujeme pomocí gitlabu (ještě předtím než byl, tak pomocí interního systému git).
- Každé issues (úkol v systému redmine nebo easyredmine nebo jira) má vlastní branch a do ní programátoři a kodéři umísťují změny.
- Následně vedoucí programátor nebo ten kdo otestuje a schválí funkcionalitu úprav a má práva provede merge a nasadí úpravy do vývojové branch (devel) a nakopíruje na vývojovou verzi webu na ftp.
- Následně projektový manager projde úpravy a otestuje s klientem a nechá schválit
- Následně jsou úpravy zmergovány do produkční verze webu (master) a nasazeny na produkční verzi hostingu (ftp).
- Všechny změny v kódu jsou navíc označeny ID issues v systému redmine, aby se daly dohledat - popis, zadání, průběh, korektury a porovnat s původním kódem
- Seznam změn se pak archivuje pro případný upgrade

Tohle se opakuje neustále dokud není celý web dokončený :)

V případě exponovaných webů a eshopů ještě existuje mezistupeň - stage - který je přesná kopie produkčního webu a slouží k odladění funkcioanlity, kdy je nutné překlápět změny za chodu (jak jsem psal, jde o oexponované a VIP projekty).

Takže máme ve výsledku v gitu 3 hlavní branch:
- devel
- stage
- master

a tři vytvořené domény pro jeden projekt.

Tímto systémem je:
- neustálá kontrola nad celým procesem změn všech pracovníků
- nejsme závislí na jednotlivých pracovnících (při odchodu z firmy, výpadku, ukončení spolupráce)
- zákazník je součástí procesu a může průběžně kontrolovat nasazení změn a schvalovat - je součástí vývojového týmu a porad
- případné kolize se dají vyhledat, systém také slouží k zjištění kde nastala chyba při vývoji nebo nasazení a kdo ji z pracovníků udělal nebo zda došlo k chybnému zadání ze strany zákazníka (tohle již může dělat jen support manager na helpdesku při případném požadavku od zákazníka a není třeba používat programátora)

Tento systém jsem bohužel nevymyslel, jen jsem dotáhl během 3 let k dokonalosti a použití pro Joomla/wordpress a práci v týmu externistů, protože na stejném systému pracují kolegové například na eshopu pro Vodafone.

Pro použití tohoto systému je potřeba
- několik přesně daných software (pro PC nebo mac) a nastavení
- přesně dané postupy a bezpečnostní přístupy
- lidi, kteří znají systém práce s gitem (pull, push, fetch, merge a řešení konfliktů) a mají vše odladěno i na localhostu
- nadefinovaný systém gitlab (uživatelé, přístupy..)
- přizpůsobené přístupy na hosting

Podobný systém používáme při vývoji aplikací a rozšíření, tam se ale systém liší v použití branch (devel, master, hotfix, features, J25. J3).

Volbu jakým systémem ve firmě pracovat nechávám na každém samostatně.

Kolegové od Vodafonu používají Jiru a Mercurial, kolegové z Nette používají Redmine a Mercurial, my na Joomla používáme EasyRedmine/Redmine/Jiru a Gitlab.

No a nyní přímo k dotazu:

- neverzujeme DB - ta se ukládá 3 měsíce do backupu
- neverzujeme složky images, cache, logs a další podle typu webu
- neverzujeme dynamické soubory
- verzujeme vše ostatní

Rudolf

P.S.
Myslím že podobným systémem se pracuje při vývoji Joomla jako takové, jen používají Git.

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

12. led 2020 00:14 - 12. led 2020 00:14 #141487
Odpověď od H13
Admin
Samozřejmě, že pokud se pracuje v týmu, je to nezbytnost.

Z prvního příspěvku to vypadá na to, že jde spíše a práci jednotlivce a jak píše Bong, při práci jednotlivce je dobré zvážit, zda to nebude "další práce pro práci". Samozřejmě se nebavíme o zálohování, to je prostě nutnost, nastavit si nějaký harmonogram zálohování a záleží na každém, zda to bude nějaký jednoduchý proces zálohy nebo komplexní a systematické verzování včetně detailního popisu změn.

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

12. led 2020 00:39 #141488
Odpověď od Rudolf
Joomla Expert
Myslím že základní dotaz je proč chcete verzovat úpravy na webu (verzovat jen pro verzování je nesmysl):

- co tím sledujete a co očekáváte že Vám to přinese

Podle odpovědi se dají nadefinovat metody jaké je možné použít a které ve výsledku odpovídají požadavku.

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

Powered by Fórum