A modern informatikai rendszerekben – különösen mikroszolgáltatásos architektúrák, API-k és könyvtárak esetén – kiemelten fontos, hogy a különböző komponensek egymással kompatibilisek maradjanak. A szemantikus verziókezelés (Semantic Versioning, röviden SemVer) egy olyan szabványos megközelítés, amely a verziószámokon keresztül információt hordoz a változások természetéről.
A SemVer célja:
A szemantikus verzió formátuma:
MAJOR.MINOR.PATCH
ahol:
| Elem | Jelentés | Mikor növeljük? |
|---|---|---|
| MAJOR | főverzió | inkompatibilis változás esetén |
| MINOR | alverzió | új, kompatibilis funkció esetén |
| PATCH | javítás | hibajavítás esetén |
A verziószám minden eleme nemnegatív egész szám, és növekvő sorrendben változik.
A SemVer egyik legfontosabb gondolata, hogy a verziószám kommunikációs eszköz a fejlesztők között.
Példa:
1.2.3 → stabil API
1.2.4 → ugyanaz az API, csak hibajavítás
1.3.0 → új funkciók, de régi kód továbbra is működik
2.0.0 → fő verzió váltás → régi kód eltörhet
A verzió növelése nem véletlenszerű, hanem szabályalapú döntés.
A MAJOR verzió növelése azt jelenti, hogy a rendszerben olyan változás történt, amely nem kompatibilis visszafelé.
Példák:
Ez a legkritikusabb változás, mert:
A MINOR verzió növelése új funkciók bevezetését jelenti, amelyek nem törik el a meglévő működést.
Példák:
Fontos:
A PATCH verzió növelése kizárólag hibajavításokra szolgál.
Példák:
Ez a legbiztonságosabb frissítés típus.
Ez az a pont, ahol:
1.0.0-alpha 1.0.0-beta.1 1.0.0-rc.1
Jelentés:
1.0.0+build.123
Jellemzők:
A verziók sorrendje a következő logika szerint történik:
Fontos:
A szemantikus verziókezelés különösen fontos az alábbi esetekben:
Előnyök:
1.2.3 → bugfix → 1.2.4 1.2.3 → új feature → 1.3.0 1.2.3 → breaking change → 2.0.0
A szemantikus verziókezelés egy egyszerű, de rendkívül hatékony módszer arra, hogy a szoftverek fejlődését strukturáltan és érthetően kövessük, miközben minimalizáljuk az integrációs kockázatokat és növeljük a rendszerek megbízhatóságát.