提交者负责审查和集成代码更改。PMC 根据对提交者对项目的贡献的评估来投票决定是否让贡献者成为提交者。贡献可以通过多种方式进行,并且没有一条通往提交者的道路。也就是说,以下是 PMC 对所有潜在提交者的总体标准
持续为项目做出贡献的历史。这是贡献者展示其在某一领域的专业知识的一种方式,从而展示他们帮助审查和提交其他人在同一领域做出的贡献的能力。持续的贡献也是展示对项目的承诺的一种方式,从本质上来说,即使某人在成为提交者后,也会继续做出贡献。
高质量的贡献。作为经验丰富的贡献者,提交者为项目中的其他人树立了榜样,并帮助培养高质量贡献的文化。对于代码贡献,这意味着干净、有文档记录的代码,其中包括单元测试(如果合适)并通过提交前检查。对于审查,这意味着全面、可操作的反馈,并且只有在高度确信更改时才投赞成票(即使是非约束性的)。
社区参与。在社区互动期间,始终期望贡献者有礼貌、建设性和尊重他人。在技术问题上可能会(并且将会)发生分歧,但讨论应保持友好并专注于技术优点。提交者还肩负着指导新贡献者的额外责任,以及通过回复用户和开发列表上的电子邮件等行动帮助社区成长的责任。
以下是一些假设的示例路径,可用于提交位
韩梅梅在一家运营大型 Apache Hadoop 集群的大公司工作。在将最新版本的 Hadoop 部署到她的暂存集群时,她发现了一些错误和性能下降。她为这些问题提交了 JIRA,并能够为其中一些问题发布补丁。对于剩余的 JIRA,她通过对集群进行其他调试以及测试和审查中间补丁与其他社区成员合作。此外,韩梅梅与发行版本的发布经理雷利合作,以确保关键问题回传到下一个维护版本。韩梅梅还努力修复和审查针对下一个维护版本的其他关键问题,即使她的集群目前不受影响。她继续为该发行版本线中的后续维护版本执行类似的稳定化工作,展示了她对发布高质量上游版本的承诺。
伊丽丝在一家商业大数据供应商担任开发人员。伊丽丝通过执行一些新手 JIRA 来提高能力,但随后参与了在功能分支上进行的大型跨公司开发工作。伊丽丝帮助审查功能设计,提供建设性反馈,并与其他社区成员合作将工作划分为子任务。此时,PMC 授予伊丽丝分支提交权限以加速开发。伊丽丝为许多子任务提交了良好的补丁,并且在审查和提交他人的代码时表现出谨慎和彻底。在功能分支稍后合并到主干后,伊丽丝继续查找并修复与该功能相关的错误,并审查他人的代码贡献。
拉吉在一家商业大数据供应商担任测试工程师。拉吉注意到上游缺乏集成测试,并为故障注入测试贡献了一个测试框架,该框架已提交给项目。拉吉与 PMC 协调,让测试框架在 Apache 基础设施上运行,并开始对输出进行分类并为相关错误提交 JIRA,并附有再现。拉吉帮助收集日志并再现问题,并继续改进测试框架。
Peter 是一位技术作家,致力于改进 Hadoop 的文档。他从修复过时的信息和不正确的示例开始,联系主题专家并浏览代码库以阐明技术细节。随着 Peter 逐渐熟悉文档集,他意识到新添加的功能没有包含足够的文档,并撰写了一份关于如何设置和使用该功能的指南,其中还解释了一些影响 API 设计的设计决策。Peter 继续将其文档贡献扩展到越来越多的领域,并且还积极回答邮件列表上的用户问题。这展示了他对项目的了解、对细节的关注以及以用户为中心。