版本号命名规范[通俗易懂]

版本号命名规范[通俗易懂]写在前面:本文章旨在总结备份、方便以后查询,由于是个人总结,如有不对,欢迎指正;另外,内容大部分来自网络、书籍、和各类手册,如若侵权请告知,马上删帖致歉。原文:http://wsfdl.com/devops/2016/09/27/%E7%89%88%E6%9C%AC%E5%8F%B7.html#首先看看某些常见软件的版本号:LinuxKernel:0.0.1,1.0.0,2.6.32,3.0.18…,若用X.Y.Z表示,则偶数Y表示稳定版本,奇数Y表示开发版本。Windo

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

写在前面:

本文章旨在总结备份、方便以后查询,由于是个人总结,如有不对,欢迎指正;另外,内容大部分来自网络、书籍、和各类手册,如若侵权请告知,马上删帖致歉。

原文:http://wsfdl.com/devops/2016/09/27/%E7%89%88%E6%9C%AC%E5%8F%B7.html#

首先看看某些常见软件的版本号:

  • 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.0Semantic Versioning 3.0.0 选择性的整理出版本号命名规则指南。

版本号命名规则指南

版本号的格式为 X.Y.Z(又称 Major.Minor.Patch),递增的规则为:

  • X 表示主版本号,当 API 的兼容性变化时,X 需递增。
  • Y 表示次版本号,当增加功能时(不影响 API 的兼容性),Y 需递增。
  • Z 表示修订号,当做 Bug 修复时(不影响 API 的兼容性),Z 需递增。

详细的规则如下:

  1. X, Y, Z 必须为非负整数,且不得包含前导零,必须按数值递增,如 1.9.0 -> 1.10.0 -> 1.11.0
  2. 0.Y.Z 的版本号表明软件处于初始开发阶段,意味着 API 可能不稳定;1.0.0 表明版本已有稳定的 API。
  3. 当 API 的兼容性变化时,X 必须递增,Y 和 Z 同时设置为 0;当新增功能(不影响 API 的兼容性)或者 API 被标记为
    Deprecated 时,Y 必须递增,同时 Z 设置为 0;当进行 bug fix 时,Z 必须递增。
  4. 先行版本号(Pre-release)意味该版本不稳定,可能存在兼容性问题,其格式为:X.Y.Z.[a-c][正整数],如 1.0.0.a1,1.0.0.b99,1.0.0.c1000。
  5. 开发版本号常用于 CI-CD,格式为 X.Y.Z.dev[正整数],如 1.0.1.dev4。
  6. 版本号的排序规则为依次比较主版本号、次版本号和修订号的数值,如 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。
  7. 注意:版本一经发布,不得修改其内容,任何修改必须在新版本发布!

一些修饰的词

  • alpha:内部版本
  • beta:测试版
  • demo:演示版
  • enhance:增强版
  • free:自由版
  • full version:完整版,即正式版
  • lts:长期维护版本
  • release:发行版
  • rc:即将作为正式版发布
  • standard:标准版
  • ultimate:旗舰版
  • upgrade:升级版
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/195038.html原文链接:https://javaforall.net

(0)
上一篇 2025年10月25日 上午8:22
下一篇 2025年10月25日 上午9:01


相关推荐

  • 安森美半导体强化汽车战略,倾力服务中国汽车市场

    安森美半导体强化汽车战略,倾力服务中国汽车市场从近年来的全球汽车市场发展来看 石油价格在不断影响消费者行为并成为了汽车创新的推动力 虽然欧洲债务危机影响了汽车市场需求 但美国汽车市场已经开始复苏 而自 2010 年开始 新兴国家占全球汽车市场份额已超过了 50 中国更已成为世界第一大汽车市场 nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp 在全球汽车市场发展过程中 像安森美半导体这样的高能效电子产品首要硅方案供应商对汽车领域积极发展 在动力系统 车身 信息娱乐 电源 车

    2026年3月16日
    2
  • top命令输出解释以及load average 详解及排查思路

    top命令输出解释以及load average 详解及排查思路昨天nagios报警warning,没来得及留下报警截图,nagios值设定的值是当1分钟多于15个进程等待,5分钟多于10个,15分钟多于5个则为warning状态当1分钟多于30个进程等待,5分钟多于25个,15分钟多于20个则为critical状态————————————————————-

    2022年7月17日
    24
  • 按位异或的深入理解[通俗易懂]

    按位异或的深入理解[通俗易懂]异或运算:首先异或表示当两个数的二进制表示,进行异或运算时,当前位的两个二进制表示不同则为1相同则为0.该方法被广泛推广用来统计一个数的1的位数!参与运算的两个值,如果两个相应bit位相同,则结果为0,否则为1。即:  0^0=0,   1^0=1,   0^1=1,   1^1=0按位异或的3个特点:(1)0^0=0,0^1=1 0

    2022年6月6日
    48
  • 微服务【用SpringAMQP技术实现RabbitMq的六种消息队列】第4章

    微服务【用SpringAMQP技术实现RabbitMq的六种消息队列】第4章本文主要介绍 用 SpringAMQP 技术进行实现消息队列模型 包括 简单队列模型 WorkQueue 发布 订阅 Fanout amp Direct amp Topic 以及消息转换器

    2026年3月18日
    3
  • Java网络编程基础(Netty预备知识)[通俗易懂]

    今天在家休息,闲来无事,写篇博客,陶冶下情操~~~我是分割线最近在重新学习Java网络编程基础,以便后续进行Netty的学习。整理了一下重要的基础知识点,供大家参考。正在读这篇随笔的你是否遇到

    2022年2月16日
    40
  • 选项卡html js代码,js选项卡

    选项卡html js代码,js选项卡一 js 实现简单选项卡与自动切换效果的方法设置一个标识数字置为 0 写一个每过几秒标识 1 执行切换效果的函数 然后执行 当标识超过当前选项卡长度让标识置为 0 在鼠标移到选项卡的时候关闭定时器 鼠标移走的时候打开定时器 无标题文档 body ul li margin 0 padding 0 font 12px 1 5arial ul li list style none wrap width

    2026年3月19日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号