Kaigi on Rails 2021での登壇資料です。 https://kaigionrails.org/2021/
※登壇時の動画のスライドでGitHub、Twitterアカウント名が入れ替わっていました。 そのため、この資料をアップ時に修正を行っています。
2021-10-23 Kaigi on Rails 2021WebαʔϏε։ൃऀͱͯ͠ελʔτ͔ͯ͠ΒOSS Contribution·ͰͷಓͷΓM-Yamashita
View Slide
͢͜ͱRailsॳ৺ऀ͕Contributionʹߦ͖ண͘·Ͱ
ࣗݾհ
ࣗݾհ• ࢁԼ խਓ• όοΫΤϯυΤϯδχΞ@Ԭ• ࣄͷRailsྺ: 1ఔ• GitHub: @M-Yamashita01• Twitter: @M_Yamashii
ΞδΣϯμ
ΞδΣϯμ1. Railsॳ৺ऀԿΛ͍͚͍͍ͯ͠ͷ͔ʁ2. Contributionઌͷݟ͚ͭํ3. ContributionͷนʹͲ͏ཱ͔ͪ͏͔ʁ
1. Railsॳ৺ऀԿΛ͍͚͍͍ͯ͠ͷ͔ʁ
࣍ʑͱ༙͖ग़Δٙෆ҆• RailsνϡʔτϦΞϧ͕ͬͨ࣍ʹԿΛ͢Εʁ• ͲΜͳํ๏Ͱֶश͍ͯͬͨ͠Β͍͍͔͔Βͳ͍• ࣄͰͷRailsྗΛ্͢Δʹʁ
https://qiita.com/M-Yamashii/items/a5eab4d8076c06a2288fࣗͳΓͷֶश๏• ࣄͱฒߦͯ͠ϓϥΠϕʔτͰֶशํ๏Λࢼߦࡨޡ• Rails։ൃʹؔ͢Δւ֎هࣄͷӳ༁ɺݸਓ։ൃͳͲhttps://github.com/M-Yamashita01/WeatherReport
ݟ͕͕ͬͨݸਓͰखΛ৳ͯ͠खʹೖΕΒΕΔൣғͷΈͩͬͨ
Ͳ͏͢Εʁ
ࣄͰͷRailsΞϓϦΛಡΈղ͖ΞτϓοτΛଟ͘ग़͢
ͳͥࣄͰͷRailsΞϓϦ͕ྑ͍ͷ͔ʁ• ݸਓΞϓϦͱൺֱ͠ίʔυϓϩδΣΫτͷن͕ܻҧ͍• ઌਓͷํʑͷݟ͕٧·ͬͨίʔυ• طଘػೳΛಡΈղ͖ɺӨڹΛ࠷খݶʹͨ͠मਖ਼ʹ͢Δඞཁ͋Γ• ଞͷ։ൃऀʹΑΔϨϏϡʔ͔ΒࣄRailsͷݟΛಘΒΕΔ
ʮΞτϓοτΛଟ͘ग़͢ʯʹͲΜͳͷ͕͋Δͷ͔ʁ
Ξτϓοτʹ͍Ζ͍Ζ͋Δ• ΞαΠϯ͞Εͨ՝ʹର͢ΔPull Request• τϥϒϧରԠͰͷղੳ• OSSͷ෦࣮ɺڍಈɺٙʹରͯ͠ίʔυϦʔσΟϯά͠هࣄͱͯ͠ग़͢https://zenn.dev/m_yamashii/articles/6eeabce1199da5
ࣄͰੵۃతʹखΛڍ͛ͯਓΑΓଟ͘৮ΓΞτϓοτ͠Α͏
2. Contributionઌͷݟ͚ͭํ
Railsྗͷ্ͱฒߦͰग़͖ͯͨContributionͷڵຯ
ແʹ͋ΔOSS͔ΒͲ͏ͬͯContributionઌΛݟ͚ͭΔ͔ʁ
• ࣾͰͷPull Requestڠྗ࡞ͷ͓༠͍• ࣗ࡞πʔϧ࡞࣌ʹ༻ͨ͠gemͷະ࣮ػೳͷൃݟ• ࣾͰ༻தͷgemͷίʔυϦʔσΟϯάͰൃݟͨ͠λΠϙࢲͷ࠷ॳͷग़ձ͍ํhttps://github.com/octokit/octokit.rb/pull/1332https://github.com/rubocop/rubocop-rspec/pull/1042
ڞ௨͍ͯ͠Δͷʁ• ࣾݸਓͰ͍ͬͯΔOSS• ࣮ࡍͷಈ࡞͕ظͨ͠ಈ࡞ͱҧ͏• ίʔυϦʔσΟϯάʹΑΔൃݟContributionର
Contribution͍ͨ͠OSS͋Δ͕ظ௨Γͷಈ࡞Ͱίʔυ্ʹͳͦ͞͏ Ͳ͏͢Ε͍͍ͷ͔ʁ
ϦϙδτϦͷIssues͔Β୳͢
Issues্Ͱ୳ࡧ• Ճͯ͠΄͍͠ػೳ• ظͨ݁͠Ռͱ࣮ࡍͷಈ࡞͕ҟͳΔใࠂ• όάϔϧϓͷϥϕϧhttps://github.com/rubocop/rubocop-rspec/issues/1106
ݱͷ࠶ݱͱղܾҊͷఏҊ• ࣗͷڥͰ࠶ݱ• Ͳ͏ͬͨΒղܾͰ͖Δ͔ݕ౼• ղܾҊΛ࣮ղܾ๏ͷΞΠσΞ࣮ҊΛIssueʹίϝϯτ
ղܾҊΛఏҊ͢Δࡍͷҙࢲͷ͘͠͡ΓΛͱʹ
ղܾҊΛఏҊ͢Δࡍͷҙࢲͷ͘͠͡Γhttps://github.com/rubocop/rubocop-rspec/issues/1106όάͷϥϕϧʂ Pull Request࡞Ζ͏ʂ ※IssueͰͷٞະ࣮ࢪ
͜ͷIssueͲΜͳͳͷ͔ʁɾɾɾ• RuboCop RSpecͷIssue• RSpec/FilePathͷCopͰ ಉ͡ΠϯσϯτͷdescribeΛ ݕͰ͖ͳ͍
ղܾҊΛఏҊ͢Δࡍͷҙࢲͷ͘͠͡Γhttps://github.com/rubocop/rubocop-rspec/pull/1129
Real-world RSpecϓϩδΣΫτͰ֬ೝࡁΈ͔ʁ͜ͷύλʔϯͷݕ͋ͳͨͷमਖ਼ͨ͠CopͷׂͰͳ͍describeͷॻ͖ํ֤ϓϩδΣΫτͰҟͳΔͷͰͳ͍͔ʁղܾҊΛఏҊ͢Δࡍͷҙࢲͷ͘͠͡Γ
ղܾҊΛఏҊ͢Δࡍͷҙ• Issueʹର͢ΔղܾҊΛ͍͖ͳΓPull RequestͰग़͞ͳ͍• ·ͣIssueͰٞ• ίϛολʔ͕Ͳ͏͍͔ͨ͠Λ֬ೝ͠Pull RequestΛग़͢ࢲͷ͘͠͡Γ
3. ContributionͷนʹͲ͏ཱ͔ͪ͏͔ʁ
ContributionΛ͍ͨ͠ؾ࣋ͪ͋Δ͕ݟ͑ͳ͍น͕͋Δ
Contributionͷน• ͕ࣗग़͍͍ͯ͠ͷ͔ʁ• ͲΜͳॻ͖ํͰॻ͚͍͍ͷ͔ʁ• ӳޠͷน
͕ࣗग़͍͍ͯ͠ͷ͔ʁ
ContributionͷนʹͲ͏ཱ͔ͪ͏͔ʁ͕ࣗग़͍͍ͯ͠ͷ͔ʁ• ͑Yes• ͍ΖΜͳ։ൃऀͷڠྗ͕͋ͬͯͷOSS• ڠྗͷܗPull Request͚ͩͰͳ͘ɺIssueͰͷใࠂ͋Δ
ͲΜͳॻ͖ํͰॻ͚͍͍ͷ͔ʁ
• ϓϩδΣΫτʹΑͬͯContributionͷΨΠυϥΠϯ͕͋Δ• ͳ͍߹ଞͷPull RequestIssueͷॻ͖ํΛࢀߟʹ• ԿΛ͍ͨ͠ͷ͔ɺ࣮ࡍͷڍಈͱظͨ݁͠Ռɺ࠶ݱखॱͷηοτΛఴ͑ΔContributionͷนʹͲ͏ཱ͔ͪ͏͔ʁͲΜͳॻ͖ํͰॻ͚͍͍ͷ͔ʁ
ॻ͘༰͔͕ͬͨӳޠ͕ۤख
• ྑ͍୯ޠจষΛΒͳ͍• ͲΜͳӳจΛฒͯॻ͍ͨΒ͍͍͔͔Βͳ͍ContributionͷนʹͲ͏ཱ͔ͪ͏͔ʁӳޠͷน
• ଞͷPull RequestIssueͷ ॻ͖ํΛࢀߟʹ͢Δ• ༁πʔϧΛ͍·͘Δ• ӳޠͷ্खԼखΑΓ ͍͑ͨ༰ΛେࣄʹContributionͷนʹͲ͏ཱ͔ͪ͏͔ʁӳޠͷนhttps://github.com/octokit/octokit.rb/pull/1304https://github.com/octokit/octokit.rb/pull/1332
࠷ޙʹ… ContributionͰ৺ʹཹΊ͓ͯ͘͜ͱ
Contribution͢Δʹ͋ͨΓ• ίϛολʔͷߟ͑ϦϙδτϦ͝ͱͷํ͕͋Δ• ૬खͷߟ͑Λଚॏͯٞ͠• IssuePull Request͕ඞͣड͚ೖΕΒΕΔͱݶΒͳ͍
ContributionʹνϟϨϯδͯ͠ΈΑ͏ʂ
͋Γ͕ͱ͏͍͟͝·ͨ͠ʂ