版本号命名指南

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


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


版本号命名规则指南


版本号的格式为 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:升级版

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: CMMI是一种软件开发的规范和模型,它提供了一系列的最佳实践和可度量的标准,帮助软件开发团队提高效率和质量。 软件的版本号命名规范是为了方便软件的管理和追踪,以及方便用户对不同版本的软件进行判断和选择。在CMMI中,软件版本号命名通常遵循以下规范: 1. 主版本号:主版本号用来表示软件的重大更新和变化。当软件有较大的功能改进和重要的架构调整时,主版本号会递增。例如,从1.x版本升级到2.x版本。 2. 次版本号:次版本号用来表示软件的次要更新和增强功能。当软件有一些功能的改进或者新增了一些小功能时,次版本号会递增。例如,从1.0版本升级到1.1版本。 3. 修订版本号:修订版本号用来表示软件的错误修复和小幅度改进。当软件修复了一些问题或者做了一些小的改进时,修订版本号会递增。例如,从1.1版本升级到1.1.1版本。 4. 编译版本号:编译版本号用来表示软件的构建次数和版本控制。每次软件的构建会生成一个唯一的编译版本号,用于标识软件的具体构建版本。例如,1.1.1.1001表示第1001次构建的1.1.1版本。 总之,CMMI软件的版本号命名规范遵循主版本号、次版本号、修订版本号和编译版本号的层次结构,通过递增不同层次的号码来表示软件的更新和变化。这样的命名规范可以帮助软件开发团队和用户更好地管理和追踪软件的版本信息。 ### 回答2: CMMI(Capability Maturity Model Integration)软件版本号命名规范主要是为了方便软件开发者和用户识别不同版本的软件,并且追踪软件的发展进程。下面是一般的CMMI软件版本号命名规范: 1. 主版本号(Major Version):主版本号通常是一个整数,表示软件的主要变化或者重要功能更新。主版本号的改变通常会导致软件不向后兼容,因此用户需要做相应的更新。 2. 次版本号(Minor Version):次版本号通常也是一个整数,表示软件的较小的变化或者修复的bug,同时保持与主版本号兼容。次版本的改变通常会提供新的功能或者性能改进。 3. 补丁级别(Patch Level):补丁级别通常是一个小数,表示对软件进行的修复或者改进,通常是针对已知的问题进行解决。补丁级别的改变通常不会提供新功能,而是重点解决已知的错误。 另外,还有一些特殊的命名规范可以参考: 1. Alpha版本:通常指软件的内部测试版本,还在开发阶段,可能存在较多的问题。 2. Beta版本:通常指软件的公开测试版本,用户可以使用并提供反馈,开发团队会根据反馈进行完善。 3. Release候选版本:通常指软件开发团队认为已经达到发布标准,但在正式发布之前,需要进一步测试和验证。 总结而言,CMMI软件版本号命名规范旨在提供一个标识软件版本的系统,方便开发者和用户理解和管理软件的不同版本,以及能够追踪软件的发展历程。 ### 回答3: CMMI(Capability Maturity Model Integration)是一个用于评估和改进组织软件开发能力的模型。CMMI的软件版本号命名规范是根据其发布和改进的时间点来命名的。 通常情况下,CMMI的软件版本号采用三位数字表示,例如1.3,2.0等。第一个数字表示主版本号,主要表示对模型整体结构和内容的较大改进。当主版本号发生变化时,通常会有一些重大的变化和创新。第二个数字表示次版本号,用于表示对模型细节和指南的修改和更新。当次版本号变化时,意味着在原有的模型基础上进行了一些较小的调整和改进。第三个数字表示修订版本号,用于表示对模型bug修复和一些小的改进。修订版本号的变化通常只影响到模型的某些细节部分,对整体结构无显著影响。 除了三位数字外,CMMI的软件版本号还可能后跟一个字母,例如1.3a或2.0b。这些字母代表补丁版本,用于表示在某个主次版本下的额外修订,通常是为了解决某些已知的问题或添加一些新的功能。 总之,CMMI的软件版本号命名规范为主版本号.次版本号.修订版本号[字母],用以表示对CMMI模型的不同程度的改进和修复。这样的命名规范方便用户理解和追踪CMMI的发展历程,同时也使得CMMI模型的版本管理更加清晰和系统化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值