Co je sémantické verzování (SemVer)?
Délka:
4 min
Publikováno:
9. června 2026

Co je sémantické verzování (SemVer)?
Sémantické verzování, zkráceně SemVer, je pravidlo pro číslování vydání softwaru. Každá verze má tři čísla oddělená tečkami ve tvaru MAJOR.MINOR.PATCH, třeba 2.4.1. Každé z čísel má svůj význam:
- MAJOR zvýšíte, když uděláte změnu, která rozbije kompatibilitu. Existující kód, který software používá, tak může přestat fungovat.
- MINOR zvýšíte, když přidáte novou funkci a zachováte zpětnou kompatibilitu. Nic, co dosud fungovalo, se nerozbije.
- PATCH zvýšíte, když opravíte chybu a nezměníte žádné chování, na které se ostatní spoléhají.
Pravidla popisuje krátká veřejná specifikace na semver.org. Staví na nich správci balíčků jako npm, pip nebo Cargo.
Lidsky řečeno
Představte si číslo verze jako štítek na výrobku. Číslo PATCH je tichá oprava: stejný výrobek, jen jedna vada navíc opravená. Číslo MINOR je nová funkce přidaná do krabice: všechno, co jste používali dřív, funguje dál, jen toho umíte víc. Číslo MAJOR je přepracování: nový model už nemusí sednout do vašeho starého řešení, takže si před přechodem přečtěte návod.
Jak ho používat
Když vydáváte novou verzi, podle změn od posledního vydání se rozhodnete, které číslo zvýšit. Vždy zvyšujete jen jedno ze tří a čísla napravo od něj se vynulují.
- Zvyšte PATCH (
1.4.2na1.4.3) u oprav chyb a vnitřních úprav, kterých si nikdo nevšimne. Jen to, co bylo rozbité, teď funguje. - Zvyšte MINOR (
1.4.3na1.5.0), když přidáte funkci a zachováte zpětnou kompatibilitu. Starý kód běží dál, nový může sáhnout po novinkách. - Zvyšte MAJOR (
1.5.0na2.0.0), když změníte nebo odeberete něco, na čem stávající uživatelé staví. Cokoli, co je nutí přepsat kód, je nekompatibilní změna.
Hodí se znát ještě dvě věci. Verze 0.x.y značí ranou fázi vývoje, kdy se může změnit cokoli a běžné záruky zatím neplatí. Přípona jako 1.0.0-beta.1 označuje předběžné vydání, které ještě nepovažujeme za stabilní.
SemVer používáte i na druhé straně, když u závislosti určujete, které verze přijímáte. Rozsah ^1.4.0 znamená „jakákoli verze 1.x od 1.4.0 výš, ale ne 2.0.0“. Necháte si tak natáhnout bezpečné aktualizace a zablokujete ty, které by něco rozbily.
Na co si dát pozor
- Z každého vydání děláte MAJOR. Některé týmy zvyšují první číslo z marketingových důvodů. Tím ale ztrácíte signál: pod SemVerem
2.0.0slibuje, že se něco rozbilo, ne že je vydání zajímavé. - Schováte nekompatibilní změnu do MINOR nebo PATCH. To je nejškodlivější chyba. Uživatel, který si nechává automaticky stahovat patche, věří, že se nic nerozbije. Jediná přejmenovaná funkce v „patchi“ mu může shodit celý build.
- Zapomenete, že kompatibilitu určuje veřejné API. Změna rozbije kompatibilitu jen tehdy, když se dotkne toho, co jste ostatním slíbili k použití. Úprava soukromých vnitřností je PATCH, i když jste přepsali hodně kódu.
- Ignorujete pravidla pro
0.x. Dokud je projekt na0.x.y, může i zvýšení MINOR něco rozbít. Nečekejte stejnou jistotu jako po vydání1.0.0.
Související články
- Automatické vydání nové verze JavaScript SDK - Jak zautomatizovat verzování a vydávání pomocí release-please a GitHub Actions.
- SDK vs. API: pochopení rozdílu - Dva pojmy, které se často pletou, vysvětlené jednoduše.
- Co je to SDK a jak pomůže vašemu byznysu? - Proč se dobře verzované SDK vyplatí.
Chcete být o krok napřed?
Nenechte si utéct naše nejlepší postřehy. Žádný spam, jen praktické analýzy, pozvánky na exkluzivní eventy a shrnutí podcastů přímo do vaší schránky.