Paweł "Otlet" Otlewski

Wersjonowanie semantyczne – dlaczego z niego korzystam?

Blog 298
continous delivery semver deployment

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

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?

wersjonowanie semver

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 ono?

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.

Ale jak działa wersjonowanie semantyczne (ang. semver -Semantic Versioning)?

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/

Liczę, że wyjaśniłem te kilka aspektów, w razie pytań – zapraszam do komentowania, a także zapraszam do zapoznania się z innymi moimi wpisami!

Paweł Otlewski

Programista, Webmaster, DevOps, Administrator - różnie się mnie nazywa. Ja po prostu jestem pasjonatem informatyki, uwielbiam gry komputerowe oraz tematykę bezpieczeństwa IT.

Wszelkie prawa zastrzeżone | Paweł Otlewski
%d bloggers like this: