氏名 | 所属組織 |
---|---|
Sameer Agarwal | |
Michael Armbrust | Databricks |
Dilip Biswal | Adobe |
Ryan Blue | Netflix |
Joseph Bradley | Databricks |
Matthew Cheah | Palantir |
Felix Cheung | SafeGraph |
Mosharaf Chowdhury | ミシガン大学アナーバー校 |
Bryan Cutler | IBM |
Jason Dai | Intel |
Tathagata Das | Databricks |
Ankur Dave | カリフォルニア大学バークレー校 |
Aaron Davidson | Databricks |
Thomas Dudziak | |
Erik Erlandson | Red Hat |
Robert Evans | NVIDIA |
Wenchen Fan | Databricks |
Huaxin Gao | Apple |
Max Gekk | Databricks |
Jiaan Geng | DataCyber |
Joseph Gonzalez | カリフォルニア大学バークレー校 |
Thomas Graves | NVIDIA |
Stephen Haberman | |
Mark Hamstra | ClearStory Data |
Seth Hendrickson | Cloudera |
Herman van Hovell | Databricks |
Liang-Chi Hsieh | Apple |
Yin Huai | Databricks |
Shane Huang | Intel |
Dongjoon Hyun | Apple |
石崎 和明 (Kazuaki Ishizaki) | IBM |
Xingbo Jiang | Databricks |
Yikun Jiang | Huawei |
Holden Karau | Apple |
Shane Knapp | カリフォルニア大学バークレー校 |
Cody Koeninger | Nexstar Digital |
Andy Konwinski | Databricks |
Hyukjin Kwon | Databricks |
Ryan LeCompte | Quantifind |
李 浩元 (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 |
Tejas Patil | |
Nick Pentreath | IBM |
Attila Zsolt Piros | Cloudera |
Anirudh Ramanathan | Rockset |
Imran Rashid | Cloudera |
Charles Reiss | バージニア大学 |
Josh Rosen | Stripe |
Sandy Ryza | Remix |
猿田 晃輔 (Kousuke Saruta) | NTTデータ |
邵 賽賽 (Saisai Shao) | Datastrato |
Prashant Sharma | IBM |
Gabor Somogyi | Apple |
Ram Sriharsha | Databricks |
孫 超 (Chao Sun) | Apple |
Maciej Szymkiewicz | |
Jose Torres | Databricks |
Peter Toth | Cloudera |
蔡 德弼 (DB Tsai) | Apple |
植信 拓也 (Takuya Ueshin) | Databricks |
Marcelo Vanzin | Cloudera |
Shivaram Venkataraman | ウィスコンシン大学マディソン校 |
王 耿亮 (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、スタンフォード大学 |
鄭 瑞峰 (Ruifeng Zheng) | Databricks |
朱 施雄 (Shixiong Zhu) | Databricks |
Sparkへの貢献を始めようとする場合、貢献方法を学ぶことから始めましょう。誰でもプロジェクトにパッチ、ドキュメント、例を提出できます。
PMCは、Sparkへの貢献に基づいて、アクティブな貢献者から定期的に新しいコミッターを追加します。新しいコミッターの資格には、以下が含まれます。
考慮される貢献の種類とレベルは、プロジェクトの分野によって異なる場合があります。たとえば、主にドキュメント、または特定のOS、ストレージシステムなどのプラットフォームのサポートに取り組みたい貢献者を大いに奨励しています。
PMCは、新しいPMCメンバーも追加します。PMCメンバーは、リリースの投票への参加、Apacheプロジェクトの商標の施行、法的およびライセンスの問題への責任の分担、Apacheプロジェクトのメカニズムへの準拠など、Apacheガイダンスに記載されているように、PMCの責任を果たすことが期待されています。PMCは、これらの活動について理解し、支援できることを示したコミッターを定期的にPMCに追加します。
すべての貢献は、Sparkへの貢献に記載されているように、マージする前にレビューする必要があります。特に、不慣れなコードベースの領域に取り組んでいる場合は、そのコードのGit履歴を確認して、以前どのパッチがレビューされたかを確認してください。git log --format=full <filename>
を使用してこれを行うことができ、「コミット」フィールドを調べると、各パッチをコミットした人がわかります。
公開された脆弱性の重要なセキュリティ修正などの問題に対処する場合を除き、アクティブで話題に沿った議論中にPRはマージされません。例外的な状況では、アクティブで話題に沿っていない議論中にPRがマージされ、議論がより適切な場所に移動される場合があります。会話に関わっている人々が、話題に沿っていると信じているかどうかを説明するために、マージする前に時間を与える必要があります。
遅延コンセンサスとは、人々がSparkをフルタイムの仕事として行っていない可能性があり、休暇を取る可能性があることを理解しながら、議論が落ち着く時間を与えることを必要とします。これを行うことで、拒否権を行使する必要を感じる頻度を制限できると考えられています。
正当な理由のあるすべての-1は議論に値します。非コミッターからの-1は、複数のコミッターからの入力によってのみ上書きでき、コミッターが懸念事項を提起するための適切な時間を提供する必要があります。連絡が取れないコミッターからの-1は、ASFコード拒否権に関するガイドラインに従って、次の手順を決定するために、ASF投票規則の下でPMCのコンセンサス投票が必要です。
これらのポリシーは、拒否権が保留されている場合、またはコンセンサス(遅延しているかどうかにかかわらず)に達する前に、コードをマージしてはならないという基本原則を繰り返すものです。
PMCは、拒否権が引き続きまれであることを望んでおり、発生した場合、すべての当事者が追加の機能作業の前にコンセンサスを構築するために時間をかけることを望んでいます。
コミッターになるということは、さまざまな見解を持つ人々のコミュニティで作業しながら、自分の判断力を発揮することを意味します。不確かな場合は、第2(または第3、第4)の意見を得ることに何も問題はありません。Sparkプロジェクトへのご尽力に感謝いたします。それはSparkの開発者とユーザーによって高く評価されています。
これらのガイドラインが開発を遅くすることはありません。むしろ、不確実性の一部を除去することにより、コンセンサスに到達しやすくすることを目指しています。これらのガイドラインまたはその他のSparkプロジェクト運用手順を改善する方法に関するアイデアがある場合は、dev@リストに連絡して議論を開始してください。
Apacheのマスターブランチにプッシュされた変更は削除できません。つまり、強制プッシュすることはできません。そのため、テストコミットなどは追加しないでください。実際のパッチのみを追加してください。
以下に説明するmerge_spark_pr.py
スクリプトを使用するには、https://github.com/apache/spark
にapache
というgitリモート、git://github.com/apache/spark
にapache-github
というリモートを追加する必要があります。
apache
(PUSH_REMOTE_NAME
環境変数のデフォルト値)は、圧縮されたコミットをプッシュするために使用されるリモートであり、apache-github
(PR_REMOTE_NAME
のデフォルト値)は、変更をプルするために使用されるリモートです。これらの2つのアクションに対して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
にお問い合わせください。
すべてのマージは、プルリクエストの変更を1つのコミットに圧縮するdev/merge_spark_pr.pyを使用して実行する必要があります。
スクリプトは非常に分かりやすく、手順とオプションを対話的に説明します。
マージ前にコミットを修正する場合(些細な修正を行う場合に使用する必要があります)は、Apacheへのプッシュを促す時点でスクリプトを待機させます。その後、別のウィンドウでコードを修正し、コミットをプッシュします。git rebase -i HEAD~2
を実行し、新しいコミットを「squash」します。直後にコミットメッセージを編集して、自分のコミットメッセージを削除します。git log
で結果が1つの変更であることを確認できます。その後、別のウィンドウでスクリプトを再開します。
また、該当する場合は、JIRAの担当者を解決時に設定してください。スクリプトはほとんどの場合、これを自動的に実行できます。
PRがマージされたら、マージされたブランチをPRにコメントとして残してください。
pwendell
より
バックポートを行う際のトレードオフは、古いバージョンを実行しているユーザーに修正を提供できる(素晴らしい!)ことですが、メンテナンスリリースに新しいバグ、あるいはさらに悪いバグを導入するリスクがある(悪い!)ことです。判断基準となるのは、バグ修正があり、それがバックポートする価値があるかどうかが不明確な場合です。
考慮すべき重要な要素は以下のとおりです。
これらの結果から、私は以下の状況でバックポートを行うべきだと考えています。
反対の状況では、バックポートを避ける傾向があります。