Wersjonowanie semantyczne, a nawet samo wersjonowanie to ważny aspekt. Przeglądając wersje wykorzystywanego oprogramowania, można dojść do wniosku, że nie ma w tym logiki. Jest to jednak oznaczenie dla wygody, że coś się zmienia. Sens w tym jest.
Wersjonowanie, najpierw teoria
Tworząc oprogramowanie warto sobie oznaczać wersję. Np.: udostępniając swoją aplikację trzem klientom – będziemy wiedzieć kto z jakiej wersji korzysta i czy można mu tą wersję zaktualizować. Dla użytkownika aplikacji wersja może właśnie przypomnieć o konieczności aktualizacji. Powoli znaleźć rozwiązanie na problem związany z konkretną wersją aplikacji. Można sprawdzić minimalną potrzebną wersję do osiągnięcia naszego celu.
Jest wiele sposobów wersjonowania lub jego braku (np.: Arch i jego rolling release).
Jak wersjonuje się popularne oprogramowanie?
Systemy z rodziny Ubuntu posiadają wersjonowanie co pół roku, np.: 18.04 oznacza wydanie 2018 roku w kwietniu.
Google Chrome, podobnie jak nowsze wersje Firefox posiadają wersjonowanie na bazie: MAJOR.MINOR.BUILD.PATCH. Przyznam się braku umiejętności zrozumienia. Główny powód wykorzystania tego wersjonowania – marketing. Nie ma korzyści dla użytkownika końcowego, ale ładnie wygląda.
Sam osobiście jednak preferuję wersjonowanie semantyczne, czyli MAJOR.MINOR.PATCH, np.: 1.2.3 (wersja 1 aplikacji, aktualizacja druga i 3 poprawka do wersji 1.2).
Wersjonowanie semantyczne – Czemu akurat takie?
Korzystam z tego wersjonowania głównie z powodu swojej przyjemności, ale również popularności tego rozwiązania. Przynosi sporo korzyści nie tylko dla mnie, ale również dla użytkowników, gdyż widząc same numerki można już być świadomym pewnych problemów przy aktualizacji.
Utrzymując różne wersje tej samej aplikacji można uzyskać błyskawicznie informacje, czy warto aktualizować, czy problem dotyczy tej samej wersji, czy może innej i w jakiej jest załatane.
Inne sposoby wersjonowania również na to pozwalają!
Pozwalają, ale szukając rozwiązania do problemu, często rozwiązanie udawało się odnaleźć dopiero szukając konkretnej wersji aplikacji korzystającej z semantycznego wersjonowania.
Szukając rozwiązanie dla aplikacji Chrome, Firefox, czy Thunderbird prawie nigdy nie potrafiłem odnaleźć dobrego rozwiązania. Przy pierwszych próbach, gdyż rozwiązanie było adekwatne do innej wersji, albo w ogóle nie była ujęta wersja oprogramowania, co tylko wprowadzało jeszcze większy zamęt.
Często miałem podobne sytuacje, a w znaczącym przypadku rozwiązanie mogło zostać w błyskawicznym tempie odnalezione, gdy aplikacja właśnie korzystała z semantycznego rozwiązania.
Wersjonowanie semantyczne (ang. semver -Semantic Versioning) – jak działa?
W skróconej teorii – X.Y.Z.
- X – oznacza wersję niekompatybilną ze wcześniejszymi, ale również całkiem nowe funkcje/przepisanie aplikacji.
- Y – zmiany w działaniu pewnych funkcjonalności/dodanie nowych, ale w większości przypadków kompatybilne ze starszymi wersjami
- Z – bugfix, poprawka, patch – musi być kompatybilne i zawiera głównie poprawki.
Pełna teoria jest dostępna pod adresem: https://semver.org/lang/pl/
Przykładowa zmiana wersji w oparciu o kernel Linux również opisałem: https://www.czarnaowca.it/2020/06/kernel-aktualizacja-centos-7/