00:00
好的,那么我们这个ISO创建完之后呢,我们接下来呢,去创建我们的PR。啊,但是这个PR呢,它不能直接创建,我们需要去干什么呢?我们先首先先需要去fok这个项目。这个folk的意思就是叉子,只要我们这个点完fok之后呢,呃,在我们getub上它会有一个云仓库。啊,也就是说这个是阿法奇的一个仓库,然后完了之后呢,啊,我们当我们放完之后呢,在我我的这个账号里面啊,我的这个会有一个跟他一样的一个仓库。啊,那么这就是folk的一个作用,它实际上呢,相当于从这里面起了一个分支,我们可以先操作一下试一下。啊,当然我这个地方呢,之前放过了,所以说我点完之后呢。实际上会直接到我之前的那个啊分支上去。呃,那么如果是你们的话,就是你头一次fo这个项目的话,你会创建一个全新的仓库,然后他会说你这是你的域名,你下面的这个仓库呢,是folk from就从这里面分叉过来的。
01:05
嗯,在我这里的话,就是我要干这个活的话,我要向这里提交的话,我们要先看这个this branch is,呃,35卡,也就是在我上一次啊,在在我上一次就在我这个,在我这个分支目前的版本之后呢,啊,远程的这个阿法奇的这个分支实际上有35次提交。啊,可以想象就是假如说绿色的这个是我的。绿色这个是我的,然后这个蓝色的呢,就是官方的,那么我当时呢,和官方的时候这个版本是一致的,但是后面呢,这个官方的版本呢,一直在提交,一直在提交,一直在提交,反正他一都有35次提交了。那么那么我要在修改代码呢,如果我从这个地方呢,直接去修改代码,其实可能会起到一个冲突的结果啊,不过我们之前在验证方案的时候呢,实际上我们是在这个呃,官方的这个最新分支上,最新的这个版本上进行了一个呃验证,那么这样的话呢,我们只需要把本地的一个,就是把我们这个自己的这个fo完的这个仓库呢,来进行一个这个废upstream,就把它来一直追赶到我们的这个。
02:11
啊,最新的版本来这样就好了,然后我们待会儿呢,就是从我们在本地的这个插上,然后fo到我们本地,呃,那个那个克隆到我们本地一个,然后在本地做完修改之后呢,啊,再通过push到这个啊,我们的这个本地的仓库里面来啊,再对它进行发起一个PR的操作啊待会儿大家看到是这样一个工作流程啊,先给大家说一下。然后看我们接下来的操作,首先呢,我在这里。那这里fe and up upstream啊,我们可以看到这里面有一个feature and的me,一般来说是不会起冲突的,因为我这个版本的,呃,是没有做过什么修改的啊,直接点一下。那么好啊,这个地方只要显示successfully就说明成功了,也就是说我现在本地就是我自己这个get上的这个仓库,实际上和官方现在保持了一致的版本啊,那么接下来呢,我就可以从这个bit上去克隆我自己的这个仓库。
03:11
可以点击这个扣的。有一个链接,我们去桌面上。桌面新建一个。我们新建个文件夹,我的。然后在这里面呢,我直接用终端。给克隆。嗯,很好啊,这样的话呢,我们就拿到了一个啊,属于自己的,就是这个这个实际上是跟我自己的,就是我fok出来那个仓库啊,它是克隆过来的啊,我右键之后呢,我们可以直接显示更多选项,那用idea直接打开这个项目。
04:00
然后我们在一个。就在这个窗口吧,直接在this window打开它。啊,等待这个慢慢把这些啊慢项目加载进来。啊,这个现在正在加载依赖。好的,那么我们的这个依赖的这个情况就算是加载完了啊,接下来呢,我们可以去看一下。嗯,我们去找我们刚才改的那个地方。有一个地方叫什么来着,有个地方是我们的connectors,然后在flink有一个Doris Doris底下。有一个Doris output。然后我们把这个地方。
05:00
今天说那个flash方法。拉方法的这个地方,哎,对它进行一个修改,也就是说这里面这里面我们要调用BA的torra,然后你有一个哎数组BA。点。呃,就是这样改的是吧,完了之后呢,现在我们这个代码已经做了更改,我们可以看到我们现在这个文件是蓝的啊,现在就需要把它进行一个提交。啊,那么我们现在呢,对我们刚才做的这个文件进行一个提交,然后提交的时候呢,我们直接让这个卡的这个message和我们那个题目保持一致就行了,刚才的题目。这个地方呢,就直接commit。呃,这地方说我需要一个登录。Or commit anyway?
06:01
呃,这样的话呢,我们就算是有一个一个新的提交这个地方就是我们新的。呃,那么现在的话呢,实际上我们可以去啊。把这个东西就直接铺到我们的这个仓库上,但实际上呢,我在这里面要提前说一下。呃,是这样,就是一般来说呢,在正式呃发起pro request之前呢,啊,你这个本地的项目应该先过一遍这个环境的编译,也就是你确保这个东西在这个你的这个机器上来跑是没有问题的,但是我们之前说了,就是它目前的这些test,还有这些东西,有一些东西这个Windows和Linux这个跨平台性做的不好,主要体现就是那个。路径的问题。呃,那么这样的话呢,就是我们在这个演示的时候呢,Windows这一块可能就是没法现场译。呃,那么后面我们会给他说这个代码提交上去之后,他那边会做什么样的检查,所以这个地方呢,我们就直接。
07:02
去push一下,把它推到我们的云上去,推到我们的get上去。那么也可以看到,其实我们这个地方呢,还是会推到我们的第五分支上。这个地方呢,就不要是队伍分支了,这个地方我们做一个修改。把它改到一个跟我们这个bug相关的东西,比如说是。X啊,我看我这个是Li。Think。是吧,就这样起一个名字。这样的话呢,就是说弄到我这个把这个更改呢啊,推送到我这个远程的这个啊。相当于我在这个远端建立了一个这个新的分支,然后在这个新的分支上做的修改,然后但是在这个远程仓库上的那边,这个队伍分支上是没有做任何修改的。这样我们直接把它铺过去。
08:05
好了,那么我们现在这个远程的这个仓库上呢,我们可以看一下。那这个就是我的一个远程仓库,然后我们可以看到。啊,也可以看到这一分钟前有一个这个这个分支上一分钟前有一个啊push,然后这个地方呢,我们就可以去compare and request,也就是我们已经可以向这个阿尔法奇的分支去创建一个request了,我就点这个按钮。啊,可以看到这个地方呢,实际上是说呃,我们在发起一个per request,这个per request呢,是想把我这个呃自己这个仓库里面的啊fix fli dori think这个分支,然后把它合并到我们的这个阿尔法奇的呃S塔诺的一个第五分支上去。然后这里面呢,会有一个自动的检查,就是二保,呃,Able保to墨制,也就是说这里面呢,没有发生冲突是可以墨制的。
09:05
然后再下面的话呢,就是我们的一个要填的模板,这个就是这个社区希望我们来填的东西,那么这个地方实际上是一个检查清单,也就是你要确认这几件事你做了没有。嗯,实际上这个地方呢,是markdown这个大家推荐去。好好学习一下马克down的一些语法,一对我们将来去参与开源或者写文档也有一些益处。实际上这里面呢,是这样空白的一个,呃,待选框啊,那么我们要选它的方式呢,实际上是把这个空格替换掉,然后这个中括号和这个。呃,左中括号,右勾中括号之间呢,紧紧挨着一个X,我们可以看到这个渲染的效果就是它会变成一个对勾。那么这三个呢,实际上跟我们说的东西都没有关系,比如说你如果是什么。呃,新增一个测试啊,你要说你为什么新增这个测试。包括是你如果新增了一个二进制的这个包啊,在你的PR里面,你需要添加一个license啊,呃,如果必要的话,你可以更新这个文档,这些我们没有改变它的功能都是没有必要的,但是我们要需要知道这件事我们确认过,那么我们还是要打勾。
10:12
呃,那么打上这个圈之后呢,打上这个勾之后呢,我们需要在这个,你看二标题,我们就说简述一下你这个PR是干了个什么。那么这里的话呢,我们去这个地方还是去添加一个我们英文的说明,也就是修了这个Doris s里面的一个bug啊,这个会导致一个class cast的一个错误。那么这个batch呢,它是一个list,它不能强转为这个charge啊,这个地方调用了这个。呃,图尔瑞的一个方法,然后去把它转为一个呃数组啊,就是表达的意思,然后我们可以看一下它这个渲染的效果。嗯,底下呢,是我们做一个修改,红色的意思就是我们删除了什么哪一行,然后绿色的就是我们增加了哪一行,可以看到这个地方已经把我们的这个不同的地方给标记出来了,嗯,这样的话呢,我们还差一步,就是我们需要在这个文档里面去。
11:13
艾特一下去链接到我们的那个,呃,之前的那个。呃,O里面去啊,这样的话呢,我们需要去新建一个这个。我们去看一下这个页面里面的这个S。啊,找到我们之前创建的这个IO呢,然后我们可以看到有一个。啊,这就是之前我创建的。我们对这个链接呢,做一个复制。然到我们这里呢,直接粘进来。我们可以看到它这里面呢,变成了一个ID,实际上这个getthub里面是可以去呃识别你这个链接,而且对它进行一个呃这种格式的加载的,那你这里艾特它之后呢,实际上就是你插入这个链接之后呢啊,它会去链到那个什么上去,它会去链到你那个啊之前的一个艾O上去,这样的话呢,你的这个PR提上去之后,和这个ISO就连成一体了,然后后面他说你这个PR默制之后呢,那边这个那边那个so也会自动的关闭,然后我们现在呢,也可以创建一个PR。
12:25
啊,那么我们的这个PR呢,就创建上去了。然后这个地方呢,我们可以看到现在是两个红叉,然后现在刚刚呢,又弹出一堆黄的,什么意思啊。呃,就是说这个红色的地方呢,是表示你没有权限啊,你现在目前的话呢,啊,首先是必须要有人来审核你的代码啊,必须要有人审核你的代码,而且至少有一个人,然后另外一个就是呃。一样啊,这个地方你没有墨制的一个权限,嗯,最后呢,这个黄色的东西呢,啊,其实是这个啊,我们这个框架的一个CICD。什么是CID呢?实际上是这么写哈。
13:04
The。呃,这个其实是持续交付,持续部署啊,也就是说呃,在我们这个框架里面呢,你想就是你写的代码呢,如果说你改了很多东西,一下改了十个文件啊,或者说重写了某个功能,把很多代码都重构掉了,那么这个时候会导致一个问题就是呃,我的这个人员呢,他如果说申请这个代码,这个人他也没有没有注意,呃可能导致我们整个框架就呃直接出现了致命的bug,跑不起来了,那么这个东西呢,实际上是在云端的一个环境,它呢会把你这个上传的代码,然后就整个项目的代码,就把你这个代码合进去之后,然后试一下看整个项目代码呢,能不能编译跑通,然后包括能不能经过我们目前的所有测试啊,如果这个呃都能过了的话,单元测试什么都能过了啊,编译也能过了啊,那么它基本上呢,就可以帮这个我们的代码审核的这个人员呢,解决一大部分的问题啊,那么这呢是一个云端的一个执行的一个过程,等到这个。
14:06
现呢,全部打为对勾的时候呢,呃,实际上我们这个呃就相当于满足了我们代码末制的呃必要条件之一,呃那么现在呢,我们的任务呢,就是等到这个天亮的时候是吧,看这个社区的工作人员,社区的这些啊核心人员,他是否会没置我们的代码啊,等到这个地方呢,如果默置了,我们会给大家再录一集视频课。那么最后提到的一嘴呢,就是呃,这个我们可以看到哈,这个bug,然后完了之后,这个地方已经处理了,已经出现一个我们的这个PR了啊,然后我们现在呢,去看一下我们这个so是什么状态啊,我们刚才不是说嘛,它链接过去之后,会直接那边的状态也会变,我们看一下是什么情况。嗯,其实也不是状态会变啊,你看你可以看一下,点进来看一眼。就是在这个最下面,我们可以看到,就是有一个人你可以看,就是我自己啊,他会有一个这个提到的一个标记,也就是说我们已经关联起来了啊,然后完了之后,这是我们这个PR的一个状态啊,这就是这个。
15:11
啊,通过这个插入这个链接是吧,就可以把我们这个呃,PR和这个O关到一块的事儿,就是那么简单。
我来说两句