Golang Contribution

https://go.dev/doc/contribute

创建google账号

推荐申请一个google邮箱。

在开发机配置git

$ git config --global user.email name@example.com   
$ git config user.email name@example.com            

签CLA

个人开发者需要签署CLA。

https://cla.developers.google.com/about/google-individual

配置git认证

点击“Generate Password”, 用google邮箱登陆,根据提示配置git。

https://go.googlesource.com/

创建gerrit账号

用google邮箱登陆即可。

https://go-review.googlesource.com/dashboard/self

安装git-codereview

windows:

$ go get golang.org/x/review/git-codereview@latest
$ git --exec-path

> copy git-codereview.exe from GOBIN to Git\mingw64\libexec\git-core

$ git codereview help

linux/mac:

$ go install golang.org/x/review/git-codereview@latest
$ git codereview help

选取修改的CL

从github选取一个还没有人提交CL(change log/list)的Issue进行修改。

issue三种类型:

  • NeedsInvestigation
  • NeedsDecision
  • NeedsFix 选这个里面还没有CL的做

https://github.com/golang/go/issues?q=is%3Aissue+is%3Aopen+label%3ANeedsFix+NOT+%22golang.org%2Fcl%22

提交patch

支持github或者gerrit提交patch。

github用户直接fork到自己账号,clone下来即可。

git clone https://github.com/golang/go.git

gerrit用户

git clone https://go.googlesource.com/go

创建开发分支并修改代码

git checkout -b canux_dev
...
git add -A
git codereview change
...

本地测试修改

./all.bash

提交修改,github用户直接去github页面提交PR。

gerrit用户通过命令行提交:

$ git codereview mail     # send changes to Gerrit

commit message格式有严格要求。

https://golang.org/doc/contribute#commit_messages

code review

提交之后trybots会自动构建,可以通过build dashboard查看各个平台build结果:

https://build.golang.org/

查看自己的patch的review情况:

https://go-review.googlesource.com/dashboard/self