Semver 标准
semver
有一套关于版本号的语义标准。
标准版本号(Major.Minor.Patch)
例如 1.2.3
这个版本号,它由三个部分组成:
1
是它的 Major
,主版本号,通常只有在重构、API不向下兼容时才会进行升级。2
是它的 Minor
,次版本号,通常在增加向下兼容新特性时升级此版本号。3
是它的 Patch
,修订号,通常在发布向下兼容的问题修复时更新。
先行版本号(pre-release)
上面的 “标准版本号” 通常是指正式发布的版本。 但开发过程,往往还伴随着 内测、 公测、 生产候选 等种版本形式。
于是,在 “标准版本号” 的基础上又增加了一个新的版本号区域:pre-release
区。
如图所示。
先行版本号的典型格式是 -alpha.1
这样的形式,它由 一个短横线 + 一个字符串组成。
- 短横线: -
- 字符串:由大小写的字母、数字、句点 组成。
因此,以下先行版本号都是合法的:
- 16.7.1-1
- 16.7.1-a.2
- 16.7.1-a.c
注意:
16.7.1-alpha.1
的版本号小于16.7.1
。
因为16.7.1-alpha.1
是16.7.1
的内测版本,所以它一定是小于正式版本的。
先行版本的约定命名
虽然规范的自由度非常高,但是为了更好的表达版本含义, 大家约定俗成了三个常见的先行版本命名方式,他们是:
16.7.1-alpha.1
:16.7.1
内测的第一个版本16.7.1-beta.1
:16.7.1
灰度测试的第一个版本16.7.1-rc.1
:16.7.1
生产候选的第一个版本
因为 r
> b
> a
,所以这个约定实际也能代表上线的先后顺序:
16.7.1-alpha.1
< 16.7.1-beta.1
< 16.7.1-rc.1 < 16.7.1
。