vcpkg PR 审查清单

修订版:1

概述

本文档提供了带批注清单,vcpkg 团队成员使用该清单对传入拉取请求应用“已审查”标签。 如果拉取请求不符合上述任一点,我们可能会要求参与者进行必要的更改,然后才能合并变更集。

如果你觉得此清单可以改进,请随意创建问题或拉取请求。 修改清单内容时,请递增修订号。

清单

可以通过复制附加到每个项目代码的链接地址来链接 GitHub 注释中的任何一个清单项。

c000001:不使用已弃用的帮助程序函数

有关详细信息,请参阅我们的维护者指南和策略

c000002:"port-version" 字段已更新

有关详细信息,请参阅我们的维护者指南和策略

c000003:新端口包含用英语编写的 "description" 字段

长度只有一句或几句的说明很有用。 尽可能考虑使用其 README.md 或类似内容的库的官方说明。 自动翻译是可以接受的,我们很乐意为参与者清理英语翻译。

有关详细信息,请参阅我们的清单文件文档

c000004:变更集中不存在不必要的注释

有关详细信息,请参阅我们的维护者指南和策略

c000005:下载的存档会进行版本控制(如果可用)为了确保存档内容不会更改,下载的存档最好具有关联的版本标记,可以随端口的 "version" 一起递增。

c000006:新端口通过库正式支持的三元组 CI 检查

为了确保 vcpkg 端口高质量,我们要求传入的端口支持相关库的官方平台。

c000007:修补程序仅修复 vcpkg 特定问题

如果可能,应将库源代码的修补程序上游到库的官方存储库。 在对库的存储库拉取请求时打开将有助于改进所有人而不仅仅是 vcpkg 用户的库。

c000008:新端口从官方源下载源代码(如果可用)

为了尊重库作者和确保代码安全,请让端口从官方源下载源代码。 如果原始源代码不可用,且社区对维护相关库有浓厚兴趣,我们可以破例。

c000009:正确命名端口和端口功能

为了方便用户使用,我们希望端口和端口功能的名称直观,并与官方源代码和其他软件包管理器中的对应名称接近。 如果不确定端口或端口功能的命名,建议使用搜索引擎查看 repology.org、packages.ubuntu.com 或搜索其他信息。 我们还可以帮助参与者完成此任务,因此,如果你不确定,可随时询问命名建议。

c000010:库目标在适当时导出

为了向用户提供无缝的构建系统集成,请务必导出并提供查找下游使用的目标库的方法。 不应导出的目标应标记为私有且不导出。

c000011:端口不使用修改用户系统的应用程序

端口应遵守 vcpkg 不修改用户系统的约定,避免使用会修改用户系统的应用程序。 这些应用程序的示例包括 sudoaptbrewpip。 请尽可能使用这些类型程序的替代方法。

c000012:有系统依赖项的端口在安装过程中包含信息消息

某些端口有 vcpkg 中不存在的库和工具依赖项。 对于这些缺少的依赖项,我们要求参与者在端口 portfile.cmake 顶部添加一条消息,说明缺少的依赖项以及如何获取。 我们要求在进行任何重要工作之前显示该消息,以确保用户在缺少依赖项时能够尽快“及早”完成安装过程。

示例:

message(
"${PORT} currently requires the following libraries from the system package manager:
    autoconf libtool
These can be installed on Ubuntu systems via sudo apt install autoconf libtool"
)
c000013:新端口使用清单文件而不是 CONTROL 文件

许多现有端口都使用 CONTROL 文件语法;虽然此语法在未来的一段时间内还会得到支持,但新端口不应使用这些端口。 任何新添加的端口都必须使用清单文件。

我们还建议,当对端口进行重大修改时,应改用清单文件;但这并不是必须的。 你可能会发现 vcpkg format-manifest 非常有用。