このドキュメントでは、プロジェクトのルールとガバナンスについて説明します。これは、プロジェクトのすべての開発者と Prometheus コミュニティのメンバーが従うことを目的としています。このガバナンスドキュメントで使用する一般的な用語を以下に示します。
チームメンバー: 非公開の prometheus-team Google グループのメンバーです prometheus-team
メンテナー: 個々のプロジェクトまたはその一部を担当しています (MAINTAINERS.md
)
プロジェクト: Prometheus GitHub Organization の単一リポジトリをプロジェクトと呼びます。
Prometheus プロジェクト: 1 つまたは複数のリポジトリやコミュニティに関するこのガバナンスによって行われるすべてのアクティビティの合計。
Prometheus の開発者とコミュニティは、CNCF チャーターで定義されている価値観、CNCF 行動規範に従う必要があります。さらに、Prometheus コミュニティは、思いやり、効果的なフィードバック、歓迎的な環境の構築を目指しています。Prometheus の開発者は通常、コンセンサスで決定しますが、コンセンサスが得られない場合は過半数による投票で紛争解決を行います。
各プロジェクトには、少なくとも 1 人のメンテナーが記載された MAINTAINERS.md
ファイルが必要です。プロジェクトにリリースプロセスがある場合、複数の担当者がリリースを実行できるように、アクセスとドキュメントが必要です。リリースは、prometheus-users メーリングリストで発表する必要があります。新しいプロジェクトは、以下の投票手順に従って、開発者メーリングリストで最初に提案する必要があります。プロジェクトが関連しなくなった場合は、prometheus-junkyard GitHub Organization に移行する必要があります。
チームメンバーのステータスは、Prometheus プロジェクトに 3 か月以上継続的に貢献している人に与えられます。これは通常、コードの改善、ドキュメントでの目立った作業の形で行われますが、イベントの開催やユーザーサポートも考慮できます。
新しいメンバーは、すでにチームに存在するメンバーが prometheus-team に電子メールを送信して提案できます。新しいメンバーの承認についてコンセンサスに達することが非常に望ましいです。ただし、最終的には 過半数投票 によって正式に承認されます。
新しいメンバーの提案が承認された場合、提案されたチームメンバーに承認または拒否をメールで直接連絡する必要があります。このメールには記録管理目的で prometheus-team が CC で入ります。
承認を選択した場合、オンボーディング プロセスが行われます。
チームメンバーはいつでも チーム にメールを送信して退任できます。
チームメンバーは、チームのメーリングリスト での 過半数投票 によって削除できます。この投票では、問題のメンバーは投票資格がなく、定足数にもカウントされません。削除投票は、1 人のみに適用できます。
メンバーが死亡した場合、自動的にチームを離れます。
メンバーが離脱した場合、オフボーディング プロセスが適用されます。
現在のチームメンバーは次のとおりです。
以前のメンバー
このガバナンス文書と正式なチームメンバーシップが作成される前に、Prometheus がリストされていない多数の個人から多大な貢献があったことに注意してください。
メンテナーは、1 つ以上のプロジェクトまたはその一部を管理し、このプロジェクトの関係者間の対立解消の連絡窓口を務めます。理想的には、メンテナーはチームメンバーでもありますが、チームメンバーではないのに適任なメンテナーについては例外が認められる場合があります。
メンテナーの変更は 開発者のメーリングリスト で発表する必要があります。変更は ルーズコンセンサス によって決定され、各リポジトリの MAINTAINERS.md
ファイルを変更することで公式化されます。
メンテナーは GitHub 組織 内のすべてのプロジェクトに対するコミット権限が付与されます。
メンテナーやコミッターは チームメーリングリスト に通知することで辞任できます。1 年間プロジェクトの活動がないメンテナーは辞任したとみなされます。辞任したいメンテナーは、プロジェクトを引き継ぐ別のチームメンバーを提案することを推奨します。
責任の範囲が明確に同意されている限り、プロジェクトには複数のメンテナーがいてもかまいません。これには、どの問題やプルリクエストを誰が処理するかを調整することも含まれます。
単一のプロジェクトにのみ影響する技術的な意思決定は、そのプロジェクトのメンテナーによって非公式に行われ、おおよその合意 が想定されています。Prometheus プロジェクトの複数の部分にまたがる技術的な意思決定は Prometheus 開発者メーリングリスト で議論され、行われるべきです。
意思決定は通常、おおよその合意 によって行われます。合意が得られない場合は、多数決 で問題が解決される可能性があります。
このドキュメントの重大な変更は 開発者メーリングリスト で公開で議論されます。変更にはすべて賛成過半数 が必要です。編集上の変更は、異議が唱えられない限り、おおよその合意 によって行うことができます。
編集上の変更とは、スペルや文法を修正したり、所属を変更したりするなど、スタイルを更新したり、明白な外部の現実を反映したりする変更です。このドキュメントの意図や意味は変更しません。変更は PR を介して行われ、おおよその合意 によって承認される必要があります。
財務事項を含め、決定を必要とする事項には、必要に応じてメンバーが投票を呼びかけることができます。財務、プライベート、人事に関する事項の議論や投票は チームメーリングリスト で行われ、それ以外の場合は 開発者メーリングリスト で行われます。
Prometheus プロジェクトは通常、非公式のコンセンサスによって運営されますが、正式な決定を下さなければならない場合があります。
上記で説明されているように、議題によって投票の方法が異なります。
すべての投票は少なくとも 1 週間公開で行う必要があります。投票の終了日は投票の呼びかけにはっきり記載する必要があります。十分な票が集まって最終的な決定が変わる可能性がなくなった場合、投票の呼びかけを早期に終了できます。
すべてのケースにおいて、チームメンバー のみ投票する資格があり、チームメンバーの強制的な削除は唯一の例外であり、そのメンバーは投票する資格がありません。
人事事項(チームメンバーシップやメンテナーシップを含みますが、それらに限定されません)に関する議論や投票は、チームメーリングリスト で非公開で行われます。その他すべての議論と投票は 開発者メーリングリスト で公開で行われます。
公開討論では、利害関係のある人は誰でも参加を推奨します。チームメンバー には、異議を唱えたり投票したりする正式な権限が限定されています。
Prometheusプロジェクトのデフォルトの意思決定メカニズムはlazy consensusです。これは、技術的な問題に関するあらゆる決定が、誰も反対しない限り、チームによる支持を得ていると見なされることを意味します。
コンセンサス決定に対する無言は、暗黙の合意であり、明示的な合意と同等です。明示的な合意は、任意の時点で明言できます。決定は、開発者メーリングリスト上でいつでも誰でも呼び出して意思決定に付することもできますが、そうする必要はありません。
コンセンサス決定は、以前の明示的な投票の精神に反したり、それに反したりすることは決してできません。
チームメンバーが異議を申し立てた場合は、チームメンバーは全員が受け入れられる解決策に向けて協力して取り組みます。この解決策は、再びlazy consensusの対象となります。
コンセンサスが見つからず、どちらかの決定が行われなければならない場合は、チームメンバーが、正式な過半数投票を呼び出すことができます。
過半数投票は、適切なメーリングリストで、別スレッドで明示的に呼び出す必要があります。件名は[VOTE]
で始まる必要があります。本文では、投票の呼びかけで、投票の対象となる提案を明記する必要があります。この時点までの議論を参照する必要があります。
投票は、賛成または反対の選択肢がある単一の提案の形式をとることも、複数の選択肢の形式をとることもあります。
単一の提案に対する投票は、反対よりも賛成の投票が多い場合に成功すると見なされます。
複数の選択肢がある場合、メンバーは1つまたは複数の選択肢に投票するか、またはすべての選択肢に異議を唱えるために「反対」に投票できます。棄権票を投じることはできません。複数の選択肢に対する投票は、その選択肢が最も多くの賛成票を獲得し、投票者の半数以上からの投票があった場合に、その選択肢に賛成して決定されたと見なされます。この定足数に達しない選択肢がない場合は、減らした数の選択肢に対する別の投票を別々に呼び出すことができます。
過半数投票は、適切なメーリングリストで、別スレッドで明示的に呼び出す必要があります。件名は[VOTE]
で始まる必要があります。本文では、投票の呼びかけで、投票の対象となる提案を明記する必要があります。この時点までの議論を参照する必要があります。
投票は、賛成または反対の選択肢がある単一の提案の形式をとることも、複数の選択肢の形式をとることもあります。
単一の提案に対する投票は、投票資格のある者の少なくとも3分の2が賛成に投票した場合、成功と見なされます。
複数の選択肢がある場合、メンバーは1つまたは複数の選択肢に投票するか、またはすべての選択肢に異議を唱えるために「反対」に投票できます。複数の選択肢に対する投票は、その選択肢が最も多くの賛成票を獲得し、投票資格のある者の少なくとも3分の2からの投票があった場合に、その選択肢に賛成して決定されたと見なされます。この定足数に達しない選択肢がない場合は、減らした数の選択肢に対する別の投票を別々に呼び出すことができます。
オンボーディング/オフボーディングセクションは情報提供を目的としており、異議が申し立てられない限り、lazy consensusによって変更できます。コンセンサスが得られない場合、この問題は過半数投票で解決できます。
新しいメンバーは
<選ばれたユーザー名>@prometheus.io
のメールアドレスが提供され、チームの GDrive とカレンダーにアクセスできることです。新しいメンバーはそのカレンダーを自分のカレンダーリストに追加する必要があります。)元メンバーは
必要に応じて、削除の公開を発表する権利を留保します。
FAQ のセクションは情報提供を目的としており、異議が申し立てられない限り lazy consensus によって変更できます。合意が得られない場合は、多数決 によって解決できます。
開発者メーリングリスト に議題を送信します。合理的な時間内に異議が申し立てられない場合は、決定が行われたと見なされます。異議があり、合意が得られない場合は、チームメンバーによって投票が行われる場合があります。
公式のチームメンバーになるには、3 か月以上、1 つまたは複数のプロジェクトに継続的な貢献を行う必要があります。その時点で、チームメンバー(通常はプロジェクトのメンテナー)があなたをメンバーシップに提案できます。これに関する議論はプライベートで行われ、決定が下されたときはプライベートで通知されます。卒業パスとして可能ですが必須ではありません。まずメンテナーになることです。
決定が賛成の場合、あなたの新しいメンバーシップも開発者メーリングリスト で発表されます。
チームメンバーとして、開発者メーリングリスト で新しいプロジェクトを提案します。誰も異議を唱えなければ、GitHub 組織内にプロジェクトを作成します。プロジェクトの目標を説明する README.md
と、プロジェクトのメンテナー(この時点で、おそらくあなた)を含む MAINTAINERS.md
を少なくとも追加します。
プロジェクトの廃止を提案するメールを 開発者メーリングリスト に送信します。誰も異議を唱えなければ、それを prometheus-junkyard GitHub 組織に移動します。
メンテナは、チームのメーリングリストに通知することで辞任できます。1年間プロジェクトにアクティビティがないメンテナは、辞任したものとみなされます。メンテナを交代する緊急の必要性がある場合は、チームのメーリングリストでこの件について話し合ってください。
チームメンバーは、チームのメーリングリストに通知することで辞任できます。チームメンバーを自分の意志に反して削除すべきだと考える場合は、チームのメーリングリストに提案してください。議論はそこで非公開で行われます。