摘要

  • Apache 的公开规则把代码修改的合格否决、包的正式发布投票、PMC 的项目权力和 Board 的公司监督区分为不同的行为。
  • 发布权限回执应保存行为类型、工件身份、具有约束力的群体、适用规则、异议、决定和独立的公司行为,不能把提交、投票和 Board 的关注混成一个授权。

同一 Foundation 内有不同的决定表面

“Apache 批准了它”这句话可能指一次 commit、邮件列表讨论、包发布投票、PMC 决议、Board resolution,或者只是董事阅读了一份季度报告。ASF 的治理材料并没有把这些动作视为同义词。它把项目的技术和社区方向交给 PMC,同时把资产、商标、公司政策、官员任命和整体监督留在 Foundation 层面。

关键不是先问谁参加了,而是先问发生了什么行为。committer 写入仓库是一项技术行为;PMC 对一个确定的工件作正式发布决定是另一项;Board 任命 officer、制定总体政策或审阅报告又是另一项。同一个人可以跨越角色,但个人经历不能扩张该行为的授权范围。

仓库写权限不等于正式发布权

PMC Guide 明确说,committer 可以更新项目代码,但只有 PMC 作为整体有权对软件的正式发布投票。这不是降低贡献者的意义,而是区分修改源代码的技术能力和把一个工件作为 Apache 正式发布物的机构行为。

因此,发布记录必须固定对象:release candidate、源代码 revision、签名、校验值或最终发布标识。只有票数而没有稳定工件,后来的人无法知道什么被决定。反过来,一次 PMC 发布票也不证明 Board 审过每一行代码,不证明所有贡献者都赞成,更不证明用户已经采用该工件。

代码否决很强,但不是放之四海皆准的红灯

Apache Voting Process 区分程序事项、代码修改和包发布。对于非 lazy consensus 的代码修改,规则要求三个 +1 且没有 -1。来自合格投票者的 -1 可以构成 veto;它需要技术理由,并且在投票者撤回前不能被推翻。

这项规则的力量恰恰来自范围明确。它不是任何邮件列表上的负面意见都能冻结所有项目活动。记录需要识别具体修改、适用群体和投票资格。有效 veto 应留下提案版本、技术理由、资格、讨论和后续处置——撤回、修改或搁置。它本身不产生公司政策,也不等于市场、用户或董事会已经作出判断。

正式发布走的是另一套门槛

Apache 对包发布规定至少三个具有约束力的 +1,并且约束性赞成多于反对;同一页面说明发布不能被 veto。这不是把代码否决规则削弱一点,而是为不同动作设计的不同测试。

所以,如果没有说明行为类型和适用规则,就不能把某个 -1 写成“否决了发布”。它可能是代码修改中的 veto、非约束性建议,或发布前的技术担忧。相反,发布通过也不会擦掉技术异议,更不证明安全、采用或商业成熟。它只证明这个确定工件按发布规则获得了正式状态。

PMC 管项目,Board 管公司框架

PMC 对项目的技术和社区方向、发布和日常监督负责。Board 创建 PMC、任命项目 Vice President/Chair、管理 Foundation 的公司资产和总体政策、接收报告,并可在 PMC 无法履行责任或不遵守必要政策时采取行动。但 ASF 同时明确指出,Board 不为项目提供技术方向。

董事并不会自动获得 committer 身份、PMC 席位或项目内具有约束力的技术票。若要在技术上影响项目,他们必须像其他人一样在该项目中取得 merit。Members 选举董事并参与 Member 选举,但 Member 身份本身也不赋予所有项目的技术方向权。

Chair 让两层记录相接却不相混。Chair 在 PMC 内只有普通一票,同时作为公司 officer 负责报告和正式 roster。PMC 就 Chair 更换形成的内部意见,仍需 Board resolution 才会成为正式任命。项目共识和公司任命应该是相连但不同的两张记录。

发布权限回执应该写什么

对代码修改,回执应记录变更、审查渠道、适用规则、合格投票者、明确立场、有效 veto 的技术理由和最后处置;安全或人员事项可以保留私密。对发布,回执应固定工件、项目、PMC、时间窗口、约束性投票规则和结果,以及最终发布标识。对公司行为,回执应单独说明是 resolution、任命、请求还是报告审阅。

目标不是替 Apache 创造新合规义务,也不是把每次讨论都变成厚重档案。目标是让“veto”“release”“PMC”“Board”这些重要词汇可以回到它们真正描述的授权依据上。

来源

  1. Apache Corporate Governance — PMCs
  2. Apache Voting Process
  3. Apache Project Management Committee Guide
  4. Apache Corporate Governance — Board of Directors
  5. Apache Corporate Governance — Members
  6. Lu Heng, The Multi-Stakeholder Mirage