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

版本号命名规范[通俗易懂]写在前面:本文章旨在总结备份、方便以后查询,由于是个人总结,如有不对,欢迎指正;另外,内容大部分来自网络、书籍、和各类手册,如若侵权请告知,马上删帖致歉。原文: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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 小米手机解锁BL以及获取Root权限(开发版)

    小米手机解锁BL以及获取Root权限(开发版)已经很久没有刷机了,现在有需要,就再刷一下。想起来自己以前刷机很流畅,现在还得查来查去的。所以就写了以下教程,主要是记录一下自己踩过的一些坑。我刷的手机是小米8,所以以下教程都是小米8为例,其他手机可能还有细微不同之处…….一、解锁BL:这是官方教程,很详细!我就是在教程中,把自己踩过的一些坑给罗列一下,增加一下自己的印象。解锁Bootloader的步骤:解锁前,请将版…

    2022年6月3日
    60
  • JS中对象转数组方法总结[通俗易懂]

    JS中对象转数组方法总结[通俗易懂]方法一:Array.from()方法例:letobj={0:’nihao’,1:’haha’,2:’gansha’,’length’:3}letarr=Array.from(obj)console.log(arr);注意:1.object中必须有length属性,返回的数组长度取决于length长度2.key值必须是…

    2025年11月4日
    4
  • 为什么说Python 是大数据全栈式开发语言

    为什么说Python 是大数据全栈式开发语言欢迎大家访问我的个人网站《刘江的博客和教程》:"www.liujiangblog.com"主要分享Python及Django教程以及相关的博客原文链接http://www

    2022年7月5日
    25
  • hdu 4944 FSF’s game(数论)

    hdu 4944 FSF’s game(数论)

    2022年1月1日
    154
  • 关于HTTP请求出现 405状态码 not allowed的解决办法

    关于HTTP请求出现 405状态码 not allowed的解决办法

    2021年10月12日
    56
  • MySQL相关问题整理

    MySQL相关问题整理备注:针对基本问题做一些基本的总结,不是详细解答!1.事务的基本要素2.事务隔离级别(必考)3.如何解决事务的并发问题(脏读,幻读)(必考)4.MVCC多版本并发控制(必考)5.为什么选择B+树作为索引结构(必考)6.索引B+树的叶子节点都可以存哪些东西(必考)7.查询在什么时候不走(预期中的)索引(必考)8.sql如何优化9.explain是如何解析sql的…

    2022年4月26日
    41

发表回复

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

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