引言
作为热爱技术的你,是否也羡慕 Apache PMC 或者 Committer,此篇文章渣渣皮带你迈出如何成为技术大牛的第一步。
当然我现在还是一枚小小的 code contributor,在成为 committer 的路上还在奋力打码中,写这篇文章也是为大家有这个想法的童鞋提供一些指引,大家在这条路上可以多交流交流
选择项目
首先你需要选择你熟悉技术范围的或者实际生活工作中使用到的,这里我就是熟悉 [Paimon](Apache Paimon | Apache Paimon) (一个数据湖项目,从 Flink 项目发展出来,恰好想研究的也是实时相关的)的流程开始的。
不过最近几年国内开源还是比较火热的,好几个项目都进入 Apache 孵化了。这里列举一些,看是否你也有中意的。
- 网关:Apache ShenYu - High-performance, multi-protocol, extensible, responsive API Gateway | Apache ShenYu
- 分布式数据库支持工具:Apache ShardingSphere
- 大数据计算中间层:Apache Linkis | Apache Linkis
- 大数据集成工具:Apache SeaTunnel | Apache SeaTunnel
- Serverless SQL on LakeHouse:Apache Kyuubi - Multi-tenant Thrift JDBC/ODBC server
- OLAP分析Doris:Home - Apache Doris
- 大数据调度平台:Apache DolphinScheduler
除了上述国内贡献到 Apache 的项目,还有我们经常熟悉的 Spring、Mybatis、SpringBoot,以及国内的 dubbo、druid 等项目,大数据中的 Hadoop、Spark、Flink 这些大家如果有兴趣都是可以去参与的。
准备工作
- 最好有个 Gmail 邮箱,你需要订阅用户邮件以及开发者邮件等,参与邮件中问题的回复也是对开源的贡献,并且一些重要的特性都会在邮件里面会讨论以及最后的投票
- 本地 Git 的配置,这个就不用我教你们了吧
- 还需要注册 Github 账号,这个全球最大男性交友网站大家最熟悉不过了吧
那么下一步正式开始我们的提交之旅吧
第一步:订阅邮件
一般项目的 Contributing 页面都会告诉你怎么去给项目做贡献。
比如我们的第一步就是订阅开发者邮件,如下图所示:页面也会给出其他的邮件选择
这里我们先订阅开发者邮件,
- 首先用自己的邮箱给
dev-subscribe@paimon.apache.org
发送邮件即可 - 收到官方回复的确认邮件
- 回复该邮件,内容随意,我这里简单回复
Confirm
- 会收到欢迎你订阅的邮件,这个时候就表示成功订阅了,如下图所示
第二步:选择问题
这一步首先从Github 的 issue 里面去找找看,一般新项目都会设立 good first issue 的 tab 的问题,具体如下样式:
当然,如果你对项目很熟悉的话,也可以从 doc 或者 bug 的类似 issue 开始去解决。
那么选好 issue 以后,就开始要准备写代码解决问题了。
第三步:fork 代码
看到项目顶部的选项,有一个 Fork
选项,需要将项目 fork 到自己的仓库项目下面
下一步就看到具体选项,这里直接 Create fork
就行。
接下来就可以看见自己的仓库里有代码了,如下图,可以看见是从 apache 的项目 forked 出的项目。
第四步:编写代码
接下来就是 clone 代码,然后本地开始编写代码了。
1、如下图所示,选择自己喜欢的方式 Clone 代码就好
注意:一定是 clone 自己仓库已经 forked 的项目,不是 apache 下的项目地址
2、接下来就是打开本地的代码,这里我使用的编辑器是 IDEA,对于 Java 开发者来说已经是再熟悉不过了。不过这里需要新建分支去开发,可以使用命令来执行,如下操作(这里的分支名可以随意些)
shell
git checkout -b PAIMON-1141
3、提交代码到远程分支
使用 commit,然后 push 命令即可
git commit -a -m "[Feature] Support month, day, and hour expressions for cdc synchronizing tables action"
git push origin PAIMON-1141
第五步:提交 PR
本地开发好代码后,就可以进行下一步骤了,就是提交 PR。
1、进到仓库的 Pull requests 页面,点击【New pull request】按钮操作
2、下一个页面中选择自己提交的分支,这里就可以对比你提交的信息和主仓库分支上的信息的差异,点击【Create pull request】即可
3、按照提示的 PR 模板,填写相应的信息,提交即可
第六步:CR 代码
等待 Committer 对你的代码进行 CR,如果是有需要需改的意见,会在 PR 里面进行讨论,这个时候你就需要重新修改本地的代码,充分测试好,然后重新 commit 代码,push 到远程分支上去
第七步:等待合并代码
最后问题都充分解决后,会就得到 +1 的认可,剩下等待代码被合并到 master 分之了。
到这里,你的代码就已经合并到 master 主分支上了,这样看起来是不是也很简单,等下次软件发版本的时候,你的代码就在里面了,恭喜你,成为了 code contributor!
常用英文
这里附带一些常用的英文,送给英文不太好的童鞋,这些在社区中可以用的上
Hi, I want to fix this issue, you can assign it to me.
I am interested in implementing this task, please submit a PR in 2 weeks if you leave the message.
Thanks for your contributing. Left some comments.
参考资料
- 这个是 Apache PMC 的 Jark Wu 写的分享文章:分享了如何从小白到 Committer 的成长之路,值得一看
成为Apache顶级项目核心贡献者是一种什么样的体验? (qq.com)
- Apache Linkis 的贡献指引:写的比较详细,有视频,也有专门针对新手项目的指引
保姆级教程:如何成为Apache Linkis文档贡献者(如果你用 Github Desktop 客户端,这个是很好的介绍,全图形化操作)
- InLong 的提交代码指引
本文由博客一文多发平台 OpenWrite 发布!