Semantic Versioning – wersjonowanie semantyczne: prosty sposób na oznaczanie wersji oprogramowania

Semantic Versioning – wersjonowanie semantyczne prosty sposób na oznaczanie wersji oprogramowania

Czy wiesz, jak oznaczać wersje swojego oprogramowania? Z pewnością słyszałeś o wersjonowaniu semantycznym, ale czy naprawdę wiesz, co oznacza i dlaczego jest tak ważne?

W tym artykule omówimy, czym jest wersjonowanie semantyczne (ang. semantic versioning), dlaczego jest tak przydatne i jak możesz je wykorzystać w swoim oprogramowaniu. Po jego przeczytaniu z pewnością zaczniesz oznaczać wersje swojego oprogramowania w ten sposób! 🙂

Semanting Versioning (pl. Wersjonowanie semantyczne)

Wersjonowanie semantyczne jest powszechnym sposobem zarządzania wersjami oprogramowania i oznacza oznaczanie wersji za pomocą numerów w postaci MAJOR.MINOR.PATCH. np. 11.2.34. Każda z tych liczb odpowiada za coś innego:

  • MAJOR (numer główny):
    • Zwiększany, gdy wydajemy nową wersję oprogramowania zawierającą duże zmiany, które mogą być niekompatybilne z poprzednimi wersjami.
    • Wspólne oznaczenie wszystkich wersji programu bazujących na tych samych założeniach, mechanizmach itd.
    • Zmienia się bardzo rzadko, najczęściej w wyniku zmiany koncepcji, założeń, API, podejścia itp.
    • Czasami wiąże się z porzuceniem poprzednio rozwijanego programu i pisaniem kodu na nowo.
  • MINOR (numer dodatkowy):
    • Gdy wydajemy nową wersję oprogramowania, która zawiera nowe funkcje, ale nie zmienia istniejących funkcji w sposób niekompatybilny z poprzednimi wersjami.
    • Oznacza się kolejne etapy rozwoju programu w ramach tej samej koncepcji.
    • Zmienia się razem z zaimplementowaniem nowej funkcji, zmianą jakiejś istniejącej itp.
    • Kompatybilne wstecz dodatki/zmiany w API zwiększają wersję minor.
  • PATCH:
    • Gdy wydajemy nową wersję oprogramowania, która zawiera drobne poprawki i ulepszenia, takie jak poprawki błędów i inne małe zmiany, które nie wpływają na istniejące funkcje w sposób niekompatybilny z poprzednimi wersjami.
    • Tutaj zachodzą zmiany wynikające z poprawek błędów, integracji łatek, wkładania kolejnych fragmentów kodu do repozytorium projektu.
    • Naprawy błędów nieingerujących w API zwiększają wersję patch.

Przykładowo, jeśli aktualna wersja oprogramowania to 1.0.0, a wydajemy nową wersję, która dodaje nowe funkcje, ale nie zmienia istniejących funkcji w sposób niekompatybilny z poprzednimi wersjami, nowa wersja będzie oznaczona jako 1.1.0 (ponieważ dodaliśmy nowe funkcje, ale nie zmieniliśmy istniejących w sposób niekompatybilny).

Jeśli wydajemy nową wersję, która zawiera drobne poprawki i ulepszenia, ale nie zmienia istniejących funkcji w sposób niekompatybilny z poprzednimi wersjami, nowa wersja będzie oznaczona jako 1.1.1 (ponieważ dodaliśmy poprawki i ulepszenia, ale nie zmieniliśmy istniejących funkcji w sposób niekompatybilny).

Gdy natomiast chcemy całkowicie zmienić koncepcję naszej pracy – warto rozważyć wersję 2.0.0.

Wersjonowanie semantyczne

Takie podejście do wersjonowania jest przydatne, ponieważ pozwala programistom i użytkownikom oprogramowania łatwo zrozumieć, co zmienia się w nowych wersji.

Pamiętaj, że wersjonowanie semantyczne to tylko jedno z wielu podejść do zarządzania wersjami oprogramowania. Istnieją inne podejścia, takie jak pojedyncza liczba do oznaczenia wersji, data wydania czy hash commita z gita – ale to właśnie wersjonowanie semantyczne jest często używane i uważane za dobry sposób na oznaczanie wersji oprogramowania.

Wersjonowanie semantyczne – zalety

Wersjonowanie semantyczne ma wiele zalet, wśród których najważniejsze to:

  • Łatwość rozumienia: wersjonowanie semantyczne pozwala łatwo zrozumieć, co zmienia się w nowych wersjach oprogramowania, ponieważ każda liczba oznacza coś innego.
  • Łatwość porównywania: umożliwia łatwe porównywanie wersji oprogramowania, ponieważ liczby są posortowane i oznaczone w sposób jednoznaczny.
  • Kompatybilność: pozwala zachować kompatybilność z poprzednimi wersjami oprogramowania, ponieważ oznaczenia wersji wskazują, czy nowa wersja zawiera zmiany niekompatybilne z poprzednimi wersjami.
  • Skalowalność: wersjonowanie semantyczne jest skalowalne i pozwala na dodawanie kolejnych liczb do oznaczenia wersji, co pozwala na oznaczanie coraz bardziej szczegółowych wersji oprogramowania.

Ogólnie rzecz biorąc, wersjonowanie semantyczne jest przydatnym narzędziem, które pozwala programistom i użytkownikom oprogramowania łatwo zrozumieć, co zmienia się w nowych wersjach oprogramowania i utrzymywać kompatybilność z poprzednimi wersjami.

Semantic Versioning (pl. Wersjonowanie semantyczne) – Podsumowanie

Podsumowując – wersjonowanie semantyczne jest powszechnym sposobem zarządzania wersjami oprogramowania, który pozwala oznaczać wersje za pomocą liczb w postaci MAJOR.MINOR.PATCH. Każda z tych liczb oznacza coś innego, co pozwala łatwo zrozumieć, co zmienia się w nowych wersjach oprogramowania.

Wersjonowanie semantyczne jest przydatne, ponieważ pozwala zachować kompatybilność z poprzednimi wersjami oprogramowania i łatwo porównywać wersje oprogramowania.


20+ BONUSOWYCH materiałów z programowania

e-book – „8 rzeczy, które musisz wiedzieć, żeby dostać pracę jako programista”,
e-book – „Java Cheat Sheet”,
checklista – „Pytania rekrutacyjne”
i wiele, wiele wiecej!

Jak zostać programistą

No comments
Share:

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *