Swift 语义化版本控制

一个实现了 SemVer 2.0.0 的小型库。它的设计宗旨是简单易用,并且可以轻松地集成到任何 Swift 代码库中。

示例

假设你有一个应用程序 2.0 版本的候选版本。以下都是等效的:

_ = SemVer(major: 2, minor: 0, preRelease: ["RC", 1])
_ = SemVer(2,0,0, preRelease: ["RC",1])
_ = SemVer("2.0-RC.1")
_ = SemVer("2.0.0-RC.1")

这些也可以使用 Swift 比较运算符进行比较。例如,以下所有都是 true:

SemVer("2.0") == SemVer("2.0.0")
SemVer("1.2.0") < SemVer("2.0.0")
SemVer("1.2.0") <= SemVer("2.0.0")
SemVer("12.0") > SemVer("2.9.9")

由于这符合语义化版本 2.0.0,尝试使用无效的语义化版本字符串将会产生一个 nil 对象。

nil == SemVer("Obviously Bad")
nil == SemVer("1")
nil == SemVer("-2.0")
nil == SemVer("2.0-β")
nil == SemVer("2.0-beta_1")
nil == SemVer("1.-2")
nil == SemVer("1.2.-3")
nil == SemVer("1.2.3.4")

许可协议

本库采用 BH-1-PS Opus 2 许可协议。