2.1.4. 版本规范¶
语义化版本SemVer¶
版本格式:
主版本号.次版本号.修订号[- 先行版本号][+ 版本编译元数据]
版本号递增规则如下:
1. 主版本号: 当你做了不兼容的 API 修改
2. 次版本号: 当你做了向下兼容的功能性新增
3. 修订号: 当你做了向下兼容的问题修正
4. 先行版本号及版本编译元数据: 可以加到“主版本号.次版本号.修订号”的后面,作为延伸
实例:
完整版本=1.2.3-alpha.1
SHORT=1.2.3
MAJOR=1
MINOR=2
PATCH=3
PRERELEASE=alpha.1
1. 1.0.0-alpha+001 => 先行版本: alpha, 版本编译元数据: 001
2. 1.0.0+20130313144700 => 版本编译元数据: 20130313144700
主版本号为零的时候就是为了做快速开发:
如果你每天都在改变 API,那么你应该仍在主版本号为零的阶段(0.y.z),或是正在下个主版本的独立开发分支中
The v0.x.y tags indicate that go APIs may change in incompatible ways in different versions.
万一不小心把一个不兼容的改版当成了次版本号发行了该怎么办?:
一旦发现自己破坏了语义化版本控制的规范,就要修正这个问题,并发行一个新的次版本号来更正这个问题并且恢复向下兼容
即使是这种情况,也不能去修改已发行的版本
可以的话,将有问题的版本号记录到文件中,告诉使用者问题所在,让他们能够意识到这是有问题的版本