OSSへの貢献に関して社内の勉強会で発表しました。 OSSへの貢献に関心のある方の参考にしてください。
࣮ફ OSS͜ͱ͡ΊMasashi Hirano (@shisama)
View Slide
ฏ ণ࢜ / Masashi Hirano@shisama_shisamaNode.js Core Collaborator
λʔήοτ• OSSߩݙʹؔ৺͕ͳ͍ਓ• OSSߩݙʹؔ৺͋Δ͚ͲɺͲ͏͢Ε͍͍͔Θ͔Βͳ͍ਓ
͜ͷLTͷΰʔϧ• OSSߩݙʹগ͠Ͱؔ৺ΛͬͯΒ͏• OSSߩݙͷ۩ମతΠϝʔδΛͬͯΒ͏্هΛୡʹࢲͷܦݧ͕ʹཱͯخ͍͠
OSSߩݙԿ͔Β࢝ΊΕ͍͍ͷ…?
ߩݙ͢ΔOSSͷϧʔϧΛΖ͏• ҎԼ͕͋Εඞͣಡ͏• ߦಈنൣ (Code of Conduct)ϋϥεϝϯτ͠ͳ͍͜ͱͳͲͨΓલͷ͜ͱ͕ॻ͔Ε͍ͯΔ͜ͱ͕ଟ͍• ίϯτϦϏϡʔγϣϯΨΠυ (CONTRIBUTING.md)ίϛοτϝοηʔδͷॻ͖ํʮίϛοτલςετΛ࣮ߦ͠·͠ΐ͏ʯͱ͔Δ͜ͱ͕ॻ͔Ε͍ͯΔ
issue• όάใࠂ• ݪҼΘ͔Βͳͯ͘όά͔ͱࢥͬͨΒissueొ• ػೳཁ• ࡞ऀɾϝϯςφϢʔβʔͷΛ͍ͬͯ·͢
υΩϡϝϯτͷमਖ਼• typo• misspell (github.com/client9/misspell) Λ͑ίϚϯυҰൃͰݟ͔ͭΔ• ףࢺɻ’the the ‘Ͱgrep͢ΔɻGrammarlyͳͲจ๏νΣοΧʔΛ͏• දݱ• ෆ໌ྎͳจষͷॻ͖͠• ੍͕࣌લޙͰ߹Θͳ͍จষͷमਖ਼
υΩϡϝϯτͷमਖ਼• αϯϓϧίʔυ• υΩϡϝϯτREADMEʹ͍ํ͕ࡌ͍ͬͯͳ͍ͱ͖αϯϓϧίʔυΛՃ• αϯϓϧίʔυςετίʔυ͔Βഈआ• मਖ਼લʹissueͰ࣭ͯ͠Έͯྑ͍
υΩϡϝϯτͷ༁https://github.com/gatsbyjs/gatsby-ja/issues/1
ςετίʔυ• ΧόϨοδΛݟͯςετΛՃ͢Δ• ৽ػೳΧόϨοδ͕͍• ෆ҆ఆͳςετ(flaky test)Λमਖ਼͢ΔʢқߴΊʣ• ςετίʔυ͔ΒֶͿ͜ͱଟ͍https://coverage.nodejs.org/
ґଘϥΠϒϥϦͷΞοϓσʔτ• ϥΠϒϥϦΛΞοϓσʔτͯ͠ςετΛ௨͢• ϝδϟʔόʔδϣϯͷΞοϓσʔτ͍͠• ݹ͍ϥΠϒϥϦΛ࠷ۙͷϥΠϒϥϦʹஔ͖͑• e.g. TSLint -> ESLintɺrequest -> axios
OSS׳Ε͖ͯͨͷͰίʔυΛ৮Γ͍ͨΜ͕ͩ…
όάमਖ਼• ఆ֎ͷͷόϦσʔγϣϯՃ• null͕Ҿʹ͘Δ͜ͱ͕ఆ͞Ε͍ͯͳ͍͜ͱΑ͋͘Δ• ϥΠϒϥϦʹύονΛͯΔલʹຊՈʹPull RequestΛૹΖ͏• ϥΠϒϥϦʹಠࣗύονΛͯΔӡ༻ͩͱϥΠϒϥϦͷΞοϓσʔτ࣌ʹύονͷमਖ਼͕ඞཁʹͳΔ• ηΩϡϦςΟύον• ੬ऑੑใࠂͳͲͷݪҼ͕OSSʹ͋ͬͨ߹issueΛొ͢Δ
ػೳՃ• ͜Ε͕͋ͬͨΒศརͱࢥͬͨػೳissueͰఏҊͯ͠ΈΔ• Ϣʔεέʔεࠔ͍ͬͯΔ͜ͱΛΘ͔Γ͘͢ॻ͘• ଞͷOSSݴޠʹ͋ΔػೳΛఏҊͯ͠ΈΔ• ෦ͰͷΈ͍ͬͯͨػೳΛެ։͢Δ
෦ͰͷΈ͍ͬͯͨػೳΛެ։͢Δ෦Ͱ͔͠ΘΕ͍ͯͳ͔ͬͨςετ༻ͷศརؔΛAPIͱͯ͠ެ։͍ͯ͠Δhttps://github.com/nodejs/node/issues/32912
ϦϑΝΫλϦϯά• ݴޠϥΠϒϥϦͷݹ͍ػೳΛॻ͖͑Δ• JSͷ߹ɺasync/awaitΞϩʔؔ, let/constͳͲ• Deprecated ͳػೳΛॻ͖͑Δ• ܕΛ͚Δ• JavaScript -> TypeScript ॻ͖͑ʢࣄલʹ߹ҙͳͲඞཁʣ• any ΛͪΌΜͱͨ͠ܕʹॻ͖͑Δ• ܕ͕ແ͍ϥΠϒϥϦd.tsΛ࡞ͬͨΓDefinitelyTyped (@types/xxx) ʹܕΛొ
OSS׆ಈͷোนʹͳΓ͍͢ͱ͜Ζ
ӳޠ• Google ༁ɺDeepLͰશવ௨͡Δ• ૬खӳޠݍͰͳ͍͜ͱ͋ΔͷͰɺؾʹ͠ͳͯ͘ྑ͍• μϒϧΫΥʔςʔγϣϯͰғͬͯݕࡧͯ݅͠ΛݟΔ
OSSʹׂ͕࣌ؒ͘ͳ͍https://cybozu-oss-policy.readthedocs.io/ja/latest/index.htmlαΠϘζۀதʹOSS׆ಈ͢Δ͜ͱ͕ೝΊΒΕ͍ͯΔhttps://cybozu-oss-policy.readthedocs.io/ja/latest/index.html
ͲΜͳOSSʹߩݙ͢Ε͍͍͔Θ͔Βͳ͍FEνʔϜOSSͷωλΛஷΊ͍ͯͨΓɺίϯτϦϏϡʔγϣϯΛཧ͍ͯ͠ΔͷͰ͍ͯΈ͍ͯͩ͘͞ʂ૬ஊঝΓ·͢ʂʂ
·ͱΊ• OSSͷߩݙํ๏༷ʑ• αΠϘζOSS׆ಈ͢Δͷʹྑ͍ڥ• ؆୯ͳͷ͔Β࢝Ί·͠ΐ͏ʂ
Thanks.@shisama_shisama