Dave Verwer 和 Sven A. Schmidt 于三年前(2019 年)创建了 Swift 包索引,目的为让 Swift 开发者能够轻松地搜索发现 Swift 包。目前该项目已正式获得苹果的赞助,使其成为 Swift 包相关事宜的官方网站。
顾名思义,Swift 包索引并不是完整的软件包仓库,而是专注于为软件包元数据编制索引,为开发者们在决定项目要使用的软件包时提供其完善的信息。
其所能回答的问题包括:某个软件包已经开发了多长时间、作者授权代码的方式、拉取请求和问题是否有人关注和回应等等。乍看之下,索引中软件包的页面可能与其 GitHub 页面相差无几,但我们将元数据的关注点放在了软件包的潜在用户相关方面。
目前,该索引所包含的超五千个软件包几乎所有都是托管在 GitHub 上。每个软件包都是克隆的,有不同 Swift 版本和平台兼容性构建的评估,并收集元数据以确认其基本信息。
我们目前所说的“构建系统”,平均每天处理五千个构建,共计五百余万次构建。这一操作是如此地庞大,以至于我们需要为其定制一个监控应用程序。
每个软件包的构建步骤结果,都总结在了一个兼容性矩阵中。
近期,包索引已开始向社区提供一个软件包文档的托管平台,文档对人们是否决定使用某个依赖关系而言往往是至关重要的。
任何软件包作者现在都可选择是否使用文档的生成,只要构建系统能够完成一次成功的构建,我们便会托管该版本号的 DocC 文档。
苹果推出 Swift 包管理作为 Swift 代码分发的官方工具,为已经失去功效的服务开辟了一条新赛道,其中就包含由 IBM 适时推出但未能获得开发者们足够重视的“IBM Swift 包分类”服务。IBM Swift 包分类先是被 Vapor 社区包分类 API所取代,随后又被 Swift 包注册取代,后者与刚刚获得苹果认可的 Swift 包索引并不是一回事。
与其他软件包仓库,如 CocoaPods 或 Carthage 相比,Swift 包管理的优势在于其与 Swift 构建系统的集成和在 Xcode 之中的紧密集成,因此,后者的使用对开发者而言几乎是完全透明的。不过,CocoaPods 和 Carthage 除了 Swift 包之外,也支持 Objective-C 包。
原文链接:
领取专属 10元无门槛券
私享最新 技术干货