Seleniumプロジェクトのガバナンス

Seleniumプロジェクトは、可能な限り、公平、オープン、歓迎的であり、最終的にはコミュニティにとって有益な手順を用いて運営したいと考えています。そのため、プロジェクトが日常業務をどのように進めているかについて、いくつかの方法を成文化することは有益であると考えています。私たちは、誰であろうと、Seleniumに貢献する機会を持つことができるようにしたいと考えています。また、いかなる企業もコミュニティに不当な影響力を行使したり、プロジェクトを人質に取ったりすることができないようにしたいと考えています。同様に、Seleniumの恩恵を受けている企業が、還元するインセンティブも持つようにしたいと考えています。このドキュメントでは、さまざまなタイプのコントリビューターがSeleniumプロジェクト内でどのように活動しているかについて説明します。

ユーザー

ユーザーとは、プロジェクトを必要とするコミュニティメンバーのことです。誰でもユーザーになることができ、特別な要件はありません。一般的なユーザーの貢献には、以下のようなものがあります。
  • プロジェクトの伝道 (例: ウェブサイトにリンクを表示し、口コミで認知度を高める)
  • 新規ユーザーの視点から見た長所と短所を知らせる (例: GitHub issueとしてバグを報告する、新機能を提案する)
  • 精神的なサポートを提供する (「ありがとう」の一言が大きな励みになります)
プロジェクトとそのコミュニティに関与し続けるユーザーは、ますます深く関与するようになることがよくあります。そのようなユーザーは、次のセクションで説明するように、コントリビューターになることがあります。

コントリビューター

コントリビューターとは、コードやドキュメントなどの具体的な方法でプロジェクトに貢献するコミュニティメンバーのことです。誰でもコントリビューターになることができ、貢献の形は多岐にわたります。例えば、以下のようなものがあります。
  • 目的別に設けられたコミュニケーションチャネルを通じて、他のユーザーを支援する。

  • GitHub issueをトリアージする。
  • Seleniumミートアップを企画する。
  • Selenium Conferenceを企画し、協力する。

プロジェクトへのコミットメント、特定のスキル要件、選考プロセスは期待されていません。一部のコントリビューターは、貢献の種類に応じて、GitHubリポジトリへの基本的な権限 (例: トリアージ後にissueをクローズする) が付与される場合があります。

コントリビューターは、ソースコードへの読み取り専用アクセス権を持ち、プルリクエストを通じて変更を送信します。コントリビューターのプルリクエストは、技術リーダーシップ委員会 (TLC) メンバーまたはコミッターによってレビューおよびマージされます。TLCメンバーとコミッターは、コントリビューターと協力してコードをレビューし、マージの準備をします。

コントリビューターがプロジェクトの経験と知識を深めるにつれて、コミュニティ内での地位とコミットメントは向上します。ある段階で、既存のコミッターまたはTLCメンバーからコミッターの役割に推薦されることがあります。

トリアージャー

コントリビューターがプロジェクトに成長するにつれて、トリアージチームのメンバーとして追加されます。彼らの役割は、issueのトリアージを支援し、修正または少なくともコミッターがissueを再現するのに役立つ失敗するテストを含むプルリクエストを送信することです。

トリアージャーになるためのプロセス

  1. GitHubユーザーをselenium-triage GitHubチームに追加する
  2. Slackチームチャットルーム (selenium-tlc) に招待する
  3. SeleniumHQ Twitterアカウントから新しいトリアージャーへの祝辞をツイートする

ドキュメンター

優れたドキュメントは、すべてのソフトウェアプロジェクトにとって非常に重要です。ドキュメンターとは、プロジェクトのさまざまな機能と機能の例と説明を改善することにコミットしていることを示したコミュニティメンバーのことです。ドキュメンターには、プロジェクトのドキュメントGitHubリポジトリへのプッシュアクセス権が付与されます。

ドキュメンターになるためのプロセス

  1. GitHubユーザーをselenium-docs-and-site GitHubチームに追加する
  2. Slackチームチャットルーム (selenium-docs) に招待する
  3. SeleniumHQ Twitterアカウントから新しいドキュメンターへの祝辞をツイートする

翻訳者

国際的なコミュニティをより良くサポートするために、ドキュメントの翻訳を提供しています。翻訳者は、特定の言語のすべてのコンテンツに責任を負います。これには、コンテンツの作成と更新、ある言語で作成されたコンテンツが他の言語への配布のためにフラグが立てられるようにすること、およびそれらの言語ファイルに関連するプルリクエストの管理が含まれます。

