带你了解软件版本号的命名规则

2023-10-27

1、 常见软件的版本号命名

软件 升级过程 说明
Linux Kernel 0.0.1 / 1.0.0 / 2.6.32 / 3.0.18 /… 若用 X.Y.Z 表示,则偶数 Y 表示稳定版本,奇数 Y 表示开发版本。
Windows Windows 98 / Windows 2000 / Windows XP /Windows 7 / … 最大的特点是杂乱无章,毫无规律。
SSH Client 0.9.8
OpenStack 2014.1.3 / 2015.1.1.dev8

从上可以看出,不同的软件版本号风格各异,随着系统的规模越大,依赖的软件越多,如果这些软件没有遵循一套规范的命名风格,容易造成 Dependency Hell。所以当我们发布版本时,版本号的命名需要遵循某种规则,其中 Semantic Versioning 2.0.0 定义了一套简单的规则及条件来约束版本号的配置和增长。本文根据 Semantic Versionning 2.0.0 和 Semantic Versioning 3.0.0 选择性的整理出版本号命名规则指南。

2、 语义化版本命名通行规则

该规则对版本的迭代顺序命名做了很好的规范,其版本号的格式为 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。

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

3、商业软件中常见的修饰词

描述方式 说明 含义
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 维护版 该版本需要长期维护

4、 软件版本号使用限定

为了方便理解,版本限定的语法简述为为 [范围描述]<版本号描述>

范围描述可选,必须配和版本描述确定范围,无法独立存在
< 小于某一版本号
<= 小于等于某一版本号
> 大于某一版本号
>= 大于等于某一版本号
= 等于某一版本号,没有意义和直接写该版本号一样
~ 基于版本号描述的最新补丁版本
^ 基于版本号描述的最新兼容版本
- 某个范围,他应该出现在两个版本描述中间,实际上语法应为 <版本描述>-<版本描述>,写在此处为了统一

严格来讲对 ~,^ 的表述需要结合具体的包管理工具和版本号规则来确定.但是对于一般使用记住如下原则:
^ 是确保版本兼容性时,默认对次版本号的限定约束
~ 是确保版本兼容性时,默认对补丁号的约束

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

