swift-evolution-metadata-extractor

Swift Evolution 仪表板的 JSON 元数据生成器。

概述

swift-evolution-metadata-extractor 工具读取 swift-evolution 仓库的主分支,提取提案元数据,并生成一个 JSON 文件,用作 Swift Evolution 仪表板 的数据源。

除了提取工具外,此软件包还提供 EvolutionMetadataModel 库,该库为进化元数据 JSON 文件提供编码和解码的类型。此库旨在供驱动进化仪表板的元数据文件的客户端使用。

用法

swift-evolution-metadata-extractor

不带任何参数运行命令将执行以下操作

  1. swift-evolution 仓库获取当前提案列表
  2. swift.org 获取之前的元数据结果
  3. 获取并提取有更改的提案的元数据
  4. 将提取的元数据写入命令所在目录中的 evolution.json 文件

默认行为可以通过多种方式配置。

输出路径

使用 --output-path 选项 (-o) 来指定不同的输出位置或文件名。

如果指定的路径不存在,该工具将尝试创建必要的目录。

强制提取

默认情况下,会检查先前提取的提案的 SHA 值,以避免处理没有更改的提案。

使用 --force-extract 选项强制提取所有或指定的提案进行获取和处理。

快照路径

在开发期间,使用 --snapshot-path 选项指定本地 evosnapshot 目录作为数据源。

有关快照的更多信息,请参阅 用于开发和测试的快照

详细输出

在工具运行时,使用 --verbose 选项 (-v) 获取详细输出。

环境变量

使用可选的环境变量来提供代理和授权信息。

HTTP_PROXY | http_proxy
如果存在,HTTP 网络请求将使用指定的代理。

HTTPS_PROXY | https_proxy
如果存在,HTTPS 网络请求将使用指定的代理。

GITHUB_TOKEN
如果存在,提供的令牌将作为授权标头包含在 GitHub API 请求中。

EvolutionMetadataModel 库

该软件包提供 EvolutionMetadataModel 库。该库定义了 CodableEquatableSendable 值类型,这些类型适用于解码生成的进化元数据文件。

用于开发和测试的快照

使用 snapshot 子命令来记录快照。

swift-evolution-metadata-extractor snapshot

快照是一个输入文件和预期结果的目录,用于开发和测试。快照目录使用文件扩展名 evosnapshot,但在 macOS 上未正式声明为 bundles。

也可以手动构建 Ad hoc 快照,以创建用于特定测试的内容,例如验证是否在格式错误的提案中正确检测到验证错误。

选项

snapshot 子命令具有与 extract 命令选项类似的选项

快照结构和内容

快照是一个带有扩展名 evosnapshot 的目录,其中包含具有众所周知名称的文件。

Ad hoc 快照 中所述,快照可以包含文件子集。

例如,由 snapshot 子命令生成的快照不包含 previous-results.json 文件。

Ad hoc 快照

为了进行测试,可以在手动构建的快照中表示各种情况,这些情况代表格式错误的提案或很少遇到的状态。

例如,ExtractionTests 目标中的 Malformed.evosnapshot 用于测试内容验证警告和错误。

这些 ad hoc 快照通常仅包含 proposals 目录和 expected-results.json 文件。

通常,快照中不存在 previous-results.json 文件,但可能存在于用于测试使用先前结果或强制提取的快照中。