Slide 1

Slide 1 text

手頃な課題でOSSに初貢献してみよう @smogami 2018-03-10 第3回名古屋若手Webエンジニア交流会 help wanted good first issue low hanging fruit

Slide 2

Slide 2 text

名前: もがみ @smogami 所属: 来栖川電算 プロダクトマネージャ 機械学習研究者向けSaaS

Slide 3

Slide 3 text

主催コミュニティ: • Scala読書会 • 名古屋Java User Group 協力(LT・会場提供など): • Japan AWS User Group 名古屋支部 • Nagoya.cloud.first • Nagoya Frontend User Group

Slide 4

Slide 4 text

みなさん Open Source Softwareに 貢献してますか?

Slide 5

Slide 5 text

•OSSへ貢献してみた話 •難しくない貢献の仕方 今回の内容

Slide 6

Slide 6 text

Open Source Softwareと私たち • プログラミング言語 • ビルドツール、開発生産性ツール • フレームワーク • DBや検索エンジンなどミドルウェア • ユーティリティ • そうしたOSSのドキュメント

Slide 7

Slide 7 text

こんなとき 仕事で使っているOSSに どうしても足りない機能や 解決しないと困るバグがある

Slide 8

Slide 8 text

どうする? 機能をあきらめる 解決されるまで待つ OSS使わず独自実装 OSSに貢献する 価値を届けられない。最終手段 いつになるやら。その間に競合に出遅れるのでは… とりまOK。でもメンテ負担増、ライブラリ更新が… 自分以外のOSSユーザもうれしい

Slide 9

Slide 9 text

仕事で困ったのをきっかけに 貢献(プルリク)してみた

Slide 10

Slide 10 text

わりとマージされて 使ってるOSSが便利に

Slide 11

Slide 11 text

他のOSSユーザからも喜ばれて、 もっと続けたくなった

Slide 12

Slide 12 text

OSSの開発難しそう… 自分にはムリムリ そう思っていた時期が私にもありました

Slide 13

Slide 13 text

OSSの開発難しそう… 自分にはムリムリ 難しい Issue (課題)ばかりじゃない。 コア開発陣が時間を割けないため、誰かの 貢献が必要なお手軽 Issue が結構ある

Slide 14

Slide 14 text

help wanted good first issue 初心者に好適 手伝い募集 low hanging fruit 手が届く果物=カンタンなわりに価値がある こんなラベルのIssue が初心者向け

Slide 15

Slide 15 text

• 内部を深く知らなくても取り組める カンタンな機能追加 • コンパイラ警告の解消 • ドキュメントの誤植や間違い修正 • 新機能がドキュメントに書いてない 具体的には

Slide 16

Slide 16 text

お手頃な Issue の探し方 • 興味あるGitHubレポジトリの Issues をラベルでフィルター • まとめサイトを利用 • https://help.github.com/articles/searching-issues-and-pull- requests/#search-by-the-labels-on-an-issue • http://github-help-wanted.com/ • http://up-for-grabs.net/#/ help wanted good first issue low hanging fruit

Slide 17

Slide 17 text

できそうな を探して ちょこちょこPR送ると楽しい help wanted

Slide 18

Slide 18 text

初めてプルリクするときの注意 • 普段使ってるOSSでも、そのビルドやテスト でつまずきがち。 CONTRIBUTING.md や wikiなどに書かれてるのを探して従う • コミットログには Issue番号を書かないほう が良さげ。GitHubのIssueページからコミッ トにリンクされ、rebaseしても消せない!!

Slide 19

Slide 19 text

コード以外でも立派な貢献 「不具合っぽい挙動を見つけた」 「書いてる通りにやったのに動かない」 「こんな機能あればいいのに」 • Issueを書いてみよう • もっといい解決策を教えてもらえるかも • 誰かが実装してくれるかも

Slide 20

Slide 20 text

OSS貢献してみて学べたこと • 普段やっていない技術分野の理解 • OSSの継続的発展・普及には、難しい課題の解決だけ でなく、地道な課題の解決も必要 • 貢献してもらいやすくする地ならしも大事 • Issue のトリアージ(ラベル付け、閉じる) • 揉めた時の調整や決断(モデレーション) • CI(ビルドやテスト、ある種のレビューの自動化) • 開発を助けるツール:CI、コンパイラオプション

Slide 21

Slide 21 text

おわり