查看原文
其他

玩转社区,手把手教你参与 Arctic 开源社区贡献

叶贤勋 Apache Amoro
2024-09-10

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 -vorigin  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 -luser.email=yesorno828423@gmail.comuser.name=Xianxun Yecredential.helper=storecore.autocrlf=inputcore.compression=9http.postbuffer=1048576000remote.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:#xxxclose:#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助力传媒实现低成本的大数据准实时计算

Arctic 自动优化湖仓原理解析

万字长文详解开源流式湖仓服务Arctic

从Delta 2.0开始聊聊我们需要怎样的数据湖

手把手教你使用 Arctic 自动优化 Apache Iceberg


关于 Arctic 的更多资讯可查看:

  • 【GitHub】 地址:https://github.com/NetEase/arctic
  • 【Arctic】 文档地址:https://arctic.netease.com/ch/
  • 【社群】:后台回复【社群】添加小助手
    (或扫描下方二维码↓,邀你进群)



点击下方【阅读原文】可直接跳转 Arctic GitHub 地址
修改于
继续滑动看下一个
Apache Amoro
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存