kmpkg 拉取请求(PR)审核清单
版本:1
概述
本文档提供了一份带注释的清单,kmpkg 团队成员在为 incoming 拉取请求添加“已审核(reviewed)”标签时会使用。若拉取请求违反以下任何一点,我们可能会要求贡献者进行必要修改后,再合并该变更集。
若你认为本清单可改进,欢迎创建议题或拉取请求。修改清单内容时,请递增版本号。
审核清单
你可以复制每个清单项代码对应的链接地址,在 GitHub 评论中引用该清单项。
c000003:新端口包含英文编写的 "description" 字段
描述建议控制在一两句话内,尽可能使用库官方 README.md 等文档中的官方描述。允许自动翻译,我们会协助贡献者优化英文表达。
有关更多信息,请参阅我们的 清单文件文档。
c000005:可版本化的下载归档文件已添加版本标识
为确保归档文件内容不被篡改,建议下载的归档文件关联版本标签,并随端口的 "version" 字段一起递增。
c000006:新端口通过其官方支持的三元组的 CI 检查
为保证 kmpkg 端口的高质量,我们要求 incoming 端口支持该库官方声明的平台。
c000007:补丁仅修复 kmpkg 专属问题
若可能,对库源代码的补丁应提交到该库的官方仓库。在库的官方仓库创建拉取请求,有助于为所有用户改进该库,而非仅服务于 kmpkg 用户。
c000008:新端口优先从官方来源下载源代码
为尊重库作者并保障代码安全,请确保端口从官方来源下载源代码。若原始来源不可用,但社区对维护该库有强烈需求,我们可能会酌情例外。
c000009:端口及端口功能命名规范
为方便用户使用,我们希望端口和端口功能的名称直观,且与官方来源及其他包管理器中的对应名称一致。若不确定端口或功能的命名,建议检查 repology.org、packages.ubuntu.com 或通过搜索引擎查找更多信息。我们也可协助贡献者命名,若有疑问欢迎咨询。
c000010:按需导出库目标(Library Targets)
为向用户提供无缝的构建系统集成,请确保导出并提供下游使用所需的库目标查找方式。不应导出的目标应标记为私有,不对外暴露。
c000011:端口不使用修改用户系统的应用程序
端口应遵守 kmpkg 不修改用户系统的约定,避免使用此类应用程序(例如 sudo、apt、brew 或 pip)。请尽可能使用这些程序的替代方案。
c000012:含系统依赖的端口在安装时输出提示信息
部分端口依赖 kmpkg 中不存在的库或工具。对于这些缺失的依赖项,我们要求贡献者在端口的 portfile.cmake 顶部添加提示信息,说明缺失的依赖项及获取方式。该提示应在任何主要操作执行前显示,确保用户在缺失依赖时可尽早退出安装流程。
示例:
message(
"${PORT} 当前需要从系统包管理器安装以下库:
autoconf libtool
Ubuntu 系统可通过 sudo apt install autoconf libtool 安装"
)
c000013:新端口使用清单文件(Manifest Files)而非 CONTROL 文件
许多现有端口使用 CONTROL 文件语法;该语法将继续支持一段时间,但新端口不应使用。所有新增端口必须使用清单文件。
此外,我们建议对端口进行重大修改时,迁移到清单文件(但非强制要求)。你可能会发现 kmpkg format-manifest 命令很有用。