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
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Kenji Furukawa
May 10, 2022
Programming
160
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
20220510_LT大会_OSSコントリビュート
Kenji Furukawa
May 10, 2022
More Decks by Kenji Furukawa
See All by Kenji Furukawa
20230518_AfterRubyKaigi_LT
frkawa
0
2.6k
Other Decks in Programming
See All in Programming
変わらないものが、変わるものを決める — 意図駆動開発 × イベントソーシング × イミュータブル | What Doesn't Change Decides What Can — IDD × Event Sourcing × Immutability
tomohisa
0
1.3k
数百円から始めるRuby電子工作
tarosay
0
140
仕様駆動開発へのトライを機に チームに適合する手法を模索し続けている話
freee
PRO
0
450
ITヒヤリハットを整理してみた ~ライフサイクルと原因から考える再発防止策~
koukimiura
1
140
VibeCodingからAgenticWorkflowへ
starfish719
0
310
「人を評価する AI」の設計と実装
ryoyanara
0
180
『コードを書く以外の』エンジニアリング〜課金基盤移行プロジェクト推進のためのTips4選
yuriko1211
0
590
torikago - Ruby::Boxで照らすモジュラモノリスの実行境界
se4weed
1
350
FDEが実現するAI駆動経営の現在地
gonta
2
270
「寝てても仕事が進む」Claude Codeで組む第二の脳
tomoyafujita2016
0
310
ビデオ通話が繋がる0.2秒で何が起きているのか
supurazako
2
180
Go言語とトイモデルで学ぶTransformerの気持ち / fukuokago23-transformer
monochromegane
0
160
Featured
See All Featured
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
660
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
Music & Morning Musume
bryan
47
7.3k
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
290
The Art of Programming - Codeland 2020
erikaheidi
57
14k
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
1
6k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
49
10k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.7k
Claude Code のすすめ
schroneko
67
230k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
240
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
470
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通るとやっぱり嬉しい - 次はもっと時間を取って難しいライブラリやイシューに挑戦したい 気付き・所感
ご清聴ありがとうございました!