开发者社区 问答 正文

语义化版本号( semver)使用说明

SemVer
根据国际主流的惯例,我们使用「语义化版本(Semantic Versioning)」的命名方式,有时简称 SemVer。


语义化版本号(以下简称「版本号」)的格式是:..。即使用三位非负整数,以点号 . 连接。


它们取值为非负整数,若大于0,不能再前方补零
如:1.4.15、6.2.0。


版本号
版本号分为x.y.z三位。分别代表了主版本号、次版本号、补丁版本号


如果只是修复bug,需要更新z位
如果新增了功能,但是向下兼容,需要更新y位
如果变动很大,向下不兼容,需要更新z位
先行版本号
在常规的版本号命名之上还有一个特殊类别,叫做预发版本号(prerelease version)。它表示当前版本是一个不稳定的版本,使用它时需要注意风险。


先行版本号的格式是 ..-.,即前半部分和常规版本号相同,然后跟上连接符 -,后面再跟上字母数字点号连接符。


常用的stage有:


alpha:内测版,内部交流或者专业测试人员测试用;
beta:公测版,专业爱好者大规模测试用,存在一些缺陷,该版本也不适合一般用户安装;
Gamma:比较成熟的测试版,与即将发行的正式版相差无几;
rc:是 Release Candidate的缩写,意思是发布倒计时,候选版本,处于Gamma阶段,该版本已经完成全部功能并清除大部分的BUG。到了这个阶段只会除BUG,不会对软件做任何大的更改。从Alpha到Beta再到Gamma是改进的先后关系,但RC1、RC2往往是取舍关系。
lts:长期维护,long term support 的缩写。
Stable:稳定版。在开源软件中,都有stable版,这个就是开源软件的稳定发行版。
如:1.0.0-alpha.1


原文转自:http://www.ihewro.com/archives/480/

展开
收起
小柒2012 2016-11-27 18:47:10 4501 分享 版权
阿里云 AI 助理回答

语义化版本控制(Semantic Versioning,简称 SemVer)是一种软件版本编号的规范,它提供了一套清晰的规则来定义版本号及其含义,便于开发者和用户理解每次版本更新的内容及影响。SemVer 的主要目的是为了提高软件版本管理的透明度,帮助用户判断是否应该升级到新版本,同时也为依赖管理工具提供了自动化的兼容性判断依据。

按照 SemVer 规范,一个版本号由三部分组成:主版本号.次版本号.补丁版本号,即 x.y.z 的格式,其中 x、y、z 都是非负整数。这三个数字各自代表的意义如下:

  1. 主版本号 (x):当做了不兼容的 API 更改时增加。这意味着新版本可能无法与旧版本兼容,使用者需要做相应的调整才能使用新版本。
  2. 次版本号 (y):当向后兼容的功能增加时增加。也就是说,新版本添加了功能,但不会破坏现有功能的使用。
  3. 补丁版本号 (z):当进行了向后兼容的错误修复时增加。这包括所有不影响公共 API 的内部更改和问题修正。

此外,SemVer 还支持先行版本号(prerelease version),用于标记不稳定或测试中的版本。先行版本号通过在标准版本号后面加上 - 和一系列标识符(如 alpha、beta、rc 等)来表示,例如 1.0.0-alpha.1。这些标识符没有固定的顺序或含义规定,但通常遵循行业惯例,如 alpha 表示内测版,beta 为公测版,rc(Release Candidate)意味着接近最终稳定版的候选版本。

最后,还有 LTS(长期支持版,Long Term Support)的概念,虽然不属于 SemVer 标准的一部分,但在开源软件中很常见。LTS 版本承诺提供较长时间的技术支持和安全更新,适合那些寻求稳定性的生产环境使用。

综上所述,SemVer 提供了一个标准化的框架,使得版本号不仅仅是简单的数字序列,而是能够传达出版本变更的重要信息,有助于维护软件生态的健康和可持续发展。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答
问答地址: