Swift Package Index 标志。Swift Package Index

追踪 Swift 6 严格并发检查的数据竞争安全性采用情况。有多少软件包为 Swift 6 做好准备

介绍自定义软件包集合


我们在 WWDC 2021 之前首次推出对软件包集合的支持,作为向 Xcode 项目添加软件包的便捷方式。

此功能的第一个版本为作者或组织的全部软件包生成一个软件包集合。例如,您可以通过 他们的作者页面 复制 Apple 软件包的软件包集合链接,并 将其添加到 Xcode

人工管理的集合是合乎逻辑的下一步,我们收到了 SSWG 实现此功能的请求。今天,我们添加了为关键社区工作创建软件包集合的功能。

它是如何工作的?

自定义集合的工作方式与我们的软件包列表类似。但是,您不是将软件包添加到 packages.json,而是将集合索引文件(其内容由维护)的位置添加到 custom-package-collections.json

以下是它的外观,以 Swift 服务器工作组毕业软件包为例

{
    "key": "sswg-graduated",
    "name": "Graduated",
    "description": "SSWG packages that are in 'graduated' state",
    "badge": "SSWG",
    "url": "https://swift.org/api/v1/sswg/incubation/graduated.json"
}

该 JSON 中的字段决定了我们如何查找和显示自定义软件包集合。

key 字段指定软件包集合在 Swift Package Index 网站上可用的 URL

Safari's Address Bar with the package collection URL in it highlighting the part of the URL related to the key field.

name 是其在集合页面以及软件包页面上的显示名称,我们在软件包页面上显示软件包对软件包集合的成员资格

The custom package collection badge highlighted on a package page.

description 字段简要解释了此自定义集合的动机。它用于提供信息,不会显示。

可选的 badge 字段用于设置软件包页面上集合名称旁边的小徽章的样式。如果省略,则集合将没有徽章。

最后,url 字段指向您维护属于该集合的软件包 URL 列表的位置。这些应采用 https://github.com/author/package.git 格式。特别是,请确保 URL 方案为 https 并且包含 .git 后缀。

我们将列出的软件包与 Swift Package Index 中所有软件包的列表进行匹配,并且仅包含我们可以匹配的软件包。请注意,匹配不区分大小写。

例如,这是 SSWG 毕业软件包集合的软件包列表

[
  "https://github.com/apple/swift-crypto.git",
  "https://github.com/apple/swift-log.git",
  "https://github.com/apple/swift-metrics.git",
  "https://github.com/apple/swift-nio.git",
  "https://github.com/apple/swift-statsd-client.git",
  "https://github.com/grpc/grpc-swift.git",
  "https://github.com/swift-server-community/APNSwift.git",
  "https://github.com/swift-server/async-http-client.git",
  "https://github.com/vapor/jwt-kit.git",
  "https://github.com/vapor/multipart-kit.git",
  "https://github.com/vapor/postgres-nio.git",
  "https://github.com/vapor/vapor.git",
]

如何提议新的自定义集合

我们将根据具体情况考虑向自定义集合列表添加对 Swift 软件包生态系统有利的软件包列表。

此类列表应由活跃于 Swift 开源社区的团体或组织管理,并对 Swift 生态系统的很大一部分具有吸引力。

SSWG 集合的初始设置给出了这些要求的示例

  • 列表的内容由 Swift 服务器工作组管理。
  • 虽然主要面向服务器端开发,但许多软件包(例如 swift-crypto)即使对于不使用服务器端 Swift 的开发人员也相关。
  • 在 Swift Package Index 上显示这些软件包的成熟度级别有助于开发人员找到满足其需求的高质量软件包。

如果您有疑问、想提议新的自定义集合,或在 PackageList 存储库 上打开问题或拉取请求进行讨论,请联系我们


关于此博客

Swift Package Index 是 Swift 软件包的搜索引擎和元数据索引。我们的主要目标是帮助您更好地决定您在应用和项目中包含的依赖项。如果您是新来的用户,最好的入门方式是搜索软件包