记一次向 flutter 提交代码的经历
1.发现问题并确认问题
当我在测试
canvas.drawAtlas
方法时,查看上方的注释,有一个示例代码。 看到下面箭头所示的地方,心中暗喜 :it's a chance!
虽然当时比较激动,但还是默念一声:
莫慌
。flutter 的更新迭代比较快,可能在 master 分支已经被修改了。所以需要到 github 中查看 master 分支目前的代码。那怎么知道这个文件在哪呢? 可以看到当前文件磁盘位置在:flutter/bin/cache/pkg/sky_engine/lib/ui/painting.dart
找到painting.dart文件在flutter/engine项目中
确认错误仍在:
2.在 flutter 中提交 issue
flutter/engine 不能提交 issue,都集中在 flutter/flutter 项目下。
New issue
时会让你选择类型,根据情况选择。写的时候使用英语,尽量将问题描述清楚。
3. Fork 需要修改的项目
将该项目Fork到自己的仓库里。
这样项目将会在你的仓库中出现
4. 新建分支并修改
注意:
你需要新建一个分支来进行源码的修改
你可以将项目clone下来,新建分支。这里比较简单,直接点master
然后搜索分支。 github 界面是没有新建分支的按钮,你可以输入一个不存在的分支
,然后下面会有创建栏
然后直接修改相应的位置
可以写下描述并提交变动
5.Pull requests
【1】创建 Pull requests
【2】页面会跳到 flutter/engine,注意将右侧分支选为新建的分支
【3】写清楚标题,和描述信息。把解决的相关issue链接加上
【4】在 flutter/engine 你可以看到你的Pr
6. 关于CAL问题
我是第一次Pr,界面上面显示 CLA 的问题。关于CLA,这里不多说,这里有篇文章可以参考 什么是CLA?。
简单来说CAL是一种对贡献者和开源项目的使用者的保护
。下面看一下如何签署CLA
出现CLA 的问题,在 Pr 下面会有
googlebot
的评论。里面会为你介绍CLA,下面的第一个链接是签署CLA
的网址。不过你需要科学上网
过程很简单,就是输入
用户名
、gitHub账号名
、邮箱即可
。
记得最后需要在Pr的界面回复一下:
@googlebot I singed it!
7. 等待Pr的结果
然后要做的就是等待 Pr 结果,然后会 在master 分支看到自己的头像,打完收工。
最后,可以看到 flutter/engine 代码 被修改了。虽然只是一行而已,虽然只是注释而已,虽然只是一个字母而已。 不过在源码里,有个用自己的手敲出来的字,感觉很不错。 整体的流程大概就是这样,虽然都是在github界面上操作的,你也可以对应到相关的 git 命令。 通过这次经历的分享,希望大家也可以加入到开源项目的维护中。流程也不是想象中的那么复杂。
@张风捷特烈
-2020.10.30
公众号:编程之王
~ END ~
转载自:https://juejin.cn/post/6889231349522268168