带你了解软件版本号的命名规则 的相关文章

  • “性能压测揭密:关键指标分析!“

    在进行全链路压测和性能测试时 需要关注多个关键性能指标 KPIs 来评估系统的性能表现 以下是一些常见的性能测试指标 1 吞吐量 Throughput 系统在单位时间内能够处理的请求数量或事务数量 通常以每秒请求数 RPS TPS 来衡量
  • 【软件测试】学习笔记-高效提交Bug

    本篇文章介绍如何才能写出一份高效的软件缺陷报告 测试工程师需要利用对需求的理解 高效的执行力以及严密的逻辑推理能力 迅速找出软件中的潜在缺陷 并以缺陷报告的形式递交给开发团队 缺陷报告是测试工程师与开发工程师交流沟通的重要桥梁 也是测试工程
  • 软件测试|Python Selenium 库安装使用指南

    简介 Selenium 是一个用于自动化浏览器操作的强大工具 它可以模拟用户在浏览器中的行为 例如点击 填写表单 导航等 在本指南中 我们将详细介绍如何安装和使用 Python 的 Selenium 库 安装 Selenium 库 使用以下
  • 接口测试之Fiddler弱网测试

    前言 目前市面上的APP功能越来越丰富 移动端测试也越显为重要 因为用户在网速慢的情况下 你的网站 软件 总能出现各种各样的问题 请不要忽略这一点 针对在不同的网络情况下 接下来 本篇要讲述的就是在通过fiddler对APP进行模拟弱网测试
  • Python接口自动化测试处理不同接口间参数依赖

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读2 2k次 点赞85次 收藏11次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自
  • Selenium小技巧!

    Chrome DevTools 简介 Chrome DevTools 是一组直接内置在基于 Chromium 的浏览器 如 Chrome Opera 和 Microsoft Edge 中的工具 用于帮助开发人员调试和研究网站 借助 Chro
  • Jenkins 插件下载速度慢、安装失败了!我教你怎么解决!

    Jenkins部署完毕 如果不安装插件的话 那它就是一个光杆司令 啥事也做不了 所以首先要登陆管理员账号然后点击系统管理再点击右边的插件管理安装CI CD必要插件 但是问题来了 jenkins下载插件速度非常慢 而且经常提示下载插件失败 真
  • APP端网络测试与弱网模拟

    当前APP网络环境比较复杂 网络制式有2G 3G 4G网络 还有越来越多的公共Wi Fi 不同的网络环境和网络制式的差异 都会对用户使用app造成一定影响 另外 当前app使用场景多变 如进地铁 上公交 进电梯等 使得弱网测试显得尤为重要
  • 测试开发必知:有Tomcat,为什么还要Nginx?

    只用Tomcat 不用Nginx搭建Web服务 行不行 我曾经提出的愚蠢问题 今天详细给自己解释下 为什么必须用Nginx 不用Nginx 只用Tomcat的Http请求流程 浏览器处理一个Http请求时 会首先通过DNS服务器找到域名关联
  • 基于Loadrunner的性能分析及调优经验分享

    公司某个系统的微信端计划将开放给几百上千的人员登录查询 并且登录账号为同一账号多人使用 后台服务能够支撑起多用户的并发操作以及成百上千人登录微信端对生产数据库或者登录查询的性能效率高成为交付可靠生产环境的必要条件 因此 项目组决定提交测试
  • 软件测试|使用Python轻松裁剪视频

    简介 裁剪视频是在视频编辑和处理中常见的任务之一 Python提供了多种库和工具 可以用来裁剪视频 在本文中 我们将详细讨论如何使用Python来裁剪视频 并提供示例代码 步骤1 环境准备 首先 我们要安装必要的Python库 我们将使用
  • 软件测试|深入了解Python中的super()函数用法

    简介 Python中的super 函数是一种强大的工具 用于在子类中调用父类的方法 它在面向对象编程中非常有用 可以让你轻松地扩展和重用现有的类 本文将详细介绍super 函数的用法 并提供一些示例来帮助你更好地理解它的功能 什么是supe
  • 软件测试|使用matplotlib绘制多种折线图

    简介 在数据可视化领域 Matplotlib是一款非常强大的Python库 它可以用于绘制各种类型的图表 包括折线图 本文将介绍如何使用Matplotlib创建多种不同类型的折线图 并提供示例代码 创建模版 在绘图之前 我们可以先创建我们的
  • 软件测试|使用matplotlib绘制平行坐标系图

    简介 绘制平行坐标系图 Parallel Coordinates Plot 是一种用于可视化多维数据的强大方法 在这篇文章中 我们将介绍如何使用Matplotlib库创建平行坐标系图 以及如何解释和定制这种图表 我们将使用一个示例数据集来演
  • 软件测试|如何使用selenium处理iframe富文本输入框

    简介 在网页开发中 富文本框是常见的元素 用于输入富文本内容 如富文本编辑器或邮件编辑器 如果我们要使用Python和Selenium进行自动化测试或操作这种富文本框 可能会遇到一些挑战 本文将详细介绍如何使用Python和Selenium
  • 摸爬滚打多年的打工人,总结了三条职场真理,绝不假大空!

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读2 3k次 点赞85次 收藏11次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自
  • 新手也能看懂的【前端自动化测试入门】!

    前言 最近在网上搜索前端自动化测试相关的文档 但是发现网上的文章都是偏使用 没有把一些基础概念说清楚 导致后续一口气遇到一些 karma Jasmine jest Mocha Chai BDD 等词汇的时候很容易一头雾水 这次一方面整理一下
  • 一文让你了解UI自动化测试

    测试都起什么作用 是项目的保险 但不是项目的救命草 测试无实际产出 但作用远大于实际产出 测试是从项目维度保证质量 而不是测试阶段 UI自动化 下面简称自动化 基于UI进行自动功能测试 以Web端作为例子 一般的UI功能自动化都是基于HTM
  • Web自动化测试 —— cookie复用

    一 cookie简介 cookie是一些数据 存储于用户电脑的文本文件中 当web服务器想浏览器发送web页面时 在链接关闭后 服务端不会记录用户信息 二 为什么要使用Cookie自动化登录 复用浏览器仍然在每次用例开始都需要人为介入 若用
  • 软件测试面试:还没有自动化测试项目经验,3个项目帮你走入软测职场!

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读2 3k次 点赞85次 收藏11次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自

