軟件版本號(hào)為什么那么奇怪?
軟件版本號(hào)意味著什么?
語義版本管理(SemVer)是一種軟件版本管理方案,旨在傳達(dá)版本中基本變更的含義。
SemVer 使用由三部分組成的版本號(hào): major.minor.patch.
- 主版本:當(dāng)出現(xiàn)不兼容的 API 變動(dòng)時(shí),版本號(hào)會(huì)遞增。
- 小版本:在以向后兼容的方式添加功能時(shí)遞增。
- PATCH 版本:在進(jìn)行向后兼容的錯(cuò)誤修復(fù)時(shí)遞增。
我們來看一個(gè)工作流程示例。
圖片
01 初始開發(fā)階段
從版本 0.1.0 開始。
發(fā)布一些增量更改和錯(cuò)誤修復(fù):0.1.1, 0.2.0, 0.2.1, 0.3.0.
02 第一個(gè)穩(wěn)定版本
發(fā)布穩(wěn)定版本:1.0.0.
03 后續(xù)變更
- 補(bǔ)丁發(fā)布
需要對(duì) 1.0.0 進(jìn)行錯(cuò)誤修復(fù),更新至 1.0.1。
更多錯(cuò)誤修復(fù):1.0.2, 1.0.3.
- 次要版本
1.0.3 中添加了一個(gè)向后兼容的新功能,更新至 1.1.0。
新增另一項(xiàng)功能:1.2.0。
新小版本中的錯(cuò)誤修復(fù):1.2.1, 1.2.2.
- 重大版本
1.2.2 中引入了不向后兼容的重大變更,更新至 2.0.0。
以后的小版本和補(bǔ)丁更新遵循相同模式。
04 特殊版本和預(yù)發(fā)布版本
- 預(yù)發(fā)布版本
用連字符和一系列以點(diǎn)分隔的標(biāo)識(shí)符表示。
例如 alpha 版、beta 版和候選發(fā)布版:1.0.0-alpha、1.0.0-beta、1.0.0-rc.1。
- 構(gòu)建元數(shù)據(jù)
用加號(hào)和一系列以點(diǎn)分隔的標(biāo)識(shí)符表示。
示例:1.0.0+20130313144700。
語義版本管理提供了一種清晰、結(jié)構(gòu)化的軟件版本管理方法,讓開發(fā)人員更容易了解變更的影響并管理依賴關(guān)系。
通過遵循 SemVer 規(guī)則,開發(fā)人員可以確保其軟件以可預(yù)測的方式穩(wěn)定發(fā)展。