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/
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
语义化版本控制(Semantic Versioning,简称 SemVer)是一种软件版本编号的规范,它提供了一套清晰的规则来定义版本号及其含义,便于开发者和用户理解每次版本更新的内容及影响。SemVer 的主要目的是为了提高软件版本管理的透明度,帮助用户判断是否应该升级到新版本,同时也为依赖管理工具提供了自动化的兼容性判断依据。
按照 SemVer 规范,一个版本号由三部分组成:主版本号.次版本号.补丁版本号
,即 x.y.z
的格式,其中 x、y、z 都是非负整数。这三个数字各自代表的意义如下:
此外,SemVer 还支持先行版本号(prerelease version),用于标记不稳定或测试中的版本。先行版本号通过在标准版本号后面加上 -
和一系列标识符(如 alpha、beta、rc 等)来表示,例如 1.0.0-alpha.1
。这些标识符没有固定的顺序或含义规定,但通常遵循行业惯例,如 alpha 表示内测版,beta 为公测版,rc(Release Candidate)意味着接近最终稳定版的候选版本。
最后,还有 LTS(长期支持版,Long Term Support)的概念,虽然不属于 SemVer 标准的一部分,但在开源软件中很常见。LTS 版本承诺提供较长时间的技术支持和安全更新,适合那些寻求稳定性的生产环境使用。
综上所述,SemVer 提供了一个标准化的框架,使得版本号不仅仅是简单的数字序列,而是能够传达出版本变更的重要信息,有助于维护软件生态的健康和可持续发展。