玩转社区,手把手教你参与 Arctic 开源社区贡献
Arctic 是一个开放式架构下的湖仓管理系统,在开放的数据湖格式之上, 提供更多面向流和更新场景的优化,以及一套可插拔的数据自优化机制和管理服务。
01 Arctic 项目介绍
Arctic 是由网易开源的一个开放式架构下的湖仓管理系统,相比于传统的数据湖,Arctic 提供了更多面向流和更新场景的优化。同时,Arctic 还提供了一套可插拔的数据自优化机制和管理服务,使得各类数据平台、工具和产品可以快速搭建开箱即用、流批统一的数据湖。如果你需要一个高效、灵活、易用的数据湖管理系统,那么 Arctic 绝对是一个不错的选择。
Arctic GitHub 地址:https://github.com/NetEase/arctic
02 怎样提交第一个 PR
如果你是社区初步贡献者,那么可以关注 [good-first-issue],这是一个专门为初学者准备的 Issue 列表,可以帮助你快速进入项目,并且提交你的第一个 PR。通过不断地贡献和学习,你可以逐渐成为一个优秀的开源贡献者!
Good First Issues:
1.[Flink] Adding support for setting/altering Arctic table properties
2.[Flink] Introducing the INSERT OVERWRITE statement for mixed-streaming format tables.
3.[Flink]: The catalog name in the config metastore.url could be directly retrieved from Flink DDL and assembled.
4.[Core]: Replace fastjson to jackson
5.[Core]: Use StruckLikeMap instead of Map for safer usage.
6.[Optimizer]: Support setting the Flink dependency version of the optimizer with the maven profile
7.[Spark]: Support query on BaseStore
8.[Spark]: Support query on Base Store for Spark Engine
[good-first-issue] 地址:https://github.com/NetEase/arctic/issues?q=is%3Aopen+label%3A%22good+first+issue%22
第一步:Fork
Fork 目的是创建原始项目的副本,允许贡献者在自己的独立项目中进行实验和开发。这使得贡献者可以更方便地在开源项目上工作而不影响原始项目。
打开 GitHub 上的项目地址,在页面右上角找到 Fork 按钮,并且点击它。这样,GitHub 就会将原项目的代码复制一份到你自己的账号仓库中,你就可以在自己的仓库中对代码进行修改和提交了。需要注意的是,在执行这个操作之前,你需要先登录自己的GitHub 账号,否则你无法进行 Fork 操作。
第二步:本地开发测试代码
如果你对某个 issue 感兴趣,可以在 issue 页面里面留言,表达你的意见和看法,同时也可以向其他贡献者请教一些问题。如果这个 issue 比较复杂,你可以阐述一下你的实现方案,这样既可以帮助你更好地理解问题,也可以为其他贡献者提供一些参考。如果你的方案被 Committer 认可,他们会将这个 issue 分配给你,由你来负责实现。
→ Clone arctic 仓库到本地:
$ git clone git@github.com:your_github_user_name/arctic.git
Clone 自己 Fork 出来的项目到本地,在 Clone 之前需要配置 GitHub SSH key,具体参与方式可以参考 GitHub 官网说明。
→ Add Remote
将 NetEase/arctic 的仓库也添加到 git 环境:
$ git remote add netease git@github.com:NetEase/arctic.git
$ git remote -v
origin git@github.com:your_github_user_name/arctic.git (fetch)
origin git@github.com:your_github_user_name/arctic.git (push)
netease git@github.com:NetEase/arctic.git (fetch)
netease git@github.com:NetEase/arctic.git (push)
添加好 arctic 远程仓库,便可以拉取 NetEase/arctic 仓库代码,也可以将修改后的代码提交自己创库上面。
→ Global Config
在开始开发之前建议确认下本地 git 配置:
$ git config --global -l
user.email=yesorno828423@gmail.com
user.name=Xianxun Ye
credential.helper=store
core.autocrlf=input
core.compression=9
http.postbuffer=1048576000
remote.origin.proxy=
pull.rebase=true
在向 Arctic 项目贡献代码之前,一定要确保自己的 GitHub 账号信息和显示的信息保持一致。如果你发现自己的信息为空或者和 GitHub 账号信息不一致,可以使用下面的命令进行修改:
$ git config --global user.name "your_name"
$ git config --global user.email "your_email@example.com"
需要将 your_name 和 your_email@example.com 替换为你自己的用户名和邮箱地址。这样当你向 GitHub 项目提交代码时,就可以正确地显示你的贡献者信息了。
另外 pull.rebase 建议设置为 true,这样 pull 的时候,能自动将自己的 commit 通过 rebase 的方式置顶。
→ Checkout
认领好 Issue 之后,就可以在本地进行开发测试。你可以先 fetch netease master 分支到本地,使得自己分支代码保持最新。
$ git checkout -b issue-xxx
xxx 可以更改为具体的 issue number。
→ 提交 Commit
在开发完毕之后,你可以先 pull netease master 最新代码到自己分支,这是因为你本地开发的代码有可能与 master 代码有冲突,通过 pull 命令自动 rebase,rebase 成功后,你的提交记录就会置顶。
$ git pull netease master
$ git commit -m '[ARCTIC-XXX] YYY'
xxx 是 Issue number,YYY
是 issue 标题。Commit 之后便可能将代码 push 到自己仓库。
$ git push origin issue-xxx
→ 提交 PR
打开 GitHub 地址,然后点击 Compare&pull request 按钮;
head 是你自己的开发分支,base 是 NetEase/arctic master 分支。
在编辑框内部也提示了很多创建 PR 的说明,可以参考这个说明,尽可能补充内容。如果这个 PR 还在开发中,可以在 PR 标题头部加上 [WIP] 关键字。
另外,在编辑框内部可以加上 fix:#xxx
, close:#xxx
或者 resolve:#xxx
,就可以在 PR 合并之后,GitHub 会自动关闭对应的 Issue。xxx 是具体的 issue number。
→ Review
当你提交一个 PR 后,你需要等待 Committer 对你的代码进行 review。如果 Committer 认为你的代码需要修改,你需要根据他们的反馈进行相应的修改,并且将修改后的代码提交到你自己的分支中。这样,Committer 就可以看到你提交的修改内容。如果 Committer 认可你的修改,并且将代码合并到了 Arctic master 分支中,那么恭喜你,你已经成功为项目做出了贡献!此时,你可以在 contributors 列表中看到自己的信息了。
Arctic 社区开发规范可参考下方链接↓:https://docs.google.com/document/d/1Pwv1LflW3z5yq34qDpEYwSxOB3LIE5qoKQ_5Sv0IV1Y/edit
03 如何成为一个 Committer
角色 | 定义 | 要求 |
Contributor | 参与 Arctic 社区并有所贡献的社区成员 | 完成过至少一次社区贡献(以 PR 的方式提交,包括但不限于贡献新特性、代码优化、Bugfix,文档优化等) |
Active Contributor | 在 Arctic 社区持续活跃的贡献者 | 在社区持续活跃,2 个及以上 PR 合入 |
Committer | 持续且完成过社区重要任务的活跃贡献者 | 参与过社区重要任务,或帮助社区成员成长的 Active Contributor 由两名 PMC 提名并进行投票通过 |
PMC | 项目管理委员会成员 | 在社区活跃并持续参与贡献,有项目和社区管理经验的 Committer 由两名 PMC 提名并进行投票通过 |
以上是 Arctic 社区的角色定义和要求总结,包括 Contributor、Active Contributor、Committer 和 PMC 四种角色。
Contributor 是参与社区并有贡献的成员;Active Contributor 是持续活跃的贡献者;Committer 是完成过社区重要任务的活跃贡献者,由两名 PMC 提名投票;而 PMC 是项目管理委员会成员,需要有项目和社区管理经验。不同角色的要求和评定方式也有所不同,需要满足相应的条件才能晋升到更高的角色。
在 Arctic 社区中,任何形式的贡献都是非常有价值的,即便是修改一行日志,修改注释都是受欢迎的,你的反馈和建议也同样会被重视。Arctic 社区非常欢迎你试用 Arctic,如果在试用过程,遇到任何想寻求帮助的问题都可以在 Discussions 或在微信社群中提出,社区的其他贡献者看到会积极回复你。这样,你不仅可以帮助项目发现和解决潜在的问题,还可以帮助其他用户避免遇到同样的问题。在这个过程中,你会逐渐成为 Arctic 社区的一份子。
并且参与 Arctic 社区还可以提高自己的社交能力和合作能力。在 Arctic 社区中,你会与不同背景、不同技能水平的人合作,学会如何协调和沟通,这对于你未来的职业发展也是非常有帮助的。
想成为一个 Committer 需要更多的贡献和信任。一个 Committer 不仅需要对项目有深刻的理解,还需要有卓越的技术能力。想要成为一个 Committer,有以下一下建议:
1.消化和贡献项目代码和文档
成为 Committer 的第一步是成为一个活跃的贡献者。你需要积极参与开源社区的活动,包括参与讨论、解决问题、提交代码和 Review 代码。通过这些活动,你可以积累对项目的深刻理解,并且得到其他贡献者的认可。
2.持续专注
持续专注是学习和成长的关键。当你选择一个你感兴趣的模块,你将会对这个领域产生浓厚的兴趣,这是你成为专家的第一步。要筛选出最重要的信息,深入研究,学习更多细节。随着你逐渐成为这个模块的专家,你会发现自己变得更自信,更有信心地掌握该领域的知识和技能。坚持不懈地学习和实践,你将会看到成功的成果。
3.建立信任
成为 Committer 需要其他 Committer 对你的信任。你需要在开源社区中积极建立联系并与其他 Committer 建立良好的关系。与其他 Committer 进行合作,并且展示出你的技术能力和对项目的贡献,这样你就可以得到更多的信任。
4.主动承担责任
作为 Committer,你需要承担更多的责任和义务。你需要在开源社区中积极与其他 Committer 合作,并且在项目发展中扮演一个重要的角色。成为一个 Committer 需要主动承担更多的责任,以便在项目发展中发挥更大的作用。
总之,成为一个 Committer 需要付出更多的努力和获得更多的信任。通过积极的参与和贡献,与其他 Committer 建立良好的关系,并且承担更多的责任,你可以逐渐成为一个优秀的 Committer。
步骤讲解的差不多啦,快一起上手试一试吧~
END
看到这里 记得关注、点赞、转发 一键三连哦~
精彩回顾:
手把手教你使用 Arctic 自动优化 Apache Iceberg
关于 Arctic 的更多资讯可查看:
【GitHub】 地址:https://github.com/NetEase/arctic 【Arctic】 文档地址:https://arctic.netease.com/ch/
【社群】:后台回复【社群】添加小助手 (或扫描下方二维码↓,邀你进群)