Upgrade to Pro — share decks privately, control downloads, hide ads and more …

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

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

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

Masashi Hirano

April 23, 2020
Tweet

More Decks by Masashi Hirano

Other Decks in Programming

Transcript

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  6. ߩݙ͢ΔOSSͷϧʔϧΛ஌Ζ͏
    • ҎԼ͕͋Ε͹ඞͣಡ΋͏
    • ߦಈنൣ (Code of Conduct)
    ϋϥεϝϯτ͸͠ͳ͍͜ͱͳͲ౰ͨΓલͷ͜ͱ͕ॻ͔Ε͍ͯΔ͜ͱ͕ଟ͍
    • ίϯτϦϏϡʔγϣϯΨΠυ (CONTRIBUTING.md)
    ίϛοτϝοηʔδͷॻ͖ํ΍ʮίϛοτલ͸ςετΛ࣮ߦ͠·͠ΐ͏ʯͱ͔΍
    Δ͜ͱ͕ॻ͔Ε͍ͯΔ

    View Slide

  7. issue
    • όάใࠂ
    • ݪҼ͸Θ͔Βͳͯ͘΋όά͔΋ͱࢥͬͨΒissueొ࿥
    • ػೳཁ๬
    • ࡞ऀɾϝϯςφ͸Ϣʔβʔͷ੠Λ଴͍ͬͯ·͢

    View Slide

  8. υΩϡϝϯτͷमਖ਼
    • typo
    • misspell (github.com/client9/misspell) Λ࢖͑͹ίϚϯυҰൃͰݟ͔ͭΔ
    • ףࢺɻ’the the ‘Ͱgrep͢ΔɻGrammarlyͳͲจ๏νΣοΧʔΛ࢖͏
    • දݱ
    • ෆ໌ྎͳจষͷॻ͖௚͠
    • ੍͕࣌લޙͰ߹Θͳ͍จষͷमਖ਼

    View Slide

  9. υΩϡϝϯτͷमਖ਼
    • αϯϓϧίʔυ
    • υΩϡϝϯτ΍READMEʹ࢖͍ํ͕ࡌ͍ͬͯͳ͍ͱ͖͸αϯ
    ϓϧίʔυΛ௥Ճ
    • αϯϓϧίʔυ͸ςετίʔυ͔Βഈआ
    • मਖ਼લʹissueͰ࣭໰ͯ͠Έͯ΋ྑ͍

    View Slide

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

    View Slide

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

    View Slide

  12. ґଘϥΠϒϥϦͷΞοϓσʔτ
    • ϥΠϒϥϦΛΞοϓσʔτͯ͠ςετΛ௨͢
    • ϝδϟʔόʔδϣϯͷΞοϓσʔτ͸೉͍͠
    • ݹ͍ϥΠϒϥϦΛ࠷ۙͷϥΠϒϥϦʹஔ͖׵͑
    • e.g. TSLint -> ESLintɺrequest -> axios

    View Slide

  13. OSS׳Ε͖ͯͨͷͰίʔυΛ৮Γ͍ͨΜ͕ͩ…

    View Slide

  14. όάमਖ਼
    • ૝ఆ֎ͷ஋ͷόϦσʔγϣϯ௥Ճ
    • null͕Ҿ਺ʹ͘Δ͜ͱ͕૝ఆ͞Ε͍ͯͳ͍͜ͱ͸Α͋͘Δ
    • ϥΠϒϥϦʹύονΛ౰ͯΔલʹຊՈʹPull RequestΛૹΖ͏
    • ϥΠϒϥϦʹಠࣗύονΛ౰ͯΔӡ༻ͩͱϥΠϒϥϦͷΞοϓσʔτ࣌ʹύονͷमਖ਼
    ͕ඞཁʹͳΔ
    • ηΩϡϦςΟύον
    • ੬ऑੑใࠂͳͲͷݪҼ͕OSSʹ͋ͬͨ৔߹͸issueΛొ࿥͢Δ

    View Slide

  15. ػೳ௥Ճ
    • ͜Ε͕͋ͬͨΒศརͱࢥͬͨػೳ͸issueͰఏҊͯ͠ΈΔ
    • Ϣʔεέʔε΍ࠔ͍ͬͯΔ͜ͱΛΘ͔Γ΍͘͢ॻ͘
    • ଞͷOSS΍ݴޠʹ͋ΔػೳΛఏҊͯ͠ΈΔ
    • ಺෦ͰͷΈ࢖͍ͬͯͨػೳΛެ։͢Δ

    View Slide

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

    View Slide

  17. ϦϑΝΫλϦϯά
    • ݴޠ΍ϥΠϒϥϦͷݹ͍ػೳΛॻ͖׵͑Δ
    • JSͷ৔߹ɺasync/await΍Ξϩʔؔ਺, let/constͳͲ
    • Deprecated ͳػೳΛॻ͖׵͑Δ
    • ܕΛ෇͚Δ
    • JavaScript -> TypeScript ॻ͖׵͑ʢࣄલʹ߹ҙͳͲ͸ඞཁʣ
    • any ΛͪΌΜͱͨ͠ܕʹॻ͖׵͑Δ
    • ܕ͕ແ͍ϥΠϒϥϦ͸d.tsΛ࡞ͬͨΓDefinitelyTyped (@types/xxx) ʹܕΛొ࿥

    View Slide

  18. OSS׆ಈͷোนʹͳΓ΍͍͢ͱ͜Ζ

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  23. Thanks.
    @shisama_
    shisama

    View Slide