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
2.2k
Other Decks in Programming
See All in Programming
コードレビューをしない選択 #でぃーぷらすトウキョウ
kajitack
3
890
手戻りゼロ? Spec Driven Developmentとは@KAG AI week
tmhirai
1
190
エラーログのマスキングの仕組みづくりに役立ったASTの話
kumoichi
0
180
AI Assistants for Your Angular Solutions
manfredsteyer
PRO
0
130
ベクトル検索のフィルタを用いた機械学習モデルとの統合 / python-meetup-fukuoka-06-vector-attr
monochromegane
2
390
API Platformを活用したPHPによる本格的なWeb API開発 / api-platform-book-intro
ttskch
1
130
最初からAWS CDKで技術検証してもいいんじゃない?
akihisaikeda
4
130
new(1.26) ← これすき / kamakura.go #8
utgwkk
0
2.2k
AI時代のシステム設計:ドメインモデルで変更しやすさを守る設計戦略
masuda220
PRO
5
890
Takumiから考えるSecurity_Maturity_Model.pdf
gessy0129
1
140
AI時代のソフトウェア開発でも「人が仕様を書く」から始めよう-医療IT現場での実践とこれから
koukimiura
0
140
AIコーディングの理想と現実 2026 | AI Coding: Expectations vs. Reality 2026
tomohisa
0
1.2k
Featured
See All Featured
New Earth Scene 8
popppiees
1
1.7k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
860
Heart Work Chapter 1 - Part 1
lfama
PRO
5
35k
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
150
Google's AI Overviews - The New Search
badams
0
930
Between Models and Reality
mayunak
2
230
Raft: Consensus for Rubyists
vanstee
141
7.4k
Rails Girls Zürich Keynote
gr2m
96
14k
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
1.9k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
55k
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
82
Why You Should Never Use an ORM
jnunemaker
PRO
61
9.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通るとやっぱり嬉しい - 次はもっと時間を取って難しいライブラリやイシューに挑戦したい 気付き・所感
ご清聴ありがとうございました!