语义化版本命名通行规则
该规则对版本的迭代顺序命名做了很好的规范,其版本号的格式为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。
注意:版本一经发布,不得修改其内容,任何修改必须在新版本发布!
语义化版本命名通行规则相关推荐
- 【转】语义化版本 2.0.0
转自:语义化版本 2.0.0 | Semantic Versioning 语义化版本 2.0.0 摘要 版本格式:主版本号.次版本号.修订号,版本号递增规则如下: 主版本号:当你做了不兼容的 API ...
- 如何在软件发布计划中自动化语义化版本与变更日志
摘要:本文引入两个工具commitizen和standard-version来实现语义化版本与变更日志的自动化,提升规范化程度,减少人工干预. 随着DevOps方法与实践的普及,越来越多的企业开始使用 ...
- Go (Golang) 工具之自动化版本工具 gsemver | semver 语义化版本规范
文章目录 Go (Golang) 工具之gsemver 什么是gsemver 动机 感谢 gsemver 安装 gsemver 使用 准备 git HEAD 基础 CLI 配置文件 语义化版本 2.0 ...
- 软件版本阶段与语义化版本(SemVer)
文章目录 软件版本阶段 语义化版本 FAQ npm中package.json文件依赖项版本号 参考 软件版本阶段 Alpha版:预览版或内部测试版,一般不向外部发布,会有很多 bug. Beta版:公 ...
- 语义化版本控制模块-Semver
执行某些命令的时候,你是否遇到过提醒版本过低,需要升级版本的提示,那么对于版本号,是以一个怎样的规则来进行的限制和匹配的呢? semver, 是一个语义化版本号管理的模块,可以实现版本号的解析和比较, ...
- php 语义解析,[扩展推荐] PHP 语义化版本(SemVer)辅助库
SemVer 是由 Chris Kankiewicz 开发的一个语义化的提取版本号中各种信息的 PHP 辅助库.支持解析.递增和比较等特性. 下面是初始化 SemVer\Version 对象的基本用法 ...
- 聊聊 npm 的语义化版本(Semver)
前言 现在我们要开发一个项目,我们都知道为了方便项目管理,要写一个版本号,那开发的时候初始的版本号是多少呢?是 1.0.0 还是 0.0.1 开始? 如果一个版本号为 X.Y.Z,什么时候是 X 应该 ...
- 语义化版本(semantic versioning)机制里的一些范围标识符
https://semver.npmjs.com/ carat(hat) symbol 就是键盘数字6上面的这个符号:^ include everything greater than a parti ...
- CSS类命名的语义化VS结构化方式
一般而言,CSS类名的语义化声明方式应当考虑你的页面中某个相对元素的"用意",独立于它的"定位"或确切的特性(结构化方式).像left-bar, red-tex ...
最新文章
- 用于类别级物体6D姿态和尺寸估计的标准化物体坐标空间
- 最近火爆全网!这个 Python 项目很骚气!
- 由浅入深解读Redis高级能力及性能调优
- ruby gem 本地安装方法
- 7 个习惯帮你提升Python运行性能
- 22. loacte命令
- File Hunter for mac - 丢失文件查找AE脚本
- ToB产品设计:用户权限系统解析
- java自动化测试案例简介_接口自动化测试实例
- C语言字符与数字的互转
- kali2020.3 安装IDA freeware
- 使用 leopard硬盘安装助手 创建OS X 系统安装盘
- 80C51单片机:3.数码管显示、封装与消隐
- 关闭与卸载xxx终端防护系统时需要密码怎么办?
- Unity 3D模型展示之模型透明效果
- arthes—线上debug好帮手
- Linux无桌面环境下,实现USB的自动挂载/卸载
- 智伴机器人三级分销模式_三级分销系统是什么模式
- 作为优秀的DBA,究竟需要掌握多少种数据库?
- Believe in yourself