Skip to content

SemVer 规范

关键

versions-skills 支持 SemVer 2.0.0 严格校验,同时兼容更宽松的「版本号」概念。

📐 严格 SemVer

IsSemver() 用正则严格判定,要求:

  • 三段MAJOR.MINOR.PATCH
  • 无前导零01.02.03 非法
  • 可选 v 前缀
  • 可选预发布段:-alpha.1-rc.2
  • 可选构建元数据:+build.7
go
versions.NewVersion("1.2.3").IsSemver()               // true
versions.NewVersion("1.2.3-alpha.1+build.7").IsSemver() // true
versions.NewVersion("1.2").IsSemver()                 // false(不够3段)
versions.NewVersion("01.2.3").IsSemver()              // false(前导零)

🔍 Validate vs ValidateSemver

方法严格度要求
Validate()基本校验有数字部分且非负
ValidateSemver()严格 SemVer三段 + 无前导零 + 字符符合规

🆚 宽松版本号

versions-skills 的 Version 比 SemVer 宽松——1.2v1.2.3.41.0.0-beta1 都能解析。只有需要 SemVer 合规性时才用 IsSemver / ValidateSemver

📚 延伸

基于 MIT 协议发布