Как указать альфа-версию модуля в Package.swift?

Я хочу добавить библиотеку под названием Markdown для моего проекта Swift, который является серверной сборкой на 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?

1 ответ

Решение

Вы можете указать тег версии с prereleaseIdentifiers

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

Больше информации
У Зависимости пакета есть много удобных инициализаторов

.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 следует семантическому версионированию и имеет следующий формат.

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

При создании экземпляра версии вы также можете указать идентификаторы prerelease и buildMetadata.

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

Вы можете найти больше в репозитории Swift Package Manager

Другие вопросы по тегам