要約

  • Apacheの公開ルールは、コード変更に対する有資格者の veto、パッケージの正式リリース投票、PMCのプロジェクト権限、Boardの法人監督を別々に扱う。
  • 権限受領書は、行為、対象成果物、拘束力を持つ集団、ルール、異議、結論、独立した法人行為を残し、commit・投票・Boardの関心を同じ委任にしない。

「Apacheが承認した」は何を指すのか

この言葉は commit、メーリングリストの議論、リリース投票、PMC の決定、Board resolution、または四半期報告への質問を指し得る。ASF の統治説明は、これらを一つにまとめない。技術とコミュニティの方向は各プロジェクトの PMC に置き、資産、商標、役員、全体方針と監督は Foundation の法人層に残す。

先に確認すべきなのは、誰が話したかではなく、何が決められたかである。リポジトリへの書込み、特定の成果物の正式リリース、役員任命や報告の監督は別の行為である。同じ人が複数の役割を持っても、その人の肩書が別の行為の権限を増やすことはない。

commit 権限は正式リリース権限ではない

PMC Guide は、committer がプロジェクトのコードを更新できる一方、ソフトウェアの正式リリースに投票する権限は PMC 全体だけが持つと説明する。これは貢献者の仕事を軽く見る話ではない。ソースを変える技術的能力と、成果物を公式の Apache リリースとして出す組織行為を分ける話である。

だからリリース記録には、候補、ソース revision、署名、チェックサム、最終識別子など、固定された成果物が必要になる。票数だけでは何が決められたか分からない。反対に、PMC のリリース投票は Board が全コードを技術審査したこと、全貢献者が賛成したこと、利用者が採用したことを示さない。

コードの veto は強いが、どこにでも使える停止札ではない

Apache Voting Process は手続、コード変更、パッケージリリースを分ける。非 lazy consensus のコード変更は、三つの +1-1 がないことを求める。資格ある投票者の -1 は veto になり、技術的な理由を伴い、本人が撤回するまで覆せない。

この強さは範囲が明確だから成り立つ。すべての否定的な発言が、あらゆる Apache プロジェクトを止めるわけではない。対象の変更、適用される集団、投票者の資格が必要である。記録には提案と版、技術理由、資格、議論、撤回・修正・放置という帰結を残すべきだ。これだけで法人方針や市場判断になるわけではない。

正式リリースには別のテストがある

パッケージリリースには、少なくとも三つの拘束力ある +1 と、拘束力ある賛成が反対を上回ることが求められる。公開説明は、リリースは veto できないともいう。これはコード変更ルールを弱めた表現ではなく、違う行為のための違う基準である。

したがって、行為種別とルールを示さずに「-1 がリリースを veto した」と書くことはできない。その -1 はコード変更の veto、助言的な意見、またはリリース前の懸念かもしれない。リリースが通っても技術的異議は消えず、安全、採用、商業的完成を証明もしない。特定成果物がリリース規則に従って正式な状態になったことだけを示す。

PMC はプロジェクトを、Board は法人枠を担う

PMC はプロジェクトの技術・コミュニティ方向とリリースを担う。Board は PMC を作り、Vice President/Chair を任命し、法人資産と全体方針を扱い、報告を読み、PMC が機能しない場合には対応できる。しかし ASF は同時に、Board が個別プロジェクトへ技術方向を与えないと明記する。

Director は自動的に committer、PMC member、拘束力ある技術投票者にはならない。技術面で関わるには、そのプロジェクトで他の参加者と同じく merit を得る必要がある。Members は Directors を選ぶが、Membership だけで各プロジェクトの技術方針を決める権利を得るわけでもない。

Chair は二つの層を結ぶが融合しない。PMC 内では一票を持つ普通の member であり、同時に報告と公式 roster を担う officer である。PMC が Chair 交代について合意しても、法人上の任命には Board resolution が必要である。

権限受領書を残す

コード変更については、変更、審査経路、ルール、資格ある投票者、明示的立場、有効な veto の技術理由、結論を残す。リリースについては、成果物、プロジェクト、PMC、期間、拘束力ある投票ルール、結果、最終識別子を結ぶ。法人行為は resolution、任命、依頼、報告確認のどれかを技術議論と別に示す。

これは新しい Apache の義務ではない。大事な「veto」「release」「PMC」「Board」という語が、実際の権限より大きな意味を得ないための Daniel Kade の編集上の提案である。

Sources

  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