如果您对治理细节有更多疑问,我们提供了对Apache 风格治理的描述。
此外,Apache 社区开发项目 也旨在帮助新手了解周围的环境。
本页面概述了您一直想知道但不敢问的关于 Apache 软件基金会的所有内容:成员资格和提交者资格的区别、谁决定做什么、选举如何进行、我们的基础设施是如何设置的、董事会是什么以及它做什么、PMC 是什么、孵化器背后的理念是什么,以及 ASF 如何应对近年来新项目和贡献者数量的惊人增长。来了解 ASF 幕后的故事。
Apache 软件基金会 (ASF) 是一个根据美国法律成立的 501(c)3 非营利性公共慈善组织。它成立于 1999 年,其主要目的是
为开源协作软件开发项目提供基础,提供硬件、通信和业务基础设施
创建一个独立的法律实体,公司和个人可以向其捐赠资源,并确保这些资源将用于公共利益
为志愿者提供一种免受针对基金会项目诉讼的保护手段
保护“Apache”品牌(应用于其软件产品)免受其他组织的滥用
这些是基本的事实,但这一切是如何发生的,它真正意味着什么?我们需要回顾一下历史。
与其他使用开源许可证的软件开发工作(如 Linux 内核或 Perl/Python 语言)不同,Apache Web 服务器并非由单个开发人员发起。一群拥有共同兴趣的不同的人在交换信息、软件修复和建议时开发了该项目。
随着该小组开始开发自己的软件版本,逐渐脱离 NCSA 版本,越来越多的人被吸引并开始提供帮助,最初是发送小的补丁或建议,或在邮件列表上回复电子邮件,后来则贡献更多。
当该小组认为某个人“赢得”了成为开发社区一部分的资格时,他们会授予其对代码库的直接访问权限,从而扩大该小组并提高其开发程序的能力,以及更有效地维护和开发软件的能力。
我们将这一基本原则称为“精英制度”:由才能治理。
该流程扩展得非常好,没有产生摩擦,因为与其他权力稀缺且保守的资源不同,在 Apache 小组中,新人被视为想要提供帮助的志愿者,而不是想要争夺职位的人。
由于没有有限且因此有价值的资源(金钱、精力、时间)处于危险之中,该小组很乐意接受新人加入并提供帮助。他们只筛选那些表示有兴趣的人,找到并纳入那些他们认为足够投入且符合与他人良好合作所需的人性态度的人,尤其是在存在分歧时。
在解释 ASF 的结构后,我们将了解精英制度如何与各种角色相关联。
由于 Apache Web 服务器的技术优势及其背后社区的开放性,其市场份额和知名度开始上升,人们开始创建卫星项目。受他们习惯的社区精神的影响,他们采用了相同的社区管理传统。
到 ASF 成立时,已经存在几个独立的社区,每个社区都专注于“网络服务”问题的不同方面,但所有社区都拥有共同的目标和一套受人尊敬的礼仪和流程文化传统。
这些独立的社区被称为“项目”,虽然相似,但每个项目都有一些使其独特的细微差别。
为了减少摩擦并允许多样性的出现,而不是从上到下强加单一文化,ASF 将项目指定为 Apache 世界的核心决策组织。每个项目都拥有对其软件开发的权限,并在设计自己的技术章程和治理规则方面拥有很大的自由度。
同时,最初的 Apache 小组的文化影响力很强,各个社区之间的相似之处也很明显,我们稍后会看到。
以下实体管理着基金会
董事会(董事会)管理基金会,由成员组成。
项目管理委员会 (PMC) 管理项目,由提交者组成。(请注意,每个 PMC 成员根据定义也是提交者。)
由董事会任命的公司各级管理人员,他们在特定领域(法律、品牌、筹款等)制定基金会范围的政策。
有关所有详细信息,请阅读我们的治理概述。
董事会负责根据基金会章程管理和监督公司的业务和事务。这包括管理公司资产(资金、知识产权、商标和支持设备)以及将公司资源分配给项目。
但是,每个 Apache 项目的 PMC 都拥有关于项目内容和方向的技术决策权。
董事会目前由 9 名个人组成,由基金会成员选举产生。章程中未规定基金会应有多少名董事会成员,但这是第一届董事会的成员数量,并且从未改变过。董事会每年选举一次。
董事会网站 提供了更多信息,包括现任董事名单、会议日程以及过去会议的记录。
董事会设立项目管理委员会 (PMC) 以负责一个或多个特定社区的主动管理。
每个 PMC 至少包括一名 ASF 管理人员,该管理人员将被指定为其主席,并且可能包括一名或多名其他 ASF 成员。
董事会任命 PMC 主席,主席也成为 ASF 的管理人员(副总裁)。主席对董事会负主要责任,并有权制定有关 PMC 负责的社区日常管理的规则和程序,包括 PMC 本身的构成。请参阅有关 PMC 主席角色和为什么主席是管理人员的进一步讨论。
ASF 章程(第 6.3 节)定义了 PMC 和主席职位。一些电子邮件有助于澄清:此处 和此处。
从基金会的角度来看,PMC 的作用是监督。PMC 的主要作用不是代码也不是编码,而是确保其社区解决所有法律问题并遵循既定程序,以及确保每次发布都是整个社区的成果。这是我们的诉讼保护机制的关键。
PMC 的第二个作用是促进整个社区的长期发展和健康,并确保进行平衡和广泛的同行评审和协作。在 ASF 中,我们担心任何围绕少数几个几乎没有审查就工作的个人而建立的社区。我们认为,这不利于代码和长期社会结构的质量、稳定性和稳健性。
我们坚定地相信角色。您在 ASF 中的角色是个人分配给您的,并由您的同行授予。它与您的工作、当前雇主或公司无关。
但是 PMC 中的人员需要达到更高的标准。PMC,尤其是主席,是 ASF 董事会的眼睛和耳朵,因此我们依靠并需要相信您可以提供法律监督。
董事会可以通过决议随时终止 PMC。
Apache 开发者信息 页面提供了有关 PMC 如何工作的更多详细信息。还可以获得所有 Apache 项目的完整列表。
Apache 软件基金会的官员负责基金会的日常事务。 董事会选举这些官员。
在每个 Apache 项目社区中,这种精英管理制度通常具有各种角色。
用户 | 开发者 | 提交者 | PMC 成员 | PMC 主席 | ASF 成员
用户是指使用我们软件的人。他们通过以错误报告和功能建议的形式向开发者提供反馈,为 Apache 项目做出贡献。用户通过在邮件列表和用户支持论坛上帮助其他用户参与 Apache 社区。
开发者是指以代码或文档形式为项目做出贡献的用户。他们采取额外步骤参与项目,积极参与开发者邮件列表,参与讨论,并提供补丁、文档、建议和批评。开发者也被称为贡献者。
提交者是指拥有代码仓库写入权限并已提交签署的贡献者许可协议 (CLA)的开发者。他们拥有 apache.org 邮箱地址。无需依赖其他人来修改代码或文档的补丁,他们实际上正在为项目做出短期决策。PMC 可以(即使是默示地)同意并批准更改为永久性,或者他们可以拒绝更改。请记住,PMC 做出决定,而不是单个提交者。
PMC 成员是指由于项目发展而被选举产生的提交者。他们拥有代码仓库的写入权限、apache.org 邮箱地址,有权对与社区相关的决策进行投票,并有权提议其他积极贡献者成为提交者。PMC 作为一个整体是控制项目的实体,其他任何人都不能。特别是,PMC 必须投票批准其项目软件产品的任何正式发布。
董事会从PMC 成员中任命主席。PMC 作为一个整体是控制和领导项目的实体。主席是董事会与项目之间的接口。PMC 主席拥有特定的职责。
ASF 成员是指由现有成员提名并因基金会的演进和发展而当选的人员。成员通常通过项目相关活动和跨项目活动来关心 ASF 本身。在法律上,成员是基金会的“股东”,即所有者之一。他们有权选举董事会,有权作为董事会选举的候选人,并有权提议提交者成为成员。他们还有权提议孵化新项目(我们稍后会了解这意味着什么)。成员通过他们的邮件列表和年度会议协调他们的活动。我们有一个Apache 成员的完整列表。
Apache 项目使用协作的、基于共识的过程进行管理。我们没有等级结构;相反,不同的贡献者群体在组织中拥有不同的权利和责任。
由于指定的 PMC 拥有创建自己自治规则的权力,因此对于 PMC 如何运行其项目以及培养他们领导的社区,没有单一的愿景。
同时,尽管存在一些差异,但所有 ASF 项目都有一些共同点。
沟通通过邮件列表进行。这些是“虚拟会议室”,对话在异步进行,这是跨越多个时区(通常是 Apache 社区的情况)的群体的一般要求。
一些项目还使用更多同步消息传递(例如,IRC 或即时消息)。语音通信极其罕见,通常是因为成本和语言障碍(语音比书面文本更难理解)。
总的来说,异步通信很重要,因为它允许创建存档,并且对各个社区的志愿者性质更加宽容。
每个项目负责自己的项目网站。有关帮助提交者、开发者和 PMC 的更多信息,请访问ASF 基础设施。
项目通常是自治的,并由自愿承担工作的个人驱动。这有时被称为“行动至上”——那些付诸行动的人的权力。这在大多数情况下都能很好地发挥作用。
当需要协调时,项目会以惰性共识的方式做出决策:少数肯定票且没有否定票就足以开始。
投票以数字表示
+1 -- 赞成票
0 -- 弃权,没有意见
-1 -- 反对票
规则要求注册反对票的 PMC 成员必须提供替代方案或详细说明反对票的原因。
然后社区试图就能够解决问题的替代方案达成共识。在绝大多数情况下,导致反对票的担忧都可以得到解决。
这个过程称为“共识收集”,我们认为它是健康社区的一个非常重要的标志。
具体案例有一些更详细的投票规则。
虽然没有官方列表,但人们经常引用这六项原则,通常称为“Apache之道”,作为基金会核心信念。
协作软件开发
商业友好型标准许可证
持续高质量的软件
尊重、诚实、基于技术的互动
忠实地实现标准
安全作为强制性功能
所有 ASF 项目都遵循这些原则。同样,Apache 项目必须独立管理,不受不当的商业影响。
ASF 项目的所有参与者都是志愿者,没有人(即使是成员或官员)直接从基金会获得报酬来完成他们的工作。有很多提交者被支付报酬来参与项目,但从未直接从基金会获得报酬。相反,使用该软件并希望增强或维护该软件的公司或机构提供薪水。
ASF 确实将各种服务外包,包括会计、新闻和媒体关系以及基础设施系统管理。
包括董事会、官员、提交者和成员在内的所有 ASF,都以个人身份参与。这是 ASF 的一个优势:个人关系不会影响个人的贡献。
除非另有明确说明,否则 ASF 参与者在任何邮件列表上发布的内容都是以他们自己的名义发布的。这是个人的观点,戴着他们个人的帽子,而不是作为他们现在正在签署支票的公司或 ASF 主管的发言人。
所有 ASF 参与者都隐含地拥有多个帽子,特别是董事会、官员和 PMC 主席。他们有时需要讨论政策问题,因此为了避免显得在表达个人意见,他们会声明他们以其特殊身份说话。但是,大多数时候这没有必要:个人意见运作良好。
有些人通过在电子邮件中使用特殊的脚注来声明他们的帽子,其他人将他们的陈述括在特殊的引号中,其他人则在使用个人邮箱地址时使用他们的 apache.org 邮箱地址。最后一种方法不可靠,因为许多人一直使用他们的 apache.org 地址。
我们努力在尽可能公开的情况下进行讨论。这鼓励开放性,提供公开记录,并刺激更广泛的社区。
但是,有时内部私人邮件列表是必要的。您绝不能未经列表的明确许可就在公开场合泄露该列表中的信息。也永远不要在私人和公共列表之间复制电子邮件(无抄送)。这样的事件将超出电子邮件礼仪的正常需要,并将构成严重违反信任的行为。这可能会造成严重的后果,导致不必要的混乱和信息不实的讨论。
私人列表通常仅用于与个人相关的事项(如选举新的提交者)以及需要保密的法律事项。
ASF 没有办公室或建筑物。它唯一的实体存在是使其能够运行的技术基础设施和员工。
ASF 基础设施团队,称为“Infra”,支持帮助 ASF 及其项目运作和蓬勃发展的服务。了解更多。
为了支持和鼓励新项目,ASF 创建了孵化器,以帮助新项目加入基金会。
由于精英管理制度的规则从 ASF 的底层到顶层都适用,因此对于这种治理形式的长期稳定性至关重要的一点是,项目的初始提交者群体必须非常了解这种系统的动态,并与 ASF 对其项目期望的协作和开放的哲学态度相同。
孵化器负责
筛选有关创建新项目或子项目的提议
帮助创建新项目及其运作所需的基础设施
监督和指导孵化的社区,帮助其创建开放的、精英管理的环境
评估孵化项目的成熟度,并决定是否将其提升为正式项目/子项目状态,或者在失败的情况下,将其淘汰。
孵化器(如董事会)不基于技术问题进行筛选。基金会尊重并支持各种技术方法。它不惧怕创新,甚至不惧怕功能重叠的项目之间内部的冲突。
孵化器基于项目成为成功的精英管理社区的可能性来筛选项目。孵化的基本要求是
一个工作的代码库——多年来,在经历了几次失败之后,基金会逐渐认识到,如果没有最初的工作代码库,通常很难引导社区。这是因为没有工作代码库,开发人员很难识别出优点。此外,在初始设计阶段可能产生的摩擦很可能导致社区分裂。
将软件的足够知识产权分配给ASF的意图——这使得基金会能够获得不可撤销和永久的重新分发和处理代码的权利,而不必担心自身或其用户被锁定,同时仍然允许原始作者保留其版权。
一位赞助的ASF成员或官员——此人充当主要导师,为项目提供方向,帮助处理日常细节并与孵化器PMC保持联系。
孵化期通常用于评估项目是否有能力增加其提交者群体的多样性并在基金会的精英治下规则中运作。
这似乎很容易实现,但在志愿者和高度选择性的环境中,吸引新的提交者并非自动的。
提交者多样性有两个主要原因很重要
它为项目的开发提供了长期稳定性。事实上,如果所有开发人员都隶属于同一实体,那么他们所有人都同时离开项目的可能性远大于一个由隶属于无关实体的个人组成的社区。
它提供了更多样的技术愿景,这保证了更好地适应环境和用户需求,从而增加了软件找到实际用途的机会。
除了孵化器之外,基金会还有其他一些跨基金会项目。例如,ASF没有办公室或建筑物。它是一个仅存在于互联网上的虚拟实体,而基础设施团队管理着使其能够运作的技术基础设施。
在基金会项目页面上阅读更多关于这些和其他跨基金会项目的信息。
ASF还托管了一些基金会范围的邮件列表,您可以在邮件列表页面上了解有关这些邮件列表的信息。
ASF代表了开放组织的最佳范例之一,它在结构和灵活性之间找到了平衡。我们已从200名提交者发展到大约3000名,而且这个数字每天都在持续增长。我们已经能够创建在其市场中处于领先地位的软件产品。我们还能够在开放性和经济可行性之间找到平衡。这赢得了Apache软件的个人用户和跨国公司的尊重。我们希望继续为企业、政府、教育项目和其他软件基金会提供灵感。