随机推荐

  • shell通过fio工具进行磁盘性能测试

    一 环境准备 已安装fio工具可忽略此步骤 准备一台centos服务器 要求能够访问互联网 安装fio工具 yum y install fio fio version 二 脚本内容 直接复制脚本到自己的主机中 我这里命名为fio sh bi
  • css玻璃雨滴效果,CSS实现雨滴动画效果的实例代码

    玻璃窗 今天我们要实现的是雨滴效果 不过实现雨滴前 我们先把毛玻璃的效果弄出来 没有玻璃窗 雨都进屋了 还有啥好敲打的 window position absolute width 100vw height 100vh background
  • 【C++】右值引用(极详细版)

    在讲右值引用之前 我们要了解什么是右值 那提到右值 就会想到左值 那左值又是什么呢 我们接下来一起学习 目录 1 左值引用和右值引用 1 左值和右值的概念 2 左值引用和右值引用的概念 2 左值引用和右值引用引出 3 右值引用的价值 1 补
  • Javascript 正则表达式使用手册 .

    一 正则表达式匹配常用语法 字符 规定表达式字符出现一次或多次 字符 规定表达式字符出现零次或多次 字符 规定表达式字符出现零次或一次 匹配的是字符的开头 匹配的是一行的开头 匹配的是字符的结尾 匹配的是一行的结尾 b 匹配的是一个词语的边
  • 通过FXmlFile构建xml时,注意xml规范

    直接说问题 构建xml时 用 FXmlFile dependencyXMLFile new FXmlFile dependencyXML EConstructMethod ConstructFromBuffer 失败 原因时 构建depen
  • Web功能实现(1.展示全部2.模糊查询3.修改用户4.删除用户)

    需求 1 展示全部 2 模糊查询 3 修改用户 4 删除用户 首先写数据库脚本 CREATE DATABASE 32312 IF NOT EXISTS test 40100 DEFAULT CHARACTER SET utf8 USE te
  • Wifi简介

    一 WIFI的基本架构 1 wifi用户空间的程序和库 external wpa supplicant 生成库libwpaclient so和守护进程wpa supplicant 2 hardware libhardware legary
  • 关于Mybatis逆向工程的一些查询操作

    查询所有数据不带参数的可以使用 selectByExampleWithBLOBs example 查询的数据需要按字段的排序的 example setOrderByClause 字段名 ASC 升序排列 desc为降序排列 去除重复的数据
  • GEE学习笔记 五十四:QGIS展示3D的高程数据

    写了一个多月的GEE中文教程文档 想到GEE头就疼 今天就写一篇不是GEE的文章 QGIS作为一个开源的非常好用的本地GIS工具 这里不在赘述 这里说它的一个比较有意思的内容 通过DEM数据展示3D地形 下载DEM 高程数据 比如从官网下载
  • 在Ubuntu 14.04 64bit上安装思维导图工具XMind

    这是一款对个人免费的工具 提供了一些基本功能 如果你需要更多功能 可以付费购买Pro版本 从下面的官网地址下载64bit的deb包 http www xmind net download linux 下面完成后 Ubuntu软件管理中心会自
  • Vue项目引入引入ElementUI

    目录 一 安装ElementUI 二 完整引入elementUI 1 在main js中引入elementUI 2 测试 三 按需引入elementUI 1 安装babel plugin component 2 修改 babelrc 文件
  • 权力的游戏第一季/全集Game of Thrones迅雷下载

    权力的游戏 是一部中世纪史诗奇幻题材的电视连续剧 该剧以美国作家乔治 R R 马丁的奇幻巨作 冰与火之歌 七部曲为基础改编创作 故事背景中虚构的世界 分为两片大陆 位于西面的 日落国度 维斯特洛 位于东面的类似亚欧大陆 维斯特洛大陆边境处发
  • mybatis-plus分页

    ApiOperation value 条件过滤分页查询列表 PostMapping list conditions public ResponseDTO
  • 配置wifi热点_WiFi就像“空气”要覆盖在生活的每个角落

    以高速发展的现代社会来说 热点其实含盖了两种意思 一个是被称作WiFi热点 另一个被称作新闻热点 那么今天所围绕的主题就是WiFi热点 WiFi热点就是将手机接收到的GPRS 3G或4G信号转化为wifi信号发出去的技术 手机必须有无线AP
  • springboot整合mybatis:查询语句,返回null

    springboot整合mybatis时 查询数据库数据时 返回结果为null 刚开始以为是数据库没连接上 结果增 改 删的其他语句则执行成功 但唯有查询语句始终返回null 一条数据一个null 该情况一般情况下是 mapper xml文
  • 深入理解Android之Gradle

    深入理解Android之Gradle 格式更加精美的PDF版请到 https pan baidu com s 1GfN6F8sOaKFAdz5y1bn3VQ下载 weibo分享失效 请各位到百度云盘下载 Gradle是当前非常 劲爆 得构建
  • GitHub上SSH keys和Deploy keys的区别

    平时安装一个git然后去GitHub进行SSH keys 配置最后就开始使用 然后换一台电脑再使用 ssh keygen t rsa C your email 生成一个ssh key 将其添加到自己到github中去 然而发现添加后这台电脑
  • conda安装PaddlePaddle

    最近在学深度学习 但是我打开c盘看见多了 keras之流的东西 又要安飞浆时突然想到conda的默认安装路径 Anaconda Prompt里执行 conda info env 查看已经安装的环境以及位置 进入百度飞浆官网 找到安装教程 W
  • 华为OD机试 - 最佳植树距离(Java & JS & Python)

    题目描述 按照环保公司要求 小明需要在沙化严重的地区进行植树防沙工作 初步目标是种植一条直线的树带 由于有些区域目前不适合种植树木 所以只能在一些可以种植的点来种植树木 在树苗有限的情况下 要达到最佳效果 就要尽量散开种植 不同树苗之间的最
  • 带你了解软件版本号的命名规则

    1 常见软件的版本号命名 软件 升级过程 说明 Linux Kernel 0 0 1 1 0 0 2 6 32 3 0 18 若用 X Y Z 表示 则偶数 Y 表示稳定版本 奇数 Y 表示开发版本 Windows Windows 98 W