语义化版本号工具

在线语义化版本工具,校验和比较 semver 版本号,计算 major/minor/patch 升级,支持范围比较和预发布版本,适合软件版本管理和发布。

工具功能

本工具用于解析和对比符合语义化版本规范(SemVer)的版本号,支持解析版本号结构、对比两个版本大小、判断升级类型、校验格式合法性,并可基于当前版本生成下一个版本号。

使用方法

语义化版本规范

标准语义化版本格式为:主版本号.次版本号.修订版本号[-预发布标识]

部分说明
主版本号(Major)当你做了不兼容的 API 修改时,递增主版本号
次版本号(Minor)当你做了向下兼容的功能性新增时,递增次版本号
修订版本号(Patch)当你做了向下兼容的问题修复时,递增修订版本号
预发布标识(Prerelease)可选,用于标记还未发布的预览版本,优先级低于正式稳定版本

版本比较规则

版本比较优先比较主版本号,主版本号大则版本更大;主版本号相同则比较次版本号,依此类推。预发布版本优先级低于同核心版本号的稳定版本。相同核心版本号时,预发布标识逐段比较,数字段按数值比较,字符串按字典序比较。

什么是语义化版本号?

语义化版本号(Semantic Versioning,简称 SemVer)是一种版本命名规范,通过版本号的不同部分传递版本变化的类型,帮助开发者和使用者理解版本变更的影响,规范格式为:主版本号.次版本号.修订版本号[-预发布标识]。

支持哪些版本格式?

支持标准的 major.minor.patch 格式,以及带预发布标识的 major.minor.patch-prerelease 格式,也支持带 v 前缀的格式(如 v1.2.3),不支持带 build 元数据的格式。

生成下一个版本号的规则是什么?

- 生成 Major 版本:当前主版本号 +1,次版本号和修订版本号重置为 0,移除预发布标识
- 生成 Minor 版本:当前次版本号 +1,修订版本号重置为 0,移除预发布标识
- 生成 Patch 版本:当前修订版本号 +1,移除预发布标识
- 生成 Prerelease 版本:如果已有预发布标识,且最后一段是数字则将该数字 +1;否则添加 .1 后缀;如果没有预发布标识,则默认生成 alpha.1 标识。

为什么两个相同核心版本号,预发布版本比稳定版本小?

这符合语义化版本规范的约定,预发布版本是还未正式发布的不稳定版本,正式稳定版本优先级高于同核心版本号的预发布版本。