暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

摊牌了,我是如何成为Apache Flink Contributor的?

大数据从业者 2023-04-03
1343
前言   

关注我微信公众号(大数据从业者)的朋友应该清楚,我断断续续写过一些平时工作或调研过程遇到开源项目的Bug以及如何进行修复的方法。本来这些也不足为奇,毕竟什么开源项目没有Bug呢?谁又敢声称自己的代码无懈可击呢?但是,时间久了,你会发现:能够写代码实现功能模块是程序员最基本的能力要求;而提高代码质量才是程序员必修的内功心法。时至今日,个人感觉最有效的途径之一就是:积极参与Apache开源项目、持续贡献代码到Apache开源项目、社区大佬们给你review代码。另外,Apache开源项目都会对代码风格和代码测试用例有严格要求,这也有助于提高代码质量。

Apache项目简介   

Apache项目都归属于ASF(即Apache Software Foundation)。每个Apache 项目都有对应的项目管理委员会(Project Management Committee, PMC)。通常情况,当一个 PMC 提名一位 committer 时,会由PMC成员们投票决定这个contributor是否达到 committer的要求。显而易见,大佬级别排名:PMC > committer > contributor。

         

前两天收到Apache软件基金会董事Rich Bowen(上图这个老头)群发的邮件,大意就是强调个别Apache项目PMC别忘记自己职责和权限,着重强调PMC Chair不是leader、不能为所欲为(感兴趣的自行到邮件列表吃瓜吧)。

如何贡献Flink代码   

Flink官网提供相关文档说明,如下:

    https://flink.apache.org/how-to-contribute/overview/

    简单总结如下:

    1.注册一个JIRA账号,注册地址: 

      https://issues.sonatype.org/secure/Signup!default.jspa

      2.登录JIRA账号

      Projects选择Flink,然后通过Create按钮创建一个问题单:

      问题单可以选择类型(Bug或Improvement)。然后,Summary主要描述你贡献的代码所修复的问题或者新增的优化功能。强调一点:虽然只有*号为必选项,但还是建议填充所有选项(贡献代码所属的模块、影响的版本、修复的版本)。

      创建成功之后,会得到一个问题单号。比如:我之前创建的一个问题单:

        https://issues.apache.org/jira/browse/FLINK-31321

        3.登录github,fork Flink项目源码

          https://github.com/apache/flink

          建议基于自己fork的代码新建分支(名称与问题单号相同),如:我的就是FLINK-31321。

          然后,通过git clone该分支代码到本地,就可以将自己的代码合入到该分支。建议本地编译验证ok以后再提交,提交时commit message建议为问题单号及问题描述,如:

            [FLINK-31321][Deployment/YARN] Yarn-session mode, securityConfiguration supports dynamic configuration

            4.登录github,在Flink项目页面创建PR(即New pull request)

            提交PR以后,flinkbot会在微软云自动编译测试你的分支,并给出结果:

            如果失败,可以跳转过去查看具体失败的日志。修改代码后,重新提交。当然,也可以自己通过@flinkbot run azure让flinkbot多次编译测试。不过,并发数有限制。同时提交PR的人多时,微软云上的编译任务会排队。如图:

            5.坐等社区大佬review代码

            虽然所有人都可以review你提交的代码。如果感觉review意见合理,可以修改代码重新提交。或者也可以说明理由不进行修改。最终,只有项目PMC或者committer才能决定你的代码是否可以合入Flink项目。如果review ok,通常会允许merge,如图:

              备注:LGTM表示look good to me.

              查看了这位大佬github主页,任职于阿里巴巴,担任Flink PMC:

              6.成功合入Flink项目

              如果你的代码成功合入到Flink项目,你所创建的问题单将会分配给你,并被关闭。同时,问题单评论区会标注合入的分支与commit id,如图:

              至此,个人贡献代码到Flink项目的整个流程结束。

              结束语  

              虽然FLINK-31321修改代码没几行,内容更是简单至极。不过,最起码迈出向Apache Flink项目贡献代码的第一步。趟过一遍流程,算是入门了,后续再接再厉!


              文章转载自大数据从业者,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

              评论