Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
20220510_LT大会_OSSコントリビュート
Search
Kenji Furukawa
May 10, 2022
Programming
1
150
20220510_LT大会_OSSコントリビュート
Kenji Furukawa
May 10, 2022
Tweet
Share
More Decks by Kenji Furukawa
See All by Kenji Furukawa
20230518_AfterRubyKaigi_LT
frkawa
0
2k
Other Decks in Programming
See All in Programming
Grafana:建立系統全知視角的捷徑
blueswen
0
280
[AI Engineering Summit Tokyo 2025] LLMは計画業務のゲームチェンジャーか? 最適化業務における活⽤の可能性と限界
terryu16
2
270
フロントエンド開発の勘所 -複数事業を経験して見えた判断軸の違い-
heimusu
6
2.2k
はじめてのカスタムエージェント【GitHub Copilot Agent Mode編】
satoshi256kbyte
0
150
LLMで複雑な検索条件アセットから脱却する!! 生成的検索インタフェースの設計論
po3rin
4
1.1k
Implementation Patterns
denyspoltorak
0
150
組み合わせ爆発にのまれない - 責務分割 x テスト
halhorn
1
180
AIによるイベントストーミング図からのコード生成 / AI-powered code generation from Event Storming diagrams
nrslib
1
1.1k
.NET Conf 2025 の興味のあるセッ ションを復習した / dotnet conf 2025 quick recap for backend engineer
tomohisa
0
110
AIエージェントの設計で注意するべきポイント6選
har1101
6
3k
AtCoder Conference 2025「LLM時代のAHC」
imjk
2
650
HTTPプロトコル正しく理解していますか? 〜かわいい猫と共に学ぼう。ฅ^•ω•^ฅ ニャ〜
hekuchan
2
620
Featured
See All Featured
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
46
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
190
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
34k
For a Future-Friendly Web
brad_frost
180
10k
Claude Code のすすめ
schroneko
67
210k
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
37
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.6k
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
1
420
GraphQLとの向き合い方2022年版
quramy
50
14k
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
0
420
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.1k
Mind Mapping
helmedeiros
PRO
0
47
Transcript
大型連休何しよう…せや!OSSコントリ ビュートしよ! 古川 健二 GitHub: @345dvl
目次 - Why OSS Contribute? - いざ、初めてのOSSコントリビュート - どうやって探す? -
どんなイシューが良いのか? - 探してるうちに・・・ - 更に・・・ - 更に更に - コントリビュートの手順 - ドキュメントのみ - ソースコード - 実際にPRを出してみた - 気付き、所感
- Why OSS Contribute? - いざ、初めてのOSSコントリビュート - どうやって探す? - どんなイシューが良いのか?
- 探してるうちに・・・ - 更に・・・ - 更に更に - コントリビュートの手順 - ドキュメントのみ - ソースコード - 実際にPRを出してみた - 気付き、所感
Why OSS Contribute?
1. 大型連休+LTネタ作り
大型連休+LTネタ作り - 大型連休だし新しいことやってみたいなあ - そういえばLT大会やるって宣言しちゃったなあ - なんか話のネタになるようなこと・・・ - OSSコントリビュート、やってみるか
2. 社外のプロダクトに触れる
社外のプロダクトに触れる - 社内プロダクト以外のソースをあまり読まないことに気付いた - それで痛い目を見ることが最近多い devise(rubygem)とかfirebaseauth(golang package)とか - 外部のソースコードも臆さず読めるようになりたい -
OSSコントリビュートはもってこいの教材 - コントリビュートにはソースの理解が必須
3. 実績作り
実績作り - 少し狡い話 - 今回はあくまで取っ掛かり - 改修規模も小さい - 今後も続けていくことで、自分のアウトプットとしてキャリアの助けになる
4. 文字通り、貢献できる
- 他者のライブラリやWebサービスに貢献し、感謝されることでエンジニアとしての喜 びを味わえる - もちろん自社のプロダクト開発も貢献だが、新鮮さがあり、横の繋がりが増えることも 文字通り、貢献できる
- Why OSS Contribute? - いざ、初めてのOSSコントリビュート - どうやって探す? - どんなイシューが良いのか?
- 探してるうちに・・・ - 更に・・・ - 更に更に - コントリビュートの手順 - ドキュメントのみ - ソースコード - 実際にPRを出してみた - 気付き、所感
いざ、初めてのOSSコントリビュート
どうやって探す?
- 普段よく使うOSS - 検索サービスを使って自分に合ったOSSを探す コントリビュート先をどう探すか
- 普段よく使うOSS - 検索サービスを使って自分に合ったOSSを探す →今回はこちら コントリビュート先をどう探すか
どんなイシューが良いのか?
http://github-help-wanted.com/ - 自分に合ったコントリビュート先を探すことができる - “help wanted” “good for first” “easy”などのラベルがついたイシューを検索
- 言語で絞ることも可能 - 今回は言語を慣れているRuby、勉強中のGolangに絞った - 他にも同じようなサイトが多数ある どんなイシューが良いのか?
探してるうちに・・・
https://github.com/rubyforgood/human-essentials/issues/2883 - Railsで書かれた在庫管理のWebサービス - 画面に日付を表示するロジックのバグ対応、ぱっと見で分かりやすい - 付いているラベルは“help wanted” “good for
first” - これなら自分でも対応できそう 良さげなイシューを見つけた!
更に・・・
typoの修正はOSSコントリビュートの第一歩として最適と古事記にも書いてある typoも見つけた
更に更に
> This application is an inventory management system that is
built to address the needs of Diaper Banks as directly and explicitly as possible. もともとはおむつの在庫管理システムとして構築されたサービスとのこと
> This application is an inventory management system that is
built to address the needs of Diaper Banks as directly and explicitly as possible. もともとはおむつの在庫管理システムとして構築されたサービスとのこと →妊娠育児関連サービスを開発している身としては出会うべくして出会ったOSSと言える
- Why OSS Contribute? - いざ、初めてのOSSコントリビュート - どうやって探す? - どんなイシューが良いのか?
- 探してるうちに・・・ - 更に・・・ - 更に更に - コントリビュートの手順 - ドキュメントのみ - ソースコード - 実際にPRを出してみた - 気付き、所感
コントリビュートの手順
ドキュメントのみ
ドキュメント修正のみの場合は、GitHubの画面上で編集し、直接PRの作成が可能。 下記の通り、ドキュメント編集のみの場合でも自動でforkされる ドキュメントのみの修正
ソースコード
- 基本的には下記の流れで開発する - 通常の開発と異なるのは、細かい点を除けば最初にforkが必要な点くらい - かんたん! 1. OSSを自リポジトリにfork 2. ローカルにcloneし、通常通りに開発
3. 元リポジトリにPRを提出 4. 必要に応じて指摘を対応 5. 問題無ければマージしてもらう ソースコードの修正
実際にPRを出してみた
あっさりマージされました(そりゃそう) まずはtypo修正
- こちらも特に指摘も無くマージされました - 表示ロジック(JavaScript)修正だけでなくストロングパラメータが足りていないという バグを見つけ、併せて対応しましたが特にコメントが無かったのは少し寂しかったで す;) 日付表示ロジックの改修
- Why OSS Contribute? - いざ、初めてのOSSコントリビュート - どうやって探す? - どんなイシューが良いのか?
- 探してるうちに・・・ - 更に・・・ - 更に更に - コントリビュートの手順 - ドキュメントのみ - ソースコード - 実際にPRを出してみた - 気付き、所感
気付き・所感
- 思ったより簡単 - 通常の開発と異なるのは、細かい点を除けば最初にforkが必要な点くらい - 日頃から使用しているOSSの不便に思う点や不具合などに敏感になっておくと良さ そう - いざOSS貢献したい!と思っても、適当なイシューを見つけるまでが大変。今回 は改修より検索の方が時間がかかった
- 今後は自分で直そう、とかイシュー立てよう、と当事者意識を持ってOSSに接す ることができそう - 簡易な修正でも、英語で知らないエンジニアにPRを出すのは緊張する - その分PR通るとやっぱり嬉しい - 次はもっと時間を取って難しいライブラリやイシューに挑戦したい 気付き・所感
ご清聴ありがとうございました!