Save 37% off PRO during our Black Friday Sale! »

Webサービス開発者としてスタートしてからOSS Contributionまでの道のり

Webサービス開発者としてスタートしてからOSS Contributionまでの道のり

Kaigi on Rails 2021での登壇資料です。
https://kaigionrails.org/2021/

※登壇時の動画のスライドでGitHub、Twitterアカウント名が入れ替わっていました。
そのため、この資料をアップ時に修正を行っています。

D1dd88d67a1b17b9d2ad981b75d205f3?s=128

M-Yamashita

October 23, 2021
Tweet

Transcript

  1. 2021-10-23 Kaigi on Rails 2021 WebαʔϏε։ൃऀͱͯ͠ελʔτ͔ͯ͠Β OSS Contribution·ͰͷಓͷΓ M-Yamashita

  2. ࿩͢͜ͱ Railsॳ৺ऀ͕Contributionʹߦ͖ண͘·Ͱ

  3. ࣗݾ঺հ

  4. ࣗݾ঺հ • ࢁԼ խਓ • όοΫΤϯυΤϯδχΞ@෱Ԭ • ࢓ࣄͷRailsྺ: 1೥൒ఔ౓ •

    GitHub: @M-Yamashita01 • Twitter: @M_Yamashii
  5. ΞδΣϯμ

  6. ΞδΣϯμ 1. Railsॳ৺ऀ͸ԿΛ͍͚ͯ͠͹͍͍ͷ͔ʁ 2. Contributionઌͷݟ͚ͭํ 3. ContributionͷนʹͲ͏ཱͪ޲͔͏͔ʁ

  7. 1. Railsॳ৺ऀ͸ԿΛ͍͚ͯ͠͹͍͍ͷ͔ʁ

  8. ࣍ʑͱ༙͖ग़Δٙ໰΍ෆ҆ • RailsνϡʔτϦΞϧ͸΍͕ͬͨ࣍ʹԿΛ͢Ε͹ʁ • ͲΜͳํ๏Ͱֶश͍ͯͬͨ͠Β͍͍͔෼͔Βͳ͍ • ࢓ࣄͰͷRailsྗΛ޲্͢Δʹ͸ʁ

  9. https://qiita.com/M-Yamashii/items/a5eab4d8076c06a2288f ࣗ෼ͳΓͷֶश๏ • ࢓ࣄͱฒߦͯ͠ϓϥΠϕʔτͰֶशํ๏Λࢼߦࡨޡ • Rails΍։ൃʹؔ͢Δւ֎هࣄͷӳ༁ɺݸਓ։ൃͳͲ https://github.com/M-Yamashita01/WeatherReport

  10. ஌ݟ͸޿͕͕ͬͨ ݸਓͰखΛ৳͹ͯ͠खʹೖΕΒΕΔൣғͷΈͩͬͨ

  11. Ͳ͏͢Ε͹ʁ

  12. ࢓ࣄͰͷRailsΞϓϦΛಡΈղ͖ Ξ΢τϓοτΛଟ͘ग़͢

  13. ͳͥ࢓ࣄͰͷRailsΞϓϦ͕ྑ͍ͷ͔ʁ • ݸਓΞϓϦͱൺֱ͠ίʔυ΍ϓϩδΣΫτͷن໛͕ܻҧ͍ • ઌਓͷํʑͷ஌ݟ͕٧·ͬͨίʔυ • طଘػೳΛಡΈղ͖ɺӨڹΛ࠷খݶʹͨ͠मਖ਼ʹ͢Δඞཁ͋Γ • ଞͷ։ൃऀʹΑΔϨϏϡʔ͔Β࢓ࣄ΍Railsͷ஌ݟΛಘΒΕΔ

  14. ʮΞ΢τϓοτΛଟ͘ग़͢ʯʹ͸ ͲΜͳ΋ͷ͕͋Δͷ͔ʁ

  15. Ξ΢τϓοτʹ΋͍Ζ͍Ζ͋Δ • ΞαΠϯ͞Εͨ՝୊ʹର͢ΔPull Request • τϥϒϧରԠͰͷղੳ • OSSͷ಺෦࣮૷ɺڍಈɺٙ໰ʹରͯ͠ίʔυϦʔσΟϯά͠هࣄͱͯ͠ग़͢ https://zenn.dev/m_yamashii/articles/6eeabce1199da5

  16. ࢓ࣄͰੵۃతʹखΛڍ͛ͯ ਓΑΓଟ͘৮ΓΞ΢τϓοτ͠Α͏

  17. 2. Contributionઌͷݟ͚ͭํ

  18. Railsྗͷ޲্ͱฒߦͰग़͖ͯͨ Contribution΁ͷڵຯ

  19. ແ਺ʹ͋ΔOSS͔Β Ͳ͏΍ͬͯContributionઌΛݟ͚ͭΔ͔ʁ

  20. • ࣾ಺ͰͷPull Requestڠྗ࡞੒ͷ ͓༠͍ • ࣗ࡞πʔϧ࡞੒࣌ʹ࢖༻ͨ͠ gemͷະ࣮૷ػೳͷൃݟ • ࣾ಺Ͱ࢖༻தͷgemͷίʔυ ϦʔσΟϯάͰൃݟͨ͠λΠϙ

    ࢲͷ࠷ॳͷग़ձ͍ํ https://github.com/octokit/octokit.rb/pull/1332 https://github.com/rubocop/rubocop-rspec/pull/1042
  21. ڞ௨͍ͯ͠Δͷ͸ʁ • ࣾ಺΍ݸਓͰ࢖͍ͬͯΔOSS • ࣮ࡍͷಈ࡞͕ظ଴ͨ͠ಈ࡞ͱҧ͏ • ίʔυϦʔσΟϯάʹΑΔൃݟ Contributionର৅

  22. Contribution͍ͨ͠OSS͸͋Δ͕ ظ଴௨Γͷಈ࡞Ͱίʔυ্ʹ໰୊͸ͳͦ͞͏ 
 Ͳ͏͢Ε͹͍͍ͷ͔ʁ

  23. ϦϙδτϦͷIssues͔Β୳͢

  24. Issues্Ͱ୳ࡧ • ௥Ճͯ͠΄͍͠ػೳ • ظ଴ͨ݁͠Ռͱ࣮ࡍͷಈ࡞͕ҟͳΔใࠂ • όά΍ϔϧϓͷϥϕϧ https://github.com/rubocop/rubocop-rspec/issues/1106

  25. ݱ৅ͷ࠶ݱͱղܾҊͷఏҊ • ࣗ෼ͷ؀ڥͰ࠶ݱ • Ͳ͏΍ͬͨΒղܾͰ͖Δ͔ݕ౼ • ղܾҊΛ࣮૷ ղܾ๏ͷΞΠσΞ΍࣮૷ҊΛIssueʹίϝϯτ

  26. ղܾҊΛఏҊ͢Δࡍͷ஫ҙ఺ ࢲͷ͘͠͡ΓΛ΋ͱʹ

  27. ղܾҊΛఏҊ͢Δࡍͷ஫ҙ఺ ࢲͷ͘͠͡Γ https://github.com/rubocop/rubocop-rspec/issues/1106 όάͷϥϕϧʂ
 Pull Request࡞Ζ͏ʂ
 ※IssueͰͷٞ࿦ະ࣮ࢪ

  28. ͜ͷIssue͸ͲΜͳ໰୊ͳͷ͔ʁ ɾɾɾ • RuboCop RSpecͷIssue • RSpec/FilePathͷCopͰ
 ಉ͡ΠϯσϯτͷdescribeΛ
 ݕ஌Ͱ͖ͳ͍

  29. ղܾҊΛఏҊ͢Δࡍͷ஫ҙ఺ ࢲͷ͘͠͡Γ https://github.com/rubocop/rubocop-rspec/pull/1129

  30. Real-world RSpecϓϩδΣΫτͰ֬ೝࡁΈ͔ʁ ͜ͷύλʔϯͷݕ஌͸͋ͳͨͷमਖ਼ͨ͠Copͷ໾ׂͰ͸ͳ͍ describeͷॻ͖ํ͸֤ϓϩδΣΫτͰҟͳΔͷͰ͸ͳ͍͔ʁ ղܾҊΛఏҊ͢Δࡍͷ஫ҙ఺ ࢲͷ͘͠͡Γ

  31. ղܾҊΛఏҊ͢Δࡍͷ஫ҙ఺ • Issueʹର͢ΔղܾҊΛ͍͖ͳΓPull RequestͰग़͞ͳ͍ • ·ͣ͸IssueͰٞ࿦ • ίϛολʔ͕Ͳ͏௚͍͔ͨ͠Λ֬ೝ͠Pull RequestΛग़͢ ࢲͷ͘͠͡Γ

  32. 3. ContributionͷนʹͲ͏ཱͪ޲͔͏͔ʁ

  33. ContributionΛ͍ͨ͠ؾ࣋ͪ͸͋Δ͕ ݟ͑ͳ͍น͕͋Δ

  34. Contributionͷน • ࣗ෼͕ग़͍͍ͯ͠ͷ͔ʁ • ͲΜͳॻ͖ํͰॻ͚͹͍͍ͷ͔ʁ • ӳޠͷน

  35. ࣗ෼͕ग़͍͍ͯ͠ͷ͔ʁ

  36. ContributionͷนʹͲ͏ཱͪ޲͔͏͔ʁ ࣗ෼͕ग़͍͍ͯ͠ͷ͔ʁ • ౴͑͸Yes • ͍ΖΜͳ։ൃऀͷڠྗ͕͋ͬͯͷOSS • ڠྗͷܗ͸Pull Request͚ͩͰ͸ͳ͘ɺIssueͰͷใࠂ΋͋Δ

  37. ͲΜͳॻ͖ํͰॻ͚͹͍͍ͷ͔ʁ

  38. • ϓϩδΣΫτʹΑͬͯContributionͷΨΠυϥΠϯ͕͋Δ • ͳ͍৔߹͸ଞͷPull Request΍Issueͷॻ͖ํΛࢀߟʹ • ԿΛ͍ͨ͠ͷ͔ɺ࣮ࡍͷڍಈͱظ଴ͨ݁͠Ռɺ࠶ݱखॱͷηοτΛఴ͑Δ ContributionͷนʹͲ͏ཱͪ޲͔͏͔ʁ ͲΜͳॻ͖ํͰॻ͚͹͍͍ͷ͔ʁ

  39. ॻ͘಺༰͸෼͔͕ͬͨ ӳޠ͕ۤख

  40. • ྑ͍୯ޠ΍จষΛ஌Βͳ͍ • ͲΜͳӳจΛฒ΂ͯॻ͍ͨΒ͍͍͔෼͔Βͳ͍ ContributionͷนʹͲ͏ཱͪ޲͔͏͔ʁ ӳޠͷน

  41. • ଞͷPull Request΍Issueͷ
 ॻ͖ํΛࢀߟʹ͢Δ • ຋༁πʔϧΛ࢖͍·͘Δ • ӳޠͷ্खԼखΑΓ΋
 ఻͍͑ͨ಺༰Λେࣄʹ ContributionͷนʹͲ͏ཱͪ޲͔͏͔ʁ

    ӳޠͷน https://github.com/octokit/octokit.rb/pull/1304 https://github.com/octokit/octokit.rb/pull/1332
  42. ࠷ޙʹ…
 ContributionͰ৺ʹཹΊ͓ͯ͘͜ͱ

  43. Contribution͢Δʹ͋ͨΓ • ίϛολʔͷߟ͑΍ϦϙδτϦ͝ͱͷํ਑͕͋Δ • ૬खͷߟ͑Λଚॏͯٞ͠࿦ • Issue΍Pull Request͕ඞͣड͚ೖΕΒΕΔͱ͸ݶΒͳ͍

  44. ContributionʹνϟϨϯδͯ͠ΈΑ͏ʂ

  45. ͋Γ͕ͱ͏͍͟͝·ͨ͠ʂ