语义化版本管理(SemVer)

版本格式

版本格式:主版本号.次版本号.修订号(major.minor.patch),版本号递增规则如下:

主版本号:当你做了不兼容的 API 修改,
次版本号:当你做了向下兼容的功能性新增,
修订号:当你做了向下兼容的问题修正。
先行版本号及版本编译元数据可以加到 「主版本号.次版本号.修订号」 的后面,作为延伸。

版本规则

必须匹配某个版本

1.0.0 必须匹配 1.0.0 版本。

必须大于某个版本

> 1.0.0 必须大于 1.0.0 版本;
> 1.0 必须大于 1.0.0 版本,可以是 1.0.1 及更高版本。

大于或等于某个版本

>= 1.0.0 必须大于或等于 1.0.0 版本,可以是 1.0.0 及更高版本。

小于某个版本

< 2.0.0 必须小于 2.0.0 版本 ,可以是 1.9.9。

小于或等于某个版本

<= 2.0.0 必须小于或等于 2.0.0 版本 ,可以是 2.0.0 及更低版本。

大概匹配版本

如果 minor 版本号指定了,那么 minor 版本号不变,而 patch 版本号任意;
如果 minor 和 patch 版本号未指定,那么 minor 和 patch 版本号任意。

~ 1.1.2,表示 >= 1.1.2 < 1.2.0,可以是 1.1.2,1.1.3,1.1.4,.....,1.1.n;
~ 1.1,表示 >= 1.1.0 < 1.2.0,可以是同上;
~ 1,表示 >= 1.0.0 < 2.0.0,可以是 1.0.0,1.0.1,1.0.2,.....,1.0.n,1.1.n,1.2.n,.....,1.n.n。

兼容某个版本

版本号中最左边的非0数字的右侧可以任意;如果缺少某个版本号,则这个版本号的位置可以任意。

^ 1.1.2 ,表示 >= 1.1.2 < 2.0.0,可以是 1.1.2,1.1.3,.....,1.1.n,1.2.n,.....,1.n.n;
^ 0.2.3 ,表示 >= 0.2.3 < 0.3.0,可以是 0.2.3,0.2.4,.....,0.2.n;
^ 0.0,表示 >= 0.0.0 < 0.1.0,可以是 0.0.0,0.0.1,.....,0.0.n

x 标识符

x的位置表示任意版本。

1.2.x,表示可以 1.2.0,1.2.1,.....,1.2.n。

* 任意版本

  • 表示>=0.0.0的任意版本。

版本范围

1.1.2 - 1.3.1,表示包括1.1.2和1.3.1以及他们件的任意版本。

<1.0.0 || >= 2.3.1 < 2.4.5 || >= 2.5.2 < 3.0.0,表示满足这3个范围的版本都可以。

参考文档

  • semver官网
  • Github semver

你可能感兴趣的:(语义化版本管理(SemVer))