语义化版本号
定义
Ambot Package 遵从标准的语义化版本号规范,即版本号应当是 版本号格式:主版本号.功能版本号.小版本号[-先行版本号]+修订号 的格式(注意前置 v 的符号是 tag 的要求,而不是版本号的要求)。
根据语义化版本号的规范,版本号必须为 vX.Y.Z 的形式,然而因历史原因,PRS 产品使用过诸如 v1.2、v1.2.3.4 等非标准的三位样式,ambot package 做了一定的兼容。这个兼容未来会被删除,请新的
package 停止使用。
版本号比较
- 非同一产品,无法比较
- 主版本号大的,版本较高
- 功能版本号大的,版本较高
- 小版本号大的,版本较高
- 先行版本号
- 无先行版本号的,版本较高
- 均无先行版本号的【属于 bug】,发布日期较晚版本较高
- 发布日期同一天的,修订号高的版本较高
- 修订号相同的,同样高【属于 bug】
- 发布日期同一天的,修订号高的版本较高
- 均无先行版本号的【属于 bug】,发布日期较晚版本较高
- 先行版本号比较
- 先行版本号相同的,发布日期较晚版本较高
- 发布日期同一天的,修订号高的版本较高
- 修订号相同的,同样高
- 发布日期同一天的,修订号高的版本较高
- 先行版本号相同的,发布日期较晚版本较高
- 无先行版本号的,版本较高
约束
目前版本约束不适用于先行版本号
Ambot Package 的 Semver 约束支持如下语法
基本比较
=: equal (aliased to no operator)!=: not equal- 无通配符情况下执行全文匹配
- 有通配符情况
- 如果约束为 pre-release,版本为 release,返回 true
- 如果约束为 release,版本为 pre-release,返回不可用
- 通配符前的部分不能相等
>: greater than<: less than>=: greater than or equal to<=: less than or equal to
范围比较
1.2 - 1.4.5which is equivalent to>= 1.2, <= 1.4.52.3.4 - 4.5which is equivalent to>= 2.3.4 <= 4.5
通配符
1.2.xis equivalent to>= 1.2.0 < 1.3.0>= 1.2.xis equivalent to>= 1.2.0<= 2.xis equivalent to<= 3*is equivalent to>= 0.0.0
版本约束
~1.2.3is equivalent to>= 1.2.3 < 1.3.0~1is equivalent to>= 1, < 2~2.3is equivalent to>= 2.3 < 2.4~1.2.xis equivalent to>= 1.2.0 < 1.3.0~1.xis equivalent to>= 1 < 2
主版本约束
^1.2.3is equivalent to>= 1.2.3, < 2.0.0^1.2.xis equivalent to>= 1.2.0, < 2.0.0^2.3is equivalent to>= 2.3, < 3^2.xis equivalent to>= 2.0.0, < 3^0.2.3is equivalent to>=0.2.3 <0.3.0^0.2is equivalent to>=0.2.0 <0.3.0^0.0.3is equivalent to>=0.0.3 <0.0.4^0.0is equivalent to>=0.0.0 <0.1.0^0is equivalent to>=0.0.0 <1.0.0