Swift 中的语义化版本控制实现。Semver 代表一个符合 语义化版本控制规范 的语义化版本。
Semver 不包含任何外部依赖项。以下是当前支持的选项:
# Podfile
user_framework!
target 'YOUR_TARGET_NAME' do
pod 'Semver.swift'
end
替换 YOUR_TARGET_NAME,然后在 Podfile 目录中,输入
$ pod install
创建一个 Package.swift 文件。
// swift-tools-version:5.1
import PackageDescription
let package = Package(
name: "NAME",
dependencies: [
.package(url: "https://github.com/glwithu06/Semver.swift.git", from: "SEMVER_TAG")
],
targets: [
.target(name: "NAME", dependencies: ["Semver"])
]
)
替换 SEMVER_TAG,然后输入
$ swift build
可以直接实例化 Semver
let version = Semver(major: 1, minor: 23, patch: 45, prereleaseIdentifiers: ["rc", "1"], buildMetadataIdentifiers: ["B001"])
minor 和 patch 是可选参数,默认为 "0"。
prereleaseIdentifiers 和 buildMetadataIdentifiers 是可选参数,默认为 []。
您可以从字符串创建 Semver。
let version = try Semver(string: "1.23.45-rc.1+B001")
或者从数字创建。
let version = try Semver(number: 1.23)
let version = try Semver(number: 10)
如果版本无效,它会抛出一个 ParsingError。
Semver 符合 ExpressibleByStringLiteral, ExpressibleByIntegerLiteral, ExpressibleByFloatLiteral。
它可以将 String 转换为 Semver。
let version: Semver = "1.23.45-rc.1+B001"
或者将 Numeric 转换为 Semver。
let version: Semver = 1
let version: Semver = 1.23
Semver 表示 "0.0.0"。它不会抛出任何错误。
实现了默认的比较运算符 (< , <= , > ,>= ,== , !=)。
这将根据 语义化版本控制规范 比较主版本号、次版本号、补丁版本号以及预发布标识符。
欢迎任何 pull request 和 bug 报告!
请随时提交 pull request。