语义化版本规范
语义化版本格式为:主版本号.次版本号.修订号(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