翻訳者になるためのプロセス

  1. GitHubユーザーをselenium-docs-and-site GitHubチームに追加する
  2. Slackチームチャットルーム (selenium-docs) に招待する
  3. SeleniumHQ Twitterアカウントから新しい翻訳者への祝辞をツイートする

プロジェクトコミッター

コミッターとは、コミュニティとの継続的な関わりを通じて、プロジェクトの継続的な開発にコミットしていることを示したコミュニティメンバーのことです。コミッターには、貢献するプロジェクトのGitHubリポジトリへのプッシュアクセス権が付与されます。

コミッター

  • プロジェクトのコードに大きな変更を加える提案は、まずGitHub issueで行う必要があり、関連するすべてのコミッターにpingを送信して、必要に応じて議論に参加できるようにする必要があります。
  • コードをマージすべきかどうかについてのコミッター間の議論は、プロジェクトの意思決定履歴を保持するためにGitHubプルリクエストで行う必要があります。
  • 一般的に、どのコミッターもプルリクエストをレビューしてマージできます。コミッターは、レビューする資格のあるコードのみをマージする必要があります。これには、特定のコード領域に対する所有権が大きい別のコミッターにpingを送信することが含まれる場合があります。
  • issueにラベルを付けてクローズすることができます。

コミッターになるには

  • チームプレーヤーとしてプロジェクトに参加する意思と能力を示している必要があります。
  • コミッターは、すべてのコミュニティメンバーを尊重し、インクルージョンの精神で協力的に作業することが期待されます。
  • 異なるプロジェクト (IDE、Docker-Selenium、Selenium、Site & Docs) の1つ以上に十分な実質的な貢献を提出していること。技術的な貢献については、十分に重みがあり、十分に文書化されテストされているため、受け入れるのにほとんど労力を必要としません。通常、コミッターの候補となるには10件の実質的な貢献が必要ですが、貢献が十分に実質的である場合は、より少ない件数でも許容される場合があります。

新しいコミッターは、既存のコミッターまたはTLCメンバーによって推薦されることができます。推薦されると、TLCメンバーはコンセンサス・シーキング・プロセスに基づいて決定を求めます。

コミッターの役割を持つことは権利ではなく特権であることを認識することが重要です。その特権は獲得する必要があり、一度獲得すれば、標準的なTLC動議によってTLCメンバーによって削除される可能性があります。ただし、通常の状況下では、コミッターの役割はコミッターがプロジェクトへの関与を継続したいと望む限り存続します。

プロジェクトへの貢献度が平均以上であり、特に戦略的方向性と長期的な健全性に関して貢献しているコミッターは、後述のTLCメンバーに推薦される可能性があります。

コミッターを追加するためのプロセス

  1. GitHubユーザーを関連するGitHubチームに追加する
    • メインのSeleniumリポジトリの場合はselenium-committers
    • メインのSelenium IDEリポジトリの場合はselenium-ide
    • ウェブサイトとドキュメントリポジトリの場合はselenium-docs-and-site
    • Docker-Seleniumリポジトリの場合はselenium-docker
  2. Slackチームチャットルーム (selenium-committers) に招待する
  3. SeleniumHQ Twitterアカウントから新しいコミッターへの祝辞をツイートする

現在のコミッターのリストを表示するには、こちらをクリックしてください。

技術リーダーシップ委員会 (TLC)

Seleniumプロジェクトの技術的な意思決定とロードマップは、プロジェクトのハイレベルな技術ガイダンスを担当する技術リーダーシップ委員会 (TLC) によって管理されています。

TLCは、このプロジェクトに対して以下の最終的な権限を持っています。

TLCの議席に任期制限はありません。TLCの固定サイズはありません。TLCは、意思決定を効率的に行う能力と、専門知識の重要な分野を適切にカバーすることを保証するのに十分なサイズである必要があります。

TLCは、標準的なTLC動議によってTLCメンバーを追加することができます。

TLCメンバーは、自主的な辞任、または標準的なTLCまたはPLC動議によってTLCから削除される場合があります。

