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
140
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.6k
Other Decks in Programming
See All in Programming
Hypervel - A Coroutine Framework for Laravel Artisans
albertcht
1
110
AIエージェントはこう育てる - GitHub Copilot Agentとチームの共進化サイクル
koboriakira
0
450
「Cursor/Devin全社導入の理想と現実」のその後
saitoryc
0
270
NPOでのDevinの活用
codeforeveryone
0
420
Rubyでやりたい駆動開発 / Ruby driven development
chobishiba
1
460
Java on Azure で LangGraph!
kohei3110
0
170
Bytecode Manipulation 으로 생산성 높이기
bigstark
2
380
ASP.NETアプリケーションのモダナイズ インフラ編
tomokusaba
1
420
童醫院敏捷轉型的實踐經驗
cclai999
0
200
第9回 情シス転職ミートアップ 株式会社IVRy(アイブリー)の紹介
ivry_presentationmaterials
1
240
「ElixirでIoT!!」のこれまでとこれから
takasehideki
0
370
アンドパッドの Go 勉強会「 gopher 会」とその内容の紹介
andpad
0
270
Featured
See All Featured
Music & Morning Musume
bryan
46
6.6k
Balancing Empowerment & Direction
lara
1
380
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
229
22k
Building Adaptive Systems
keathley
43
2.6k
Making Projects Easy
brettharned
116
6.3k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
281
13k
Practical Orchestrator
shlominoach
188
11k
Optimising Largest Contentful Paint
csswizardry
37
3.3k
Bash Introduction
62gerente
614
210k
Speed Design
sergeychernyshev
32
1k
Embracing the Ebb and Flow
colly
86
4.7k
StorybookのUI Testing Handbookを読んだ
zakiyama
30
5.8k
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通るとやっぱり嬉しい - 次はもっと時間を取って難しいライブラリやイシューに挑戦したい 気付き・所感
ご清聴ありがとうございました!