語義化版本

語義化版本

目的

使人們在使用時(shí)不會(huì)陷入“依賴地獄”,也不會(huì)因?yàn)橐蕾囮P(guān)系的松散使得版本混亂。以此來約束版本的配置與增長

先說明API:應(yīng)用程序接口(英語:Application Programming Interface,簡稱:API),又稱為應(yīng)用編程接口,就是軟件系統(tǒng)不同組成部分銜接的約定。相當(dāng)于拉鏈,幫助拉鏈兩邊的布料連接到一起構(gòu)成一個(gè)完整。

向下兼容:例如,在絕地求生最新的更新中,在沒有更新新版本時(shí)舊版本仍能使用。(但是我覺得沒做API,因?yàn)樘幵谂f版本的玩家無法與新版本的玩家一起玩耍)

版本格式

1.X主版本號:做不兼容的API修改時(shí)(換拉鏈的時(shí)候)
2.Y次版本號:向下兼容的功能性新增。
3.Z修訂號:在向下兼容時(shí)修復(fù)bug。

規(guī)范

[RFC 2119 ](https://www.ietf.org/rfc/rfc2119.txt漢翻

1.用語義化版本控制的軟件時(shí)MUST在公共API。該API必須是已經(jīng)承認(rèn)的在信息庫中已有的。精確并完整的。
2.版本號MUST用XYZ格式,MUST NOT在數(shù)字前補(bǔ)零,元素(版本編號)MUST以數(shù)值遞增。
3.軟件發(fā)行后MUST NOT改變該版本內(nèi)容,若要改變MUST以新版本發(fā)布。
4.主版本號位零的為在開發(fā)階段,這種公共API不被視為穩(wěn)定的。
5.在1.0.0版本號以后所以的更新都基于公共API幾修改內(nèi)容。
6.Z MUST在做向下兼容的修正(不正常結(jié)果的內(nèi)部修改)時(shí)才遞增。
7.Y MUST在向下兼容的新功能出現(xiàn)是遞增,每次Y遞增時(shí),修訂號MUST歸零。
8.X MUST在不兼容的改變被加入公共API時(shí)遞增。每次X遞增時(shí),Y與Z MUST 歸零。
以下引用文章
9.先行版本號“可以MAY”被標(biāo)注在修訂版之后,先加上一個(gè)連接號再加上一連串以句點(diǎn)分隔的標(biāo)識符號來修飾。標(biāo)識符號“必須MUST”由ASCII碼的英數(shù)字和連接號[0-9A-Za-z-]組成,且“禁止MUST NOT”留白。數(shù)字型的標(biāo)識符號“禁止MUST NOT”在前方補(bǔ)零。先行版的優(yōu)先級低于相關(guān)聯(lián)的標(biāo)準(zhǔn)版本。被標(biāo)上先行版本號則表示這個(gè)版本并非穩(wěn)定而且可能無法達(dá)到兼容的需求。范例:1.0??.0-alpha、1.0.0-alpha.1、 1.0.0-0.3.7、1.0.0-x.7.z.92。
10.版本編譯信息“可以MAY”被標(biāo)注在修訂版或先行版本號之后,先加上一個(gè)加號再加上一連串以句點(diǎn)分隔的標(biāo)識符號來修飾。標(biāo)識符號“必須MUST”由ASCII的英數(shù)字和連接號[0-9A-Za-z-]組成,且“禁止MUST NOT”留白。當(dāng)判斷版本的優(yōu)先層級時(shí),版本編譯信息“可SHOULD”被忽略。因此當(dāng)兩個(gè)版本只有在版本編譯信息有差別時(shí),屬于相同的優(yōu)先層級。范例:1.0.0-alpha+001、1.0.0+20130313144700、 1.0.0-beta+exp.sha.5114f85。
11.版本的優(yōu)先層級指的是不同版本在排序時(shí)如何比較。判斷優(yōu)先層級時(shí),“必須MUST”把版本依序拆分為主版本號、次版本號、修訂號及先行版本號后進(jìn)行比較(版本編譯信息不在這份比較的列表中)。由左到右依序比較每個(gè)標(biāo)識符號,第一個(gè)差異值用來決定優(yōu)先層級:主版本號、次版本號及修訂號以數(shù)值比較,例如1.0.0 < 2.0.0 < 2.1.0 < 2.1.1。當(dāng)主版本號、次版本號及修訂號都相同時(shí),改以優(yōu)先層級比較低的先行版本號決定。例如:1.0.0-alpha < 1.0.0。有相同主版本號、次版本號及修訂號的兩個(gè)先行版本號,其優(yōu)先層級“必須MUST”透過由左到右的每個(gè)被句點(diǎn)分隔的標(biāo)識符號來比較,直到找到一個(gè)差異值后決定:只有數(shù)字的標(biāo)識符號以數(shù)值高低比較,有字母或連接號時(shí)則逐字以ASCII的排序來比較。數(shù)字的標(biāo)識符號比非數(shù)字的標(biāo)識符號優(yōu)先層級低。若開頭的標(biāo)識符號都相同時(shí),欄 ??位比較多的先行版本號優(yōu)先層級比較高。范例:1.0.0-alpha < 1.0.0-alpha.1 < 1.0.0-alpha.beta < 1.0.0-beta < 1.0.0-beta.2 < 1.0.0-beta.11 < 1.0.0- rc.1 < 1.0.0。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容