语义化版本规范(SemVer)简介
基本格式
SemVer 使用三个数字来表示版本号:
MAJOR.MINOR.PATCH
例如:2.4.1
版本号递增规则
- 主版本号(MAJOR):当你做了不兼容的 API 修改
- 次版本号(MINOR):当你做了向下兼容的功能性新增
- 修订号(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.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 可以帮助开发者和用户更好地理解每个版本的变化程度,从而做出更明智的升级决策。