语义化版本规范(SemVer)简介

基本格式

SemVer 使用三个数字来表示版本号:

MAJOR.MINOR.PATCH

例如:2.4.1

img img

版本号递增规则

  1. 主版本号(MAJOR):当你做了不兼容的 API 修改
  2. 次版本号(MINOR):当你做了向下兼容的功能性新增
  3. 修订号(PATCH):当你做了向下兼容的问题修正

先行版本号和版本编译信息

  • 先行版本号可以加到 “MAJOR.MINOR.PATCH” 的后面,先加上一个连接号再加上一连串以点分隔的标识符 例如:1.0.0-alpha, 1.0.0-beta.1, 1.0.0-rc.1
  • 版本编译信息可以加到最后,先加上一个加号再加上一连串以点分隔的标识符 例如:1.0.0-alpha+001, 1.0.0+20130313144700

版本优先级

版本号的优先层级指定了版本号的比较方式:

  1. 主版本号、次版本号、修订号以数值比较
  2. 当主版本号、次版本号、修订号相同时,带有先行版本号的版本优先级低于普通版本
  3. 有相同主版本号、次版本号、修订号的先行版本号,其优先级由左到右比较各个以点分隔的标识符

示例

  • 1.0.0 < 2.0.0 < 2.1.0 < 2.1.1
  • 1.0.0-alpha < 1.0.0-alpha.1 < 1.0.0-beta.2 < 1.0.0-beta.11 < 1.0.0-rc.1 < 1.0.0

遵循 SemVer 可以帮助开发者和用户更好地理解每个版本的变化程度,从而做出更明智的升级决策。