Semantic Versioning 2.0.0:https://semver.org/

TL;DR

给定版本号 MAJOR.MINOR.PATCH,递增。

  1. 进行不兼容 API 修改时,增加 MAJOR 版本。会导致 Breaking Change
  2. 向后兼容的 feature 增加时,增加 MINOR 版本
  3. 向后兼容的 issue 修复时,增加 PATCH 版本

预发布版本的附加标签可以作为 MAJOR.MINOR.PATCH 格式的拓展。

  1. 标识符 ASCII 字母数字和连字符 [0-9A-Za-z-]。标识符不能为空,数字标识符前面不能为零
  2. 例如:1.0.0-alpha, 1.0.0-alpha.1, 1.0.0-0.3.7, 1.0.0-x.7.z.92, 1.0.0-x-y-z.–

构建 metadata 可以作为 MAJOR.MINOR.PATCH 格式的拓展。

  1. 标识符 ASCII 字母数字和连字符 [0-9A-Za-z-]。标识符不能为空,数字标识符前面不能为零。确定版本优先权时,必须忽略构建元数据
  2. 例如:1.0.0-alpha+001, 1.0.0+20130313144700, 1.0.0-beta+exp.sha.5114f85, 1.0.0+21AF26D3—-117B344092BD

版本比较

  1. 从左到右比较标识符
  2. 预发布版本(alpha, beta, rc)低于正常版本
  3. 正常版本按照数字比较(数字组成的标识符以数字来比较)
  4. 带有字母或连字符的标识符按 ASCII 排序顺序进行词法比较
  5. 「数字标识符」优先级比「非数字标识符」低

例如:1.0.0-alpha < 1.0.0-alpha.1 < 1.0.0-alpha.beta < 1.0.0-beta < 1.0.0-beta.2 < 1.0.0-beta.11 < 1.0.0-rc.1 < 1.0.0