1. 介绍
数据湖作为下一代技术,概念持续火热,国内外已经有越来越多的公司开始调研并采用 ApacheHudi。开发者对于新的 feature、发现的 bug、对项目的 question等, Hudi社区都鼓励开发者通过邮件列表、提 JiraIssue、 PR等方式参与社区,这样能形成良好的社区氛围,促进社区快速发展。对于想要参与社区开发但还不知道如何参与的开发者,本篇文章给出了指引。
2. 准备
若开发者之前已经参与过Apache社区的其他项目,对此流程应该非常熟悉,可略过余下部分,直接提出你的第一个Hudi PR!
2.1 账号准备
Github账号,作为开发者理应人手一个。JIRA账号,基本上所有Apache项目都通过jira跟踪管理feature或bug,可通过如下地址https://issues.apache.org/jira/secure/Signup!default.jspa注册jira账号。
2.2 PR准备
为鼓励开发者快速参与Hudi社区,社区会将一些简单任务标记为starter、newbie,可通过这里(https://issues.apache.org/jira/issues/?jql=project+%3D+HUDI+AND+component+%3D+newbie)查找新手任务,对于未修复的jira单,用户可assign给自己,对于较大功能修改或bug修复,可先在页面上与其他开发者讨论具体实现思路,确保思路可行并达到统一后再开始编码。
Forkhttps://github.com/apache/incubator-hudi/到自己的仓库(可顺手star)。
Clone自己仓库的incubator-hudi到本地。cd incubator-hudi进入本地项目根目录。git remote add upstream https://github.com/apache/incubator-hudi.git将apache仓库incubator-hudi添加为upstream。后续可使用git fetch upstream master,git merge upstream/master,git push origin master来同步apache仓库master分支的修改至自己远程仓库的master分支,当然也可以选择其他工作流,如将apache仓库的项目添加为origin,自己仓库的项目添加为upstream,同步仓库的修改操作也类似。
基于Apache仓库的master分支最新代码,checkout新分支(一般建议根据jira号创建,如git checkout-b HUDI-666)。
在新分支上修改代码,完成修改后使用git add.,git commit-m"[HUDI-666] pr description",git push origin HUDI-666:HUDI-666推至自己仓库的远端,commit信息一般建议使用[HUDI-xxx]jira summary的格式,如git commit-m"[HUD-666] refactor hudi-common based on new checkstyle"。
进入github的incubator-hudi页面发起一个PR,然后等待review(社区会有专人进行review,效率较高)和merge。
2.3 加入Slack
为方便 Hudi开发者快速交流, Hudi社区创建了 HudiSlackChannel,可在这里https://github.com/apache/incubator-hudi/issues/143留下你的邮箱,会有人邀请你加入 HudiSlackChannel。
2.4 订阅邮件列表
为方便归档和符合 Apache社区运行之道,社区建议使用邮件列表讨论问题、进行投票等,可订阅dev@hudi.apache.org(建议尽量不要使用qq邮箱订阅,可能会被过滤掉)。
订阅方式很简单,给dev-subscribe@hudi.apache.org发送一封邮件,收到回复后再进行一次确认回复即可。完成订阅后即可参与和发起在dev@hudi.apache.org的讨论。
3. 总结
Hudi社区非常欢迎和鼓励广大开发者参与到社区建设中来,一起促进 Hudi社区的发展,取之开源、回馈开源,一起促进数据湖技术的发展,期待你的第一个PR!
PS:其他Apache项目的参与流程也大致类似。