本文作者: jsweibo
本文链接: https://jsweibo.github.io/2019/04/12/%E8%AF%AD%E4%B9%89%E5%8C%96%E7%89%88%E6%9C%AC%E5%8E%9F%E5%88%99/
摘要
本文主要讲述了:
- 语法
- 优先级
正文
语法
版本号遵循<major-version>.<minor-version>.<patch-version>
的格式
- major-version、minor-version、patch-version 必须为非负的整数。
- 版本号的数字只能递增。
示例:
1.0.0
表示 major-version 是1
,minor-version 是0
,patch-version 是0
。
major-version
- major-version 为 0 的软件表示正处在不稳定的内部开发阶段
1.0.0
表示第一个正式的公共版本- 新增不向后兼容的功能时更新 major-version
- 每次当 major-version 递增时,minor-version 和 patch-version 必须归零
- major-version 禁止前缀 0。例如:
01.0.0
是不合法的
示例:
2.0.0
不向后兼容1.0.0
。
这表示此前使用1.0.0
版本软件的开发者,如果现在想将软件的版本升级到2.0.0
,则必须修改方法的调用方式。
minor-version
- 新增向后兼容的新功能时更新 minor-version
- 旧功能被标记为弃用时更新 minor-version
- 每次当 minor-version 递增时,patch-version 必须归零
- minor-version 禁止前缀 0。例如:
1.01.0
是不合法的
示例:
1.1.0
在1.0.0
的基础上增加了新特性,且向后兼容1.0.0
。
这表示此前使用1.0.0
版本软件的开发者,如果现在想将软件的版本升级到1.1.0
,无需修改任何逻辑。
patch-version
- 修复向后兼容的 bug 时更新 patch-version
- patch-version 禁止前缀 0。例如:
1.0.01
是不合法的
示例:
1.0.1
在1.0.0
的基础上修复了 bug,且向后兼容1.0.0
。
这表示此前使用1.0.0
版本软件的开发者,如果现在想将软件的版本升级到1.0.1
,无需修改任何逻辑。
pre-release-version
- pre-release-version 通常被认为是不稳定的,其优先级低于对应的标准版
- pre-release-version 跟在 patch-version 之后。先写
-
,后面的间隔用.
- 数字的 pre-release-version 禁止前缀 0。例如:
1.0.0-001
是不合法的
示例:
1.0.0-alpha
、1.0.0-0.9
。
build-metadata
- build-metadata 跟在 patch-version 或 pre-release-version 之后。先写
+
,后面的间隔用.
。
示例:
1.0.0+2019.03.27
、1.0.0-alpha+2019.03.27
。
优先级
major-version 大的优先级大
示例:
1 | 1.0.0 < 2.0.0 |
如果 major-version 相同,minor-version 大的版本优先级大
示例:
1 | 1.0.0 < 1.1.0 |
如果 major-version、minor-version 相同,patch-version 大的版本优先级大
示例:
1 | 1.0.0 < 1.0.1 |
如果 major-version、minor-version、patch-version 相同,没有 pre-release-version 的版本优先级大
示例:
1 | 1.0.0-alpha < 1.0.0 |
如果 major-version、minor-version、patch-version 都相同,比较 pre-release-version 时需要从左到右逐位比较
相同位为数字的时候,数值大的版本优先级大
示例:
1 | 1.0.0-1.0 < 1.0.0-1.1 |
相同位为字母或连字符的时候,ASCII 排序大的版本优先级大
示例:
1 | 1.0.0-a < 1.0.0-b |
字母的优先级比数字大
示例:
1 | 1.0.0-a.1 < 1.0.0-a.a |
pre-release-version 开头都相同时,长度长的版本优先级大
示例:
1 | 1.0.0-1 < 1.0.0-1.0 |
参考资料
本文作者: jsweibo
本文链接: https://jsweibo.github.io/2019/04/12/%E8%AF%AD%E4%B9%89%E5%8C%96%E7%89%88%E6%9C%AC%E5%8E%9F%E5%88%99/
本文对你有帮助?请支持我
- 本文链接: https://jsweibo.github.io/2019/04/12/%E8%AF%AD%E4%B9%89%E5%8C%96%E7%89%88%E6%9C%AC%E5%8E%9F%E5%88%99/
- 版权声明: 除非另有说明,否则本网站上的内容根据署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 进行许可。