XGBoost 社区指南

XGBoost 采用 Apache 风格模型并按功绩治理。我们相信创建一个包容的社区非常重要,每个人都可以使用、贡献并影响项目的方向。查看 CONTRIBUTORS.md 获取当前贡献者列表。

通用开发流程

社区中的每个人都欢迎发送补丁、文档,并向项目提出新的方向。这里的关键指导原则是让社区中的每个人都能参与进来,参与决策和开发。当提出重大变更时,应发送RFC以供社区讨论。我们鼓励公开讨论,使用可存档的渠道,如问题和讨论论坛,以便社区中的每个人都能参与并在之后审查过程。

代码审查是确保代码质量的关键方法之一。高质量的代码审查可以防止长期的技术债务,对项目的成功至关重要。在合并之前,需要对拉取请求进行审查。具有相应领域专业知识的提交者将主持拉取请求,并在准备就绪时合并代码。相应的提交者可以请求多个熟悉代码领域的审查者。我们鼓励贡献者自己请求代码审查,并帮助审查彼此的代码——记住每个人都在为社区自愿贡献时间,高质量的代码审查本身与实际的代码贡献一样耗时,如果你为他人提供同样的帮助,你的代码可以更快地被审查。

社区应通过讨论努力达成技术决策的共识。我们期望提交者和PMC以外交的方式主持技术讨论,并在必要时提供具有明确技术理由的建议。

提交者

提交者是那些被授予项目写权限的个人。提交者通常负责代码的某个或多个区域,他们监督代码审查过程。贡献的领域可以包括所有形式,如代码贡献和代码审查、文档、教育和推广。提交者对于高质量和健康的项目至关重要。社区积极从贡献者中寻找新的提交者。以下是一些有助于社区识别潜在提交者的有用特质:

  • 通过讨论RFC、代码审查和新功能提案以及其他开发活动,持续为项目做出贡献。熟悉并能够负责项目的一个或多个领域。

  • 贡献质量:高质量、可读性强的代码贡献,表现为可以通过拉取请求合并而无需大量代码审查。历史记录显示创建了干净、可维护的代码,并包含了良好的测试用例。提供信息丰富的代码审查,以帮助其他遵循良好标准的贡献者。

  • 社区参与:积极参与讨论论坛,通过教程、演讲和外联活动推广项目。我们鼓励提交者广泛合作,例如进行代码审查并与他们没有实际互动的社区成员讨论设计。

项目管理委员会(PMC)由一组活跃的提交者组成,他们负责调解讨论、管理项目发布,并提议新的提交者/PMC成员。潜在候选人通常通过PMC内部的讨论提出,随后通过共识批准,即至少3票+1,且无否决票。任何否决都必须附有理由。PMC应通过维护社区实践和指南来服务于社区,以使XGBoost成为一个对每个人都更好的社区。PMC应努力仅提名其自身组织之外的新候选人。

PMC 负责项目的 持续集成 (CI) 和测试基础设施。目前,我们在 https://xgboost-ci.net 上托管自己的 Jenkins 服务器。PMC 应任命提交者来管理 CI 基础设施。PMC 可以接受第三方捐赠和赞助,以减轻 CI 基础设施的成本。参见 捐赠

评审者

评审者是积极为项目做出贡献并愿意参与新贡献代码审查的个人。我们从活跃的贡献者中识别评审者。提交者应明确向评审者征求评审意见。高质量的代码审查可以防止长期的技术债务,对项目的成功至关重要。项目的拉取请求必须至少由一名评审者审查后才能合并。