このドキュメントでは、Apache Hadoopプロジェクトが運営される際の定款を定義しています。プロジェクトの役割と責任、投票権を持つ人、投票の仕組み、紛争の解決方法などを定義しています。
Hadoopは、Apache Software Foundationのプロジェクトです。財団は、「Hadoop」という名称の商標と、Hadoopコードベースを含むApacheコードの著作権を保持しています。財団のFAQでは、財団の運営と背景について説明しています。
Hadoopは、一般的に「Apache Way」として知られる一連の原則に基づいて運営されている点で、Apacheプロジェクトの典型です。Apacheの開発が初めての方は、Apacheプロジェクトの運営方法について詳しくは、インキュベータープロジェクトをご覧ください。
Apacheプロジェクトでは、関連する権利と責任を持つ一連の役割を定義しています。これらの役割は、個人がプロジェクト内で実行できるタスクを規定します。役割は以下のセクションで定義されています。
ユーザー
プロジェクトの最も重要な参加者は、私たちのソフトウェアを使用する人々です。開発者の大部分はユーザーとしてスタートし、ユーザーの視点から開発努力を導きます。
ユーザーは、バグレポートや機能の提案という形で開発者にフィードバックを提供することで、Apacheプロジェクトに貢献します。また、メーリングリストやユーザーサポートフォーラムで他のユーザーを支援することにより、Apacheコミュニティに参加します。
貢献者
Hadoopプロジェクトに時間、コード、ドキュメント、またはリソースを提供しているすべてのボランティア。プロジェクトに継続的で歓迎される貢献をしている貢献者は、コミッターになるよう招待される場合がありますが、このような招待の正確なタイミングは多くの要因に左右されます。
コミッター
プロジェクトのコミッターは、プロジェクトの技術管理を担当します。コミッターは、すべてのサブプロジェクトのSubversionリポジトリにアクセスできます。コミッターは、サブプロジェクトに関する技術的な議論に拘束力のある投票を行うことができます。
コミッターアクセスは招待制のみであり、アクティブなPMCメンバーの合意による承認が必要です。コミッターは、自身の宣言、または6か月以上プロジェクトに一切貢献していない場合、名誉会員と見なされます。名誉会員のコミッターは、PMCにコミットアクセスの復帰を要求できます。このような復帰は、アクティブなPMCメンバーの合意による承認が必要です。
重要な普及機能は、リポジトリの投機的なブランチで開発されることがよくあります。PMCは、イニシアチブがアクティブな間、一貫した貢献者にブランチに対するコミット権を付与する場合があります。ブランチコミッターは、機能の活発なリリースへの導入を監督する責任があり、プロジェクトで拘束力のある投票や拒否権を行使することはありません。
すべてのApacheコミッターは、Apache Software Foundationに提出された署名済みの貢献者ライセンス契約(CLA)が必要です。コミッターの要件に関する詳細は、コミッターFAQに記載されています。
プロジェクトに継続的に貢献しているコミッターは、PMCのメンバーになるよう招待される場合があります。貢献の形式はコードに限定されません。コードレビュー、メーリングリストでのユーザー支援、ドキュメント作成、テストなども含まれます。
リリース管理者
リリース管理者(RM)は、HowToReleaseに従ってリリース候補を作成することを自発的に申し出るコミッターです。RMは、リリース候補を作成する予定のブランチを、少なくとも1週間前にcommon-dev@リストにリリース計画を公開する必要があります。RMは、製品リリース投票を成功させるために、リリース候補の内容に関するコンセンサスを構築する責任があります。
プロジェクト管理委員会
Apache Hadoopのプロジェクト管理委員会(PMC)は、HadoopがLuceneから移動し、Apacheのトップレベルプロジェクトになった2008年1月にApache理事会によって設立されました。PMCは、Apache Hadoopコードベースの管理と監督について、理事会とASFに対して責任を負います。PMCの責任には、以下が含まれます。
PMCのメンバーシップは招待制のみであり、アクティブなPMCメンバーの合意による承認が必要です。PMCメンバーは、自身の宣言、または6か月以上プロジェクトに一切貢献していない場合、「名誉会員」と見なされます。名誉会員は、PMCへの復帰を要求できます。このような復帰は、アクティブなPMCメンバーの合意による承認が必要です。
PMCの議長はASF理事会によって任命されます。議長は、Apache Software Foundationの役員(Apache Hadoopの副社長)であり、Hadoop PMCの範囲内のプロジェクトの管理について、理事会に対して第一義的な責任を負います。議長は、Hadoopプロジェクト内の開発について、四半期ごとに理事会に報告します。
PMCの議長は毎年交代します。議長が交代する場合、または現在のPMC議長が辞任した場合、PMCは単記移譲式投票(STV)を使用して新しい議長を推薦するための投票を行います。詳しくは、https://wiki.apache.org/general/BoardVotingをご覧ください。決定は、Apache理事会によって批准される必要があります。
Hadoopプロジェクト内では、さまざまな種類の決定に、異なる形式の承認が必要です。たとえば、前のセクションでは、「コンセンサス承認」が必要な決定についていくつか説明しています。このセクションでは、投票の実行方法、承認の種類、およびどの種類の決定にどの種類の承認が必要かを定義します。
投票
プロジェクトに関する決定は、主要なプロジェクト開発メーリングリスト(general@hadoop.apache.org)での投票によって行われます。必要に応じて、PMCの投票は非公開のHadoop PMCメーリングリストで行われる場合があります。投票は、[VOTE]で始まる件名で明確に示されます。投票には、承認対象となる複数の項目が含まれる場合があり、これらは明確に分離する必要があります。投票は、投票メールに返信することによって行われます。投票には4つの種類があります。
Hadoopプロジェクトのすべての参加者は、投票によって特定のアクションへの賛成または反対を示すことが推奨されます。技術的な決定の場合、アクティブなコミッターの投票のみが拘束力を持ちます。拘束力のない投票は、拘束力のある投票を持つ人が、より広範なHadoopコミュニティでのアクションの認識を理解する上で役立ちます。PMCの決定については、PMCメンバーの投票のみが拘束力を持ちます。
投票は、Hadoopコードベースに加えられた変更にも適用できます。これらは通常、コミットの実行時に送信されるコミットメッセージへの返信での拒否権(-1)の形式をとります。
承認
これらは、求められる可能性のある承認の種類です。アクションごとに異なる種類の承認が必要です。
拒否権
有効な拘束力のある拒否権は、覆すことはできません。拒否権が行使された場合は、拒否権の理由を説明する正当な理由が伴う必要があります。拒否権の有効性は、異議が唱えられた場合、拘束力のある投票権を持つすべての人が確認できます。これは、拒否権への同意を必ずしも意味するものではなく、拒否権が有効であることを意味するに過ぎません。
有効な拒否権に同意しない場合は、拒否権を行使した人に拒否権を撤回するよう働きかける必要があります。拒否権が撤回されない場合、拒否権が行使されたアクションは、タイムリーに元に戻す必要があります。
アクション
このセクションでは、プロジェクト内で実行されるさまざまなアクション、そのアクションに必要な対応する承認、およびそのアクションに対する拘束力のある投票権を持つ人々について説明します。
コード変更
プロジェクトのコードベースに加えられた変更で、コミッターによってコミットされたもの。これには、ソースコード、ドキュメント、ウェブサイトのコンテンツなどが含まれます。
アクティブなコミッターのコンセンサス承認ですが、少なくとも1つの+1が必要です。コードは最初の+1の後でコミットできますが、コード変更がブランチからのマージを表す場合は、3つの+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日間の期間が適用されます。