本文鏈接:https://blog.csdn.net/u012107143/article/details/78731272
0. 前言
版本號(hào)的命名和更新問(wèn)題,是開(kāi)發(fā)者的責(zé)任感和前瞻性的問(wèn)題。
1. 項(xiàng)目立項(xiàng)時(shí)
版本格式:0.0.0
2. 開(kāi)發(fā)階段時(shí)
此時(shí)系統(tǒng)尚不穩(wěn)定,隨時(shí)可能增減或者修正API。
版本格式:0.次版本號(hào).修訂號(hào),版本號(hào)遞增規(guī)則如下:
主版本號(hào):0表示正在開(kāi)發(fā)階段;
次版本號(hào):增加新的功能時(shí)增加;
修訂號(hào):只要有改動(dòng)就增加。
3. 開(kāi)發(fā)完成后,發(fā)布API,或進(jìn)入二方庫(kù)時(shí)
此時(shí)系統(tǒng)已經(jīng)基本穩(wěn)定,可以對(duì)外公布使用,意味著API不再會(huì)被隨意修改。
版本格式:1.0.0
4. 后續(xù)的維護(hù)升級(jí)時(shí)
沒(méi)有特殊需求不會(huì)修改API,尤其是對(duì)API進(jìn)行不兼容的升級(jí),或棄用時(shí)要特別謹(jǐn)慎。如果需要棄用API,要提前在一個(gè)或幾個(gè)版本中加入棄用標(biāo)示或注解,并在文檔中,建議用戶(hù)更換為其他可替換的API,然后在下個(gè)主版本號(hào)升級(jí)時(shí),再真正丟掉棄用的API。
版本格式:主版本號(hào).次版本號(hào).修訂號(hào),版本號(hào)遞增規(guī)則如下:
主版本號(hào):全盤(pán)重構(gòu)時(shí)增加;重大功能或方向改變時(shí)增加;大范圍不兼容之前的接口時(shí)增加;
次版本號(hào):增加新的業(yè)務(wù)功能時(shí)增加;
修訂號(hào):增加新的接口時(shí)增加;在接口不變的情況下,增加接口的非必填屬性時(shí)增加;增強(qiáng)和擴(kuò)展接口功能時(shí)增加。
新增接口:如果該新增的接口只是對(duì)現(xiàn)有的業(yè)務(wù)線(xiàn)進(jìn)行擴(kuò)展則增加修訂號(hào);如果是為了增加新的業(yè)務(wù)線(xiàn)則增加次版本號(hào)。
5. 先行版本號(hào)和開(kāi)發(fā)版本號(hào)
先行版本號(hào)及版本編譯信息可以加到“主版本號(hào).次版本號(hào).修訂號(hào)”的后面,作為延伸。
先行版本號(hào)(Pre-release):意味該版本不穩(wěn)定,可能存在兼容性問(wèn)題。 其格式為:X.Y.Z.[a-c][正整數(shù)],如 1.0.0.a1,1.0.0.b99,1.0.0.c1000。
開(kāi)發(fā)版本號(hào):常用于 CI-CD(持續(xù)集成和持續(xù)交付)。 格式為 X.Y.Z-dev[正整數(shù)],如 1.0.1-dev4。
版本號(hào)的排序規(guī)則為依次比較主版本號(hào)、次版本號(hào)和修訂號(hào)的數(shù)值,如 1.0.0 < 1.0.1 < 1.1.1 < 2.0.0;對(duì)于先行版本號(hào)和開(kāi)發(fā)版本號(hào),有:1.0.0.a100 < 1.0.0,2.1.0-dev3 < 2.1.0;當(dāng)存在字母時(shí),以 ASCII 的排序來(lái)比較,如 1.0.0.a1 < 1.0.0.b1。
特別注意:
1. 版本一經(jīng)發(fā)布,不得修改其內(nèi)容,任何修改必須在新版本發(fā)布!
2. 在接口還沒(méi)有確定下來(lái)的時(shí)候,應(yīng)該先使用開(kāi)發(fā)版本號(hào)。
3. 業(yè)務(wù)功能 > 功能 > 接口
推薦閱讀:
版本號(hào)命名指南
版本號(hào)命名規(guī)則-語(yǔ)義化版本 2.0.0 | Semantic Versioning