版本格式:主版本号.次版本号.修订号
版本号递增规则如下:
- 主版本号:当你做了不兼容的API 修改。
- 次版本号:当你做了向下兼容的功能性新增。
- 修订号:当你做了向下兼容的问题修正。
先行版本号及版本编译信息可以加到“主版本号.次版本号.修订号”的后面,作为延伸。
- 使用语义化版本控制的软件“必须MUST”定义公共API。该API可以在代码中被定义或出现
于严谨的文件内。无论何种形式都应该力求精确且完整。 - 标准的版本号“必须MUST”采用XYZ的格式, 其中X、Y和Z为非负的整数,且“禁止MUST
NOT”在数字前方补零。X是主版本号、Y是次版本号、而Z为修订号。每个元素“必须
MUST”以数值来递增。例如:1.9.1 -> 1.10.0 -> 1.11.0。 - 标记版本号的软件发行后,“禁止MUST NOT”改变该版本软件的内容。任何修改都“必须
MUST”以新版本发行。 - 主版本号为零(0.yz)的软件处于开发初始阶段,一切都可能随时被改变。这样的公共
API 不应该被视为稳定版。 - 1.0.0 的版本号用于界定公共API 的形成。这一版本之后所有的版本号更新都基于公共
API 及其修改内容。 - 修订号Z(xyZ | x > 0)“必须MUST”在只做了向下兼容的修正时才递增。这里的修正指的
是针对不正确结果而进行的内部修改。 - 次版本号Y(xYz | x > 0)“必须MUST”在有向下兼容的新功能出现时递增。在任何公共
API的功能被标记为弃用时也“必须MUST”递增。也“可以MAY”在内部程序有大量新功能或
改进被加入时递增,其中“可以MAY”包括修订级别的改变。每当次版本号递增时,修订
号“必须MUST”归零。 - 主版本号X(Xyz | X > 0)“必须MUST”在有任何不兼容的修改被加入公共API时递增。其
中“可以MAY”包括次版本号及修订级别的改变。每当主版本号递增时,次版本号和修订
号“必须MUST”归零。 - 先行版本号“可以MAY”被标注在修订版之后,先加上一个连接号再加上一连串以句点分隔
的标识符号来修饰。标识符号“必须MUST”由ASCII码的英数字和连接号[0-9A-Za-z-]组
成,且“禁止MUST NOT”留白。数字型的标识符号“禁止MUST NOT”在前方补零。先行版
的优先级低于相关联的标准版本。被标上先行版本号则表示这个版本并非稳定而且可能
无法达到兼容的需求。范例:1.0.0-alpha、1.0.0-alpha.1、 1.0.0-0.3.7、1.0.0-
x.7.z.92。 - 版本编译信息“可以MAY”被标注在修订版或先行版本号之后,先加上一个加号再加上一连
串以句点分隔的标识符号来修饰。标识符号“必须MUST”由ASCII的英数字和连接号[0-9AZa-z-]组成,且“禁止MUST
NOT”留白。当判断版本的优先层级时,版本编译信息“可
SHOULD”被忽略。因此当两个版本只有在版本编译信息有差别时,属于相同的优先层
级。范例:1.0.0-alpha+001、1.0.0+20130313144700、 1.0.0-beta+exp.sha.5114f85。 - 版本的优先层级指的是不同版本在排序时如何比较。判断优先层级时,“必须MUST”把版
本依序拆分为主版本号、次版本号、修订号及先行版本号后进行比较(版本编译信息不
在这份比较的列表中)。由左到右依序比较每个标识符号,第一个差异值用来决定优先
层级:主版本号、次版本号及修订号以数值比较,例如1.0.0 < 2.0.0 < 2.1.0 < 2.1.1。当
主版本号、次版本号及修订号都相同时,改以优先层级比较低的先行版本号决定。例
程序员的自我修养
语义化版本 12
如:1.0.0-alpha < 1.0.0。有相同主版本号、次版本号及修订号的两个先行版本号,其优
先层级“必须MUST”透过由左到右的每个被句点分隔的标识符号来比较,直到找到一个差
异值后决定:只有数字的标识符号以数值高低比较,有字母或连接号时则逐字以ASCII的
排序来比较。数字的标识符号比非数字的标识符号优先层级低。若开头的标识符号都相
同时,栏 位比较多的先行版本号优先层级比较高。范例: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。@
忘了附带链接了,有空加
网友评论