软件版本号规范

Semantic Versioning

0、使用 语义版本号 的软件必须声明 公共 API;

1、正常的版本号 X.Y.Z,其中 X、Y、Z 表示非负整数;

2、X is the major version, Y is the minor version, and Z is the patch version

3、当major version为0 时(0.x.y),表示任何东西都会改变,公共 API 不能认为是稳定的。

4、版本 1.0.0 开始定义公共 API,之后,新版本中的改动独立于公共 API

5、当修改了向后兼容的 bug 时,Patch version Z (x.y.Z | x > 0) 必须 + 1;

6、当新的向后兼容特性引进到公共 API 时,Minor version Y (x.Y.z | x > 0) 必须 +1;当有 公共API 标记为 deprecated 时,也需要 + 1;如果有大量的 private code 修改时,也可以 + 1;当 minor version + 1 时,patch version 必须重置为 0;

7、当有向后不兼容的引入到公共 API 时,Major version X (X.y.z | X > 0) 必须 + 1,然后 minor versionpatch version 必须重置为 0;

8、pre-release version Examples: 1.0.0-alpha, 1.0.0-alpha.1, 1.0.0-0.3.7, 1.0.0-x.7.z.92. A pre-release version indicates that the version is unstable and might not satisfy the intended compatibility requirements as denoted by its associated normal version.

9、Build metadata version Examples: 1.0.0-alpha+001, 1.0.0+20130313144700, 1.0.0-beta+exp.sha.5114f85. **Build metadata**SHOULD be ignored when determining version precedence.

10、优先级比较:

  • Major, minor, and patch versions are always compared numerically. Example: 1.0.0 < 2.0.0 < 2.1.0 < 2.1.1.
  • When major, minor, and patch are equal, a pre-release version has lower precedence than a normal version. Example: 1.0.0-alpha < 1.0.0.
  • 两个有相同 major、minor 和 patch 版本号的 pre-release 版本必须通过从左到右地比较每一个点分标识符直到出现不同字符来比较优先级,比较规则如下:(1)数字则根据递增原则,越大的,则优先级越高;(2)有字母的,则根据 ASCII 码顺序;(3)非数字标志符 优先级高于数字标志符;(4)有更多 pre-release field 的集合,优先级更高。Example: 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.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值