On this page
Apache Hive 项目章程
本文档定义了 Apache Hive 项目在其下运行的章程。它定义了项目的角色和责任,可以投票的人,投票的工作方式,解决冲突的方式等。
Hive 是Apache 软件基金会的项目。该基金会拥有 Apache 代码的版权,包括 Hive 代码库中的代码。 foundation FAQ解释了基金会的运作和背景。
Hive 是 Apache 项目的典型代表,它遵循一系列原则(统称为“ Apache Way”)运行。如果您不熟悉 Apache 开发,请参考Incubator Project以获取有关 Apache 项目如何运行的更多信息。
角色和职责
Apache 项目定义了一组具有相关权利和责任的角色。这些角色控制着个人可以在项目中执行的任务。在以下各节中定义了角色。
Users
该项目中最重要的参与者是使用我们软件的人。我们的大多数贡献者都是从用户开始的,并从用户的角度指导他们的开发工作。
用户通过以错误报告和功能建议的形式向贡献者提供反馈来为 Apache 项目做出贡献。此外,用户通过在邮件列表和用户支持论坛上帮助其他用户来加入 Apache 社区。
Committers
项目的提交者负责项目的技术 Management。提交者有权访问 Hive 的所有源代码存储库并对此负责。
提交者访问只能通过邀请进行,并且必须得到活动 PMC 成员的懒惰共识的批准。提交人通过自己的声明或在六个月以上没有以任何形式对项目作出贡献而被视为退休人员。荣誉提交者可以向 PMC 请求恢复提交访问权限,这足以使他或她恢复到活动提交者的状态。
可以通过所有活动 PMC 成员的一致投票来撤销提交访问权限(如果相关提交者也是 PMC 成员,则该提交者除外)。
重要的,普遍的功能通常是在存储库的推测分支中开发的。当主动性处于活动状态时,PMC 可以将分支上的提交权限授予其一致的贡献者。分支提交者负责将其功能扩展到活动版本中,并且在项目中不投具有约束力的投票或否决权。
所有 Apache 提交者都必须在 Apache Software Foundation 上签署一份签署的个人贡献者许可协议(CLA)。 Committer FAQ提供了有关提交者要求的更多详细信息。
可以为项目做出持续贡献的提交者可以被邀请成为 PMC 的成员。贡献的形式不限于代码。它还可以包括代码审查,在邮件列表,文档等方面帮助用户。
Submodule Committers
子模块提交者是负责维护 Hive 特定子模块的提交者。子模块上的提交者可以访问 Hive 源代码存储库的指定子集并对其负责。子模块上的提交者可以对有关该子模块的任何技术讨论投具有约束力的票。
子模块提交者不是由 PMC 直接创建的。当 Hive 采用新的代码库时(例如通过合并到现有项目中),该新采用的代码库上的提交者将成为对应于新代码库的子模块上的提交者。目的是子模块提交者将努力成为提交者。 PMC 必须以与其他 Hive 贡献者相同的方式对子模块提交者进行投票,以成为提交者。
适用于提交者的所有与过渡到退休状态,撤销提交权利以及签署个人贡献者许可协议有关的规则也适用于子模块提交者。
项目 Management 委员会
PMC 对董事会和 ASF 负责 Apache Hive 代码库的 Management 和监督。 PMC 的职责包括
确定作为 Apache Hive 项目的产品分发的内容。特别是所有发行版都必须由 PMC 批准。
维护项目的共享资源,包括代码库,邮件列表,网站。
代表项目发言。
解决有关项目产品的许可纠纷。
提名新的 PMC 成员和提交者。
维护这些章程和项目的其他准则。
PMC 的成员资格仅受邀请,并且必须得到活跃的 PMC 成员的懒惰共识的批准。 PMC 成员通过其自己的声明或在六个月以上没有以任何形式对项目作出贡献而被视为退休。退休成员可以要求恢复 PMC,这足以使他或她恢复为现任 PMC 成员。
PMC 的成员资格可以通过除该成员以外的所有活动 PMC 成员的一致投票而撤销。
PMC 的主席由 ASF 董事会任命。主席是 Apache 软件基金会(Apache Hive 副总裁)的办公室负责人,对董事会负责 Hive PMC 范围内的项目 Management。主席每季度向董事会报告 Hive 项目的 Developing 情况。
当 PMC 的现任主席辞职时,PMC 使用惰性共识投票推荐一位新主席,但是该决定必须由 Apache 董事会批准。
Decision Making
在 Hive 项目中,不同类型的决策需要不同形式的批准。例如,上一节描述了一些需要“惰性共识”批准的决策。本节定义了执行投票的方式,批准的类型以及决定的类型需要哪种批准。
Voting
有关项目的决定由主要项目开发邮件列表(user@hive.apache.org)上的投票决定。必要时,PMC 投票可以在 Hive 私有 PMC 邮件列表中进行。投票清楚地以[VOTE]开头的主题行表示。投票可能包含多个要批准的项目,因此应明确分开。通过回复投票邮件进行投票。投票可能有四种味道
Vote | Meaning |
---|---|
+1 | “是”,“同意”或“应执行该操作”。通常,该投票还代表投票人表示愿意“实现”。 |
+0 | 这次投票表明愿意考虑采取行动。但是,选民将无法提供帮助。 |
-0 | 这次投票表明,选民通常不同意拟议的行动,但担心程度不足以阻止该行动 continue 进行。 |
-1 | 这是反对票。在需要达成共识的问题上,该投票被视为“否决”。所有否决权都必须说明为什么要使用否决权。没有解释的否决权是无效的。 -1 票也可以选择采取其他行动。 |
鼓励 Hive 项目的所有参与者通过投票表明他们同意或反对某个特定动作。对于技术决策,只有活跃提交者的投票才具有约束力。对于具有约束力的选票的人来说,无约束力的选票仍然有用,他们可以理解更广泛的 Hive 社区对某项行动的看法。对于 PMC 决定,仅 PMC 成员的投票具有约束力。
投票也可以应用于已经对 Hive 代码库进行的更改。这些通常采用否决(-1)的形式,以响应进行提交时发送的提交消息。请注意,这种情况很少发生。在提交代码之前,仍应尽一切努力讨论仍是补丁的问题。
Approvals
这些是可以寻求的批准类型。不同的动作需要不同类型的批准。
Approval Type | Definition |
---|---|
Consensus | 为使此通过,所有具有约束力的选民都必须投票,并且不能有约束力的否决权(-1)。由于让所有合格选民进行投票是不切实际的,因此很少需要共识投票。 |
Lazy Consensus | 懒惰共识需要 3 约束力的 1 票和没有约束力的否决权。 |
Lazy Majority | 懒散多数票需要 3 约束力的 1 票和更多的-1 约束力的 1 票。 |
Lazy Approval | 除非收到-1 票,否则隐式允许具有惰性批准的操作,这时,根据操作类型的不同,必须获得惰性多数或惰性共识的批准。 |
2/3 Majority | 某些操作需要活动提交者或 PMC 成员的 2/3 多数通过。此类操作通常会影响项目的基础(例如,采用新的代码库来替换现有产品)。较高的阈值旨在确保强烈支持此类更改。要通过此投票,至少需要有约束力的投票持有人的 2/3 投票。 |
Vetoes
有效的,具有约束力的否决权不能被否决。如果否决权被否决,则必须附上解释否决权理由的有效理由。如果有否决权,则具有约束力的任何人均可确认否决权的有效性。这不一定表示与否决权达成协议-仅仅是否决权有效。
如果您不同意有效的否决权,则必须游说投反对票的人撤回其否决权。如果未撤回否决权,则必须及时撤销已否决的行动。
Actions
Actions | Description | Approval | Binding Votes | Minimum Length | Mailing List | ||
---|---|---|---|---|---|---|---|
Code Change | 对项目代码库的更改,由提交者提交。这包括源代码,文档,网站内容等。 | 来自未编写补丁的提交者的 1(其后为 Lazy 批准)(不计算贡献者的投票),如果收到-1,则移至懒惰多数。 | |||||
在邮件列表上征求反馈/审阅并在两天内未收到反馈之后,可以提交次要问题(例如,拼写错误,代码风格问题,JavaDoc 更改.由提交者自行决定)。 |
活动提交者 | 1 | JIRA(dev@hive.apache) .org) | ||||
发布计划 | 定义发布的时间表和操作。该计划还提名了一个发布 Management 器。 | 懒惰的大多数 | 活动提交者 | 3 | user@hive.apache.org | ||
产品发布 | 当某个项目产品的发布准备就绪时,需要进行投票以接受该发布作为该项目的正式发布。 | 懒惰多数 | 活跃的 PMC 成员 | 3 | user@hive.apache.org | ||
采用新代码库 | 当现有发行产品的代码库将替换为备用代码库时。如果此类投票未能获得批准,则现有代码库将 continue。 | 2/3 多数 | 活动 PMC 成员 | 6 | dev@hive.apache.org | 这还包括在项目内创建新的子项目和子模块。 | |
新提交者 | 为该项目提议新提交者时。 | 惰性共识 | 活动 PMC 成员 | 3 | private@hive.apache.org | ||
新的 PMC 成员 | 当为 PMC 提议提交者时。 | 惰性共识 | 活动的 PMC 成员 | 3 | private@hive.apache.org | ||
提交者删除 | 当寻求删除提交特权时。 注意: 此类动作也将由 PMC 主席转交 ASF 董事会。 |
共识 | 现任 PMC 成员(如果是 PMC 成员,则不包括提交者)。 | 6 | private@hive.apache。 org | ||
PMC 成员除去 | 当寻求除去 PMC 成员时。 注意: 此类动作也将由 PMC 主席转交 ASF 董事会。 |
共识 | 活跃的 PMC 成员(不包括相关成员)。 | 6 | private@hive.apache.org | ||
修改章程 | 修改此文档。 | 2/3 多数 | 活动 PMC 成员 | 6 | user@hive.apache.org | ||
新分支提交者 | 为该项目提议新的分支提交者时。 | 惰性共识 | 活动 PMC 成员 | 3 | private@hive.apache.org | ||
除去分支提交者 | 从项目中除去分支提交者。 | 共识 | 活动的 PMC 成员(如果它们也是 PMC 成员,则不考虑所涉及的提交者)。 | 6 | private@hive.apache.org |