语义化版本规范

语义化版本格式为:主版本号.次版本号.修订号(x.y.z)。X,Y,Z为非负的整数,禁止在数字前方补零。

  • 主版本号(MAJOR):做了不兼容的API修改。
  • 次版本号(MINOR):做了向下兼容的功能新增或者修改。有个不成文的约定,偶数为稳定版本,奇数为开发版本
  • 修订号(PATCH):做了向下兼容的问题修正。

还可以将先行版本号和版本编译元数据添加到后面,格式为X.Y.Z[-先行版本号][+编译版本号],例如v1.2.3-alpha.+001

  • 先行版本号:该版本不稳定,可能存在兼容性问题。
  • 编译版本号:一般是编译器在编译过程中自动生成的,只定义其格式。

语义化版本控制规范

即语义化版本号是如何变化的。

  • 打上版本号发布后,禁止改变此版本软件的内容,任何修改必须以新版本发布。
  • 主版本号为0,表示软件出于开发状态,一切都随时可能改变。1.0.0被视为第一个稳定版本。
  • 修订号,只有在做了向下兼容的修改即Bug修复时才递增。
  • 次版本号,有向下兼容的新功能出现时递增,每次递增都会将修订号清零。
  • 主版本号,有不兼容的修改被加入公共API时递增,每次递增都会将次版本号和修订号清零。

实际使用

在开发工程中,使用0.1.0作为第一个版本号,后续每次发行在此基础上递增。

第一个对外发布的文档版本号为1.0.0。

COMMIT规范中将会介绍代码提交的规范,借用此可以将提交信息与版本号相对应:

  • fix类型的commit可以将修订号+1
  • feat类型的commit可以将次版本号+1
  • 带有BREAKING CHANGE的commit可以将主版本号+1