プロジェクトのガバナンス
このドキュメントの公式バージョン、および以下のガバナンスセクションで定義された役割を担う個人および機関のリストは、pandasウェブサイトのプロジェクトガバナンスページに掲載されています。
プロジェクト
pandasプロジェクト(以下「本プロジェクト」)は、501(c)3 NumFOCUS財団に加盟しているオープンソースソフトウェアプロジェクトです。本プロジェクトの目標は、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財団(https://numfocus.org)と正式に提携しています。NumFOCUSは、本プロジェクトと正式な関係を持つ唯一の法人です(以下の「機関パートナー」セクションを参照)。
ガバナンス
このセクションでは、本プロジェクトのガバナンスとリーダーシップモデルについて説明します。
プロジェクトガバナンスの基礎は次のとおりです。
- オープン性と透明性
- 積極的な貢献
- 機関の中立性
伝統的に、プロジェクトのリーダーシップは、BDFL(ウェス・マッキニー)と、その積極的かつ一貫した貢献がプロジェクトのGitHubリポジトリへの「コミット権」の付与によって認められたコントリビューターのサブセットであるコアチームによって提供されてきました。一般的に、すべてのプロジェクトの決定は、コミュニティからの意見を参考に、コアチーム間の合意を通じて行われます。BDFLは、コアチームの意見を覆し、最終決定を下すことができますが、実際にはめったにその権限を行使することはありません。
このアプローチはこれまでうまく機能してきましたが、プロジェクトが成長し、より多くの法的および財務上の決定に直面し、他の機関とやり取りするにつれて、より正式なガバナンスモデルの必要性を感じています。今後、本プロジェクトのリーダーシップはBDFLとコアチームで構成されます。このガバナンスモデルは、方向性の変更というよりも、私たちがすでに行っていることを形式化したものと見なしています。
BDFL
本プロジェクトにはBDFL(終身慈悲深き独裁者)がおり、現在はウェス・マッキニーです。独裁者として、BDFLは本プロジェクトのすべての最終決定を行う権限を有します。慈悲深き独裁者として、BDFLは実際にはその権限をコミュニティの議論チャネルとコアチームの合意に委ねることを選択します。BDFLが最終的な権限を行使することはめったになく、過去にもそうであったことが期待されます。めったに使用されないため、BDFLの最終的な権限を「特別な」または「覆す」投票と呼びます。それが起こる場合、BDFLによる覆しは通常、コアチームで膠着状態が生じた場合、またはコアチームが特定の事項についてBDFLに決定を依頼した場合に発生します。BDFLの慈悲深さを保証するために、本プロジェクトは、BDFLが取っている全体的な方向性に同意しない場合、プロジェクトをフォークすることを奨励しています。BDFLはコアチームの議長であり(下記参照)、自身の裁量で特定の決定または一連の決定に関する権限を他のコアチームメンバーに委譲することができます。
BDFLは自身の後継者を任命することができますが、この決定についてはコアチームに相談することが期待されます。BDFLが後継者を任命できない場合(例:死亡または病気の場合)、コアチームは、コアチームメンバーの少なくとも2/3が選ばれた後継者に賛成票を投じることにより、後継者を選出します。コアチームの少なくとも80%が投票に参加しなければなりません。BDFL候補者がコアチームの票の2/3を獲得しない場合、コアチームメンバーはBDFL候補者をMain NumFOCUS理事会に提案し、理事会が最終決定を下します。
コアチーム
本プロジェクトのコアチームは、質と量において実質的な貢献を1年以上継続して行ってきたプロジェクトコントリビューターで構成されます。コアチームの全体的な役割は、BDFLと協力し、コミュニティからの意見を取り入れながら、技術的にもコミュニティとしてもプロジェクトの長期的な健全性を確保することです。
日常のプロジェクト活動中、コアチームは、他のすべてのコントリビューターおよびコミュニティと同じ立場で、すべての議論、コードレビュー、その他のプロジェクト活動に参加します。これらの日常活動において、コアチームはそのメンバーシップを通じて特別な権力や特権を持つことはありません。しかし、その貢献の質と量、およびプロジェクトソフトウェアに関する専門知識により、コアチームは、経験の浅いコントリビューターに対して、技術的にもプロジェクトの方向性に関しても、有用なガイダンスを提供することが期待されます。
コアチームとそのメンバーは、特定の状況において特別な役割を果たします。特に、コアチームは以下のことができます。
- プロジェクトの全体的な範囲、ビジョン、方向性について決定を下す。
- 他の組織や個人との戦略的コラボレーションについて決定を下す。
- 特定の技術的問題、機能、バグ、プルリクエストについて決定を下す。これらは、コードレビュープロセスを導き、プルリクエストをマージする主要なメカニズムです。
- 本プロジェクトが運営するサービスについて決定を下し、プロジェクトとコミュニティの利益のためにそれらのサービスを管理する。
- 通常のコミュニティ議論で合理的な時間枠で合意が得られない場合に決定を下す。
コアチームのメンバーシップ
コアチームメンバーとしての資格を得るには、個人は、質と量において実質的な貢献を1年以上継続して行ってきたプロジェクトコントリビューターである必要があります。潜在的なコアチームメンバーは、既存のコアメンバーによって指名され、その潜在的なメンバーがその能力で奉仕することに関心と意欲があるかを確認した後、既存のコアチームによって投票されます。コアチームは、2015年後半にコミット権が与えられた既存のコントリビューターのセットから最初に形成されます。
潜在的なメンバーを検討する際、コアチームは候補者の貢献を包括的に評価します。これには、コード、コードレビュー、インフラストラクチャ作業、メーリングリストとチャットへの参加、コミュニティのヘルプ/構築、教育とアウトリーチ、デザイン作業などが含まれますが、これらに限定されません。プロジェクト全体の健全性よりも指標を重視する行動を奨励することを避けるため、恣意的な定量的指標(「このリポジトリで100コミット」など)を意図的に設定していません。私たちのチームには多様な背景、視点、才能を奨励したいと考えており、そのため、コードをコアチームのメンバーシップを評価する唯一の指標として明示的に定義していません。
コアチームメンバーが1年間プロジェクトで活動を停止した場合、コアチームからの除外が検討されます。除外の前に、非活動中のメンバーにはBDFLから、活動に復帰する予定があるかどうかの確認が行われます。復帰しない場合は、コアチームの投票により直ちに除外されます。近いうちに活動に復帰する予定がある場合は、1年間の猶予期間が与えられます。その期間内に活動に復帰しない場合は、それ以上の猶予期間なしにコアチームの投票により除外されます。元コアチームメンバーは全員、他のプロジェクトコントリビューターと同様に、将来いつでもメンバーシップの再検討の対象となります。引退したコアチームメンバーはプロジェクトウェブサイトに記載され、コアチームで活動していた期間が認められます。
コアチームは、BDFLを除く現在のメンバーがプロジェクトの健全性に対して積極的に有害であると判断され、コミュニケーションと紛争解決の試みが失敗した場合、それらのメンバーを追放する権利を留保します。
利益相反
BDFLおよびコアチームメンバーは、様々な企業、大学、非営利団体に雇用されることが予想されます。このため、メンバーは利益相反を抱える可能性があります。このような利益相反には、以下が含まれますが、これらに限定されません。
- プロジェクト外での投資、雇用、契約業務など、プロジェクトにおける彼らの仕事に影響を与える可能性のある経済的利益。
- 雇用主の専有情報へのアクセスで、プロジェクトでの彼らの仕事に漏洩する可能性のあるもの。
BDFLを含むコアチームのすべてのメンバーは、彼らが抱える可能性のある利益相反をコアチームの他のメンバーに開示しなければなりません。特定の課題に利益相反を持つメンバーは、その課題に関するコアチームの議論に参加できますが、その課題への投票は辞退しなければなりません。BDFLが特定の決定について辞退した場合、その決定については代替のBDFLを任命します。
コアチームの非公開通信
特に要求されない限り、すべてのコアチームの議論と活動は公開され、プロジェクトのコントリビューターおよびコミュニティとの協力および議論を通じて行われます。コアチームは、特定の事項がプライバシーを必要とする場合にのみ、控えめに使用されるプライベートメーリングリストを持ちます。非公開の通信と決定が必要な場合、コアチームは、公開インターネットに投稿すべきではない個人的/プライベート/機密情報を削除した後、コミュニティにそれらを要約するために最善を尽くします。
小委員会
コアチームは、プロジェクトの特定の側面に対してリーダーシップとガイダンスを提供する小委員会を設置することができます。コアチーム全体と同様に、小委員会は、特にプライバシーが求められない限り、その業務をオープンで公開された方法で遂行すべきです。非公開の小委員会通信は、特に要求されない限り、コアチームの主要なプライベートメーリングリストで行われるべきです。
質問:BDFLが小委員会に所属していない場合でも、拒否権はありますか?
提案:彼らはその権限を持っていますが、ほとんどの場合その役割を果たす代理人を任命し、委員会がその代理人の決定に同意せず、チーム内で解決が不可能な場合にのみ、明示的なBDFLの介入を求められるべきです。これは、特定の決定(または忌避の状況)のためのBDFLの代理人とは異なります。その場合、BDFLは文字通り自身の権限を他者に完全に与えています。これは、リーナス・トーバルズが彼の「副官」モデルで使用しているものに似ています。
NumFOCUS小委員会
コアチームは、NumFOCUSとの連携を管理するために、一つの焦点を絞った小委員会を維持します。
- 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%が投票し、投票の少なくとも2/3が賛成である必要があります(票の端数は最も近い整数に切り上げ)。BDFLは本プロジェクトにおける最終的な権限を持つため、BDFLは単独で変更を受け入れるか却下するか、またはコアチームの決定を覆す権限を有します。