X.Y.Z 命名
- X 非负整数 表示主版本号(Major),当 API 的兼容性变化时,X 需递增
- Y 非负整数 表示次版本号(Minor),当增加功能时(不影响 API 的兼容性),Y 需递增
- Z 非负整数 表示修订号(Patch),当做 Bug 修复时(不影响 API 的兼容性),Z 需递增
如:
第一个版本号为1.0.0,有一个接口
User getUser(int id)
这时候增加了根据id和手机号获取user的方法,并且去除了getUser方法
User getUser(int id,String phone)
此版本需要改成2.0.0 (因为不兼容老版本:加了参数或者改了返回值或者改了方法名都是算不兼容)
后来又加了一个删除user的方法
int deleteUser(int id)
此版本号变为2.1.0(因为增加了功能,不影响老版本)
后来在deleleUser方法内部改了逻辑
此版本号变为2.1.1(因为只改了内部实现逻辑,对api无感知)
注:
- X, Y, Z 必须为非负整数,且不得包含前导零,必须按数值递增,如 1.9.0 -> 1.10.0 -> 1.11.0
- 0.Y.Z 的版本号表明软件处于初始开发阶段,意味着 API 可能不稳定;1.0.0 表明版本已有稳定的API
- 当 API 的兼容性变化时,X 必须递增,Y 和 Z 同时设置为 0;当新增功能(不影响 API 的兼容性)或者 API 被标记为 Deprecated 时,Y 必须递增,同时 Z 设置为 0;当进行 bug fix 时,Z 必须递增。
商业软件中常见的修饰词
- Snapshot 快照版 尚不不稳定、尚处于开发中的版本
- Alpha 内部版 严重缺陷基本完成修正并通过复测,但需要完整的功能测试
- Beta 测试版 相对 Alpha 有很大的改进,消除了严重的错误,但还是存在一些缺陷
- RC 终测版 Release Candidate(最终测试),即将作为正式版发布。
- Demo 演示版 只集成了正式版部分功能升级,无法升级
- SP SP1 是 service pack 的意思表示升级包,相信大家在 windows 中都见过。
- Release 稳定版 功能相对稳定,可以对外发行,但有时间限制
- Trial 试用版 试用版,仅对部分用户发行
- Full Version 完整版 即正式版,已发布。
- Unregistered 未注册 有功能或时间限制的版本
- Standard 标准版 能满足正常使用的功能的版本
- Lite 精简版 只含有正式版的核心功能
- Enhance 增强版 正式版,功能优化的版本
- Ultimate 旗舰版 在标配版本升级体验感更好的版本
- Professiona 专业版 针对更高要求功能,专业性更强的使用群体发行的版本
- Free 自由版 自由免费使用的版本
- Upgrade 升级版 有功能增强或修复已知 bug
- Retail 零售版 单独发售
- Cardware 共享版 公用许可证(IOS 签证)
- LTS 维护版 该版本需要长期维护
Spring 版本命名规则
- Snapshot 快照版 尚不不稳定、尚处于开发中的版本
- Release 稳定版 功能相对稳定,可以对外发行,但有时间限制
- GA 正式版 代表广泛可用的稳定版(General Availability)M 里程碑版 (M 是 Milestone 的意思)具有一些全新的功能或是具有里程碑意义的版本
- RC 终测版 Release Candidate(最终测试),即将作为正式版发布
网友评论