闪电般的统一分析引擎

Current Committers

Name Organization
萨默·阿加瓦尔 Facebook
迈克尔cross Databricks
瑞安·布鲁(Ryan Blue) Netflix
约瑟夫·布拉德利 Databricks
马修·蔡 Palantir
Uber
莫沙拉夫·乔杜里 密歇根大学安娜堡分校
布莱恩·卡特勒 IBM
戴son Intel
如来 Databricks
安库·达夫 加州大学伯克利分校
亚伦·戴维森 Databricks
托马斯·杜兹亚克(Thomas Dudziak) Facebook
埃里克·埃兰森(Erik Erlandson) 红帽
罗伯特·埃文斯 NVIDIA
Wenchen Fan Databricks
约瑟夫·冈萨雷斯 加州大学伯克利分校
托马斯·格雷夫斯 NVIDIA
斯蒂芬·哈伯曼 LinkedIn
马克·汉姆斯特拉 ClearStory Data
塞思·亨德里克森(Seth Hendrickson) Cloudera
赫尔曼·范·霍维尔 Databricks
Liang-Chi Hsieh Uber
Yin Huai Databricks
Shane Huang Intel
东俊贤 Apple
石崎和昭 IBM
Xingbo Jiang Databricks
霍尔顿·卡劳 Apple
沙恩·纳普(Shane Knapp) 加州大学伯克利分校
科迪·科宁格 Nexstar Digital
安迪·康温斯基 Databricks
许振权 Databricks
瑞安·莱康普特(Ryan LeCompte) Quantifind
Haoyuan Li Alluxio
Xiao Li Databricks
Yinan Li Google
戴维斯·刘 Juicedata
Cheng Lian Databricks
Yanbo Liang Facebook
肖恩·麦克纳马拉 Oracle
Xiangrui Meng Databricks
穆里德·穆拉利达拉姆 Google
安德鲁·奥 普林斯顿大学
凯·奥斯特豪特(Kay Ousterhout) LightStep
肖恩·欧文(Sean Owen) Databricks
德州Patil Facebook
尼克·彭特拉斯 IBM
阿尼鲁(Anirudh Ramanathan) Rockset
伊姆兰·拉希德(Imran Rashid) Cloudera
查尔斯·赖斯 弗吉尼亚大学
乔什·罗森(Josh Rosen) Stripe
桑迪·里扎(Sandy Ryza) Remix
uta田香介 NTT数据
邵赛赛 Tencent
沙山玛 IBM
拉姆·斯里哈莎(Ram Sriharsha) Databricks
何塞·托雷斯(Jose Torres) Databricks
蔡德培 Apple
上新卓也 Databricks
马塞洛·范津(Marcelo Vanzin) Cloudera
西瓦拉姆·文卡塔拉曼(Shivaram Venkataraman) 威斯康星大学麦迪逊分校
Gengliang Wang Databricks
Yuming Wang eBay
Zhenhua Wang Huawei
帕特里克·温德尔 Databricks
夏安德 Alibaba
雷诺请 Databricks
Weichen Xu Databricks
山室武史 NTT
更多姓名为Burak Yavuz的职场人士 Databricks
马泰扎哈里亚 斯坦福Databricks
Ruifeng Zheng JD.com
Shixiong Zhu Databricks

Becoming a Committer

要开始为Spark做出贡献,请学习如何做出贡献 -任何人都可以向项目提交补丁,文档和示例.

PMC会根据活跃贡献者对Spark的贡献定期添加新的贡献者. 新提交者的资格包括:

  1. 对Spark的持续贡献:提交者应具有对Spark做出重大贡献的历史. 理想的提交者将在整个项目中做出广泛的贡献,并至少承担起"所有权"角色的重要组成部分. 所有权角色意味着现有贡献者认为他们应该为此人运行此组件的补丁.
  2. 贡献的质量:提交者比任何其他社区成员都应该提交简单,经过良好测试和设计良好的补丁. 此外,他们应显示足够的专业知识以能够审查补丁,包括确保它们适合Spark的工程实践(可测试性,文档,API稳定性,代码风格等). 委托人共同负责Spark的软件质量和可维护性. 请注意,在评估质量时,对Spark关键部分(如其核心和SQL模块)的贡献将保持较高的标准. 这些领域的贡献者将面临对其变更的更多审查.
  3. 社区参与:提交者在所有社区互动中都应具有建设性和友好的态度. 他们还应该在开发人员和用户列表上处于活动状态,并帮助指导新的贡献者和用户. 在设计讨论中,即使面对分歧,提交者也应保持专业和外交的态度.

