| 名前 | 所属 |
|---|---|
| Sameer Agarwal | Deductive AI |
| Michael Armbrust | Databricks |
| Dilip Biswal | Adobe |
| Ryan Blue | Databricks |
| Joseph Bradley | Databricks |
| Matthew Cheah | Palantir |
| Felix Cheung | NVIDIA |
| Mosharaf Chowdhury | University of Michigan, Ann Arbor |
| Bryan Cutler | IBM |
| Jason Dai | Intel |
| Tathagata Das | Databricks |
| Ankur Dave | Databricks |
| Aaron Davidson | Databricks |
| Thomas Dudziak | Meta |
| Erik Erlandson | Red Hat |
| Robert Evans | NVIDIA |
| Wenchen Fan | Databricks |
| Huaxin Gao | Apple |
| Max Gekk | Databricks |
| Jiaan Geng | NetEase |
| Joseph Gonzalez | UC Berkeley |
| Thomas Graves | NVIDIA |
| Martin Grund | Databricks |
| Stephen Haberman | |
| Mark Hamstra | ClearStory Data |
| Seth Hendrickson | Stripe |
| Herman van Hovell | Databricks |
| Liang-Chi Hsieh | Databricks |
| Yin Huai | Databricks |
| Shane Huang | Intel |
| Dongjoon Hyun | Apple |
| Kazuaki Ishizaki | IBM |
| Xingbo Jiang | Databricks |
| Yikun Jiang | Huawei |
| Holden Karau | Fight Health Insurance |
| Shane Knapp | UC Berkeley |
| Cody Koeninger | |
| Andy Konwinski | Databricks |
| Hyukjin Kwon | Databricks |
| Ryan LeCompte | Quantifind |
| Haejoon Lee | Databricks |
| Haoyuan Li | Alluxio |
| Xiao Li | Databricks |
| Yinan Li | |
| Yuanjian Li | Databricks |
| Davies Liu | Juicedata |
| Cheng Lian | Databricks |
| Yanbo Liang | |
| Jungtaek Lim | Databricks |
| Sean McNamara | Oracle |
| Xiangrui Meng | Databricks |
| Xinrong Meng | Databricks |
| Mridul Muralidharan | |
| Andrew Or | |
| Kay Ousterhout | LightStep |
| Sean Owen | Databricks |
| Bingkun Pan | Baidu |
| Tejas Patil | Meta |
| Nick Pentreath | Automattic |
| Attila Zsolt Piros | Cloudera |
| Anirudh Ramanathan | Signadot |
| Imran Rashid | Cloudera |
| Charles Reiss | University of Virginia |
| Josh Rosen | Databricks |
| Sandy Ryza | Databricks |
| Kousuke Saruta | NTT Data |
| Saisai Shao | Datastrato |
| Prashant Sharma | IBM |
| Gabor Somogyi | Apple |
| Ram Sriharsha | Pinecone |
| Chao Sun | OpenAI |
| Maciej Szymkiewicz | |
| Jose Torres | Databricks |
| Peter Toth | Cloudera |
| DB Tsai | Databricks |
| Takuya Ueshin | Databricks |
| Marcelo Vanzin | Cloudera |
| Shivaram Venkataraman | University of Wisconsin, Madison |
| Allison Wang | Databricks |
| Gengliang Wang | Databricks |
| Yuming Wang | eBay |
| Zhenhua Wang | Huawei |
| Patrick Wendell | Databricks |
| Yi Wu | Databricks |
| Andrew Xia | Alibaba |
| Reynold Xin | Databricks |
| Weichen Xu | Databricks |
| Takeshi Yamamuro | NTT |
| Jie Yang | Baidu |
| Kent Yao | NetEase |
| Burak Yavuz | Databricks |
| Xiduo You | NetEase |
| Matei Zaharia | Databricks, Stanford |
| Ruifeng Zheng | Databricks |
| Shixiong Zhu | Databricks |
Sparkへの貢献を始めるには、「貢献方法」をご覧ください。誰でもプロジェクトにパッチ、ドキュメント、サンプルを提出できます。
PMCは、貢献度に基づいて、アクティブな貢献者の中から定期的に新しいコミッターを追加します。新しいコミッターの資格には以下が含まれます。
明らかに特定のベンダーを排他的な方法で優遇するコミュニティは、競合するベンダーからの新しい貢献者を discouraged することになり、これはプロジェクトの長期的な健全性にとって問題となります。
考慮される貢献の種類とレベルは、プロジェクトの分野によって異なる場合があります。たとえば、主にドキュメントに取り組みたい貢献者、または主に特定のOS、ストレージシステムなどのプラットフォームサポートに取り組みたい貢献者を大いに奨励しています。
PMCは新しいPMCメンバーも追加します。PMCメンバーは、Apache Guidanceに記載されているPMCの責任を遂行することが期待されます。これには、リリース投票の支援、Apacheプロジェクトの商標の執行、法的およびライセンス問題への対応、プロジェクトがApacheプロジェクトのメカニズムに従っていることの確認が含まれます。PMCは、これらの活動を理解し、支援できることを示したコミッターを定期的にPMCに追加します。
すべての貢献は、Sparkへの貢献に記載されているように、マージされる前にレビューされる必要があります。特に、コードベースの馴染みのない領域に取り組んでいる場合は、そのコードのGit履歴を確認して、以前に誰がパッチをレビューしたかを確認してください。これは、git log --format=full <filename>を使用して、各パッチをコミットした人物を確認するために「Commit」フィールドを調べることで行うことができます。
活発な、トピックに沿った議論の最中には、公開されている脆弱性の重要なセキュリティ修正などの問題に対処しない限り、PRはマージされるべきではありません。やむを得ない事情がある場合、PRは活発な、トピックから外れた議論の最中にマージされることがあり、議論はより適切な場所に移されます。マージ前に、会話に関与した人々がトピックに沿っていると信じる理由を説明する時間を設ける必要があります。
Lazy consensusは、人々がSparkをフルタイムの仕事としていない可能性や休暇を取る可能性があることを理解しながら、議論が落ち着くまで時間を置くことを要求します。これにより、人々が拒否権を行使する必要性を感じる頻度を制限できると考えられます。
理由を伴うすべての -1 は議論に値します。コミッターではない人物からの -1 は、複数のコミッターの意見なしには上書きできず、他のコミッターが懸念を表明するのに十分な時間を与える必要があります。連絡の取れないコミッターからの -1 は、ASFのコード拒否権ガイドラインに従って、次のステップを決定するためにPMCのコンセンサス投票を必要とします。
これらのポリシーは、コードが保留中の拒否権をもってマージされたり、コンセンサスが達成される前にマージされたりしてはならないというコア原則を再確認するために役立ちます。
PMCは、拒否権が今後もまれであること、そして発生した場合には、すべての関係者が追加の機能作業を進める前にコンセンサスを構築する時間を取ることを願っています。
コミッターであることは、多様な意見を持つ人々のコミュニティで作業しながら、自分の判断を行使することを意味します。不確かな場合は、2番目(または3番目、4番目)の意見を求めることは何も間違っていません。Sparkプロジェクトへの献身に感謝します。それはSparkの開発者とユーザーに感謝されています。
これらのガイドラインが開発を遅らせないことを願っています。むしろ、不確実性を some 軽減することで、コンセンサスに到達しやすくすることを目標としています。これらのガイドラインやその他のSparkプロジェクトの運用手順を改善するためのアイデアがあれば、dev@メーリングリストに連絡して議論を開始してください。
Apacheのmasterブランチにプッシュされた変更は削除できません。つまり、force-pushすることはできません。したがって、テストコミットなどを追加しないでください。実際のパッチのみを追加してください。
以下で説明するmerge_spark_pr.pyスクリプトを使用するには、https://github.com/apache/sparkにapacheという名前のGitリモート、およびgit://github.com/apache/sparkにapache-githubという名前のリモートを追加する必要があります。
apache(PUSH_REMOTE_NAME環境変数のデフォルト値)は、squashされたコミットをプッシュするために使用されるリモートであり、apache-github(PR_REMOTE_NAMEのデフォルト値)は、変更をプルするために使用されるリモートです。これらの2つの別々のリモートを使用することで、PUSH_REMOTE_NAME変数に自分のフォークを指定するだけで、merge_spark_pr.pyの結果を公式Sparkリポジトリにプッシュせずにテストできます。
Sparkのフォークをクローンした後、すでにそこを指すoriginリモートがあります。したがって、正しければ、git remote -vには少なくともこれらの行が含まれているはずです。
apache git@github.com:apache/spark.git (fetch)
apache git@github.com:apache/spark.git (push)
apache-github git@github.com:apache/spark.git (fetch)
apache-github git@github.com:apache/spark.git (push)
origin git@github.com:[your username]/spark.git (fetch)
origin git@github.com:[your username]/spark.git (push)
Apacheリポジトリについては、GitHubへのコマンドライン認証を設定する必要があります。これにはSSHキーや個人アクセストークンの設定が含まれる場合があります。以下を参照してください。
必要な書き込みアクセスがすでに付与されているかどうかを確認するには、GitBoxにアクセスしてください。
これらの手順で問題が発生した場合、または最初のマージのヘルプが必要な場合は、dev@spark.apache.orgに問い合わせてください。
すべてのマージは、dev/merge_spark_pr.pyを使用して行う必要があります。これにより、プルリクエストの変更が1つのコミットにsquashされます。
スクリプトは非常に自己説明的であり、ステップとオプションをインタラクティブに案内します。
マージ前にコミットを修正したい場合(軽微な修正に使用すべきです)は、スクリプトがApacheにプッシュするかどうかを尋ねてくるところで待機させます。次に、別のウィンドウでコードを修正してコミットをプッシュします。git rebase -i HEAD~2を実行し、新しいコミットを「squash」します。その直後にコミットメッセージを編集して、自分のコミットメッセージを削除します。git logで結果が1つの変更であることを確認できます。次に、別のウィンドウでスクリプトを再開します。
また、該当する場合は、JIRAが解決されたらAssigneeを設定することを忘れないでください。スクリプトはほとんどの場合、これを自動的に行うことができます。
PRがマージされたら、どのブランチにマージされたかを記載したコメントをPRに残してください。
(pwendellより)
バックポートのトレードオフは、古いバージョンを実行しているユーザーに修正を配信できること(素晴らしい!)ですが、メンテナンスリリースで新しい、あるいはさらに悪いバグを導入するリスクがあること(悪い!)です。決定のポイントは、バグ修正があり、バックポートする価値があるかどうかが不明な場合です。
以下の側面が考慮すべき重要な点だと思います。
私にとって、これらの結果は、以下の状況でバックポートすべきであるということです。
反対の状況では、バックポートを避ける傾向があります。