swift-outdated

一个 Swift 子命令,用于检查您的依赖项是否有可用的更新。这尤其适用于超出您版本要求的更新。

深受 cargo-outdated 的启发。

调用 swift package update 仅会将更新到您指定版本要求范围内的最新可用要求,这完全合理,但如果您不定期检查依赖项的存储库,您可能会错过有新的主要版本可用。

此工具旨在通过允许快速检查是否有任何要求可能已过时来帮助解决此问题,它通过检查依赖项的远程 git 标签来查看是否有超出您的版本要求的版本可用。

安装

Homebrew

可以使用 Homebrew 安装 swift-outdated

$ brew install swift-outdated

Mint

也可以通过 Mint 安装 swift-outdated

$ mint install kiliankoe/swift-outdated

用法

由于 swift-outdated 以其名称安装,因此可以通过 swift outdated 像 Swift 本身的子命令一样调用它。

$ swift outdated
| Package               | Current | Latest | URL                                                |
|-----------------------|---------|--------|----------------------------------------------------|
| rainbow               | 3.2.0   | 4.0.1  | https://github.com/onevcat/rainbow.git             |
| swift-argument-parser | 1.1.4   | 1.2.2  | https://github.com/apple/swift-argument-parser.git |

这会列出所有过时的依赖项、当前解析的版本以及它们上游存储库中可用的最新版本。

此包还公开了一个名为 Outdated 的库目标。如果您想将该功能集成到您的项目中,请使用它。

这是一个基本用法示例。

import Outdated

let pins = try SwiftPackage.currentPackagePins(in: .current)
let packages = await SwiftPackage.collectVersions(for: pins, ignoringPrerelease: true)
packages.output(format: .markdown)

Xcode

swift-outdated 还支持使用 Swift 包进行依赖项管理的 Xcode 项目。可以手动在您的存储库中运行它,或设置一个 Run Script Phase。在后一种情况下,swift-outdated 会针对您过时的依赖项发出警告。

Xcode warnings screenshot

但是请注意,以这种方式使用 Run Script Phase 将在每次构建时获取所有依赖项的可用版本,这将使您的构建时间增加一两秒。您最好每隔一段时间手动运行它。