版本命名
版本号(tag)命名规则如下:
主版本号.小版本号.修订号, 例如:1.0.1
版本号各段的具体说明如下:
- 主版本号 表示重大的变更,如:新的架构设计;功能、接口及数据类型重大变化等。
- 小版本号 对上一版本进行增强,如:新增一些辅助性的功能、对接口参数进行兼容性的修改、功能改进等。
- 修订号 主要是对bug的修复,功能上基本上没有什么变化。
版本类型
composer定义的版本类型根据成熟度由低到高,主要为以下几种:
- dev 开发测试版本。基本上已经完成所有功能,但功能和性能都还不稳定,可能需要进行大的调整和修复。
- alpha 内部测试版本。主要用于内部测试,功能已基本完成,但可能有少量非关键性bug。
- beta 公开测试版本。功能基本上已经稳定,可能还有极少的非关键性bug。
- rc 候选的正式发布版本。功能已经稳定,基本上没有bug,可以用于正式发布。
- stable 已经过可靠的测试,用于生产实践的稳定版本,基本上没有bug。
版本选择
基于上面的版本命名及版本类型说明,我们规定主要有以下两种可选版本:
- 正式发布版本,达到stable版本类型的要求,可以广泛用于线上生产部署,表述为stable版。命名形式为主版本号.小版本号.修订号,不带版本类型后缀,如:1.0.0。
- 集成测试版本,达到alpha版本类型的要求,可以用于线上生产部署,但仅限于做小规模的灰度部署,或集成至非关键性业务项目,可以测试其长期运行的稳定性,发掘不易发现的BUG,表述为alpha版。命名形式为主版本号.小版本号.修订号-版本类型(版本类型固定为alpha),如:1.0.0-alpha。
重要说明
- stable版一旦发布,其代码不可变更。即不能变更tag对应的修改集号。
- alpha版在版本号不变的情况下代码是可变的。即tag对应的修改集号是可以变化的,依赖此alpha版的项目再下次发布时会集成最新的代码。
因此,如果项目需要持续使用依赖包的最新代码可以选择alpha版,而不必去修改composer.json中依赖关系的版本号。