likes
comments
collection
share

记一次向 flutter 提交代码的经历

作者站长头像
站长
· 阅读数 17
1.发现问题并确认问题

当我在测试canvas.drawAtlas方法时,查看上方的注释,有一个示例代码。 看到下面箭头所示的地方,心中暗喜 :it's a chance!

记一次向 flutter 提交代码的经历

虽然当时比较激动,但还是默念一声:莫慌。flutter 的更新迭代比较快,可能在 master 分支已经被修改了。所以需要到 github 中查看 master 分支目前的代码。那怎么知道这个文件在哪呢? 可以看到当前文件磁盘位置在: flutter/bin/cache/pkg/sky_engine/lib/ui/painting.dart

  • 找到painting.dart文件在flutter/engine项目中

记一次向 flutter 提交代码的经历

  • 确认错误仍在:

记一次向 flutter 提交代码的经历


2.在 flutter 中提交 issue

flutter/engine 不能提交 issue,都集中在 flutter/flutter 项目下。 New issue时会让你选择类型,根据情况选择。写的时候使用英语,尽量将问题描述清楚。

记一次向 flutter 提交代码的经历


3. Fork 需要修改的项目

将该项目Fork到自己的仓库里。

记一次向 flutter 提交代码的经历

  • 这样项目将会在你的仓库中出现

记一次向 flutter 提交代码的经历


4. 新建分支并修改

注意: 你需要新建一个分支来进行源码的修改 你可以将项目clone下来,新建分支。这里比较简单,直接点master 然后搜索分支。 github 界面是没有新建分支的按钮,你可以输入一个不存在的分支,然后下面会有创建栏

记一次向 flutter 提交代码的经历

  • 然后直接修改相应的位置

记一次向 flutter 提交代码的经历

  • 可以写下描述并提交变动

记一次向 flutter 提交代码的经历


5.Pull requests

【1】创建 Pull requests

记一次向 flutter 提交代码的经历

【2】页面会跳到 flutter/engine,注意将右侧分支选为新建的分支

记一次向 flutter 提交代码的经历

【3】写清楚标题,和描述信息。把解决的相关issue链接加上

记一次向 flutter 提交代码的经历

【4】在 flutter/engine 你可以看到你的Pr

记一次向 flutter 提交代码的经历


6. 关于CAL问题

我是第一次Pr,界面上面显示 CLA 的问题。关于CLA,这里不多说,这里有篇文章可以参考 什么是CLA?简单来说CAL是一种对贡献者和开源项目的使用者的保护。下面看一下如何签署CLA

记一次向 flutter 提交代码的经历

出现CLA 的问题,在 Pr 下面会有googlebot的评论。里面会为你介绍CLA,下面的第一个链接是签署CLA的网址。不过你需要科学上网

记一次向 flutter 提交代码的经历

过程很简单,就是输入用户名gitHub账号名邮箱即可

记一次向 flutter 提交代码的经历

记一次向 flutter 提交代码的经历

记得最后需要在Pr的界面回复一下: @googlebot I singed it!

记一次向 flutter 提交代码的经历


7. 等待Pr的结果

然后要做的就是等待 Pr 结果,然后会 在master 分支看到自己的头像,打完收工。

记一次向 flutter 提交代码的经历 记一次向 flutter 提交代码的经历

最后,可以看到 flutter/engine 代码 被修改了。虽然只是一行而已,虽然只是注释而已,虽然只是一个字母而已。 不过在源码里,有个用自己的手敲出来的字,感觉很不错。 整体的流程大概就是这样,虽然都是在github界面上操作的,你也可以对应到相关的 git 命令。 通过这次经历的分享,希望大家也可以加入到开源项目的维护中。流程也不是想象中的那么复杂。

记一次向 flutter 提交代码的经历

@张风捷特烈 - 2020.10.30 公众号:编程之王 ~ END ~