所考虑的贡献类型和水平可能因项目领域而异-例如,我们大力鼓励希望主要从事文档工作,或主要致力于特定OS,存储系统等平台支持的贡献者.

PMC还添加了新的PMC成员. 希望PMC成员履行Apache指导中所述的PMC职责,包括帮助对发行进行投票,强制执行A​​pache项目商标,对法律和许可问题负责,并确保该项目遵循Apache项目机制. PMC会定期向PMC添加提交者,这些提交者表明他们了解并可以帮助完成这些活动.

Review Process

合并之前,应按Contributing to Spark中所述检查所有贡献. 特别是,如果您在不熟悉的代码库区域中工作,请查看该代码的Git历史记录,以了解谁之前检查过补丁. 您可以使用git log --format=full <filename>来执行此操作,方法是检查"提交"字段以查看谁提交了每个补丁.

How to Merge a Pull Request

推送到Apache上的master分支的更改无法删除; 也就是说,我们不能强行推它. 因此,请不要添加任何测试提交或类似的内容,而只能添加真正的补丁.

Setting up Remotes

要使用下面描述的merge_spark_pr.py脚本,您需要在https://github.com/apache/spark上添加一个名为apache的git远程,以及在git://github.com/apache/spark上添加一个名为apache-github远程. git://github.com/apache/spark .

您可能还会有一个远程origin指向您的Spark分支,而upstream指向apache/spark GitHub存储库.

如果正确,则您的git remote -v应该如下所示:

apache	https://github.com/apache/spark.git (fetch)
apache	https://github.com/apache/spark.git (push)
apache-github	git://github.com/apache/spark (fetch)
apache-github	git://github.com/apache/spark (push)
origin	https://github.com/[your username]/spark.git (fetch)
origin	https://github.com/[your username]/spark.git (push)
upstream	https://github.com/apache/spark.git (fetch)
upstream	https://github.com/apache/spark.git (push)

对于apache仓库,您将需要设置对GitHub的命令行身份验证. 这可能包括设置SSH密钥和/或个人访问令牌. 看到:

  • https://help.github.com/articles/connecting-to-github-with-ssh/
  • https://help.github.com/articles/creating-a-personal-access-token-for-the-command-line/

如果您在执行这些步骤时遇到问题,或需要帮助进行第一次合并,请询问dev@spark.apache.org .

Merge Script

所有合并都应使用dev / merge_spark_pr.py进行 ,该请求将拉取请求的更改压缩为一次提交.

该脚本很容易解释,可以引导您交互式地完成步骤和选择.

如果您想在合并之前修改提交(应用于微不足道的修饰),则只需让脚本在询问您是否要推送到Apache的位置等待. 然后,在单独的窗口中,修改代码并推送提交. 运行git rebase -i HEAD~2并"挤压"新提交. 在删除提交消息之后立即编辑提交消息. 您可以使用git log验证结果是否是一项更改. 然后在另一个窗口中恢复脚本.

另外,请记住在解决JIRA时在JIRA上设置受让人. 在大多数情况下,脚本可以自动执行此操作. 但是,如果该贡献者尚未成为ASF JIRA中Spark项目的"贡献者"组的一部分,则在添加它们之前,该贡献者将不起作用. 在https://issues.apache.org/jira/plugins/servlet/project-config/SPARK/roles上请求管理员将该人添加到贡献者中.

PR合并后,请在PR上留下评论,说明已与哪个分支合并.

Policy on Backporting Bug Fixes

From pwendell:

向后移植时的权衡是,您可以将修补程序交付给运行旧版本的用户(很棒!),但是您可能会在维护版本中引入新的或更糟糕的错误(不好!). 决定点是当您有错误修复时,尚不清楚是否值得向后移植.

我认为以下方面非常重要:

  • 反向移植对社区而言是一项极为宝贵的服务,应考虑对其进行任何错误修复.
  • 必须不惜一切代价避免在维护版本中引入新的错误. 随着时间的流逝,将会削弱我们对发布过程的信心.
  • 如果发行人或高级用户认为合适的话,他们总是可以自己移植风险补丁.

对我来说,这些后果是我们应该在以下情况下向后移植:

  • 该错误和修复都很好理解和隔离. 被修改的代码已经过测试.
  • 解决的错误是社区的高度优先事项.
  • 向后移植的修补程序与master分支修补程序差别不大.

在相反的情况下,我们倾向于避免退货:

  • 错误或修复不是很清楚. 例如,它涉及复杂组件或第三方库(例如Hadoop库)之间的交互. 除了修复当前的错误外,该代码还没有经过良好的测试.
  • 对于社区来说,该错误显然不是优先考虑的事情.
  • 向后移植的修订与主分支修订大不相同.

by  ICOPY.SITE