Slide 1

Slide 1 text

バルサ CL 初戦大勝のその後 @Doarakko

Slide 2

Slide 2 text

・2019年12月入社(2社目) ・エンジニア歴1.5年  - 仕事: Go, PHP(たまに)  - 趣味: Python, C++ ・AtCoder 緑 ・海外サッカーをよく見ます 自己紹介 2

Slide 3

Slide 3 text

CL 初戦前にヘタフェに完封負け 3

Slide 4

Slide 4 text

【朗報】バルセロナ大量5得点、圧倒的勝利! 4

Slide 5

Slide 5 text

Gin にコミットしたい >>>>> 眠気 5

Slide 6

Slide 6 text

コミットしました 6 パッケージのバージョン上げただけだよ

Slide 7

Slide 7 text

・Go の Web フレームワーク ・外資就活ドットコムのバックエンドで使用 ・OSS(Open Source Software) Gin とは 7

Slide 8

Slide 8 text

・ブログを書く ・勉強会を開催 ・issue を立てる ・ドキュメントの追加・修正・翻訳 ・機能追加 ・バグ修正 OSS に貢献するには 8 他にもあるかも

Slide 9

Slide 9 text

・ブログを書く ・勉強会を開催 ・issue を立てる ・ドキュメントの追加・修正・翻訳 ・機能追加 ・不具合・バグの修正 OSS にコミットするには 9 他にもあるかも

Slide 10

Slide 10 text

issue 探し 10 OSS によっては「good first issue」というラベルをつけてくれています!

Slide 11

Slide 11 text

Undefined validation function 'required_if' on field 'Field' 11 issue template に合わせて書いてくれているのでローカルでの再現や対応がしやすかった

Slide 12

Slide 12 text

Gin の binding タグとは 12 Gin の内部では validator パッケージを使っているので挙動は同じ Gin binding タグ validator の validate タグ

Slide 13

Slide 13 text

binding タグで「required_if」を指定すると定義されてませんよエラー 13

Slide 14

Slide 14 text

・ローカルで再現するか  → 再現 ・「required_if」以外を指定するとどうなかるか  → 同様のエラーになるものが一部あり ・validator パッケージの issue に報告が上がっていないか  → 特になし ・(Gin のバージョンを最新にしても再現するか) 一つずつ確認していく 14

Slide 15

Slide 15 text

Gin は内部で validator パッケージを使用している 15

Slide 16

Slide 16 text

validator パッケージのバージョンを見てみると... 16 Gin が使っているバージョン 最新バージョン

Slide 17

Slide 17 text

17

Slide 18

Slide 18 text

required_if がリリースされたバージョンを調べてみる 18 ソースから PR を特定して Releases からバージョンを確認

Slide 19

Slide 19 text

Gin が使っているバージョンでは「required_if」が追加されていない 19 validator パッケージのバージョンあげるぞ

Slide 20

Slide 20 text

PR を上げるまでの手順 20

Slide 21

Slide 21 text

・README.md を読む ・CODE_OF_CONDUCT.md を読む ・CONTRIBUTING.md を読む ・コメントがついている issue や PR を見る(雰囲気を知るため) OSS に PR を上げる前に⚠ 21 ルールが厳格な OSS もあるので必ず読む

Slide 22

Slide 22 text

① リポジトリを Fork してローカルに落とす 22 本家に直で Push する権限がないため

Slide 23

Slide 23 text

② go get -u github.com/go-playground/validator/v10 23 動作確認・テストコードの実行も忘れずに!

Slide 24

Slide 24 text

③ PR 作成 24 マージされた他の方の PR を見て雰囲気を掴む

Slide 25

Slide 25 text

05:53 25

Slide 26

Slide 26 text

12:26 26

Slide 27

Slide 27 text

マージされました 27

Slide 28

Slide 28 text

・OSS 活動怖くない ・小さな修正でも多くの人のためになる ・issue をよく見てみると意外とコミットチャンスあるかも まとめると... 28

Slide 29

Slide 29 text

バルサ CL 初戦大勝のその後 @Doarakko