【开源共建】如何开始 OceanBase 代码贡献之路

OceanBase 于 2021年6月1日 开源,到现在也已经一年有余了,在开源社区的贡献者大家庭中,不乏行业翘楚和技术大拿。

从今年3月底开始整日“混迹”于 OB 社区算起来,也有小三个月了。在开源社区里,大家总是希望找到自己的存在感和归属感的,所以今天我想跟大家聊聊,我的第一行 OceanBase 代码提交的感受,以及社区贡献的各种途径。

image

“花样繁多”的贡献方式

首先我们按照常规的思路来聊,作为一个正经的开源数据库社区,OceanBase 在社区建设上做的已经蛮不错,为了给大家提供一个多元化的社区环境,运营团队可谓是费尽心思。

从技术角度上划分,社区参与方式可以分为 [代码] 与 [非代码] 两种参与方式。

  • 代码参与方式当然是对 OceanBase 及其周边开源产品提交代码修复;
  • 非代码参与方式包括技术文档完善、技术文章撰写、技术问答贡献、技术社区问题解决等。

看到这里,可能有的小伙伴会比较反感,为什么非要把社区参与拆分开来呢???什么代码非代码的啊???真想一枪毙了你!!!哈哈哈

的确,在 OceanBase 社区里,只要大家持开放的态度,积极参与,都是“社区的贡献者”。

下面就让我们站在所有人的角度上,看一看社区贡献的途径:

1.Meetup 参与

OB 社区为了给大家创造更多学习的机会,每月都会举行几次线上线下分享活动。比如下图,是6月19日深圳 Meetup 的部分海报截图:

image

贡献途径:

  • 您可以将活动海报分发到朋友圈,邀请三五好友一起学习;
  • 您可以报名参加现场/线上技术讨论,积极提问;
  • 您可以在事后填写反馈单,将您感兴趣的内容或活动的不足反馈给社区;
  • 您可以发表学习贴,与志同道合的朋友继续讨论。

只要您积极参与到活动中,大家就都是朋友了,虽未蒙面却有着共同的爱好。

2.活动参与

OB 社区会不定期举办各种各样的活动,让大家多元化的参与社区。比如近期举办的一些活动:

这些活动相比于参与 Meetup,可能需要花费更多的时间,但是大家的收获也是对等的,通过参加活动,大家可以回顾自己的技术,学习文档中新的知识,反过来对社区也有促进作用,可以说是双赢。下面附上一张文档捉虫群的二维码,方便各位加入:

3.论坛与群组

随着大家参与深度的增加,大家的技术积累也会越来越深厚,这时候大家肯定要蠢蠢欲动了。那么论坛与群组技术交流是最好的解决方式。通过在论坛中发帖、回帖、点赞,积累知识厚度;通过在钉钉/微信群组中插科打诨,帮大家实时解决问题,扩展知识宽度;这样的社区进阶方式,谁能不爱呢?

4.贡献代码

技术社区的终极目标,可以说代码贡献无疑了。OceanBase 的主仓库位于 GitHub,同时为了方便大家,在 Gitee 上也有一份同样的镜像;在这里面,有 27 个 Repo,大家可以任选一个感兴趣的模块进行代码贡献。

如果您当前还不太熟悉如何提交 issue 和 pr,可以参与一下社区的 [文档提升计划] 活动呀,文档提升计划虽然不属于代码范畴,但是通过这个活动,会让您熟悉 Git 的使用和代码提交的流程。这里我也为大家特意撰写了一些帖子,方便大家对 Git 流程有所熟悉:

第一次尝试

有了第一部分的介绍,大家一定对社区参与有了整体的认识啦。下面我要说一下我的个人代码贡献经历了。

在 OceanBase 的学习过程中,我开始对 obd 的印象最深刻,这工具真是太好了,一个命令可以做很多很多工作,包括镜像仓库管理、集群初始化、集群状态查看、集群销毁、增加节点等等。所以我特意去 Github 上扒了一下代码下来看看。好巧不巧,我发现了一个问题,如下图,这个 pr 确实只有一行代码,仿佛就是为了写今天的文章准备的(冥冥中的安排):

