如何在 Package.swift 中指定模块的 alpha 版本?

How to specify alpha version of a module in Package.swift?

我想为我的 Swift 项目添加一个名为 Markdown 的库,该项目是基于 Vapor 的服务器端构建。

不过,好像库已经放弃支持Swift 2.x,现在最新版本是1.0.0-alpha,它是基于Swift 3.x.

由于我的项目是基于Swift 3.x,我想获取库。该文件说如下:

.Package(url: "https://github.com/crossroadlabs/Markdown.git", majorVersion: 0)

但是,如何在 Package.swift 中指定模块的 alpha 版本?

您可以使用 prereleaseIdentifiers 指定版本标签

Package(url: "http://...", "1.0.0-alpha")

更多信息
Package Dependency 有很多方便的初始值设定项

.Package(url: String, versions: Range<Version>)
.Package(url: String, versions: ClosedRange<Version>)
.Package(url: String, majorVersion: Int)
.Package(url: String, majorVersion: Int, minor: Int)
.Package(url: String, _ version: Version)

使用示例:

.Package(url: "https://github.com/Markdown.git", versions: Version(1,0,0)..<Version(2,0,0))
.Package(url: "https://github.com/Markdown.git", majorVersion: 1)
.Package(url: "https://github.com/Markdown.git", majorVersion: 1, minor: 4)
.Package(url: "http://github.com/Markdown.git", Version(1,0,0))
.Package(url: "http://github.com/Markdown.git", "1.0.0")

Version 结构遵循 semantic versioning 并具有以下格式。

Version(
    _ major: Int,
    _ minor: Int,
    _ patch: Int,
    prereleaseIdentifiers: [String] = [],
    buildMetadataIdentifier: String? = nil
)

创建 Version 实例时,您还可以指定预发布和构建元数据标识符

Version(0,1,0, prereleaseIdentifiers: ["alpha"], buildMetadataIdentifier: "10")

您可以在 Swift Package Manager 存储库中找到更多信息