Skip to content

Latest commit

 

History

History
17 lines (15 loc) · 2.63 KB

语义化版本控制规范.md

File metadata and controls

17 lines (15 loc) · 2.63 KB

语义化版本控制规范

语义化版本控制规范比较多,我挑选一些比较重要的规范罗列如下:

  • 使用语义化版本控制的软件必须定义公共API。该API可以在代码中被定义或出现于严谨的文件内。无论何种形式都应该力求精确且完整。
  • 版本号必须采用X.Y.Z的格式,其中X、Y和Z为非负的整数,且禁止在数字前方补零。X是主版本号、Y是次版本号、Z为修订号。每个元素必须以数值来递增。例如:1.1.1 -> 1.2.0 -> 1.3.0。
  • 标记版本号的软件发行后,禁止改变该版本软件的内容,任何修改都必须以新版本发行。
  • 主版本号为零(0.y.z)的软件处于开发初始阶段,一切都可能随时被改变,这样的公共 API不应该被视为稳定版。
  • 1.0.0的版本号被界定为第一个稳定版本,之后的所有版本号更新都基于该版本进行修改。
  • 1.0.0 的版本号用于界定公共API的形成。这一版本之后所有的版本号更新都基于公共 API及其修改内容。
  • 修订号Z(x.y.Z | x > 0)必须在只做了向下兼容的修正时才递增,这里的修正其实就是Bug修复。
  • 次版本号Y(x.Y.z | x > 0)必须在有向下兼容的新功能出现时递增,在任何公共API的功能被标记为弃用时也必须递增,当有改进时也可以递增。其中可以包括修订级别的改变。每当次版本号递增时,修订号必须归零。
  • 主版本号X(X.y.z | X > 0)必须在有任何不兼容的修改被加入公共API时递增。其中可以包括次版本号及修订级别的改变。每当主版本号递增时,次版本号和修订号必须归零。
  • 先行版本号可以被标注在修订版之后,被标上先行版本号则表示这个版本并不稳定且可能无法满足预期的兼容性要求。例如:1.0.0-alpha、1.0.0-alpha.1、1.0.0-0.3.7、1.0.0-x.7.z.92。带先行版本号的格式为:X.Y.Z-先行版本号,先行版本号必须由 ASCII 字母数字和连接号 [0-9A-Za-z-] 组成,数字型的标识符禁止在前方补零。
  • 版本编译元数据可以被标注在修订版或先行版本号之后,先加上一个加号(+),再加上一连串以句点分隔的标识符来修饰。标识符必须由ASCII字母数字和连接号 [0-9A-Za-z-] 组成,且禁止留白。例如:1.0.0-alpha+001、1.0.0+20130313144700、1.0.0-beta+exp.sha.5114f85。
  • 不同版本在判断优先层级时,必须把版本依序拆分为主版本号、次版本号、修订号及先行版本号后逐次进行比较。

提示:关于语义化版本号,更详细的可以参考:https://semver.org/lang/zh-CN/