Bazel 托管了多个特别兴趣小组 (SIG),旨在将协作重点放在特定领域,并支持 Bazel 所有者、维护者和贡献者之间的沟通和协调。此政策适用于 bazelbuild
。
SIG 会公开开展工作。SIG 的理想范围涵盖明确定义的领域,其中大部分参与者来自社区。SIG 可能专注于 bazelbuild
中由社区维护的代码库(例如语言规则),也可能专注于 Bazel 代码库中的代码领域(例如远程执行)。
虽然并非所有 SIG 都会有相同的活力、广泛的范围或治理模式,但应有充分的证据表明,如果成立兴趣小组,会有社区成员愿意参与并做出贡献。在加入之前,请先查看该群组的工作,然后与 SIG 负责人联系。会员政策因 SIG 而异。
请参阅 Bazel SIG 的完整列表。
非目标:SIG 不是什么
SIG 旨在促进共享工作的协作。因此,SIG 是:
- 不是支持论坛:邮件列表和 SIG 不是一回事
- 并非立即需要:在项目生命周期的早期,您可能不知道自己是否有共享工作或协作者
- 并非免费劳动力:需要能量才能共同成长和协调工作
Bazel Owners 在创建 SIG 时采取保守的方法 - 由于在 GitHub 上启动项目非常简单,因此有很多途径可以实现协作,而无需创建 SIG。
SIG 生命周期
本部分将介绍如何创建 SIG。
研究和咨询
如需提议成立新的 SIG 群组,请先收集批准证据,如下所述。您可以考虑以下几种可能的途径:
- 该群组将要解决的明确定义的问题或一组问题
- 与受益的社区成员协商,评估福利和他们愿意投入的资源
- 对于现有项目,证据来自贡献者关注该主题的问题和 PR
- 群组可实现的目标
- 运行群组所需的资源
即使对 SIG 的需求似乎不言而喻,研究和咨询对于小组的成功仍然至关重要。
创建新群组
新群组应遵循以下章程制定流程。具体而言,它必须展示:
- 明确的 Bazel 用途和优势(围绕子项目或应用领域)
- 至少有两位贡献者愿意担任群组负责人、有其他贡献者,以及有证据表明对该群组有需求
- 每个群组都需要使用至少一个可公开访问的邮寄名单。SIG 可以重复使用某个公开列表(例如 bazel-discuss),请求使用 @bazel.build 的列表,也可以创建自己的列表
- SIG 最初需要的资源(通常是邮件列表和定期视频通话)。
- SIG 可以从
bazelbuild/community
中的目录或bazelbuild
GitHub 组织中的自有代码库提供文档和文件。如果 SIG 选择在bazelbuild
GitHub 组织之外组织工作,则可以链接到外部资源 - Bazel 所有者批准或拒绝 SIG 申请,并根据需要咨询其他利益相关者
在进入流程的正式部分之前,您应咨询 Bazel 产品团队 (product@bazel.build)。大多数 SIG 都需要经过对话和迭代才能获得批准。
如需正式申请成立新群组,请将章程作为 PR 提交给 bazelbuild/community
,并在 PR 的评论中按照以下模板添加申请。获得批准后,相应群组的 PR 会被合并,并创建所需的资源。
针对新 SIG 的模板请求
如需申请成立新的 SIG,请使用社区代码库中的模板:SIG-request-template.md。
包机
如需成立群组,您需要章程,并且必须遵守 Bazel 行为准则。群组的归档内容将公开显示。成员资格可以向所有人开放(无需批准),也可以通过申请获得(需等待群组管理员批准)。
章程必须指定一位管理员。除了管理员之外,该群组还必须至少包含一名负责人(可以是同一个人),该负责人将作为联系人,根据需要与 Bazel 产品团队进行协调。
群组创建者必须将章程发布到群组邮寄名单。Bazel GitHub 组织中的社区代码库会归档此类文档和政策。随着群组不断改进其实践和惯例,他们应在社区代码库的相关部分更新其章程。
协作与包容
虽然不是强制要求,但小组应选择通过预定的电话会议或聊天渠道进行协作,以召开会议。任何此类会议都应在邮件列表中宣传,并在会后将会议记录发布到邮件列表中。定期会议有助于推动 SIG 中的责任落实和进度。
Bazel 产品团队成员可能会主动监控群组,并鼓励群组进行讨论和采取适当行动。
启动 SIG
必需活动:
- 通知 Bazel 常规讨论组 (bazel-discuss、bazel-dev)。
可选活动:
- 为 Bazel 博客撰写博文
SIG 的健康状况和终止
Bazel 所有者会尽最大努力确保 SIG 正常运行。Bazel 所有者偶尔会要求 SIG 负责人报告 SIG 的工作,以便让更广泛的 Bazel 社区了解该小组的活动。
如果某个 SIG 不再具有实用价值或没有感兴趣的社区,则可能会被归档并停止运作。Bazel 产品团队保留将此类不活跃的 SIG 归档的权利,以保持项目的整体健康状况,尽管这不是首选结果。如果 SIG 认为其已达到使用寿命的终点,也可以选择解散。
备注
此内容已根据 TensorFlow 的 SIG 剧本进行修改。