版本规范

版本机制的好处

  1. 通过版本号,我们可以很明确地知道组件是哪个版本,从而定位到该组件的功能和代码,方便我们定位问题。
  2. 发布组件时携带版本号,可以让使用者知道目前的项目进度,以及使用版本和上一个版本的功能差别等。

语义化版本规范(SemVer)

语义化版本规范(Semantic Versioning)是一个在软件版本号编排上的规范和建议。它提供了一组简单的规则来确定如何分配和递增版本号。

规则:

  1. 发布 1.0.0 版本前的软件处于开发阶段,可能随时发生变化
  2. 版本号只能增加,发布的版本不能修改
  3. 每次发布需要标记版本号(Tag)
  4. 主版本号为零(0.y.z)表示软件处于初始开发阶段

版本号格式

版本号格式:MAJOR.MINOR.PATCH

例如:2.1.3

各个数字的含义:

  1. MAJOR(主版本号)

    • 当做了不兼容的 API 修改时递增
    • 例如:从 1.x.x 升级到 2.0.0
  2. MINOR(次版本号)

    • 当增加了向下兼容的新功能时递增
    • 例如:从 1.1.x 升级到 1.2.0
  3. 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 修改

优势

  1. 清晰的依赖管理

    • 便于了解依赖包的更新是否包含破坏性改动
  2. 版本控制

    • 帮助开发者理解版本升级的影响范围
  3. 兼容性判断

    • 快速判断版本间的兼容性
  4. 自动化部署

    • 便于持续集成和持续部署流程