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
2
320
OSSへの プルリクエスト作成の手引き
STORES.jp, Incの開発チーム月次レビュー会のLT資料です。
fuqda
August 03, 2020
Tweet
Share
More Decks by fuqda
See All by fuqda
Composition API時代の Pub/Subパターンでの状態管理
fuqda
4
3.8k
RubyでPrettierを使ってみた
fuqda
0
350
RSpecによるOpen API自動テスト
fuqda
3
1.1k
Rails Girls Tokyo 13th Sponsor LT by STORES
fuqda
0
200
黒歴史リポジトリを使ったリファクタリング勉強法のススメ
fuqda
1
1.1k
OSS初心者がつまづきながらOSSマナーを学んでいく話
fuqda
4
3.3k
Ruby2.7の新機能で簡易版Rubyインタプリタを実装してみる
fuqda
0
590
カンファレンスで技術的お土産を 増やすために出来ることを考えた
fuqda
2
540
Other Decks in Programming
See All in Programming
TransformerからMCPまで(現代AIを理解するための羅針盤)
mickey_kubo
7
6.1k
AI 駆動開発におけるコミュニティと AWS CDK の価値
konokenj
5
380
SUZURIの規約違反チェックにおけるクリエイタフィードバックの試⾏錯誤/Trial and Error in Creator Feedback for SUZURI's Terms of Service Violation Checks
ae14watanabe
1
140
Vueで学ぶデータ構造入門 リンクリストとキューでリアクティビティを捉える / Vue Data Structures: Linked Lists and Queues for Reactivity
konkarin
1
150
予防に勝る防御なし(2025年版) - 堅牢なコードを導く様々な設計のヒント / Growing Reliable Code PHP Conference Fukuoka 2025
twada
PRO
33
11k
マイベストのシンプルなデータ基盤の話 - Googleスイートとのつき合い方 / mybest-simple-data-architecture-google-nized
snhryt
0
140
Node-REDのノードの開発・活用事例とコミュニティとの関わり(Node-RED Con Nagoya 2025)
404background
0
130
例外処理を理解して、設計段階からエラーを見つけやすく、起こりにくく #phpconfuk
kajitack
12
5.7k
AI時代に必須!状況言語化スキル / ai-context-verbalization
minodriven
3
370
業務でAIを使いたい話
hnw
0
250
HTTPじゃ遅すぎる! SwitchBotを自作ハブで動かして学ぶBLE通信
occhi
0
230
なぜ強調表示できず ** が表示されるのか — Perlで始まったMarkdownの歴史と日本語文書における課題
kwahiro
4
1.4k
Featured
See All Featured
YesSQL, Process and Tooling at Scale
rocio
174
15k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1k
Being A Developer After 40
akosma
91
590k
Thoughts on Productivity
jonyablonski
73
4.9k
Done Done
chrislema
186
16k
The Language of Interfaces
destraynor
162
25k
The Cost Of JavaScript in 2023
addyosmani
55
9.2k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
34
2.3k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
11
920
Context Engineering - Making Every Token Count
addyosmani
9
370
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.3k
Statistics for Hackers
jakevdp
799
220k
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׆ಈָ͍͠Ͱ͢Α☺ ·ͩͷํ͜ͷػձʹ νϟϨϯδ ͯ͠Έ·ͤΜ͔ʁ
͝ਗ਼ௌ͋Γ͕ͱ͏ ͍͟͝·ͨ͠