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! 🙂
Spis treści
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!