语义化版本规范
语义化版本规范(Semantic Versioning,简称 SemVer)是一种软件版本号命名约定,旨在提供一种简单而清晰的版本号格式,使开发者更容易理解软件版本之间的变化和兼容性。
详细的标准可以在semver.org查看
组成
SemVer 的版本号由三个数字组成:主版本号、次版本号和修订版本号,形式为 "MAJOR.MINOR.PATCH"。
主版本号(MAJOR):当进行不兼容的 API 更改时,应该增加主版本号。
主版本号的增加意味着与上一个版本有不兼容的更新。
次版本号(MINOR):当向后兼容地添加功能时,应该增加次版本号。
主版本号的增加表示兼容当前版本的更改或增加功能。
修订版本号(PATCH):当进行向后兼容的 bug 修复时,应该增加修订版本号。
修订版本号的增加表示修复 bug,或者做一些优化,功能上没有什么变化。
此外,SemVer 规范还允许在版本号后添加预发布版本号和版本号元数据。
- 预发布版本号:在版本号后用 "-" 分隔,用来表示开发阶段或测试版本,如 "1.0.0-alpha.1" 或 "1.0.0-beta.2"。
- 版本号元数据:在版本号后用 "+" 分隔,用来表示额外的信息,如构建号或提交哈希值,如 "1.0.0+20130313144700"。
规则
版本号只能递增,不能回退。也就是说下一个版本号必须大于当前版本号。
版本号的高位增加,低位的要清零
例如,1.2.3 增加主版本号,应该是 2.0.0,而不是 2.2.3。
起始版本
SemVer 的起始版本号一般为 "0.1.0"。但也不是必需为 "0.1.0",只是说一个约定俗成的习惯。
主版本号为 0,表示这是一个初始版本,并没有正式发布
版本后缀
一些项目/软件在版本的后面会加上后缀,这些后缀通常表示软件项目的不同开发阶段或版本状态。下面是一些常见的版本后缀及其含义:
Alpha 版本(alpha): 这是软件开发的早期阶段,通常是在内部测试阶段。Alpha 版本可能包含基本的功能,但可能存在许多错误和缺陷。
Beta 版本(beta): Beta 版本是相对于 Alpha 版本的下一阶段,通常是向有限的外部用户群进行测试。在 Beta 阶段,开发人员通常修复了一些已知的问题,但仍可能存在未发现的问题。
候选版本(release candidate,通常缩写为 rc): Release Candidate 是一个预发布的版本,认为它可能是最终发布的版本,除非发现严重问题。RC 版本之后通常不再添加新功能,而主要集中在解决潜在的 bug。
正式版本(release): 正式版本是最终发布的版本,它已经通过了所有的测试阶段,并被认为是相对稳定和可靠的版本。正式版本通常是面向广大用户的版本。
稳定版本(stable): 有些项目可能使用稳定版本这个术语来表示经过一段时间测试并证明稳定性的版本,相对于一些可能仍在开发中的较新版本。