版本命名

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(最终测试),即将作为正式版发布

你可能感兴趣的:(版本命名)