此包提供了与 语义化版本控制 (2.0.0) 兼容的 Swift 协议。
通过遵循 SemanticVersioning
协议,它可以表示为一种类型,该类型表现为符合语义化版本控制 (2.0.0) 的软件版本。
import SemanticVersioning
// conforms to SemanticVersioning
struct MyAppVersion: SemanticVersioning {
let major: Int
let minor: Int
let patch: Int
let preRelease: PreRelease?
let buildMetaData: String?
}
可以从字符串字面量初始化。
let appVersion: MyAppVersion = "1.1.1"
// String literals can also contain pre-release and build metadata.
// let appVersion: MyAppVersion = "1.1.1-alpha"
// let appVersion: MyAppVersion = "1.1.1-alpha+build.1"
可比较和可相等。
if appVersion > "1.0.0" {
// Some operation when appVersion is greater than 1.0.0
} else if appVersion == "0.1.0" {
// Some operation when appVersion is 0.1.0
}
递增版本号。
print(appVersion)
// -> 1.1.1
print(appVersion.increment(.major))
// -> 2.0.0
print(appVersion.increment(.minor))
// -> 1.2.0
print(appVersion.increment(.patch))
// -> 1.1.2
使用宏验证版本格式。
import SemanticVersioningMacro
let validVersionString = #semanticVersioning("1.0.0") // Valid format!
let invalidVersionString = #semanticVersioning("1.0.a") // Invalid format! Compile error!
将 SemanticVersioning 添加到您的 Package.swift
依赖项
.package(url: "https://github.com/taji-taji/SemanticVersioning.git", from: "1.0.0")
将 SemanticVersioning 添加到您的 SemanticVersioning
目标的依赖项
.product(name: "SemanticVersioning", package: "SemanticVersioning"),
// If you want to use macro, add `SemanticVersioningMacro`.
.product(name: "SemanticVersioningMacro", package: "SemanticVersioning"),