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
1.7k
Other Decks in Programming
See All in Programming
Swift Updates - Learn Languages 2025
koher
2
460
[FEConf 2025] 모노레포 절망편, 14개 레포로 부활하기까지 걸린 1년
mmmaxkim
0
1.5k
Tool Catalog Agent for Bedrock AgentCore Gateway
licux
6
2.1k
意外と簡単!?フロントエンドでパスキー認証を実現する WebAuthn
teamlab
PRO
2
680
print("Hello, World")
eddie
1
510
知っているようで知らない"rails new"の世界 / The World of "rails new" You Think You Know but Don't
luccafort
PRO
1
100
Flutter with Dart MCP: All You Need - 박제창 2025 I/O Extended Busan
itsmedreamwalker
0
140
速いWebフレームワークを作る
yusukebe
5
1.7k
testingを眺める
matumoto
1
130
CJK and Unicode From a PHP Committer
youkidearitai
PRO
0
110
TDD 実践ミニトーク
contour_gara
1
290
Processing Gem ベースの、2D レトロゲームエンジンの開発
tokujiros
2
120
Featured
See All Featured
Unsuck your backbone
ammeep
671
58k
Imperfection Machines: The Place of Print at Facebook
scottboms
268
13k
Documentation Writing (for coders)
carmenintech
74
5k
jQuery: Nuts, Bolts and Bling
dougneiner
64
7.9k
A designer walks into a library…
pauljervisheath
207
24k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
9
800
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
34
6k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
48
9.7k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
29
1.9k
Agile that works and the tools we love
rasmusluckow
330
21k
Docker and Python
trallard
45
3.5k
YesSQL, Process and Tooling at Scale
rocio
173
14k
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通るとやっぱり嬉しい - 次はもっと時間を取って難しいライブラリやイシューに挑戦したい 気付き・所感
ご清聴ありがとうございました!