実践 OSSことはじめ / First Step for OSS Contribution

実践 OSSことはじめ / First Step for OSS Contribution

OSSへの貢献に関して社内の勉強会で発表しました。
OSSへの貢献に関心のある方の参考にしてください。

5cf7e9533a457726cd51232e06c1da9a?s=128

Masashi Hirano

April 23, 2020
Tweet

Transcript

  1. ࣮ફ OSS͜ͱ͸͡Ί Masashi Hirano (@shisama)

  2. ฏ໺ ণ࢜ / Masashi Hirano @shisama_ shisama Node.js Core Collaborator

  3. λʔήοτ • OSSߩݙʹؔ৺͕ͳ͍ਓ • OSSߩݙʹؔ৺͸͋Δ͚ͲɺͲ͏͢Ε͹͍͍͔Θ͔Βͳ͍ਓ

  4. ͜ͷLTͷΰʔϧ • OSSߩݙʹগ͠Ͱ΋ؔ৺Λ΋ͬͯ΋Β͏ • OSSߩݙͷ۩ମతΠϝʔδΛ΋ͬͯ΋Β͏ ্هΛୡ੒ʹࢲͷܦݧ͕໾ʹཱͯ͹خ͍͠

  5. OSSߩݙ͸Կ͔Β࢝ΊΕ͹͍͍ͷ…?

  6. ߩݙ͢ΔOSSͷϧʔϧΛ஌Ζ͏ • ҎԼ͕͋Ε͹ඞͣಡ΋͏ • ߦಈنൣ (Code of Conduct) ϋϥεϝϯτ͸͠ͳ͍͜ͱͳͲ౰ͨΓલͷ͜ͱ͕ॻ͔Ε͍ͯΔ͜ͱ͕ଟ͍ •

    ίϯτϦϏϡʔγϣϯΨΠυ (CONTRIBUTING.md) ίϛοτϝοηʔδͷॻ͖ํ΍ʮίϛοτલ͸ςετΛ࣮ߦ͠·͠ΐ͏ʯͱ͔΍ Δ͜ͱ͕ॻ͔Ε͍ͯΔ
  7. issue • όάใࠂ • ݪҼ͸Θ͔Βͳͯ͘΋όά͔΋ͱࢥͬͨΒissueొ࿥ • ػೳཁ๬ • ࡞ऀɾϝϯςφ͸Ϣʔβʔͷ੠Λ଴͍ͬͯ·͢

  8. υΩϡϝϯτͷमਖ਼ • typo • misspell (github.com/client9/misspell) Λ࢖͑͹ίϚϯυҰൃͰݟ͔ͭΔ • ףࢺɻ’the the

    ‘Ͱgrep͢ΔɻGrammarlyͳͲจ๏νΣοΧʔΛ࢖͏ • දݱ • ෆ໌ྎͳจষͷॻ͖௚͠ • ੍͕࣌લޙͰ߹Θͳ͍จষͷमਖ਼
  9. υΩϡϝϯτͷमਖ਼ • αϯϓϧίʔυ • υΩϡϝϯτ΍READMEʹ࢖͍ํ͕ࡌ͍ͬͯͳ͍ͱ͖͸αϯ ϓϧίʔυΛ௥Ճ • αϯϓϧίʔυ͸ςετίʔυ͔Βഈआ • मਖ਼લʹissueͰ࣭໰ͯ͠Έͯ΋ྑ͍

  10. υΩϡϝϯτͷ຋༁ https://github.com/gatsbyjs/gatsby-ja/issues/1

  11. ςετίʔυ • ΧόϨοδΛݟͯςετΛ௥Ճ͢Δ • ৽ػೳ͸ΧόϨοδ͕௿͍ • ෆ҆ఆͳςετ(flaky test)Λमਖ਼͢Δʢ೉қ౓ߴΊʣ • ςετίʔυ͔ΒֶͿ͜ͱ͸ଟ͍

    https://coverage.nodejs.org/
  12. ґଘϥΠϒϥϦͷΞοϓσʔτ • ϥΠϒϥϦΛΞοϓσʔτͯ͠ςετΛ௨͢ • ϝδϟʔόʔδϣϯͷΞοϓσʔτ͸೉͍͠ • ݹ͍ϥΠϒϥϦΛ࠷ۙͷϥΠϒϥϦʹஔ͖׵͑ • e.g. TSLint

    -> ESLintɺrequest -> axios
  13. OSS׳Ε͖ͯͨͷͰίʔυΛ৮Γ͍ͨΜ͕ͩ…

  14. όάमਖ਼ • ૝ఆ֎ͷ஋ͷόϦσʔγϣϯ௥Ճ • null͕Ҿ਺ʹ͘Δ͜ͱ͕૝ఆ͞Ε͍ͯͳ͍͜ͱ͸Α͋͘Δ • ϥΠϒϥϦʹύονΛ౰ͯΔલʹຊՈʹPull RequestΛૹΖ͏ • ϥΠϒϥϦʹಠࣗύονΛ౰ͯΔӡ༻ͩͱϥΠϒϥϦͷΞοϓσʔτ࣌ʹύονͷमਖ਼

    ͕ඞཁʹͳΔ • ηΩϡϦςΟύον • ੬ऑੑใࠂͳͲͷݪҼ͕OSSʹ͋ͬͨ৔߹͸issueΛొ࿥͢Δ
  15. ػೳ௥Ճ • ͜Ε͕͋ͬͨΒศརͱࢥͬͨػೳ͸issueͰఏҊͯ͠ΈΔ • Ϣʔεέʔε΍ࠔ͍ͬͯΔ͜ͱΛΘ͔Γ΍͘͢ॻ͘ • ଞͷOSS΍ݴޠʹ͋ΔػೳΛఏҊͯ͠ΈΔ • ಺෦ͰͷΈ࢖͍ͬͯͨػೳΛެ։͢Δ

  16. ಺෦ͰͷΈ࢖͍ͬͯͨػೳΛެ։͢Δ ಺෦Ͱ͔͠࢖ΘΕ͍ͯͳ͔ͬͨ ςετ༻ͷศརؔ਺Λ APIͱͯ͠ެ։͍ͯ͠Δ https://github.com/nodejs/node/issues/32912

  17. ϦϑΝΫλϦϯά • ݴޠ΍ϥΠϒϥϦͷݹ͍ػೳΛॻ͖׵͑Δ • JSͷ৔߹ɺasync/await΍Ξϩʔؔ਺, let/constͳͲ • Deprecated ͳػೳΛॻ͖׵͑Δ •

    ܕΛ෇͚Δ • JavaScript -> TypeScript ॻ͖׵͑ʢࣄલʹ߹ҙͳͲ͸ඞཁʣ • any ΛͪΌΜͱͨ͠ܕʹॻ͖׵͑Δ • ܕ͕ແ͍ϥΠϒϥϦ͸d.tsΛ࡞ͬͨΓDefinitelyTyped (@types/xxx) ʹܕΛొ࿥
  18. OSS׆ಈͷোนʹͳΓ΍͍͢ͱ͜Ζ

  19. ӳޠ • Google ຋༁ɺDeepLͰશવ௨͡Δ • ૬ख΋ӳޠݍͰ͸ͳ͍͜ͱ΋͋ΔͷͰɺؾʹ͠ͳͯ͘ྑ͍ • μϒϧΫΥʔςʔγϣϯͰғͬͯݕࡧͯ݅͠਺ΛݟΔ

  20. OSSʹׂ͕࣌ؒ͘ͳ͍ https://cybozu-oss-policy.readthedocs.io/ja/latest/index.html αΠϘ΢ζ͸ۀ຿தʹOSS׆ಈ͢Δ͜ͱ͕ೝΊΒΕ͍ͯΔ https://cybozu-oss-policy.readthedocs.io/ja/latest/index.html

  21. ͲΜͳOSSʹߩݙ͢Ε͹͍͍͔Θ͔Βͳ͍ FEνʔϜ͸OSSͷωλΛஷΊ͍ͯͨΓɺ ίϯτϦϏϡʔγϣϯΛ؅ཧ͍ͯ͠ΔͷͰ೷͍ͯΈ͍ͯͩ͘͞ʂ૬ஊ΋ঝΓ·͢ʂʂ

  22. ·ͱΊ • OSS΁ͷߩݙํ๏͸༷ʑ • αΠϘ΢ζ͸OSS׆ಈ͢Δͷʹྑ͍؀ڥ • ؆୯ͳ΋ͷ͔Β࢝Ί·͠ΐ͏ʂ

  23. Thanks. @shisama_ shisama