Podrška web aplikacija za izvođenje na različitim verzijama platforme
doc. dr. sc. Vedran Miletić, vmiletic@inf.uniri.hr, vedran.miletic.net
Fakultet informatike i digitalnih tehnologija Sveučilišta u Rijeci, akademska 2021./2022. godina
Verzije platforme
Vaša aplikacija eksplicitno podržava samo:
- one verzije interpretera programskog jezika koje ste eksplicitno testirali,
- one verzije okvira i biblioteka koje ste eksplicitno testirali,
- one verzije sustava za upravljanje bazom podataka koje ste eksplicitno testirali,
- one verzije sustava za predmemoriju koje ste eksplicitno testirali,
- itd.
Kod Pythona se potrebne verzije modula navode u datoteci requirements.txt
(primjer korištenja).
Podrška za više verzija interpretera programskog jezika (1/2)
- Korisno ako isporučujete aplikaciju korisnicima u obliku izvornog koda koji onda oni sami postavljaju na svojoj infrastrukturi; primjerice:
- WordPress podržava PHP 5.6 (službeno nepodržan od 2018.) i noviji
- Phabricator podržava PHP 5.5 (službeno nepodržan od 2016.) i sve novije verzije uz iznimku PHP-a 7.0 (nedostaje asinkrono baratanje signalima)
- django CMS zahtijeva Django 1.11 ili noviji i Python 3.3 ili noviji
Podrška za više verzija interpretera programskog jezika (2/2)
- Potrebno je koristiti isključivo presjek značajki svih podržanih verzija interpretera; provjerite popis promjena u verzijama interpretera, upute za migraciju itd.
- Ne možete koristiti funkcionalnost koja postoji u starijoj verziji, ali je zastarjela pa je maknuta u novijoj verziji
- Ne možete koristiti funkcionalnost dodanu u novijoj verziji jer je nema u starijoj
- Dijelove koda moguće je isprobati u različitim verzijama interpretera na servisima kao što su 3v4l.org (PHP), Coliru (C++) i Godbolt (razni jezici)
- Ciljano napravljeni da budu neupotrebljivi za velike aplikacije
Podrška za više verzija okvira, biblioteka, sustava za upravljanje bazom podataka, sustava za predmemoriju i ostalih
- Postavljanje lokalne okoline za inicijalno isprobavanje koja sadrži željene verzije okvira, biblioteka, sustava za upravljanje bazom podataka, sustava za predmemoriju itd.
- Postavljanje iste okoline korištenjem Docker kontejnera ili sl. kako bi bila lako ponovljiva na različitim računalima.
- Uključivanje okoline u CI/CD za redovito testiranje i pokretanje programa u navedenoj okolini.
Primjeri CI/CD s više različitih okolina: Buildbot, Grav, Trac, Express i Sphinx.
Za usporedbu, primjeri CI/CD sa samo jednom okolinom: Discourse i Invidious.
Author: Vedran Miletić