主题
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。