プロジェクトガバナンス
このドキュメントの公式バージョンと、下記のガバナンスセクションで定義されている役割の個人および機関のリストは、pandasウェブサイトのプロジェクトガバナンスページに記載されています。
プロジェクト
pandasプロジェクト(以下「プロジェクト」)は、501(c)3非営利団体であるNumFOCUS Foundationに関連するオープンソースソフトウェアプロジェクトです。プロジェクトの目標は、Pythonプログラミング言語のためのデータインジェスト、データ準備、データ分析、データ視覚化のためのオープンソースソフトウェアを開発することです。プロジェクトによって開発されたソフトウェアは、BSD(または類似の)オープンソースライセンスの下でリリースされ、公開され、pandas GitHub組織の下で公開GitHubリポジトリでホストされています。プロジェクトソフトウェアの例としては、メインのpandasコードリポジトリとpandas-stubsライブラリがあります。
NumFOCUSとの提携を通じて、プロジェクトはアメリカ合衆国で税控除可能な寄付を受け取る権利を有しています。
プロジェクトは、貢献者と呼ばれる分散型の開発者チームによって開発されています。貢献者は、1つ以上のプロジェクトリポジトリにコード、ドキュメント、設計、またはその他の作業を貢献した個人です。誰でも貢献者になることができます。貢献者は、いかなる法的実体にも所属している場合と、所属していない場合があります。貢献者は、GitHubプルリクエストとイシューの提出、レビュー、議論、GitHub、メーリングリスト、その他での公開プロジェクトの議論への参加によってプロジェクトに参加します。プロジェクト参加の基礎は、オープン性と透明性です。
メインのpandasリポジトリへの現在の貢献者のリストを以下に示します。
https://github.com/pandas-dev/pandas/graphs/contributors
pandasプロジェクトの他のリポジトリのログにも、多くの他の貢献者がリストされています。
プロジェクトコミュニティは、プロジェクトのすべての貢献者とユーザーで構成されています。貢献者は、より大きなプロジェクトコミュニティのために働き、責任を負っており、貢献者とユーザー間の障壁を可能な限り低く保つよう努めています。
プロジェクトは、正式に501(c)3非営利団体であるNumFOCUS Foundation (https://numfocus.org) と提携しており、同財団は財政スポンサーとして機能し、プロジェクトの商標やその他の知的財産を保有し、プロジェクトの寄付の管理を支援し、親となる法的実体として機能します。NumFOCUSは、プロジェクトと正式な関係を持つ唯一の法的実体です(下記の機関パートナーのセクションを参照)。
ガバナンス
このセクションでは、プロジェクトのガバナンスとリーダーシップモデルについて説明します。
プロジェクトガバナンスの基礎は、
- オープン性と透明性
- 積極的な貢献
- 機関的中立性
従来、プロジェクトのリーダーシップはBDFL(Wes McKinney)と、プロジェクトのGitHubリポジトリへの「コミット権」を付与されることで貢献が認められた貢献者のサブセットであるコアチームによって提供されていました。一般的に、すべてのプロジェクトの決定は、コミュニティからの意見を参考にコアチーム間のコンセンサスによって行われます。BDFLは、めったにありませんが、コアチームを覆して、問題に関する最終決定を行うことができます。
このアプローチはこれまで私たちに役立ってきましたが、プロジェクトの成長と、より多くの法的および財務上の決定に直面し、他の機関とやり取りするにつれて、より正式なガバナンスモデルの必要性が見えてきました。今後、プロジェクトのリーダーシップはBDFLとコアチームで構成されます。このガバナンスモデルは、方向転換ではなく、すでに実施していることの形式化と捉えています。
BDFL
プロジェクトには、現在Wes McKinneyであるBDFL(Benevolent Dictator for Life:終身慈悲深い独裁者)がいます。独裁者として、BDFLはプロジェクトのすべての最終決定を行う権限を持っています。慈悲深いものとして、BDFLは実際にはその権限をコミュニティの議論チャンネルとコアチームのコンセンサスに委ねています。BDFLがめったに最終的な権限を行使しないことが期待されており、過去にもそうでした。めったに使用されないため、BDFLの最終的な権限を「特別」または「上書き」投票と呼びます。発生した場合は、通常、コアチームで行き詰まった場合、またはコアチームが特定の問題についてBDFLに決定を依頼した場合に、BDFLの上書きが発生します。BDFLの慈悲深さを確保するために、プロジェクトは、BDFLの方向性に同意しない場合にプロジェクトをフォークすることを奨励しています。BDFLはコアチームの議長であり(下記参照)、独自の裁量で特定の決定または一連の決定に関する権限を他のコアチームメンバーに委任することができます。
BDFLは後任を任命できますが、この決定にはコアチームに相談することが期待されています。BDFLが後任を任命できない場合(例:死亡または病気の場合)、コアチームは、コアチームメンバーの少なくとも2/3が選出された後任に賛成票を投じることで後任を選びます。コアチームの少なくとも80%が投票に参加する必要があります。BDFL候補者がコアチームの投票の2/3を獲得できない場合、コアチームメンバーはBDFL候補者をメインのNumFOCUSボードに提案し、最終決定を行います。
コアチーム
プロジェクトのコアチームは、質と量において実質的な貢献を行い、少なくとも1年間継続して貢献してきたプロジェクト貢献者で構成されます。コアチームの全体的な役割は、BDFLと協力し、コミュニティからの意見を取り入れることによって、技術的にもコミュニティとしてもプロジェクトの長期的な幸福を確保することです。
毎日のプロジェクト活動において、コアチームは、他のすべての貢献者とコミュニティと同様に、すべての議論、コードレビュー、その他のプロジェクト活動に参加します。これらの毎日の活動において、コアチームは、コアチームのメンバーシップを通じて特別な権限や特権を持っていません。しかし、彼らの貢献の質と量、そしてプロジェクトソフトウェアに関する専門知識から、コアチームは、経験の浅い貢献者にも、技術的にもプロジェクトの方向性においても、役立つガイダンスを提供することが期待されています。
コアチームとそのメンバーは、特定の状況で特別な役割を果たします。特に、コアチームは、
- プロジェクトの全体的な範囲、ビジョン、方向性に関する決定を行うことができます。
- 他の組織や個人との戦略的協業に関する決定を行うことができます。
- 特定の技術的な問題、機能、バグ、プルリクエストに関する決定を行うことができます。彼らは、コードレビュープロセスとプルリクエストのマージを導く主要なメカニズムです。
- プロジェクトによって実行されるサービスに関する決定を行い、プロジェクトとコミュニティの利益のためにそれらのサービスを管理します。
- 通常のコミュニティの議論が、合理的な時間枠内に問題に関するコンセンサスを生み出さない場合に決定を行います。
コアチームのメンバーシップ
コアチームメンバーになる資格を得るには、質と量において実質的な貢献を行い、少なくとも1年間継続して貢献してきたプロジェクト貢献者である必要があります。潜在的なコアチームメンバーは、既存のコアメンバーによって指名され、潜在的なメンバーがその職務に就くことに関心があり、喜んで就くかどうかを確認した後に、既存のコアチームによって投票されます。コアチームは、2015年末時点でコミット権を付与された既存の貢献者の集合から最初に形成されます。
潜在的なメンバーを検討する際には、コアチームは、彼らの貢献を包括的に見て候補者を評価します。これには、コード、コードレビュー、インフラストラクチャの作業、メーリングリストとチャットへの参加、コミュニティのヘルプ/構築、教育とアウトリーチ、設計作業などが含まれますが、これらに限定されません。プロジェクトの全体的な幸福ではなく、指標に合わせた行動を促進することを避けるために、意図的に恣意的な定量的指標(このリポジトリで「100コミット」など)を設定していません。私たちは、チームにさまざまな背景、視点、才能を積極的に取り入れたいと考えているため、コードをコアチームのメンバーシップが評価される唯一の指標として明確に定義していません。
コアチームメンバーが1年間プロジェクトで非アクティブになった場合、コアチームから削除されるかどうかが検討されます。削除される前に、非アクティブなメンバーは、アクティブな参加に戻る予定があるかどうかを確認するためにBDFLによってアプローチされます。そうでない場合は、コアチームの投票後すぐに削除されます。すぐにアクティブな参加に戻る予定がある場合は、1年間の猶予期間が与えられます。その期間内にアクティブな参加に戻らない場合は、さらなる猶予期間なしにコアチームの投票によって削除されます。退任したコアチームメンバーは、コアチームで活動していた期間が認められて、プロジェクトのウェブサイトにリストされます。
コアチームは、プロジェクトの幸福に積極的に有害であるとみなされ、コミュニケーションと紛争解決の試みが失敗した場合、BDFL以外の現在のメンバーを排除する権利を留保します。
利益相反
BDFLとコアチームメンバーは、幅広い企業、大学、非営利団体に雇用されていることが期待されています。そのため、メンバーが利益相反を抱えている可能性があります。そのような利益相反には、以下が含まれますが、これらに限定されません。
- プロジェクト以外の投資、雇用、契約作業など、プロジェクトでの作業に影響を与える可能性のある経済的利益。
- プロジェクトでの作業に漏洩する可能性のある、雇用主の専有情報へのアクセス。
コアチームのすべてのメンバー(BDFLを含む)は、抱えている可能性のある利益相反をコアチームの他のメンバーに開示する必要があります。特定の問題で利益相反を抱えているメンバーは、その問題に関するコアチームの議論に参加できますが、その問題に関する投票からは身を引く必要があります。BDFLが特定の決定に関して身を引いた場合、その決定のために代理BDFLを任命します。
コアチームの私的なコミュニケーション
特に必要がない限り、コアチームのすべての議論と活動は公開され、プロジェクトの貢献者とコミュニティとの協力と議論で行われます。コアチームは、控えめに、そして特定の事項がプライバシーを必要とする場合にのみ使用されるプライベートメーリングリストを持ちます。プライベートなコミュニケーションと決定が必要な場合、コアチームは、公開インターネットに投稿すべきではない個人情報/プライベート情報/機密情報を削除した後に、それらをコミュニティに要約するよう最善を尽くします。
小委員会
コアチームは、プロジェクトの特定の側面に対してリーダーシップとガイダンスを提供するサブコミッティを設立することができます。コアチーム全体と同様に、サブコミッティも、プライバシーが特に必要とされない限り、オープンで公開された方法で業務を行うべきです。プライバシーが必要とされない限り、サブコミッティの非公開コミュニケーションは、コアチームのメインの非公開メーリングリストで行うべきです。
質問:BDFLがサブコミッティに所属していない場合、依然として拒否権はありますか?
提案:拒否権はありますが、BDFLはほとんどの場合その役割を果たす代理人を指名するべきであり、委員会がその代理人の決定に同意せず、チーム内で解決策が見つからない場合にのみ、明示的なBDFLの介入を求めるべきです。これは、特定の決定に対するBDFLの代理人(または忌避状況)とは異なり、BDFLが文字通り自分の権限を完全に他の人に委譲する場合とは異なります。これは、Linus Torvaldsが「副官」モデルで使用しているものと似ています。
NumFOCUSサブコミッティ
コアチームは、NumFOCUSとのやり取りを管理するために、狭く焦点を絞った1つのサブコミッティを維持します。
- NumFOCUSサブコミッティは、NumFOCUSを通じて提供されるプロジェクト資金を管理する少なくとも5名で構成されます。これらの資金は、NumFOCUSの非営利の使命と、コアチーム全体によって決定されたプロジェクトの方向性に沿って支出されることが期待されます。
- このサブコミッティは、プロジェクトの方向性、範囲、または技術的な方向性に関する決定を行ってはなりません。
- このサブコミッティは、少なくとも5人のメンバーで構成されます。1人の人物(直接的または間接的に)への報告者は、雇用または契約作業を通じて2名を超えてはいけません(報告者を含む、つまり報告者+1が最大です)。これは、1人に有効な過半数が集中することを防ぎます。
機関パートナーと資金調達
BDFLとコアチームは、プロジェクトの主要なリーダーシップです。外部の機関、個人、または法人は、貢献者およびコアチームとしてプロジェクトに参加すること以外に、プロジェクトを所有、管理、乗っ取ったり、影響を与えることはできません。しかし、機関はプロジェクトの主要な資金調達メカニズムであるため、プロジェクトにおける機関の参加を正式に認めることが重要です。これらは機関パートナーです。
機関貢献者とは、機関パートナーにおける公式の職務の一環としてプロジェクトに貢献する個々のプロジェクト貢献者のことです。同様に、機関コアチームメンバーとは、機関パートナーにおける公式の職務の一環としてプロジェクトに貢献するコアチームメンバーのことです。
これらの定義により、機関パートナーとは、米国またはその他の場所で、少なくとも1人の機関貢献者または機関コアチームメンバーを雇用する、認められた法的実体です。機関パートナーは、営利目的の団体または非営利団体のいずれでもかまいません。
機関は、公式の職務の一環としてプロジェクトに積極的に貢献する従業員を雇用することにより、機関パートナーになる資格を得ます。言い換えれば、機関パートナーがプロジェクトに影響を与える唯一の方法は、コミュニティの他の貢献者やコアチームメンバーと平等な条件で、プロジェクトのオープン開発に積極的に貢献することです。pandasソフトウェアまたはサービスを機関のコンテキストで使用することだけでは、団体が機関パートナーになることはできません。寄付金は、団体が機関パートナーになることを可能にするものではありません。機関が機関パートナーシップの資格を得たら、コアチームがパートナーシップを指名して承認する必要があります。
既存の機関パートナーが貢献する従業員がいなくなった場合、他の従業員が貢献を開始するために1年間の猶予期間が与えられます。
機関パートナーは、いかなる合法的な手段によっても、プロジェクトにおける業務のための資金調達を自由に追求することができます。これには、非営利団体が民間財団やドナーから資金を集めること、または営利企業がプロジェクトのソフトウェアとサービスを活用した独自の製品やサービスを構築することが含まれます。機関パートナーがプロジェクトで作業するために取得した資金は、機関資金と呼ばれます。ただし、機関パートナーが取得した資金は、プロジェクトのBDFLとコアチームを無効にすることはできません。パートナーがpandasの作業を行うための資金を持ち、コアチームがそれをプロジェクトとして追求しないと決定した場合、パートナーは独自にそれを追求することができます。ただし、この状況では、パートナーの作業のその部分はpandasの傘下にはなく、正式な関係を示唆するような方法でプロジェクトの商標を使用することはできません。
機関の貢献を認めるために、関連する特典を持つ2つのレベルの機関パートナーがあります。
ティア1 = 少なくとも1人の機関コアチームメンバーを持つ機関
- pandasのウェブサイト、講演会、Tシャツで紹介されます。
- pandasのウェブサイト、講演会、Tシャツで独自の資金源を紹介できます。
- コアチームメンバーの参加を通じてプロジェクトに影響を与えることができます。
ティア2 = 少なくとも1人の機関貢献者を持つ機関
違反
ガバナンス文書の条項に違反した場合は、適切と思われる公開または非公開チャネルを通じてコアチームに報告する必要があります。
ガバナンスの変更
ガバナンスの変更は、プロジェクトのGitHubプルリクエストを通じて提出されます ガバナンスページ。プルリクエストは、公開コメントとレビューに応じて改良され、コミュニティでのコンセンサスを目指します。この公開期間の後、コアチームメンバーは、変更を承認し、プルリクエストをマージする(提案された変更を受け入れる)こと、またはプルリクエストをマージせずにクローズすること(提案された変更を拒否する)ことをコアチームに提案します。メンバーは、承認または拒否のために提案されているプルリクエストの最終コミットハッシュを明記し、プルリクエストを簡単に要約する必要があります。提案された行動を実行するには、コアチームの少なくとも80%が投票し、そのうち少なくとも3分の2が賛成票である必要があります(投票の小数は最寄りの整数に切り上げます)。BDFLはプロジェクトにおける最終的な権限を持つため、BDFLは単独で変更を受け入れるか拒否するか、またはコアチームの決定を覆す権限を持っています。