版本规范
版本机制的好处
- 通过版本号,我们可以很明确地知道组件是哪个版本,从而定位到该组件的功能和代码,方便我们定位问题。
- 发布组件时携带版本号,可以让使用者知道目前的项目进度,以及使用版本和上一个版本的功能差别等。
语义化版本规范(SemVer)
语义化版本规范(Semantic Versioning)是一个在软件版本号编排上的规范和建议。它提供了一组简单的规则来确定如何分配和递增版本号。
规则:
- 发布 1.0.0 版本前的软件处于开发阶段,可能随时发生变化
- 版本号只能增加,发布的版本不能修改
- 每次发布需要标记版本号(Tag)
- 主版本号为零(0.y.z)表示软件处于初始开发阶段
版本号格式
版本号格式:MAJOR.MINOR.PATCH
例如:2.1.3
各个数字的含义:
-
MAJOR(主版本号)
- 当做了不兼容的 API 修改时递增
- 例如:从 1.x.x 升级到 2.0.0
-
MINOR(次版本号)
- 当增加了向下兼容的新功能时递增
- 例如:从 1.1.x 升级到 1.2.0
-
PATCH(修订号)
- 当做了向下兼容的问题修复时递增
- 例如:从 1.1.1 升级到 1.1.2
预发布版本
预发布版本可以在 PATCH 后面添加连字符和标识符:
- Alpha版本:
1.0.0-alpha.1 - Beta版本:
1.0.0-beta.1 - Release Candidate:
1.0.0-rc.1
版本规则示例
1.0.0:首次发布
1.0.1:修复 bug
1.1.0:添加新特性
2.0.0:进行不兼容的 API 修改
优势
-
清晰的依赖管理
- 便于了解依赖包的更新是否包含破坏性改动
-
版本控制
- 帮助开发者理解版本升级的影响范围
-
兼容性判断
- 快速判断版本间的兼容性
-
自动化部署
- 便于持续集成和持续部署流程