记录第一次开源流计算框架Flink代码的贡献
作者简介
本人是一个在IT圈呆了15年的老码农,一直从事后端开发,管理,架构等工作,从事最多的也最擅长的是业务系统的开发,从事过ERP 人力资源 金融支付 等相关行业的开发和管理工作。
背景
一直以来,我都想着是否有机会给开源代码贡献一份力量,碰巧去年初公司需要对大数据框架进行选型,最后定下来用Flink,慢慢开始对Flink产生了浓厚的兴趣,也萌发了要对Flink贡献自己代码的想法。
准备
要想贡献自己的代码,首先需要对Flink系统有了解,我觉得前前后后的准备有以下几项
- 阅读官网的文档(中英文都有),传送门->https://flink.apache.org/zh/flink-architecture.html
- 读一本Flink书,我个人读的微信阅读上的《Flink内核原理与实现》
- 尝试自己用Flink写一些小应用
步骤
有了以上的准备,就对Flink有个比较深刻的了解了,接下来是贡献代码的步骤
- 首先,需要选择一个主题,通常可以从简单的入手,Flink官方有个JIRA系统,用来管理所有的Bug或则和Task,传送门->https://issues.apache.org/jira/projects/FLINK/issues,可以从中选择一个来,我当时选择的是FLINK-29324这个ticket
- 确认自己可以修复这个问题,可以加个comment,比如说“Hello, can please assign this ticket to me?”,这样就会有人把这个ticket assign给你
- ticket assign给你后,就可以把状态修改为work in progress了
- 接下来就是改代码,从官方的master分支https://github.com/apache/flink,fork到自己的仓库中
- 在自己的仓库中创建一个新的分支,这个分支可以用ticket的名字来命名,或者取一个有意义的名字也可以,我新建的分支名字为kinesis_connector_npe
- 在此分支上进行代码修改,这里记得要写单元测试,因为在PR的时候需要写明这个改动怎么做verify
- 写好代码后,提交代码到自己的分支,就可以创建PR了,PR里有许多问题需要回答,如果不明白的可以拿别人的PR来参考一下,主要说明这个PR是用来修复什么问题的,做了什么改动,怎么验证这个改动,后面还有yes no关于改动了哪些模块的问题。我的PR是这样提的
- PR提过后,可以刷新一下ticket,里面会自动Link这个PR
- 接下来就是等待PR的merge,通常要等一到两天,如果有review comments的话,也要确认并进行相应修改或者回复。
- 顺利的话,会被merge进master,至于要不要merge进别的release分支,merge的人会负责这个判断,并且会把相应的action贴进到ticket里,如下
心得
你我离开源代码很近,只要能迈出那一步,其实没有那么难!!!
这个Ticket相对来说比较简单,希望自己后面能贡献更多,更优质的代码给到开源社区。