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。