00:00
嗯,那么大家好,嗯,其实呢,到我们这一讲的话呢,嗯,我们的水昌乐的课程已经结束了,不过呢,这一讲算是一个加餐,就是我们希望通过can诺这个项目呢,呃,来教会大家如何去参与一个开源贡献。呃,我们说如何去参与开源项目的贡献,我们先要讨论这个贡献的类型,就是我怎么样才算是给一个开源项目做贡献了。嗯,实际上呢,我们说这个对科研项目做贡献呢,其实不是一件门槛,门槛很高的事情啊,大家平时呢,啊就是。业余的时候呢,如果有兴趣的话,可以去多多参与这种开源项目,一来呢,是对自己的那个能力一个呃锻炼,二来呢,就是说你如果说你真的在这个开源社区里面,呃,慢慢的有了成就啊,慢慢的混出了名声,那么有可能就是工作找你。啊,那么我们看一下,就是你怎么样去开启自己。啊,头一次这个参与开源项目的这种感觉啊,那么我们通过这个C塔诺呢,啊,来给大家打一个样,就是我们去啊修复一个这个S塔诺里面的bug啊,然后呢,呃,包括我们一步步的就是怎么样去呃看源码,然后找出这个bug啊再跟这个社区怎么样去去建立这个讨论,然后去提交这个代码,最后呢,被默制这样一个过程,我们通过这个啊最后一个加餐的这个视频课呢,给大家演示一下。
01:27
啊,那么说到这个科研项目,首先我们要了解一些基本概念啊,首先就是我怎么样去。算是对这个开源项目做贡献了,实际上呢,呃,去做贡献呢,并不一定非要写代码,呃,很多人的这个,呃,开源项目的这个开始的这个经验呢,都是去做文档贡献开始的啊,尤其是这种翻译文档的活,你比如说flink的话。嗯,他对这个英文文档啊,出来之后呢,它就要求这个中文文档它能有一个同步的翻译啊,那么这呢,这个时候呢,就是假如说你去翻译这个英文文档的话,嗯,那么你也算是一个啊对开源项目的贡献啊,那么你如果在这个github上,或者说是一些这个社区里面啊,去对这个人们使用这个框架时候产生的一些疑问进行答疑啊,那么也算,其实也算是可参与参与这个共建,然后另外一个呢,就是代码共建,比如说社区呢,现在有一个新的特性基带开发啊,或者说社区啊在某个地方出现了bug需要修复啊,在这个框架在哪个地方出现了bug需要修复。
02:30
那么你呢,把这个代码写了,并且提交上去,然后这个啊,将这个里面的管理,管理人员看到之后呢,把呃,觉得你这个写代码确实不错啊,把你的代码纳入到了我们这个项目的这个分支里面来啊,那么这个过程呢,就叫代码的一个贡献,那我们今天呢,也是演示这个啊,代码贡献的一个操作。啊,那么这基本上呢,就是我们说的这个几种参与,这个是科学项目贡献的渠道。啊,另外一个呢,就是我们需要注意就是你在这个呃,一个开源项目的这个生涯中,是吧,你要注意的几个身份。
03:06
首先这个叫contributor,也就是我们说的是贡献者。呃,当你这个贡献代码之后呢,实际上你可以作为一个啊,要把贡献者。啊,那么这个东西呢,就是说啊,你只要是呃贡献过一次啊,你就算是一个页码贡献者了啊,那么这个下一个这个框架的版本号呢,可能会对你产生一个明谢,而且呢,你在github上,就是你在这个呃github账号啊,在这个科研社区进行一个讨论的时候,其实你的那个呃发言框的右上角啊,会标注你的这个身份啊,你就是一个源码贡献者啊完了之后呢啊,如果说呢,你能保证你持续的去做一些贡献,比如说我持续在这个啊框架里面修复某些bug啊,持续对它贡献一个新的功能。那么经过PMC啊,PMC进行投票啊,或者他们进行选举啊,觉得你哎不错啊,我们呢,就把你成为一个什么呢,成为一个考M。
04:03
啊,那么这个地方呢,我们要同时介绍两个概念,一个是什么是PMC,另外一个就是什么是M。先说什么是PMCPMC呢,实际上是管理委员会。呃,每一个项目的这个管理委员会呢,都是独立的,比如说塔诺,他就有自己的一个PMC。然后呢,这个flink又是有一套这个自己的PMC,也就是说这些PMC之间呢,它是不交叉的一个项目呢,有自己一个项目的一个PMC。啊,那么这样的话。啊,最早的时候呢,这个PMC是一批人啊,完事之后呢,他们觉得,哎,这个contributor这个贡献者啊,他确实挺活跃,而且呢,他可能还这个啊碰过一些我们这个框架的核心代码啊,啊他对我们这个框架是有一个很清楚的了解的,那么经过这个PMC的一个讨论之后呢,啊,他们可以邀请你去成为一个M。那么成为卡M特之后呢,也就是我们说的一个提交者,那么如果是成为卡M密特的话呢,实际上你对了整个这个啊,框架的一个github上的这个仓库。
05:05
你就拥有了一个写的权限,像我们这些cont contributor呢,实际上这个你刚开始你去贡献源码,你去贡献代码,实际上呢,你必须要通过发起什么呢?发起request的方式。来申请。啊,来申请这个啊,我们卡密特还有PMC这有写权限的人啊,对你的一个啊改动啊进行审核,那么当这个卡M密特啊,他进行这个代码的审核,比如说你写了一段代码啊,那么他们就可能会认为你的这个代码有没有可能影响我们框架的一个总体的运行呢?啊,那么当然需要有这个更有经验的人来对你的代码进行一个审核,那么你这个发起审核的方式呢,其实就是per request per request这个东西什么意思啊,简单说一下吧,他其实呢,就是说拉取请求,你看就是意思就是我这个代码写好了啊,我这个求求你过来拉我呀,就把我这个代码拉进去是吧,就是这个意思。
06:04
啊,那么这个卡密特呢,他去审核你这个啊里面的一个代码,觉得你这个代码,哎,确实不错啊,写的也可以啊,把我们这个问题解决掉了,那么他呢,就会启动它的一个写权限,然后把你这个po request里面修改的文件给这个合并到我们的这个整个仓库的分支里面去。那么呢啊,如果呃,这个contributor呢,实际上是我们发现是这个三个身份里面呢,啊,最普通的一个啊,那么如果你能成为卡M特呢,然后而且呢,你这个参与这个卡M特的这个。呃,项目。它还能够成为一个这个还不错的,确实是这个,呃,成为什么阿法奇顶级项目啊,或者说小有名气的一个小框架是吧?啊,那么这个呢,就呃,有头有脸了,你写的简历里面是一个非常长脸的事情,而且呢,呃,成为卡密特可以获得那个阿帕奇后缀,就是你可以获得一个艾特阿法奇的or RG的一个邮箱。
07:01
啊,这个在那个工作的时候用它也是非常有面的一个事儿啊,另外呢,就是呃,PMC,其实PMC你也是有可能这个是成为了一来呢,就是PMC确实是在卡密特里面非常出众的啊,这种管理委员会的人呢,一般来说他要掌握我们整个框架啊,下一步往哪走,哪一些特性是最重要的啊,他要去讨论一些一些这个框架,未来还有框架架构的事情啊,那么PMC它要有一个。呃,就是卓越的一个眼光,呃,那么这就是一个最重要的几个部分哈,然后完了之后呢,嗯,当然这三个概念,实际上不是说任何一个这个科研项目都有这三个概念啊,那么这三个概念实际上是阿华奇里面对他做的一个规定。嗯,完事之后呢,我们需要说明啊。一个就是阿帕奇项目的概念。就是阿法奇的项目里面呢,实际上也分几个情况啊,我这里是在知乎上看了人家一篇文章是吧,我们说这个阿法奇顶级项目是什么,我们知道有什么麒麟啊,还有好几个卡夫卡,对吧,这些都属于阿帕奇的顶级项目,然后这个顶级项目呢,你可以理解为我们那个专业它有个一级学科啊,这就算是阿尔法奇的顶级项目。
08:16
啊,那么顶级项目再往下呢,实际上这个我们说有孵化器。呃,也就是我们现在写TN,它实际上也可以看到这个地方有个有个有个这个前缀这个单词,它实际上就是呃孵化孵化器的意思,那么孵化器什么意思呢?就是说我们这个项目呢,它其实还没有经过一个,呃。质量的检查,也就是说经过阿帕奇一些对这个项目质量的一些要求。呃,那么当这个我们的这个孵化器里的项目呢,不断的完善,然后不断的这个丰富它的功能啊,代码不断的健壮啊,项目不断的发展壮大,它是有可能从孵化器里面变成一个顶级项目啊,或者是什么,呃,就是也这个过程呢,我们就我们叫做毕业。
09:00
啊,那么毕业之后呢,就是说这个项目它不再是孵化器了啊,它接下来呢,有可能是成为顶级项目,也有可能是成为顶级项目底下的一个子项目,那么当这个子项目呢,它不断的发展壮大,他也有可能从这个呃所属的顶级项目,因为它从一个二级学科啊,一下突然变成一个一级学科,这是有可能的啊,那么这就是整个阿帕奇里面啊项目的一个情况。呃,最后呢,我们说一下我们今天后面的演示是什么。呃,就是我们说我们今天这个课程呢,它是基于V2.1.0这个版本去做的,但是奈何的这个版本呢,对于这个其他诺这个框架来说确实太早,因为2.1.0是喜塔诺在阿帕奇他的第一个版本。啊,那么我们当时在做这门课的时候呢,实际上是因为我们的课程一共是演示了三个插件啊,当然这三个插件呢,其实各有一个bug,呃,有一个是卡夫卡进的bug呢,实际上已经被社区解决掉了,呃,另外一个呢,是卡夫卡出的bug,这个呢,实际上是一个过期的API啊,这个是由我当时是呃做了一个更改之后呢,向这个社区贡献的啊,另外一个就是。
10:10
Doris出的地方,Doris出的一个这个,嗯。插件它实际上也是有bug的,那么这个在这个插件呢,它有bug之后呢,呃,其实我还没有做更改,然后社区呢,这边也没有提交,呃,刚好呢,就是留在我们的这个视频课里面给大家做个演示,就是我们发现这个bug之后,怎么样去向社区反馈。啊,然后呢,嗯,给这个社区呢,贡献我们的代码也是我们。教会大家如何去走向自己的这个开源之旅。嗯,最后呢,我们要说一下就是呃,其实呢,这个去参与参与这种开源项目呢,就是说你不要觉得这个卡密特呢,对你来说是遥遥无期的。呃,实际上呢,呃,成为这个卡密特的难易呢,取决于你参与的那个项目,呃,你像这种Spark,还有弗Li这种成熟的大型项目呢,实际上他现在的这个源码贡献者已经有1000多名了。
11:11
呃,那么在这种这个项目里面呢,一般来说不会让让让这个几百号人全部去共同去维护一个项目,实际上这个卡特的这个。卡M密特,包括这个PMC啊,这一圈人可能在维护到三四十个人差不多了,呃,那么你想就是我们去参与到一个项目里面,而且成为卡特呢,实际上是在这个项目早期的时候,也就是这个项目呢刚刚开始,而且社区里面急需人手去维护这个项目的时候。那么随着这个项目的不断发展扩大,然后这里面的源码贡献者越来越多,然后呃,那么会导致什么呢?就是这里面的人的水平越来越高,呃,你这时候呢,再去参与进去的话,就是这种已经是成为大型项目了,你再参与进去就可能较难的去成为一个computer。啊,那么考M的数量是否有限制呢?这个实际上取决于这个PMC就是管理委员会对他进行的一个管理。
12:06
啊,看这个PMC愿意让多少人成为这个commitm特,呃,而且这个身份呢,一旦成为,一旦成为commitm,实际上它是不会过期的啊,比如说你现在成为一个commitm之后呢,啊,你可能是啊出于工作原因,或者说是你目前有一个什么样的啊研发要做啊,导致你可能两三个月没有在这个社区里面活跃,实际上呢,你的这个身份是不会取消的,顶多呢啊,他也就是可能临时去取消你的这个啊对仓库的写的权限,那么但是身份不会取消,是你的身份仍然是computerm。啊,所以说呢,去参与一个开源项目,其实还是要趁早开始。
我来说两句