FreeBSD The Power to Serve

端口管理团队的政策

根据其章程,端口管理团队已制定了一些政策,以期实现其每个目标。

确保端口集合的完整性

为了帮助确保端口集合的完整性,portmgr 充当某些对端口集合至关重要的文件的唯一提交者,例如bsd.port.mk。由于端口树没有分支(与其他一些 BSD 项目不同),因此这些文件中的任何致命错误都将很快被许多运行端口自动更新的用户发现。

portmgr 还在自动化端口构建集群的专用区域上定期构建对端口集合的提议的大规模更改。这些被称为实验性构建(通常称为“exp-runs”)。此处应在提交之前进行测试的更改示例包括

  • bsd.port.mk的更改

  • 对具有许多依赖项的软件包的更改,包括 X11 服务器、GNOME、KDE、autotools 等

  • 更改端口 Makefile 的“公认最佳实践”的更改,例如公共 make 变量(或Makevar)的定义或用法。(例如,合并各种 USE_*、WITH_* 等的实现)

  • 对存储库的大规模更改(例如,当现有端口类别被划分时)

上述任何一项可能导致的任何大规模故障都需要在影响大量用户安装之前首先捕获。

在其他时间,特别是在准备新版本期间,对何时允许提交存在其他限制

portmgr 保留权利在某些特殊情况下充当其他提交的最终仲裁者,例如:在他看来会破坏端口集合的提交;违反 FreeBSD 用户的最小惊奇原则;或在提交者之间无法解决的提交者间争议的情况下。

维护自动端口构建集群

portmgr 维护一组机器,这些机器会根据 FreeBSD 源代码树与 CPU 架构的组合自动构建软件包(用我们的术语来说,构建环境buildenv)。在许可证分发允许的情况下,生成的软件包会定期上传到主 FTP 镜像作为“新的最新软件包”,以便 FreeBSD 用户可以下载。端口构建失败会报告给负责维护人员和/或相应纠正措施的提交者。

在某些情况下,端口可能会因对 FreeBSD 基础系统(src/ 树)的更改而损坏。在这种情况下,端口管理团队期望负责的源代码提交者在与相关端口维护人员协商后,为受影响的端口开发修复程序。

与 FreeBSD 安全团队合作

与 FreeBSD 端口和文档提交者合作

portmgr 将尝试帮助FreeBSD 端口维护者手册保持最新,使其符合其认为的各个端口的“最佳实践”。

(目的不仅是制定“规则”,而是说“这就是我们在端口 Makefile 中提倡的正确的事情的原因”。特别是,有一些“极端情况”,bsd.*.mk有一些非常复杂的代码来处理——例如确保可以从 CD-ROM、通过 NFS 等安装端口——并且无法理解这些问题会导致维护人员使用在这些极端情况下不起作用的快捷方式。)

portmgr 不是端口维护者手册的唯一所有者,因为它实际上位于doc/树中。我们欢迎 PR 提交者和doc提交者参与其中,以添加有助于澄清现有实践的文档。但是,我们想礼貌地请求审查任何似乎会改变现有实践的更改。

此外,最近一直在讨论创建“FreeBSD 端口维护者和提交者的权利和责任”文档。portmgr 支持这项工作,并期待能够审查任何草稿。

portmgr 还负责某些其他文档,例如提交者指南贡献到 FreeBSD 指南中特定于端口的部分。

在志愿者项目中尽可能地,portmgr 将努力确保尊重通过端口集合安装的作品的作者的合法权利。这包括确保在ports/LEGAL以及控制软件包构建并因此自动分发二进制文件的makevars中进行适当的条目。

在极少数情况下,如果原始作者要求,这也可能需要删除端口以及所有 distfile 和二进制文件。

portmgr 要求我们的志愿者提交者在提交新端口时仔细考虑作者的许可限制,因为由于端口数量众多,portmgr 的成员无法自己这样做。

充当维护人员和提交者等 FreeBSD 社区成员之间争议的第一仲裁者

portmgr 鼓励 FreeBSD 社区成员根据提交者指南中规定的原则共同努力。在发生争议的情况下,它保留仲裁权,但须经核心团队审查。

管理对端口树的提交访问权限

FreeBSD 核心团队已将管理对ports/树的提交访问权限的责任委托给 portmgr。核心审查授予和撤销提交位,并对整个 FreeBSD 存储库拥有最终权限。

新的端口提交者由希望充当导师的现有端口提交者提出。提案应包括对拟议的新提交者做出的贡献历史的简要概述,例如提交的 PR 数量、当前维护的端口数量以及任何其他树中现有的提交位(如果有)。

在投票中,团队将考虑该历史以及任何其他相关因素。投票结果将提供给 FreeBSD 开发者社区。

根据项目其他地方的惯例,不活动的端口提交者将定期联系以询问其状态和继续使用端口树的兴趣。未回复此类电子邮件或回复否定的提交者的提交位将被收回以备安全保管。目前,此期限为一年。

在特殊情况下,可能需要出于其他原因删除端口提交者。这只有在经过认真考虑后才会进行,并须经核心审查。

建立指导方针和政策,管理端口提交者和维护者的权利和责任

portmgr 负责建立指导方针和政策,管理端口提交者和维护者的权利和责任,例如预期的维护标准、可以覆盖或删除维护者的条件以及其他政策。

为了确保及时处理端口问题报告,portmgr 制定了一条关于在提交者分配的 PR 在被另一位提交者通过“维护者超时”提交之前可以保持打开状态的时间的指导方针。此时间段适用于不需要回归运行的更新等;对于其他更新,请直接联系 portmgr。此时间段不包括端口冻结和普遍认可的假期。

此外,为了确保端口得到及时维护,portmgr 制定了一条关于端口维护者在放弃维护权之前可以处于非活动状态的时间的指导方针。“非活动”的解释并不严格,但旨在涵盖未解决的开放 PR、其他提交者通过维护者超时进行的提交以及未解决的构建问题等。

这些政策的目的是为了反映端口集合安装的软件正在经历超出 FreeBSD 控制范围的快速开发这一事实,而不是为了惩罚或责备。端口维护者接受的部分责任是尝试使端口保持工作状态并尽可能地更新。让未解决的问题长期存在以及过时的版本仍然存在对我们的用户是不公平的。但是,我们也认识到我们所有的维护人员和提交者都是志愿者,就像我们一样,并且与任何志愿者项目一样,很容易过度承诺或对特定端口失去兴趣。

感到过度承诺或对任何特定端口失去兴趣的维护人员和提交者可以随时要求新的志愿者和/或将端口重新分配回通用池。这不仅有助于使端口集合保持最新,而且有望帮助防止志愿者倦怠。

帮助确定端口集合的未来方向

portmgr 认识到端口集合的开发和演变主要由社区成员的工作驱动。但是,由于端口集合的非分支性质,有时需要协调甚至在任何提议的更改之间进行选择。

在某种程度上,这涉及选择哪些补丁在构建集群上进行测试,但也涉及诸如努力就架构决策达成共识、创建“有趣项目”列表等问题。


上次修改时间:2023 年 12 月 29 日,作者:Benedict Reuschling