大家看了什么感受? 我当时的第一反应是,是不是我的理解错了,官方对这个逻辑有什么特别之处? 于是我尝试提交了一个 pr,没想到最后合并进去了。有点意外,也有点开心。

现在回想当时的举动,还是蛮感谢那个愿意去尝试的自己~

“勿以善小而不为”

最后谈谈对社区贡献的一些个人感悟吧,正如标题所说,“勿以善小而不为”。开源社区建设不易,社区建设者,有时候是出于一时冲动,有时候确实经过深思熟虑。一旦他们在运行过程中遇到困难,也会产生自我怀疑。所以如果大家感觉这款产品还值得去尝试一下,那就请全力以赴吧。引用朋友圈的一位开源产品作者最近的动态,大家应该也能感受到他的无奈吧:

回想起刚接触 OB 社区,与段老师的谈话,段老师问我对开源社区有什么希望(或者可以理解为对 OB 社区)。我说:我希望我全力以赴的产品,不要有一天闭源了,大家不要不想做了,那样我会很失望。段老师的回复很克制:任何开源产品都有自己的生命周期。

不管产品如何发展,至少现在我们遇到了,既然遇到了觉得还不错(我说的也很克制啊,OB世界第一,可不是还不错,是很不错哈哈),那就索性在一起过吧。说不定过着过着,这日子就会越来越好。

最后的最后,希望更多的人通过一行代码、一行文档的 pr,找到自己在 OB 社区的归属感,大家共同学习,共同进步。

2 个赞

阿福yyds,想想你那个时候还在使用obd部署,现在新的小伙伴都已经ocp白屏化部署了,OB要持续进步,给用户给好的体验,需要咱们社区的意见,冲冲冲~

1 个赞

YYDS!阿福老师, 感谢有干货又有趣的分享,对于咱们社区的新朋友是特别有帮助的,以后要被催更喽,哈哈哈~

看了文章感慨很多,由于本文涉及的信息量很大,我只谈谈“什么是社区贡献”这一个点吧,欢迎大家一起交流探讨。

一看”贡献”两字,估计很容易吓跑很多人,因为想到“贡献”,本能的第一反应就是要回馈点什么,做点什么等等,总之本来是一件轻松有趣的事情,突然有点压力山大。

其实社区贡献是一个很广义的概念,咱们从最基础谈起,我认为对社区的关注就是一种贡献,“只是因为在人群中多看了你一眼,再也没能忘掉你容颜”,从此记住了有OceanBase这样一个社区,记住了坚持12年投入基础软件,只因想做一款更符合新兴业务需求的新数据库。有了关注这样的起点,才有了一份牵挂;有了这份牵挂,才会聚集起一群有共同爱好、志趣相投的社区小伙伴们,才能聚沙成塔,形成最终“活跃的社区”。开源社区是人与人之间分布式、协作的共同体,没有人哪里来的社区呢?

不是DBA,不是程序员,能不能参与社区呢?答案是:必须能! 而且要敞开大门,热烈欢迎~ 这也是保持社区健康和活跃的源泉之一呢。无关乎背景,只要你喜欢这里的氛围,就是社区的不可缺少的小伙伴呢。因为社区是一个自治的共同体,要让该共同体有效的运转,离不开社区制度和有效的分工协作,就像一个班级需要有学习委员、宣传委员、文艺委员、体育委员、课代表… 社区里需要多才多艺的小伙伴们,运动、摄影、视频、海报、宣传、唱歌、音乐… 因为不同的兴趣,社区的小伙伴们会走的更近,很有可能会结识到未曾蒙面却更懂自己的好朋友 。

最后,每个人来社区目的有所不同,留下轨迹也不会不尽相同,所以不必太过纠结,慢慢找到最符合自己的那个方式就好。正如阿福所说,至少我们现在遇到了,那就先关注吧,假以时日如果觉得还不错那就再做点什么吧。因为在这里,你可以遇到不同的人,可能结识新的朋友,更会遇到更好的自己。

1 个赞

下一步可以安排一篇OCP的帖子了嘿嘿

看完莫名的感动了:sob:

大赞,分享很不错。

1 个赞

谢谢您的支持