版本格式

版本格式:主版本号.次版本号.修订号

版本号递增规则如下:

  • 主版本号:当你做了不兼容的API 修改。
  • 次版本号:当你做了向下兼容的功能性新增。
  • 修订号:当你做了向下兼容的问题修正。

先行版本号及版本编译信息可以加到“主版本号.次版本号.修订号”的后面,作为延伸。


  1. 使用语义化版本控制的软件“必须MUST”定义公共API。该API可以在代码中被定义或出现
    于严谨的文件内。无论何种形式都应该力求精确且完整。
  2. 标准的版本号“必须MUST”采用XYZ的格式, 其中X、Y和Z为非负的整数,且“禁止MUST
    NOT”在数字前方补零。X是主版本号、Y是次版本号、而Z为修订号。每个元素“必须
    MUST”以数值来递增。例如:1.9.1 -> 1.10.0 -> 1.11.0。
  3. 标记版本号的软件发行后,“禁止MUST NOT”改变该版本软件的内容。任何修改都“必须
    MUST”以新版本发行。
  4. 主版本号为零(0.yz)的软件处于开发初始阶段,一切都可能随时被改变。这样的公共
    API 不应该被视为稳定版。
  5. 1.0.0 的版本号用于界定公共API 的形成。这一版本之后所有的版本号更新都基于公共
    API 及其修改内容。
  6. 修订号Z(xyZ | x > 0)“必须MUST”在只做了向下兼容的修正时才递增。这里的修正指的
    是针对不正确结果而进行的内部修改。
  7. 次版本号Y(xYz | x > 0)“必须MUST”在有向下兼容的新功能出现时递增。在任何公共
    API的功能被标记为弃用时也“必须MUST”递增。也“可以MAY”在内部程序有大量新功能或
    改进被加入时递增,其中“可以MAY”包括修订级别的改变。每当次版本号递增时,修订
    号“必须MUST”归零。
  8. 主版本号X(Xyz | X > 0)“必须MUST”在有任何不兼容的修改被加入公共API时递增。其
    中“可以MAY”包括次版本号及修订级别的改变。每当主版本号递增时,次版本号和修订
    号“必须MUST”归零。
  9. 先行版本号“可以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。
  10. 版本编译信息“可以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。
  11. 版本的优先层级指的是不同版本在排序时如何比较。判断优先层级时,“必须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。@

忘了附带链接了,有空加

你可能感兴趣的:(版本格式)