本文档定义了 Apache Hadoop 项目的运营章程。它定义了项目的职责和角色、谁有投票权、投票如何进行、如何解决冲突等。
Hadoop 是 Apache 软件基金会 的一个项目。基金会拥有“Hadoop”名称的商标和 Apache 代码的版权,包括 Hadoop 代码库中的代码。基金会常见问题解答 解释了基金会的运营和背景。
Hadoop 是 Apache 项目的典型代表,它遵循一系列原则,统称为“Apache 之道”。如果您是 Apache 开发的新手,请参阅 孵化器项目,以了解更多有关 Apache 项目如何运营的信息。
Apache 项目定义了一组具有相关权利和责任的角色。这些角色规定了个人可以在项目中执行哪些任务。这些角色在以下部分中定义
用户
项目中最重要的参与者是使用我们软件的人员。我们的大多数开发人员最初都是用户,并从用户的角度指导他们的开发工作。
用户通过以错误报告和功能建议的形式向开发人员提供反馈,为 Apache 项目做出贡献。此外,用户还通过在邮件列表和用户支持论坛上帮助其他用户,参与 Apache 社区。
贡献者
所有为 Hadoop 项目贡献时间、代码、文档或资源的志愿者。持续为项目做出受欢迎贡献的贡献者可能会被邀请成为提交者,尽管此类邀请的确切时间取决于许多因素。
提交者
项目的提交者负责项目的技术管理。提交者可以访问所有子项目的 subversion 存储库。提交者可以对任何子项目的任何技术讨论进行有约束力的投票。
提交者访问权限仅限邀请,并且必须经过活跃的 PMC 成员一致同意。提交者被视为名誉提交者,这是由他们自己声明的,或者在六个月内未以任何形式为项目做出贡献。名誉提交者可以向 PMC 申请恢复提交权限。此类恢复需经活跃的 PMC 成员一致同意。
重要的、普遍的功能通常在存储库的推测分支中开发。在该计划处于活动状态时,PMC 可以向其一致的贡献者授予分支提交权限。分支提交者负责将他们的功能引导到活动版本中,并且不会在项目中进行有约束力的投票或否决。
所有 Apache 提交者都必须在 Apache 软件基金会存档一份已签署的贡献者许可协议 (CLA)。有一个提交者常见问题解答,其中提供了有关提交者要求的更多详细信息
对项目做出持续贡献的提交者可能会被邀请成为 PMC 的成员。贡献形式不限于代码。它还可以包括代码审查、在邮件列表中帮助用户、文档、测试等。
版本管理器
版本管理器 (RM) 是自愿根据HowToRelease制作候选版本的一名提交者。RM 应在common-dev@列表上发布一份版本计划,说明他们打算从中制作候选版本的那个分支,至少在他们这样做之前一周。RM 负责围绕候选版本的内容建立共识,以便获得成功的产品发布投票。
项目管理委员会
Apache Hadoop 的项目管理委员会 (PMC) 由 Apache 董事会于 2008 年 1 月创建,当时 Hadoop 退出 Lucene 并成为 Apache 的顶级项目。PMC 对董事会和 ASF 负责 Apache Hadoop 代码库的管理和监督。PMC 的职责包括
PMC 会员资格仅限邀请,并且必须经活跃 PMC 成员的共识批准。PMC 成员在自行声明或在六个月内未以任何形式为项目做出贡献时,将被视为“名誉”。名誉成员可以要求恢复 PMC 资格。此类恢复资格须经活跃 PMC 成员的共识批准。
PMC 主席由 ASF 董事会任命。主席是 Apache 软件基金会(副总裁,Apache Hadoop)的任职人员,并对董事会承担管理 Hadoop PMC 范围内的项目的首要责任。主席每季度向董事会报告 Hadoop 项目的进展情况。
PMC 主席每年轮换一次。当主席轮换或现任 PMC 主席辞职时,PMC 会投票推荐一位新主席,使用单一可转移投票 (STV) 投票。有关具体信息,请参阅 https://wiki.apache.org/general/BoardVoting。该决定必须经 Apache 董事会批准。
在 Hadoop 项目中,不同类型的决策需要不同的批准形式。例如,上一节描述了需要“共识批准”的几项决策。本节定义了投票执行方式、批准类型以及哪种类型的决策需要哪种类型的批准。
投票
有关项目的决策通过在主要项目开发邮件列表 ([email protected]) 上投票做出。如有必要,PMC 投票可以在私有 Hadoop PMC 邮件列表上进行。投票通过以 [VOTE] 开头的主题行明确表示。投票可能包含多个待批准事项,并且应将这些事项明确分开。通过回复投票邮件进行投票。投票可以有四种类型
鼓励 Hadoop 项目的所有参与者通过投票表明他们是否同意或反对特定操作。对于技术决策,只有活跃提交者的投票具有约束力。非约束性投票仍然有助于具有约束力投票的人了解 Hadoop 社区对操作的看法。对于 PMC 决策,只有 PMC 成员的投票具有约束力。
投票还可以应用于对 Hadoop 代码库所做的更改。这些通常在提交时发送的提交消息中以否决 (-1) 的形式出现。
批准
这些是可以寻求的批准类型。不同的操作需要不同类型的批准
否决
有效的有约束力否决不能被推翻。如果投出否决票,则必须附有有效理由来解释否决的原因。如果对否决的有效性提出质疑,则任何具有约束力投票权的人都可以确认。这并不一定表示同意否决 - 仅仅表示否决有效。
如果您不同意有效的否决,您必须游说提出否决的人撤回其否决。如果否决未被撤回,任何已被否决的操作都必须及时撤销。
操作
本节描述了在项目中执行的各种操作、该操作所需的相应批准以及对该操作具有约束力投票的人员。
代码更改
对项目的代码库进行的更改,并由提交者提交。这包括源代码、文档、网站内容等。
活跃提交者的共识批准,但至少需要一个 +1。除非代码更改表示从分支合并,在这种情况下需要三个 +1,否则可以在第一个 +1 后提交代码。
产品发布
当项目的某个产品的版本准备就绪时,需要进行投票以接受该版本作为项目的正式版本。
活跃 PMC 成员的懒散多数
采用新代码库
当现有已发布产品的代码库要替换为备用代码库时。如果此类投票未获得批准,则现有代码库将继续存在。
这也涵盖了在项目中创建新子项目
PMC 成员的懒散 2/3 多数
新分支提交者
当为 PMC 提议分支提交者时
活跃 PMC 成员的懒散共识
新提交者
当为项目提议新提交者时
活跃 PMC 成员的共识批准
新 PMC 成员
当为 PMC 提议提交者时
活跃 PMC 成员的共识批准
分支提交者移除
当寻求移除提交权限或当分支合并到主线时
活跃 PMC 成员的懒散 2/3 多数
提交者移除
当寻求移除提交权限时。注意:此类操作还将由 PMC 主席提交给 ASF 董事会
活跃 PMC 成员的懒散 2/3 多数(如果 PMC 成员,则不包括有问题的提交者)。
PMC 成员移除
当寻求移除 PMC 成员时。注意:此类操作还将由 PMC 主席提交给 ASF 董事会。
活跃 PMC 成员的懒散 2/3 多数(不包括有问题的成员)
修改章程
修改此文档。
活跃 PMC 成员的懒散多数
投票时间表
投票开放 7 天,以便所有活跃选民有时间考虑投票。与代码更改相关的投票不受严格时间表的约束,但应尽可能及时进行。
产品发布 - 投票时间表
仅发布投票运行 5 天。所有其他投票均受上述 7 天时间表的约束。