该规则对版本的迭代顺序命名做了很好的规范,其版本号的格式为X.Y.Z(又称Major.Minor.Patch),递增的规则为:

序号 格式要求 说明
X 非负整数 表示主版本号(Major),当API 的兼容性变化时,X 需递增。
Y 非负整数 表示次版本号(Minor),当增加功能时(不影响API 的兼容性),Y 需递增。
Z 非负整数 表示修订号(Patch),当做Bug 修复时(不影响API 的兼容性),Z 需递增。

详细的使用规则如下:

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 必须递增。

先行版本号(Pre-release)意味该版本不稳定,可能存在兼容性问题,其格式为:X.Y.Z.[a-c][正整数],如1.0.0.a1,1.0.0.b99,1.0.0.c1000。

开发版本号常用于CI-CD,格式为X.Y.Z.dev[正整数],如1.0.1.dev4。

版本号的排序规则为依次比较主版本号、次版本号和修订号的数值,如1.0.0 < 1.0.1 < 1.1.1 < 2.0.0;对于先行版本号和开发版本号,有:1.0.0.a100 < 1.0.0,2.1.0.dev3 < 2.1.0;当存在字母时,以ASCII 的排序来比较,如1.0.0.a1 < 1.0.0.b1。

注意:版本一经发布,不得修改其内容,任何修改必须在新版本发布!

语义化版本命名通行规则相关推荐

  1. 【转】语义化版本 2.0.0

    转自:语义化版本 2.0.0 | Semantic Versioning 语义化版本 2.0.0 摘要 版本格式:主版本号.次版本号.修订号,版本号递增规则如下: 主版本号:当你做了不兼容的 API ...

  2. 如何在软件发布计划中自动化语义化版本与变更日志

    摘要:本文引入两个工具commitizen和standard-version来实现语义化版本与变更日志的自动化,提升规范化程度,减少人工干预. 随着DevOps方法与实践的普及,越来越多的企业开始使用 ...

  3. Go (Golang) 工具之自动化版本工具 gsemver | semver 语义化版本规范

    文章目录 Go (Golang) 工具之gsemver 什么是gsemver 动机 感谢 gsemver 安装 gsemver 使用 准备 git HEAD 基础 CLI 配置文件 语义化版本 2.0 ...

  4. 软件版本阶段与语义化版本(SemVer)

    文章目录 软件版本阶段 语义化版本 FAQ npm中package.json文件依赖项版本号 参考 软件版本阶段 Alpha版:预览版或内部测试版,一般不向外部发布,会有很多 bug. Beta版:公 ...

  5. 语义化版本控制模块-Semver

    执行某些命令的时候,你是否遇到过提醒版本过低,需要升级版本的提示,那么对于版本号,是以一个怎样的规则来进行的限制和匹配的呢? semver, 是一个语义化版本号管理的模块,可以实现版本号的解析和比较, ...

  6. php 语义解析,[扩展推荐] PHP 语义化版本(SemVer)辅助库

    SemVer 是由 Chris Kankiewicz 开发的一个语义化的提取版本号中各种信息的 PHP 辅助库.支持解析.递增和比较等特性. 下面是初始化 SemVer\Version 对象的基本用法 ...

  7. 聊聊 npm 的语义化版本(Semver)

    前言 现在我们要开发一个项目,我们都知道为了方便项目管理,要写一个版本号,那开发的时候初始的版本号是多少呢?是 1.0.0 还是 0.0.1 开始? 如果一个版本号为 X.Y.Z,什么时候是 X 应该 ...

  8. 语义化版本(semantic versioning)机制里的一些范围标识符

    https://semver.npmjs.com/ carat(hat) symbol 就是键盘数字6上面的这个符号:^ include everything greater than a parti ...

  9. CSS类命名的语义化VS结构化方式

    一般而言,CSS类名的语义化声明方式应当考虑你的页面中某个相对元素的"用意",独立于它的"定位"或确切的特性(结构化方式).像left-bar, red-tex ...

最新文章

  1. 用于类别级物体6D姿态和尺寸估计的标准化物体坐标空间
  2. 最近火爆全网!这个 Python 项目很骚气!
  3. 由浅入深解读Redis高级能力及性能调优
  4. ruby gem 本地安装方法
  5. 7 个习惯帮你提升Python运行性能
  6. 22. loacte命令
  7. File Hunter for mac - 丢失文件查找AE脚本
  8. ToB产品设计:用户权限系统解析
  9. java自动化测试案例简介_接口自动化测试实例
  10. C语言字符与数字的互转
  11. kali2020.3 安装IDA freeware
  12. 使用  leopard硬盘安装助手 创建OS X 系统安装盘
  13. 80C51单片机:3.数码管显示、封装与消隐
  14. 关闭与卸载xxx终端防护系统时需要密码怎么办?
  15. Unity 3D模型展示之模型透明效果
  16. arthes—线上debug好帮手
  17. Linux无桌面环境下,实现USB的自动挂载/卸载
  18. 智伴机器人三级分销模式_三级分销系统是什么模式
  19. 作为优秀的DBA,究竟需要掌握多少种数据库?
  20. Believe in yourself

热门文章

  1. php 精度计算问题
  2. 12-16php测试题
  3. C#语句——循环语句(for循环与for循环嵌套)
  4. 使用选择器语法来查找元素 - 你想使用类似于CSS或jQuery的语法来查找和操作元素...
  5. 一、HTML和CSS基础--HTML+CSS基础课程--第1部分
  6. citrix协议ICA技术原理
  7. Objective-C策略模式(Strategy)
  8. 关于黑客的报道里绝对不会提到的信息
  9. VirtualBox没有64位选项,无法安装64位的解决方法 感谢源作者
  10. 【Hibernate】hibernate实体关系映射——单边的多对多关系