TLCメンバーの3分の1を超えて同じ雇用主に所属することはできません。TLCメンバーの削除または辞任、またはTLCメンバーの転職によって、TLCメンバーシップの3分の1を超えるメンバーが同じ雇用主を共有する状況が生じた場合、過剰に代表されている雇用主に所属する1人以上のTLCメンバーの辞任または削除によって、状況を直ちに是正する必要があります。

TLCメンバーは、コミッターの責任に加えて、追加の責任を負います。これらの責任は、プロジェクトが技術的な実行可能性と持続可能性を円滑に確保することを保証します。TLCメンバーは、コードの貢献をレビューし、このドキュメントの変更を承認し、プロジェクトの成果物内の著作権を管理することが期待されています。

TLCメンバーは、コミッターのすべての要件を満たし、さらに
  • 影響を受けるコード領域に関する深い知識を必要としないレビューと承認を条件として、影響を受けるコード領域に対する所有権が大きい可能性のある他のコミッターにpingを送信する必要なく、承認されたissueのプルリクエストをレビューおよび承認後にマージできます。
  • リポジトリにコードを直接プッシュするか、必要に応じて、必要なフィードバックを収集したら、独自のプルリクエストを作成してマージします。
  • 月に一度、技術的な状況とプロジェクトのロードマップについて話し合います。
TLCメンバーになるには
  • コミュニティと協力して役立つ方法で作業します。
  • 他の人の提出物について適切なフィードバックを提供し、プロジェクトのコード品質基準を全体的に理解していることを示している。
  • 長期的にコミュニティの一員となることを約束する。
  • 異なるプロジェクト (IDE、Docker-Selenium、Selenium、Site & Docs) 全体で、少なくとも20件の実質的なプルリクエストを提出するか、または少なくとも20件の実質的なコミットをプッシュしている。

コミッターは、既存のTLCメンバーによってTLCメンバーになるように招待されます。推薦は議論につながり、その後TLCによる決定が行われます。

TLCメンバーを追加するためのプロセス

  1. GitHubユーザーをSelenium TLCチームに追加する
  2. GitHubユーザーにSeleniumHQ組織の「オーナー」ロールを設定する
  3. Slack TLCチャットルーム (selenium-tlc) に招待する
  4. TLCメンバーをさまざまなパッケージ配布組織に追加する
    • NPM
    • SonarType (maven)
    • pypi.org
    • rubygems.org
    • nuget.org
  5. SeleniumHQ Twitterアカウントから新しいTLCメンバーへの祝辞をツイートする

現在のTLCメンバーのリストを表示するには、こちらをクリックしてください。

プロジェクトリーダーシップ委員会 (PLC)

プロジェクトの全体的な継続性と将来は、SeleniumプロジェクトとSoftware Freedom Conservancy (SFC) の橋渡し役となるプロジェクトリーダーシップ委員会 (PLC) によって監督されています。

Seleniumプロジェクトには多くの異なる側面があるため、PLCはコードを扱う人だけではなく、より多くの人を反映したいと考えています。PLCは、プロジェクトが資金を支出したり、法的契約を締結したり、弁護士に対応する必要がある場合など、さまざまな方法で関与します。通常、PLCは残りのコミュニティとトピックについて話し合い、その後投票セッションが行われます。

標準的なPLCの議席に任期制限はありません。PLCのメンバーは、一度に1つの雇用主に所属する人に限定されます。PLCのメンバー数は常に奇数である必要があり、投票が同数になることがないようにします。理想的な最小数は5人です。PLCメンバーは、コミュニティのアクティブメンバーでもある必要があります。

さらに、TLCは、そのメンバーの1人をアクティブなPLCメンバーとして任命する投票を行うことができます。この人は上記の雇用主の制限を受けませんが、任命は自動的に6か月後に失効します。PLCのTLCメンバーは、TLCの意向を伝えるために投票を使用します。これには、メンバーがTLCメンバーからの投票を開催して、PLCにプロキシされるコンセンサスを作成する必要がある場合があります。投票中に同数になった場合、TLC代表の投票が勝利票となります。

PLCメンバーになるには
  • 既存のPLCメンバーが辞任し、後任となる人 (または人々) を提案します。
  • コミッターまたはコントリビューターであること。
  • 長期的にコミュニティの一員となることを約束する。
  • 既存のPLCは、TLCおよびアクティブなコミッターと協議し、コンセンサス・シーキング・プロセスに基づいて、それらの人々を追加するかどうかを決定します。

  • アイデアを最初に話し合って (彼らがそれに同意していることを確認するために)、誰も公に提案されることはありません。
