项目管理中如何使用语义化版本号

Productivity Nov 19, 2019

语义化版本号

https://semver.org/
https://guides.rubygems.org/patterns/#semantic-versioning

所有举例均假设发布版本号为:1.8.2

版本的发布路线

测试中的版本号,按照实际的测试情况,每次发布的版本路线可能如下:

1.8.2-alpha
1.8.2-alpha.1
1.8.2-alpha.beta
1.8.2-beta.0
1.8.2-beta.1
1.8.2-beta.2
1.8.2-rc.1
1.8.2-rc.2
1.8.2

经历了三次 alpha 版本,三次 beta 版本,两次 rc 版,最终发布

cocoapods 对版本库的选取规则

cocoapods 可以通过 pod "name", 'version' 方式引用指定版本的依赖库。

https://guides.cocoapods.org/syntax/podfile.html#pod

对于版本号的控制分别有五种: =, >=, <, <=~>,对于前四种很好理解,就是常见的算术关系,cocoapods 新增了第五种关系运算符 ~>,这个运算符的含义比较动态,他的意思是 大于等于当前版本号,但小于当前次要版本号的范围,在语义化版本的定一下,它的目的就很明确了,在确保版本最新的同时还要保证兼容性。所以推荐多多使用 ~> 这样既能及时更新最新的版本,又不会影响程序库的兼容性。

各个阶段版本号之间的比较关系如下:

1.8.2-alpha < 1.8.2-beta < 1.8.2-rc < 1.8.2

Nicholas X.

山穷水复疑无路,柳暗花明又一村