Nestrácajte čas s upgradom

Naspäť

V roku 2019 vyšla nová verzia Nette 3.0 a tak sme sa vydali na cestu upgradom.

Najprv bolo potrebné upgradnuť všetky balíčky, ktoré používame. V našich privátnych balíčkoch sa väčšinou jednalo o drobné zmeny v composeri, pridanie typehintov, prípadne premenovanie pár metód, či tried. Najväčším problémom bolo množstvo týchto balíčkov (cca 80 a stale pribúdajú).

Medzitým sa upgrade robil aj vo verejných repozitároch, z ktorých používame hlavne tie z organizácii kdyby a contributte. Najmä na kdyby balíčky sme čakali pomerne dlho.

Následne sme mohli začať s upgradom jednotlivých aplikácií.

Ako prvá prišla na rad aplikácia Contento TV Catalogue. Prvým krokom bolo nastavenie PHPStan analýzy aspoň na level 5 (s pár desiatkami chýb v leveli 7). Následne sme robili samotný upgrade, ktorý trval niekoľko dní a urobili sme pri tom viac než 7 tisíc zmien.

Začali sme tušiť, že takýmto spôsobom budeme naše aplikácie upgradovat veľmi dlho. Okrem toho pri upgrade väčšieho množstva podobných aplikacií ide o opakujúci sa proces, ktorý je pri manuálnej činnosti nudný a navyše náchylný na chyby.

Našťastie už existuje nástroj, ktorý upgrade dokáže výrazne zrýchliť. Je ním Rector od Tomáša Votrubu. Samozrejme ako každý nástroj, aj tento sme si museli dôkladne naštudovať a zoznámiť sa s ním ako funguje, aké sú jeho obmedzenia a podobne. V priebehu zoznamovania sa sme vytvorili niekoľko issues, pull requestov, či vlastných Rector setov.

Dostali sme sa do bodu, kedy sme boli schopní upgradnuť dve aplikácie denne. Avšak kvôli veľkému projektu (Voyo v troch krajinách) sme museli upgrade pozastaviť na počte 13 upgradnutých aplikacií.

Medzičasom už vyšla aj verzia Nette 3.1, takže môžeme celý kolotoč roztočiť odznova, ale dnes už vieme, čo nás bude čakať :)

PS: keďže sme chceli uľahčiť prácu aj ďalším programátorom a tímom, spolupodieľali sme sa na vytvorení Rector upgrade setu pre Nette 3.1.

PS2: ak aj ty rád/rada veci automatizuješ, pridaj sa k nám do nášho tímu.

Komentáre

Kontaktujte nás

Neviete správne uchopiť online prezentáciu Vašej spoločnosti? Potrebujete konzultáciu alebo audit doterajších aktivít?