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
OSSへの プルリクエスト作成の手引き
Search
fuqda
August 03, 2020
Programming
360
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
OSSへの プルリクエスト作成の手引き
STORES.jp, Incの開発チーム月次レビュー会のLT資料です。
fuqda
August 03, 2020
More Decks by fuqda
See All by fuqda
Composition API時代の Pub/Subパターンでの状態管理
fuqda
4
4.1k
RubyでPrettierを使ってみた
fuqda
0
420
RSpecによるOpen API自動テスト
fuqda
3
1.2k
Rails Girls Tokyo 13th Sponsor LT by STORES
fuqda
0
260
黒歴史リポジトリを使ったリファクタリング勉強法のススメ
fuqda
1
1.2k
OSS初心者がつまづきながらOSSマナーを学んでいく話
fuqda
4
3.5k
Ruby2.7の新機能で簡易版Rubyインタプリタを実装してみる
fuqda
0
660
カンファレンスで技術的お土産を 増やすために出来ることを考えた
fuqda
2
610
Other Decks in Programming
See All in Programming
GDG Korea Android: 2026 I/O Extended ~ What's new in Android development tools
pluu
0
190
【SRE NEXT 2026 Lunch Session】一人目専任SREの立ち上げを加速する ― AIと進めたオンボーディングで2分を0.04秒にした話
pkshadeck
PRO
0
3.3k
コーディングルールの鮮度を保ちたい for SRE NEXT 2026 / keep-fresh-go-internal-conventions-sre-next-2026
handlename
0
150
Laravelで学ぶ Webアプリケーションチューニング入門/web_application_tuning_101
hanhan1978
4
1.4k
人間の目はかわらない、だからJPEGは30年もつ
yuzneri
12
17k
OpenSpecのproposalにbrainstormingを持たせてみた
tigertora7571
1
140
変わらないものが、変わるものを決める — 意図駆動開発 × イベントソーシング × イミュータブル | What Doesn't Change Decides What Can — IDD × Event Sourcing × Immutability
tomohisa
0
690
霧の中の代数的エフェクト
funnyycat
1
440
Haskell/Servantを通してWebミドルウェアを捉え直す
pizzacat83
1
620
torikago - Ruby::Boxで照らすモジュラモノリスの実行境界
se4weed
1
250
Lean は証明の正しさを確認するためだけのツールって思ってませんか?
inoueasei
1
120
その節約、円になってますか?
isamumumu
0
470
Featured
See All Featured
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.4k
The SEO identity crisis: Don't let AI make you average
varn
0
520
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
400
KATA
mclloyd
PRO
35
15k
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
1
6k
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
1
2.1k
HTML-Aware ERB: The Path to Reactive Rendering @ RubyCon 2026, Rimini, Italy
marcoroth
3
370
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
360
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
Producing Creativity
orderedlist
PRO
348
40k
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
580
Git: the NoSQL Database
bkeepers
PRO
432
67k
Transcript
044ͷ ϓϧϦΫΤετ࡞ͷ खҾ͖ 4503&4%FWϨϏϡʔձ-5ίʔφʔ !GVREB
About me • 201711݄ʹגࣜձࣾϒϥέοτ (ݱSTORES.jp, Inc) ʹJoin • ϓϩμΫτόοΫΤϯυBϥΠϯνʔϜॴଐ •
20182݄ʙݱࡏ Tama.rbͱ͍͏ҬRubyίϛϡχςΟͬͯ·͢
Today’s thema OSSͷ ϓϧϦΫΤετ࡞ͷ खҾ͖
Introduction (ͦΜͳʹଟ͘ͳ͍͚ΕͲ) ͡ͿΜOSSʹϓϧϦΫΤετΛૹΔΑ͏ʹͳͬͯɺ Ϛʔδ·ͰͷྲྀΕ͕΅ΜΓΘ͔ΔΑ͏ʹͳΓ·ͨ͠ ͰɺωοτΛݟͯମܥతʹྲྀΕΛॻ͍ͯΔهࣄͬͯ΄ͱΜ Ͳݟ͔͚ͳ͍… ͱ͍͏Θ͚Ͱɺ͜Ε͔Β͍ͬͯͧ͘ͱ͍͏ਓͷͨΊʹ खҾ͖Λ·ͱΊͯΈΑ͏ͱࢥ͍·͢
͓அΓ ※ ͋͘·Ͱݸਓతܦݧʹج͍ͮͨݟղͳͷͰ ɹͬͱྑ͍ํ๏͕͋Δ͔͠Ε·ͤΜ ɹ(ͦͷ࣌ͬͦ͜Γڭ͍͑ͯͩ͘͞) ※ ࠓճϓϧϦΫΤετΛૹΔ͜ͱΛ͢ͷͰ ɹissueΛཱͯΔ݅ʹ৮Ε·ͤΜ
Today’s Agenda ɾϦϙδτϦͷ୳͠ํ 1. ۀͰ͍ͬͯΔϥΠϒϥϦͷίʔυڍಈͷؾʹͳΔ෦Λ֬ೝͯ͠ΈΔ 2. GitHub help wanted Ͱ୳ͯ͠ΈΔ
ɾϓϧϦΫΤετ࡞(લޙ)ͷྲྀΕ 1. bug(վળϙΠϯτ)Λݟ͚ͭΔ 2. ରϦϙδτϦͷFork 3. ରϦϙδτϦͷίϯτϦϏϡʔγϣϯΨΠυ(ଘࡏ͢Δ߹)ʹΛ௨͢ 4. ίʔυɾυΩϡϝϯτͷमਖ਼ 5. ϓϧϦΫΤετΛ࡞ 6. ϨϏϡʔΛड͚Δ(मਖ਼͋Εదٓ) 7. ϚʔδΛͭ ɾ࣮ɿաڈͷ͘͠͡ΓμΠδΣετ ※ ͕࣌ؒ͋Ε͠·͢
Today’s Agenda ɾϦϙδτϦͷ୳͠ํ 1. ۀͰ͍ͬͯΔϥΠϒϥϦͷίʔυڍಈͷؾʹͳΔ෦Λ֬ೝͯ͠ΈΔ 2. GitHub help wanted Ͱ୳ͯ͠ΈΔ
ɾϓϧϦΫΤετ࡞(લޙ)ͷྲྀΕ 1. bug(վળϙΠϯτ)Λݟ͚ͭΔ 2. ରϦϙδτϦͷFork 3. ରϦϙδτϦͷίϯτϦϏϡʔγϣϯΨΠυ(ଘࡏ͢Δ߹)ʹΛ௨͢ 4. ίʔυɾυΩϡϝϯτͷमਖ਼ 5. ϓϧϦΫΤετΛ࡞ 6. ϨϏϡʔΛड͚Δ(मਖ਼͋Εదٓ) 7. ϚʔδΛͭ ɾ࣮ɿաڈͷ͘͠͡ΓμΠδΣετ ※ ͕࣌ؒ͋Ε͠·͢
1. ۀͰ͍ͬͯΔϥΠϒϥϦͷ ίʔυڍಈͷؾʹͳΔ෦Λ֬ೝͯ͠ΈΔ ɾϥΠϒϥϦʓʓͷσϑΥϧτͷڍಈ͕ ɹͬͱ͜͏ͩͬͨΒͳ͊…ͬͯͳ͍ʁ ɾࣄͰͬͯΔOSSͷίʔυΛಡΜͰΈΔ (OSSͷಡॻձͱ͔ͨ͠ͱ͖νϟϯε͔) ※ ͪͳΈʹɺ΅͘ͷ߹RailsͷίʔυΛಡΜͰ͍ͯɺ ɹͨ·ͨ·ͤͦ͏ͳͱ͜Ζݟ͚ͭͨ͜ͱ͕͋Γ·͢
2. GitHub help wanted Ͱ୳ͯ͠ΈΔ GitHub help wantedͱ͍͏αΠτͰࠔͬͯΔ OSSΛݴޠผʹ୳͢͜ͱ͕ग़དྷΔͷͰܰΊͳ ͷΛݟ͚ͭΔʹ͍͍͔͠Ε·ͤΜ
Today’s Agenda ɾϦϙδτϦͷ୳͠ํ 1. ۀͰ͍ͬͯΔϥΠϒϥϦͷίʔυڍಈͷؾʹͳΔ෦Λ֬ೝͯ͠ΈΔ 2. GitHub help wanted Ͱ୳ͯ͠ΈΔ
ɾϓϧϦΫΤετ࡞(લޙ)ͷྲྀΕ 1. bug(վળϙΠϯτ)Λݟ͚ͭΔ 2. ରϦϙδτϦͷFork 3. ରϦϙδτϦͷίϯτϦϏϡʔγϣϯΨΠυ(ଘࡏ͢Δ߹)ʹΛ௨͢ 4. ίʔυɾυΩϡϝϯτͷमਖ਼ 5. ϓϧϦΫΤετΛ࡞ 6. ϨϏϡʔΛड͚Δ(मਖ਼͋Εదٓ) 7. ϚʔδΛͭ ɾ࣮ɿաڈͷ͘͠͡ΓμΠδΣετ ※ ͕࣌ؒ͋Ε͠·͢
Today’s Agenda ɾϦϙδτϦͷ୳͠ํ 1. ۀͰ͍ͬͯΔϥΠϒϥϦͷίʔυڍಈͷؾʹͳΔ෦Λ֬ೝͯ͠ΈΔ 2. GitHub help wanted Ͱ୳ͯ͠ΈΔ
ɾϓϧϦΫΤετ࡞(લޙ)ͷྲྀΕ 1. bug(վળϙΠϯτ)Λݟ͚ͭΔ 2. ରϦϙδτϦͷFork 3. ରϦϙδτϦͷίϯτϦϏϡʔγϣϯΨΠυ(ଘࡏ͢Δ߹)ʹΛ௨͢ 4. ίʔυɾυΩϡϝϯτͷमਖ਼ 5. ϓϧϦΫΤετΛ࡞ 6. ϨϏϡʔΛड͚Δ(मਖ਼͋Εదٓ) 7. ϚʔδΛͭ ɾ࣮ɿաڈͷ͘͠͡ΓμΠδΣετ ※ ͕࣌ؒ͋Ε͠·͢
1. bug(վળϙΠϯτ)Λݟ͚ͭΔ ex1) σϑΥϧτͷڍಈͷҧײ ʓʓίϚϯυͰੜ͞ΕΔϑΝΠϧɺ σϑΥϧτͰ˚˚͕ແޮʹͳͬͯΔ͚Ͳɺ ຖճ༗ޮʹॻ͖͑ΔͷΊΜͲ͍͘͞ͳ͊… ແޮͰخ͍͠ύλʔϯͳ͘ͳ͍ʁ ex2) υΩϡϝϯτͷमਖ਼
͋Ε!?υΩϡϝϯτͱ࣮ࡍͷίʔυͷڍಈҧ͘ͳ͍ʁ...
2. ରϦϙδτϦͷFork step1. ରϦϙδτϦΛFork͢Δ step2. ࣗͷखݩʹForkͨ͠ϦϙδτϦΛ ϩʔΧϧʹclone͢Δ
2. ରϦϙδτϦͷFork step3. ຊମΛupstream,ࣗͷϦϙδτϦΛ originͱͯ͠ొ ɹɹɹ※ OSSͷ׳शͰݩͷϦϙδτϦΛupstreamɺ ɹɹɹɹɹࣗͷखݩΛoriginͱͯ͠ొ͢Δͱࣗฉ͍ͨͷͰ ɹɹɹɹɹͦ͏ͯ͠·͕͢͜ͷลΓ͓ΈͰ
3. ରϦϙδτϦͷίϯτϦϏϡʔγϣϯΨΠυ (ଘࡏ͢Δ߹)ʹΛ௨͢ ɹ ɹɾRailsͷΑ͏ͳେنͳOSSʹΨΠυ͕ ଘࡏ͢Δ͜ͱ͕ଟ͍ͷͰͦͪΒʹΛ௨͠·͠ΐ͏ ex1) https://guides.rubyonrails.org/contributing_to_ruby_on_rails.html ɹɾແ͍߹ϦϙδτϦͷաڈͷissue ɹɹϓϧϦΫΤετΛݟͯΈΔͱ
ͦͷϦϙδτϦͷงғؾ͕͔ΔͷͰ͓͢͢ΊͰ͢ ɹɹ(Ͳ͏͍͏ϓϧϦΫΤετͩͱϚʔδ͞ΕΔ͔ݟΔͷେࣄ )
4. ίʔυɾυΩϡϝϯτͷमਖ਼ step1. ίʔυͷ֘ՕॴΛमਖ਼ (ͨΓલ͚ͩͲίϛοτϝοηʔδӳޠͰ͢Α) step2. खݩͰςετ͕ύε͢Δ͜ͱΛ֬ೝ ✅ ɹɹɹ
4. ίʔυɾυΩϡϝϯτͷमਖ਼ step3. remoteͱͯ͠ొ͞Ε͍ͯΔϦϙδτϦΛ֬ೝ ɹɹɹ step4. origin(ࣗͷखݩͷ࡞ۀϦϙδτϦ)ϓογϡ͢Δ ɹɹɹ ϓογϡ͕ྃ͢Δͱ ҎԼͷϘλϯ͔Βࣗͷ࡞ۀϦϙδτϦ͔Β
ɹɹɹ GUI্ͰForkݩͷϦϙδτϦʹϓϧϦΫΤετΛ࡞ग़དྷΔΑ͏ʹͳΓ·͢
5. ϓϧϦΫΤετΛ࡞ ForkݩͷϦϙδτϦʹϓϧϦΫΤετΛ࡞͠·͢ɹɹɹ ϓϧϦΫΤετʹॻ͍ͨํ͕͍͍ͱࢥ͏͜ͱ ɹ˞ ProblemɿͲ͏͍͏͕͋ͬͨͷʁ ɹ˞ SolutionɿͲ͏ͨ͠ͷʁ جຊతʹյΕΔमਖ਼Ϛʔδͨ͘͠ͳ͍ͣͳͷͰɺ Before
/ After ͰͲΜͳخ͍͜͠ͱ͕͋Δͷ͔ɺ ͦΕͰͳ͍͜ͱΛ֬ೝͨ͠Αʂͱ͍͏ΤϏσϯεΛৄࡉʹॻ͘ͷ͕͓͢͢ΊͰ͢ ϝϯςφʔ͞Μͷؾ࣋ͪʹͳͬͯ֬ೝͷίετΛݮΒ͠·͠ΐ͏❗ (ٯʹͪΌΜͱॻ͔ͳ͍ͱӳޠͰΊͬͪΌ࣭͞ΕͯࠔΔͷͰɺ΅͘ҰܸͰཹΊΔͨΊʹ ͳΔ͘ৄ͘͠ॻ͘Α͏ʹ͍ͯ͠·͢)
6. ϨϏϡʔΛड͚Δ(मਖ਼͋Εదٓ) ӳޠͰٞʹಥೖ͢Δͱେมݫ͍͠Ͱ͕͢ɺ େ͖ͳमਖ਼(ഁյతͳมߋ)Λͨ͠Γ͢Δͱ ආ͚ΒΕͳ͍͜ͱଟ͍ͷͰ͍͖ͬͯ·͠ΐ͏
7. ϚʔδΛͭ Ұ௨Γमਖ਼͕ٞऴΘͬͨΒϚʔδ͞ΕΔ͜ͱΛ ئ͍ͭͭͪ·͠ΐ͏
Today’s Agenda ɾϦϙδτϦͷ୳͠ํ 1. ۀͰ͍ͬͯΔϥΠϒϥϦͷίʔυڍಈͷؾʹͳΔ෦Λ֬ೝͯ͠ΈΔ 2. GitHub help wanted Ͱ୳ͯ͠ΈΔ
ɾϓϧϦΫΤετ࡞(લޙ)ͷྲྀΕ 1. bug(վળϙΠϯτ)Λݟ͚ͭΔ 2. ରϦϙδτϦͷFork 3. ରϦϙδτϦͷίϯτϦϏϡʔγϣϯΨΠυ(ଘࡏ͢Δ߹)ʹΛ௨͢ 4. ίʔυɾυΩϡϝϯτͷमਖ਼ 5. ϓϧϦΫΤετΛ࡞ 6. ϨϏϡʔΛड͚Δ(मਖ਼͋Εదٓ) 7. ϚʔδΛͭ ɾ࣮ɿաڈͷ͘͠͡ΓμΠδΣετ ※ ͕࣌ؒ͋Ε͠·͢
Today’s Agenda ɾϦϙδτϦͷ୳͠ํ 1. ۀͰ͍ͬͯΔϥΠϒϥϦͷίʔυڍಈͷؾʹͳΔ෦Λ֬ೝͯ͠ΈΔ 2. GitHub help wanted Ͱ୳ͯ͠ΈΔ
ɾϓϧϦΫΤετ࡞(લޙ)ͷྲྀΕ 1. bug(վળϙΠϯτ)Λݟ͚ͭΔ 2. ରϦϙδτϦͷFork 3. ରϦϙδτϦͷίϯτϦϏϡʔγϣϯΨΠυ(ଘࡏ͢Δ߹)ʹΛ௨͢ 4. ίʔυɾυΩϡϝϯτͷमਖ਼ 5. ϓϧϦΫΤετΛ࡞ 6. ϨϏϡʔΛड͚Δ(मਖ਼͋Εదٓ) 7. ϚʔδΛͭ ɾ࣮ɿաڈͷ͘͠͡ΓμΠδΣετ ※ ͕࣌ؒ͋Ε͠·͢
࣮ɿաڈͷ͘͠͡ΓμΠδΣετ ݸਓతʹΓ͕͔ͪͳͱࢥ͏͘͠͡ΓΛڞ༗ աڈissueಡ·ͳ͍ͰϓϧϦΫ࡞ͬͨΒ߈Ϋϩʔζ͞ Εͨ݅ ഁյతมߋͨ͠ΒόνϘίʹٞʹͳͬͯݫ͔ͬͨ͠ ݅ ӳޠͲ͏͠Α͏…ͰΜͰमਖ਼ऴΘͬͯΔͷʹिؒϓ ϧϦΫग़ͤͳ͔ͬͨ݅
աڈissueಡ·ͳ͍ͰϓϧϦΫ࡞ͬͨΒ ߈Ϋϩʔζ͞Εͨ݅ ɾաڈ͢Ͱʹٞ͞Εͯ٫Լ͞ΕͯΔमਖ਼Λͯ͠͏ͨ ͦͷ݅ʹ͍ͭͯ ͏աڈʹٞͯ͠Δ͔Β Ϋϩʔζ͢Δͥ
ڭ܇ ɾ͡ͿΜ͕ࢥ͍͘Α͏ͳ͜ͱ ɹଞਓ͕͏͢Ͱʹߟ͍͑ͯΔ͜ͱ͕ଟ͍ աڈissue / PR Λݟͯ͡ͿΜͱಉ͡ҙࣝ ͷٞɾमਖ਼ͰΫϩʔζ͞Εͨͷ͕ͳ͍͔ ɹཁ֬ೝ (·͔ͨΑͬͯͳͬͪΌ͏ͷͰ…)
ɾେ͖ͳOSSͩͱGitHubͷissueͰͳ͘JIRAͰ νέοτཧͯ͠Δ߹͋ΔͷͰGitHubҎ֎ దٓνΣοΫ͔ͯ͠ΒϓϧϦΫΤετΛ͛Α͏ ✅
ഁյతมߋͨ͠ΒόνϘίʹ ٞʹͳͬͯݫ͔ͬͨ݅͠ ɾ͕࣌ؒΓͳ͍ͷͰৄࡉׂѪ͠·͢ σϑΥϧτͷڍಈ͕ มΘΔͷݫ͍͠ͳ͊ʜ
ڭ܇ ɾ͜Ε͔ΒೖΕΔมߋطଘϢʔβʔͷ ෆརӹʹͳΒͳ͍͔ʁߟ͑Δ มߋىҼͰσϑΥϧτͷڍಈ͕มΘΔ߹ Φϓγϣϯͷ༗ແͰطଘͷڍಈΛҡ࣋ग़དྷΔ ɹΑ͏ʹ͢ΔͳͲҰఆͷྀ͕ඞཁ⚠ ※ ิ ɹഁյతͳมߋϥΠϒϥϦͷϝδϟʔόʔδϣϯΞοϓϦϦʔεΛ ཁٻ͢Δ͜ͱʹͳΔ
ϚΠφʔόʔδϣϯϦϦʔεʹࠞͥͮΒ͍ = Ϛʔδͮ͠Β͍
ӳޠͲ͏͠Α͏…ͰΜͰमਖ਼ ऴΘͬͯΔͷʹिؒϓϧϦΫग़ͤͳ͔ͬͨ݅ มͳӳޠͩͱʮwwwʯͬͯࢥΘΕͳ͍͔ ΊͪΌΊͪΌ৺ͩͬͨ… ԿݴͬͯΔΜͩίΠπXXX
৺ͳ͍
݁ߏɺ ͍ӳޠͷਓ ଟ͍ͧ ͋͘·ͰݸਓతͳମײͰ͢
ڭ܇ ɾجຊతʹίʔυͷdiffʹΛ௨ͣ͢ ͳͷͰɺӳޠ͕ᘳͰͳͯ͘ ͱ͍͑ɺࣄͱಉ͡Α͏ʹ࣮ͷഎܠ ͳʹΛ͠Α͏ͱࢥͬͯΔ͜ͱΛ͑Δྗ େࣄ આ໌͕͍͠߹ྫͱͯ͠ίʔυαϯϓϧΛ descriptionʹࡌͤΔͱΘΓ͍͢ͷͰ ͓͢͢ΊͰ͢
·ͱΊ
ɾϓϧϦΫΤετͷωλ ɹීஈͷۀͰݟ͚ͭΒΕΔ ɾϓϧϦΫΤετ࡞͔ΒϚʔδͷྲྀΕ ɹجຊతʹ௨ৗͷ(JU)VC'MPXͱಉ͡ ɾमਖ਼༰ʹৗʹݱࡏͷϢʔβʔͱ ɹϝϯςφʔ͞ΜͷྀΛఴ͑ͯ ɾϝϯςφʔ͞Μ͕Ϛʔδ͢Δͷʹඞཁͳใ͕ ɹἧͬͯΔ͔Λߟ͑ͯ࡞Ε͍ӳޠͰΘΔ
ϓϧϦΫΤετʹͳΔͷͰ৺͠ͳͯ͘େৎ
044׆ಈָ͍͠Ͱ͢Α☺ ·ͩͷํ͜ͷػձʹ νϟϨϯδ ͯ͠Έ·ͤΜ͔ʁ
͝ਗ਼ௌ͋Γ͕ͱ͏ ͍͟͝·ͨ͠