Slide 1

Slide 1 text

Golangにコントリビュートしたときの話 超スモールスタート! taisa

Slide 2

Slide 2 text

自己紹介 ● taisa (@taisa831) ● テックタッチ株式会社 ● Python JP Conferenceコミュニティ ● 共著:React、Angular、Vue.js、React Nativeを使って学ぶ はじめてのフロ ントエンド開発 ● 好きな言語:Go / JavaScript / Python

Slide 3

Slide 3 text

概要 ● なにをコントリビュートしたの? ● どうやるの? ● どうだった?

Slide 4

Slide 4 text

なにをコントリビュートしたの? https://github.com/golang/go/commit/7bdef2dfa4fe7d4d424d5601973b07d42ffc869b

Slide 5

Slide 5 text

なにをコントリビュートしたの? https://github.com/golang/go/blob/master/src/testing/testing.go

Slide 6

Slide 6 text

どうやるの? ● 英語 ○ Go本体の「Contribution Guide」に詳しく手順が書かれています。 ○ https://golang.org/doc/contribute.html ● 日本語 ○ 「Go にコントリビュートするまでの手順」に丁寧に書かれています。 ○ https://syfm.hatenablog.com/entry/2017/07/05/020535

Slide 7

Slide 7 text

特徴 ● go.googlesource.com にユーザ登録が必要がある ● Contributor License Agreement (CLA) に同意する必要がある ● Gerrit でレビューを行っている(GitHubはmirror) ○ Googleが開発 ○ ユーザ登録が必要 ● git-codereview というコマンドラインツールを利用する ○ Gitを拡張したもの → 最初のセットアップが結構めんどいけど1回やったらあとはすごい楽

Slide 8

Slide 8 text

Gerrit ● https://go-review.googlesource.com/c/go/+/209777

Slide 9

Slide 9 text

git-codereview ● $ go get -u golang.org/x/review/git-codereview ● $ git codereview help $ git codereview change $ git codereview gofmt $ git codereview mail $ git codereview pending $ git codereview submit $ git codereview sync https://golang.org/doc/contribute.html#sending_a_change_github

Slide 10

Slide 10 text

コミットメッセージ例 math: improve Sin, Cos and Tan precision for very large arguments The existing implementation has poor numerical properties for large arguments, so use the McGillicutty algorithm to improve accuracy above 1e10. The algorithm is described at https://wikipedia.org/wiki/McGillicutty_Algorithm Fixes #159 https://golang.org/doc/contribute.html#commit_messages

Slide 11

Slide 11 text

どうだった? ● レビューは結構早い ● 今回の内容であれば夜にレビュー依頼したら翌日の朝には返信がきた ● コメントがめちゃくちゃ優しい >Thanks, but I don't see why this change is correct. The "output" >comment can have text immediately following "output". >Thanks. Let's just change the argument to 5 or otherwise adjust the >numbers to keep a number on that line. >Thanks. https://go-review.googlesource.com/c/go/+/209777

Slide 12

Slide 12 text

まとめ ● GitHubじゃなくてGerritを使う ● ソース管理はGitの拡張であるgit-codereviewを使う ● 初期セットアップはちょっとめんどいけどできたらあとは楽 ● レビューはすぐやってくれる傾向にある ● レビューのコメントは超小粒の内容でもめちゃくちゃやさしい この流れで2019年にテストに関するアドベントカレンダーを書きました。 「Goのtestingパッケージの基本を理解する」 https://qiita.com/taisa831/items/85fea8d970bcadd796b9