PLCは、このプロジェクトに対して以下の最終的な権限を持っています。
  • プロジェクトのガバナンスとプロセス (このポリシーを含む)。
  • 貢献ポリシー (TLCと共有)。
  • 予算と法律関連の問題。

PLCはまた、月に一度、プロジェクトの全体的な状況と、保留中または今後のトピックについて話し合う必要があります。

PLCメンバーは、自主的な辞任、または標準的なPLC動議によってPLCから削除される場合があります。

PLCメンバーを追加するためのプロセス

  1. Slack PLCチャットルーム (selenium-plc) に招待する
  2. SeleniumHQ Twitterアカウントから新しいPLCメンバーへの祝辞をツイートする

現在のPLCメンバーのリストを表示するには、こちらをクリックしてください。

コミュニケーションチャネル

プロジェクトは、情報提供、開発支援、チームメンバー間のコミュニケーションを可能にするためのさまざまなチャネルを維持しています。これらのチャネルでのすべての種類のコミュニケーションについて、プロジェクトの行動規範の遵守が厳守されています。

  • Twitterアカウント @seleniumhq: プロジェクトまたはプロジェクト関連のトピックに関するニュースを伝達および宣伝するため。

  • チャットルーム: すべてのSeleniumユーザーがプロジェクトの使用に関する問題についてヘルプとサポートを求めるためのチャット。

  • Slack : IRCチャットルームをミラーリングし、すべてのSeleniumユーザーがプロジェクトの使用に関する問題についてヘルプとサポートを求めるためにも使用されます。

  • プロジェクトコミッターチャネル、上記のSlackチャネルのselenium-committers: プロジェクトコミッターチームのメンバーが貢献について話し合い、他の共同作業を組織するためのプライベートチャネル。
  • TLCチャネル、上記のSlackチャネルのselenium-tlc: TLCメンバーが技術計画と技術プロジェクトロードマップについて話し合うためのプライベートチャネル。
  • PLCチャネル、上記のSlackチャネルのselenium-plc: PLCメンバーがプロジェクト全体の計画、ロードマップ、および関連する問題について話し合うためのプライベートチャネル。

コンセンサス・シーキング・プロセス

PLCとTLCは、コンセンサス・シーキング意思決定モデルに従います。

議題項目がコンセンサスに達したと思われる場合、モデレーターはコンセンサスからの反対を最終的に求めるために「反対はありますか?」と尋ねます。

議題項目がコンセンサスに達しない場合、PLC/TLCメンバーは、投票を締め切るか、または次の会議まで問題に関するさらなる議論を延期する投票を求めることができます。投票の要求は、TSCの過半数の承認を得る必要があり、さもなければ議論は継続されます。単純過半数で決定します。

スポンサーシップ

Seleniumプロジェクトは、501(c)3非営利団体であるSoftware Freedom Conservancyのメンバーです。Conservancyは、独自の専用法人を作成することに伴う管理上のオーバーヘッドを削減するために、Inkscape、Samba、Wineなどの他のプロジェクトと組織リソースをプールすることを許可してくれました。

詳細については、https://selenium.dokyumento.jp/sponsor/をご覧ください。

商用およびコミュニティ主導のプロジェクト

Seleniumプロジェクトが提供するツールの幅広い使用は、商用サービスとオープンソース/コミュニティ主導のプロジェクトの大きなオファーを生み出しました。Seleniumプロジェクトは、Seleniumのコミュニティ全体での使用を簡素化および普及させることを目的とするあらゆる種類のプロジェクトまたはサービスを開始することを誰でも可能にし、奨励しています。

それにもかかわらず、オープンソース、コミュニティ、非営利の起源のため、Seleniumプロジェクトは、スポンサーページを除き、SeleniumまたはWebDriverに基づく同じ性質のプロジェクトのみをウェブサイトで言及します。商用ツールまたはプロジェクトがSeleniumウェブサイトで言及されたい場合は、このドキュメントのスポンサーシップセクションをご覧ください。

ガバナンスに関連する問題の提起

このガバナンスモデルは、必然的に多くの状況を特定せずに残します。プロジェクトの全体的な目標に従って、特定の状況がどのように進むべきかについて疑問が生じた場合は、GitHub issueを開き、PLC/TLCメンバーにpingを送信するのが最善です。