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

InnerSourceのすすめ / InnerSource

B071a1ec264ea9d6acbb1f9163885dbf?s=47 Yuichi Tanaka
February 15, 2019

InnerSourceのすすめ / InnerSource

企業内のソフトウェア開発にOSSのベストプラクティスを取り入れるやり方

B071a1ec264ea9d6acbb1f9163885dbf?s=128

Yuichi Tanaka

February 15, 2019
Tweet

Transcript

  1. OSS։ൃελΠϧΛ
 औΓೖΕ ͯޮ཰తͳ։ൃΛʂ 15-D-4 #devsumiD

  2. Who am I? Yuichi Tanaka Solutions Engineer a yuichielectric yuichielectric

  3. None
  4. SHARE YOUR FUN! GitHubʹೖͬͯײͨ͡تͼ

  5. 2018/08ʹGitHubʹೖࣾ

  6. URLͷؒҧ͍Λൃݟ

  7. README.mdʹ͜Μͳهࡌ͕ ʢ͋ͳͨͷग़൪Ͱ͢ɺ͋ͳͨͷίϯτϦϏϡʔτ͕ඞཁͰ͢ʂʣ

  8. Pull Request

  9. None
  10. ϨϏϡΞʔ͕ࣗಈͰઃఆ͞ΕΔ

  11. Continuous Integration • ϑΝΠϧ໊ͷνΣοΫ • υΩϡϝϯτͷελΠϧͷνΣοΫ

  12. bot͕໨࣍Λࣗಈੜ੒

  13. ϨϏϡʔOKʂ

  14. ࣾ಺ͰOSSΛ࣮ફ • ߩݙͰ͖Δتͼ • ॏෳͨ͠ແବͳ࡞ۀ͕ͳ͍ • ߴ͍ੜ࢈ੑ

  15. InnerSource

  16. اۀͷιϑτ΢ΣΞ։ൃ๊͕͑Δ໰୊ • ιʔείʔυ΍υΩϡϝϯτ͕؆୯ʹݕࡧͰ͖ͳ͍ • ૊৫಺ͷ஌ࣝڞ༗͕͏·͘Ͱ͖͍ͯͳ͍ • ࣾ಺ͷιϑτ΢ΣΞͷ࠶ར༻ੑ͕௿͍ • νʔϜؒͷίϛϡχέʔγϣϯίετ͕ߴ͍

  17. None
  18. None
  19. None
  20. None
  21. InnerSourceͱ͸Φʔϓϯιʔεͷ
 ϕετϓϥΫςΟεΛاۀ಺ͷιϑτ΢ΣΞ ։ൃʹద༻͢ΔऔΓ૊Έͷ͜ͱ

  22. InnerSourceͷΰʔϧ • ίʔυͷ࠶ར༻ • νʔϜΛލ͍ͩίϥϘϨʔγϣϯ • ඼࣭ͷߴ͍ιϑτ΢ΣΞΛΑΓߴ଎ʹ։ൃ

  23. InnerSourceΛ͍͔ʹ
 ࣮ફ͢Δ͔ʁ

  24. πʔϧ͸จԽΛม͑Δ৮ഔ • จԽΛม͑Δͷ͸ͱͯ΋େม • ͔͠͠ɺπʔϧΛಋೖ͢Δ͜ͱͰ
 ͦΕΛ࢖͏ਓͷߦಈ͕มΘΔ • ͦΕ͕จԽ͕มΘΔ͖͔͚ͬͱͳΔ

  25. 1. ৘ใΛڞ༗͢Δج൫Λ౷Ұ͢Δ • ·ͣ͸ଞͷਓ͕ݟΔ͜ͱ͕Ͱ͖ΔΑ͏ʹ͠ͳ͍ͱ
 ࢝·Βͳ͍ɻ • ӾཡͰ͖ΔਓΛ੍ݶ͓ͯ͘͠໌֬ͳཧ༝͕ͳ͍ݶΓ͸
 ύϒϦοΫʹ͓ͯ͘͠ɻ • ݕࡧͰ͖ΔΑ͏ʹͳΔͷ΋ඇৗʹେࣄɻ

  26. ͋ΒΏΔίϯςϯπʹURL ʮ͜͏͍͏ػೳΛ͋ͳͨͷϓϩδΣΫτʹ
 ௥Ճ͍ͨ͠ΜͰ͚͢Ͳʯ ʮͦ͏Ͱ͔ͨ͠ɻɻʯ ʮ͋ʔɺͦΕ͸ڈ೥ݕ౼ͯ͠΍Βͳ͍
 ͜ͱʹͨ͠ΜͰ͢ʯ

  27. ͋ΒΏΔίϯςϯπʹURL ʮ͜͏͍͏ػೳΛ͋ͳͨͷϓϩδΣΫτʹ
 ௥Ճ͍ͨ͠ΜͰ͚͢Ͳʯ ʮͳΔ΄Ͳɺͦ͏͍͏ཧ༝ͩͬͨΜͰ͢Ͷɻ ౰࣌͸બ୒ࢶʹͳ͔ͬͨʓʓͱ͍͏΍Γํ΋
 ͋Δͱࢥ͏ͷͰ͕͢Ͳ͏Ͱ͠ΐ͏ʁʯ ʮ͋ʔɺͦΕ͸ڈ೥ݕ౼ͯ͠΍Βͳ͍
 ͜ͱʹͨ͠Μͩɻͦͷ࣌ͷٞ࿦͸ͩ͜͜Α
 https://github.com/hogehoge/fuga/issues/2139ʯ ɾɾɾ

  28. 2. ίϯτϦϏϡʔτͷ࢓ํΛ໌֬ʹ • ίϯτϦϏϡʔτ΁ͷෑډΛԼ͛Δ • νʔϜ֎͔ΒͷίϯτϦϏϡʔτΛ
 ׻ܴ͍ͯ͠Δ͜ͱΛ໌ه • ίϯτϦϏϡʔτͷ۩ମతͳखॱΛ໌ه https://github.com/asciidwango/js-primer

  29. CONTRIBUTING.md • όάϨϙʔτͷొ࿥ͷ࢓ํ • ػೳཁ๬ͷొ࿥ͷ࢓ํ • Pull RequestͷૹΓํ • Pull

    RequestΛड͚ೖΕΔ৚݅ • ϨϏϡʔϓϩηε
  30. https://github.com/asciidwango/js-primer/blob/master/CONTRIBUTING.md

  31. Issue/PR Template

  32. 3. ϫʔΫϑϩʔͷࣗಈԽ • มߋʹ಺༰ʹͬͯϨϏϡΞʔΛࣗಈͰઃఆ • PR͕ϚʔδՄೳͱͳΔ৚݅ͷ໌֬Խ • υΩϡϝϯταΠτͷࣗಈੜ੒ • ͦͷଞͷϫʔΫϑϩʔࣗಈԽ

  33. CODEOWNERS • ϑΝΠϧͷछྨ΍σΟϨΫτϦຖʹΦʔφʔΛࢦఆՄೳ • JavaScriptͷमਖ਼͸ϑϩϯτΤϯυνʔϜ • όοΫΤϯυͷमਖ਼͸όοΫΤϯυνʔϜ • CSS΍ը૾ͷमਖ਼͸σβΠϯνʔϜ

  34. # Φʔφʔ͸ݸਓͰ΋νʔϜͰ΋ྑ͍ * @global-owner1 @global-owner2 *.js @frontend-team *.go @backend-team *.css

    @design-team /build/logs/ @infra-team docs/* @mr-document
  35. CI + Protected Branch

  36. GitHub Pages

  37. None
  38. GitHub Actions

  39. GitHub Actions • GitHub্ͷଟ͘ͷΠϕϯτͰτϦΨʔՄೳ • CI/CDతͳ࢖͍ํ͚ͩͰͳ͘ɺࡉ͔ͳϫʔΫϑϩʔ
 ࣗಈԽʹ΋༗ޮ • ྫ •

    ϚʔδࡁΈͷϒϥϯνΛ࡟আ͢Δ • ϚʔΫμ΢ϯͷ໨࣍Λੜ੒͢Δ • WIPͳPRΛؒҧͬͯϚʔδ͠ͳ͍Α͏ʹ͢Δ
  40. InnerSourceΛଅਐ͢Δ࢓૊Έ 1. ৘ใΛڞ༗͢Δج൫Λ౷Ұ͢Δ 2. ίϯτϦϏϡʔτͷ࢓ํΛ໌֬ʹ͢Δ 3. ϫʔΫϑϩʔΛࣗಈԽ͢Δ

  41. None
  42. org/devGroupA org/devGroupB org/devGroupC

  43. org/devGroupA org/devGroupB org/devGroupC org/javascript-devs org/security org/SQL

  44. PayPal͕ૺ۰ͨ͠໰୊ • ଞνʔϜ͔ΒͷPRͷϨϏϡʔΛ୭͕΍Δ͔ʁ • ϘϥϯςΟΞͩͱɺ୭΋΍Βͳ͍ • ࣗ෼ͷϓϩδΣΫτͷλεΫΛ༏ઌ͕ͪ͠

  45. Trusted Committers • ଞνʔϜ͔ΒͷΠγϡʔͷରԠ • ଞνʔϜ͔ΒͷϓϧϦΫΤετͷϨϏϡʔ • υΩϡϝϯτͷ੔උ • ྑ͍ϓϧϦΫΤετΛ࡞ΔͨΊͷखॱ

    • ػೳཁ๬ɾόάϨϙʔτΛ౤͛Δखॱ • ׬ྃͷఆٛ • Ϗϧυϓϩηεͷ໌จԽ • ίʔσΟϯάن໿ͷ੔උ • ϫʔΫϑϩʔࣗಈԽ
  46. Trusted Committers • ՝୊ • ίʔσΟϯά͢Δ͕࣌ؒ͋·Γແ͍ͷͰෆධ • ϓϩδΣΫτͷ͋ΒΏΔྖҬͷϨϏϡʔ͕དྷͯେม • ղܾࡦ

    • εϓϦϯτຖͷ౰൪੍ • ౰൪දΛυΩϡϝϯτԽ • ֤ϝϯόʔ͕ಘҙͳྖҬ΋υΩϡϝϯτԽ
  47. ·ͱΊ • ૊৫಺ͰOSSతʹιϑτ΢ΣΞ։ൃΛ͢Δ͜ͱ͸
 ߴ͍ੜ࢈ੑɺߴ඼࣭ͳιϑτ΢ΣΞʹܨ͕Δ • GitHubΛ͏·͘࢖ͬͯ૊৫มֵͷ͖͔͚ͬʹ͠Α͏ • ৘ใΛڞ༗͢Δج൫Λ౷Ұ͢Δ • ίϯτϦϏϡʔτͷ࢓ํΛ໌֬ʹ͢Δ

    • ϫʔΫϑϩʔΛࣗಈԽ͢Δ
  48. ࢀߟࢿྉ

  49. InnerSource https://www.oreilly.com/programming/free/getting-started-with-innersource.csp

  50. InnerSource http://paypal.github.io/InnerSourceCommons/checklist/

  51. InnerSource Commons http://paypal.github.io/InnerSourceCommons/

  52. Open Source Guides https://opensource.guide/

  53. ೔ຊޠ༁ϓϩδΣΫτਐߦத https://github.com/github/opensource.guide/pull/702

  54. CONTRIBUTING.md • CONTRIBUTING-template • https://github.com/nayafia/contributing-template/blob/master/ CONTRIBUTING-template.md • MozillaʹΑΔCONTRIBUTING.mdͷॻ͖ํ • https://mozillascience.github.io/working-open-workshop/contributing/

    • ೔ຊޠͷCONTRIBUTING.mdͷྫ • https://github.com/asciidwango/js-primer/blob/master/CONTRIBUTING.md
  55. 8 https://github.co.jp 1