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

わたしのOSS活動

38bee248082f6071230de65e9d74a944?s=47 kazupon
April 20, 2022

 わたしのOSS活動

38bee248082f6071230de65e9d74a944?s=128

kazupon

April 20, 2022
Tweet

More Decks by kazupon

Other Decks in Technology

Transcript

  1. Θͨ͠ͷ OSS ׆ಈ 2022.04.20 iCARE Dev Meetup #32 OSS ͱͷ޲͖߹͍ํ

    @kazupon
  2. PLAID, inc. Vue.js ίΞνʔϜϝϯόʔ Vue.js ೔ຊϢʔβʔάϧʔϓΦʔΨφΠβʔ ύʔτλΠϜ OSS ։ൃऀ Vue

    I18n & Intlify ͷ࡞ऀ @kazu_pon kazupon kazupon
  3. ΞδΣϯμ

  4. ࠓ೔࿩͢͜ͱ • Vue.jsίΞνʔϜϝϯόʔͱͯ͠ͷOSS׆ಈ • ίϛϡχςΟӡӦऀͱͯ͠ͷOSS׆ಈ • OSS։ൃऀͱͯ͠ͷOSS׆ಈ • ۀ຿ͰͷOSS׆ಈ •

    OSSʹର͢Δ޲͖߹͍ํ
  5. Vue.js ίΞνʔϜϝϯόʔͱͯ͠ͷ OSS׆ಈ

  6. Vue.js • ࡞ऀ: Evan You • The Progressive JavaScript Framework

    • ओʹ Web & UI ૚ʹಛԽͨ͠ ϑϨʔϜϫʔΫ • 2013೥ݸਓϓϩδΣΫτͱ ͯ͠։࢝͠ɺͦͷޙࠓʹࢸΔ
  7. Vue.js • ݱࡏͰ͸༷ʑͳΤ ίγεςϜ͕ଘࡏ • ίϛϡχςΟ΋ੈ քن໛Ͱଘࡏ͠ɺ ఆظతʹΧϯϑΝ Ϩϯε΋։࠵͞Ε ͍ͯΔ

  8. • Core Team Members • Community Partners • Core Team

    Emeriti νʔϜߏ੒ 50໊+ͷϝϯόʔ͕ؔΘΔ OSS ϓϩδΣΫτ https://vuejs.org/about/team.html
  9. • Vue.js ͸׬શݸਓओಋ & ϑϧλΠϜOSSϓϩ δΣΫτ • ׆ಈࢿۚ͸εϙϯαʔ ϕʔε •

    Patreon • GitHub Sponsors • Open Collective Not اۀϕʔεͳ OSSϓϩδΣΫτ
  10. • ςοΫϦʔυ & CTO ͱͯ͠ಇ͍͍ͯͨલ৬࣌୅ ʹɺRails ͷ্Ͱಈ͍ͯͨ jQuery ΛϞμϯԽ͢Δͷ ʹ

    Vue.js Λಋೖͨ͠ͷ͕͖͔͚ͬ • ॳظͷࠒ͸ɺຊ౰ʹΤίγεςϜ͕ Vue ຊମ͔͠ ͳ͔ͬͨ • ඞཁʹԠͯ͡ɺࣗ෼Ͱ i18n ϥΠϒϥϦ΍ϑΥʔϜ όϦσʔγϣϯϥΠϒϥϦΛ࣮૷ ίΞνʔϜϝϯόʔʹͳΔഎܠ
  11. • ࣗ෼͕࣮૷ͨ͠ϑΥʔϜόϦσʔγϣϯΛউखʹ Vue.js organaization ʹ vue-validator ͱ͍͏ repo ʹ PR

    ΛૹΓ͚ͭͨΒɺ࠾୒͞Εͯ͠·ͬͨ ίΞνʔϜϝϯόʔʹͳΔഎܠ
  12. • ͦͷޙɺެࣜυΩϡϝϯτͷ೔ຊޠ຋༁Λ༗ࢤͱҰ ॹʹ׆ಈ͍ͯ͘͠͏ͪʹɺEvan ࢯͷϑϧλΠϜʹ ൐͍ɺͦͷޙɺVue.js νʔϜ͕ൃ଍ͨ͠ • Evan ࢯ͔Β invitation

    ͕ಧ͖ɺδϣΠϯ͍ͯͨ͠ ίΞνʔϜϝϯόʔʹͳΔഎܠ
  13. ίΞνʔϜͷ໾ׂ • GitHub Issues τϦΞʔδ • GitHub Pull Request ͷϨϏϡʔ

    • ެࣜπʔϧ/ϥΠϒϥϦͷ։ൃɾϝϯςφϯε • ίϛϡχςΟͷαϙʔτ • υΩϡϝϯτͷαϙʔτ • ଞͷίΞνʔϜϝϯόͷαϙʔτ
  14. έʔε: υΩϡϝϯτͷαϙʔτ

  15. • ݱࡏ͸ɺओʹެࣜ೔ຊޠυΩϡϝϯτͷ຋༁ʹ ϑΥʔΧεͯ͠׆ಈ͍ͯ͠Δ ެࣜυΩϡϝϯτͷ຋༁

  16. • Vue.js ͷ֦େʹ൐͍ɺެࣜυΩϡϝϯτ෼ྔ๲େͳ ͨͨΊɺ຋༁ϓϩδΣΫτͱͯ͠ɺνʔϜମ੍Ͱ೔ຊ ͷίϛϡχςΟͷօ͞Μͱ͍ͬ͠ΐʹ຋༁͍ͯ͠Δ • Vue v3 υΩϡϝϯτͷ຋༁ϓϩδΣΫτνʔϜମ੍ •

    ϝΠϯϝϯςφ: kazupon • αϒϝϯςφ: kiaking͞Μ • ຋༁Ϧʔμʔ: jay-es͞Μɺnaokie͞Μ ೔ຊޠ຋ମ੍
  17. • Vue.js ͷެࣜυΩϡϝϯ τ͸ɺॳظόʔδϣϯϦ Ϧʔεޙ͔Β຋༁͍ͯ͠ Δ • աڈόʔδϣϯv0.12ʙ v2 (v3

    preόʔδϣϯͷ υΩϡϝϯτ΋) ·Ͱͷ ೔ຊޠ຋༁ެࣜυΩϡϝ ϯτ͸Ҿ͖ଓ͖ϝϯςΛ ܧଓ͍ͯ͠Δ աڈ຋༁υΩϡϝϯτͷϝϯς
  18. • ຋༁ΨΠυͷઃஔ • ຋༁λεΫͷఆٛ • ຋༁ঢ়گͷՄࢹԽ • ຋༁ΏΒ͗Λ๷͙πʔϧͷಋೖ • υΩϡϝϯτͷ࠷৽಺༰௥ैπʔϧͷಋೖ

    ຋༁؀ڥͷ੔උ
  19. ຋༁ΨΠυΛઃஔ https://github.com/vuejs-translations/docs-ja/blob/main/.github/CONTRIBUTING.md

  20. ຋༁λεΫͷఆٛ • ๲େͳ຋༁υΩϡϝϯτྔͳͷͰɺ຋༁ߩݙ͠΍͢ ͍Α͏ʹཻ౓Λ issue ͱͯ͠ఆٛ 1 markdown (1ϖʔδ) =

    1 issue
  21. ຋༁ঢ়گͷՄࢹԽ • ຋༁ঢ়گ΋೺Ѳ͠΍͍͢Α͏ɺ·ͱΊ issue Λ༻ҙ https://github.com/vuejs-translations/docs-ja/issues/100

  22. • ຋༁ελΠϧ : • JTF೔ຊޠඪ४ελΠϧΨΠυ • MicrosoftϩʔΧϥΠθʔγϣϯελΠϧΨΠυ • Vue.js ೔ຊϢʔβʔάϧʔϓಠࣗελΠϧ

    • ຋༁ΏΒ͗νΣοΫπʔϧͱͯ͠textlint + ΧελϜϧʔϧͰ νΣοΫ • textlint-rule-preset-JTF-style • textlint-rule-preset-vuejs-jp ຋༁ΏΒ͗Λ๷͙πʔϧͷಋೖ
  23. • ຊՈͷυΩϡϝϯτ಺༰ͷ௥ै͸ɺݱࡏ͸ ryucho ͱ͍͏ GitHub Actions Λ࢖ͬͯରԠ͍ͯ͠Δ https://github.com/vuejs-translations/ryu-cho • ryucho

    ͸աڈͷ che-tsumi ͱ͍͏ bot πʔϧͷਐԽ ൛ υΩϡϝϯτͷ࠷৽಺༰௥ैπʔϧͷಋೖ
  24. • Rycho ͸ຊՈެࣜυΩϡϝ ϯτrepo͔Βࠩ෼commit Λݕग़ͯ͠ɺGitHub Issues ͱͯ͠ొ࿥͢Δ • Conflict ͕ͳ͍΋ͷ͸ࣗಈ

    Ͱ PR Λ࡞ͬͯ͘ΕΔ • ϝϯςφ͸࡞ΒΕͨ Issue / PR Λݩʹɺ຋༁υΩϡϝ ϯτΛ࠷৽ͷঢ়ଶʹ͢Δ υΩϡϝϯτͷ࠷৽಺༰௥ैπʔϧͷಋೖ
  25. ͦͷଞ

  26. bi-weekly ఆྫϛʔςΠϯά΁ͷग़੮ • Evan ࢯ͔Β৘ใڞ༗ & ࣭໰ • ίΞνʔϜϝϯόʔ +

    ίϛϡχςΟύʔτφʔͷ৘ ใڞ༗ & ࣭໰
  27. ίϛϡχςΟӡӦ ऀͱͯ͠ͷOSS׆ಈ

  28. • 2015೥ʹ༗ࢤͰ্ཱͪ͛ • Slack ʹΑΔ೔ຊਓ޲͚ͷνϟο τͷӡӦ • ConnpassʹΑΔMeetupͷӡӦ • ΧϯϑΝϨϯεʹ޲͚ͨ׆ಈ

    • ຋༁׆ಈͷαϙʔτ • ఆྫMTGͷ։࠵ • … etc Vue.js೔ຊϢʔβʔάϧʔϓ
  29. • CoC Ҏ֎͸ಛʹݫ֨ͳ ϧʔϧ͸ఆΊ͍ͯͳ͍ • ίϛϡχςΟ͕ؾ࣋ͪ Α͍৔ʹ͢ΔΑ͏ʹ৺ ͕͔͍͑ͯΔ • ࣭໰΁ͷฦ౴ɺMeetup

    ͷ։࠵ɺVue.jsެࣜؔ ࿈ϨϙδτϦͷϦϦʔ ε৘ใͳͲͷΞφ΢ϯ εͨ͠ΓͳͲ SlackͷӡӦ
  30. • 3ʙ4ϲ݄ʹ1ճͷස౓Ͱ։࠵ • ΦϑϥΠϯͷͱ͖͸ɺൃදʹΑ ΔVue.jsͷ৘ใ΍ɺ࠙਌ձͰ Vue.jsίϛϡχςΟ͕৘ใަ ׵ɺ਌ກͰ͖Δ৔ͷఏڙ͢Δͷ ͕໨త • ΦϯϥΠϯͰ΋ɺ୯ʹ৘ใͷൃ

    ৴͚ͩͰͳ͘ɺ࠷ۙ͸Ξϑλʔ τʔΫ౳Ͱ Q & A ͰΠϯλϥΫ ςΟϒʹָ͠ΊΔΑ͏ͳ৔Λఏ ڙͰ͖ΔΑ͏౒Ί͍ͯΔ MeetupͷӡӦ
  31. • ݄ҰఆྫMTGͰΧϯϑΝϨ ϯε (Vue Fes Japan)ͷا ըɺ४උ͢Δ • ΧϯϑΝϨϯε౰೔͸ɺ Vue.js೔ຊϢʔβʔάϧʔ

    ϓελοϑશһͰӡӦʹ຿ ΊΔ ΧϯϑΝϨϯεʹ޲͚ͨ׆ಈ
  32. • ίϛϡχςΟʹΑΔ Vue.jsؔ࿈υΩϡϝ ϯτͷ຋༁Λαϙʔ τ • ϨϏϡʔ • େن໛ͳ຋༁׆ಈ ͷࡍͷ؀ڥ੔උ

    & Ϧʔυ ຋༁׆ಈͷαϙʔτ
  33. • ݄1ͰVue.js೔ຊϢʔ βʔάϧʔϓελοϑ ޲͚ͷMTGΛ։࠵͠ ͍ͯΔ • MTG಺༰ͱͯ͠͸ɺ ҎԼͷΠϕϯτͷاը & ४උ͕ओ

    • Meetup • ΧϯϑΝϨϯε ఆྫMTGͷ։࠵
  34. OSS։ൃऀͱͯ͠ͷ OSS׆ಈ

  35. • OSS։ൃऀͱͯ͠i18n޲͚OSSϓϩδΣΫτΛཱͪ ্͛ͯ׆ಈ͍ͯ͠Δ Intlify https://intlify.dev/

  36. • Ϟνϕʔγϣϯ i18n पΓͷ໰୊(ͭΒΈ)Λղ͍ͯDXΛ޲্ͤͨ͞ ͍ • എܠ vue-i18n ͷ։ൃ &

    ۀ຿΁ͷಋೖ & l10n ͷ࣮ӡ༻͠ ͍ͯ͘͏ͪʹࣗ෼ͷதͰιϑτ΢ΣΞͷi18nରԠप Γ͍ͯ͘͠͏ͪʹղ͖͍ͨͱժੜ͖͑ͯͨ Ϟνϕʔγϣϯͱഎܠ
  37. • ղ͖͍ͨιϑτ΢ΣΞ։ ൃʹ͓͚Δ i18n ͷ՝୊ Λղܾ͢ΔͨΊͷॳظί ϯηϓτ • builderscon 2018

    Ͱൃද ޙɺϓϩδΣΫτΛཱͪ ্͛ͨ ϓϩδΣΫτ։࢝ʹ޲͚ͨΞΠσΞ Slide: https://speakerdeck.com/kazupon/future-of-i18n YouTube: https://www.youtube.com/watch?v=oycx8hdd3Ws
  38. • vue-i18n Λ framework agnostic ʹ͢ΔܗͰ։࢝ ·ͣ͸ vue-i18n Λϕʔεʹ vue-18n

    v9 (vue-i18n-next) ͷΞʔΩςΫνϟ
  39. • ϝοηʔδϑΥʔϚοτΛॲཧ͢ΔίϯύΠϥ ίϯύΠϥΛ࡞ͬͨΓͨ͠

  40. • GitHub ͷ intlify organaization ͰҎԼ + ଞॾʑެ։ ެ։͍ͯ͠ΔOSS https://github.com/intlify

  41. • i18n routing (@intlify/routing) • URL ϧʔςΟϯάपΓ޲͚ͷ i18nϥΠϒϥϦ • Nuxt.js

    ͷ Nuxt 3 ରԠ͔Β೿ ੜͨ͠΋ͷ • Nuxt.js Ҏ֎ʹ΋ vite + vue Ͱ ΋࢖͑ΔΑ͏ʹఏڙ͢Δ༧ఆ 2022೥औΓ૊Έதͷ΋ͷ
  42. • Locale switcher • web front-end agnostic ͳݴޠ੾ସʹಛԽͨ͠γ ϯϓϧͳϥΠϒϥϦ •

    ۀ຿ͷ micro-services (micro-frontend) ͳ system ͷଟݴޠԽରԠͰ൚༻Խͨ͠΋ͷ • Pluggable ͳػߏΛ࣮૷ͯ͠ఏڙ͢Δ༧ఆ 2022೥औΓ૊Έதͷ΋ͷ
  43. • vue-i18n v9 Ͱ։ൃͨ͠ i18n ϦιʔεϝοηʔδϑΥʔ Ϛοτͷચ࿅ & ൚༻Խ •

    ICU ·ͨ͸ MessageFormat Working Group ͕ਐΊ͍ͯΔ࢓༷ ͱޓ׵ • l10n ϑϨϯυϦʔ • pluggable ͳػߏ • Rust Ͱ࣮૷༧ఆ ࠓޙͷ༧ఆ https://github.com/unicode-org/message-format-wg
  44. • vue-i18n v9 Ͱ࡞ͬͨίΞϥΠϒϥϦͷચ࿅Խ • ΑΓϑϨʔϜϫʔΫ agonostic ͨ͠ϥΠϒϥϦ΁ • TypeSafe

    Ϧιʔε؅ཧ • αʔόʔαΠυࢦ޲ • ্هΛϕʔεʹ vue-i18n v10 ͷ։ൃ ࠓޙͷ༧ఆ
  45. ۀ຿ͰͷOSS׆ಈ

  46. • 2019೥ೖࣾҎ߱ɺ ۀ຿Ͱ΋OSS׆ಈ ͍ͯ͠Δ • 2022೥͸ΑΓҰ૚ OSS ʹϑΥʔΧε ͯ͠׆ಈத ձࣾۀ຿Ͱ΋OSS׆ಈ͍ͯ͠Δ

    https://note.com/kazu_pon/n/na6fc11e12898
  47. • ۀ຿Ͱ࢖͍ͬͯΔOSSͷϝϯςφϯεɾܧଓ։ൃ • Α͋͘Δέʔεɻۀ຿ͷϓϩμΫτ։ൃͰݟ͚ͭ ͨόάɺϑΟʔυόοΫ͕ඞવʹOSS։ൃʹ΋ͳ Δ ͲͷΑ͏ʹۀ຿ͰOSS׆ಈ͍ͯ͠Δͷ͔

  48. • ۀ຿Ͱղ͘՝୊͸ҙࣝ͠ ͯجຊతʹ൚༻తʹղ͘ • Case: ϓϩμΫτͷ l10n ϫʔ Ϋϑϩʔͷ؀ڥ੔උͰ ඞཁͳ

    CLI πʔϧΛ ࡞ͬͨέʔε ͲͷΑ͏ʹۀ຿ͰOSS׆ಈ͍ͯ͠Δͷ͔ https://tech.plaid.co.jp/continuous-localization
  49. • vue-i18n Λ࢖͍ͬͯΔ ϓϩμΫτͰ i18n Ϧ ιʔεͷ l10n αʔϏε ͱ࿈ܞͰඞཁʹͳͬͨ

    • ༷ʑͳ l10n αʔϏε ͕͋ΔͷͰͦΕͱ࿈ܞ ͢ΔػߏΛ൚༻తʹઃ ܭ͠ɺCLIπʔϧͱ͠ ࣮ͯ૷ OSSͱͯ͠࡞ͬͨCLIπʔϧͱ͸ʁ
  50. • ۀ຿ 40% / OSS 60% ͱ͍͏Α͏ͳײ͡ • OSS ։ൃͱۀ຿։ൃ͕૒ํγφδʔ͢ΔΑ͏ҙ͍ࣝͯ͠Δ

    • ࣗ෼ͷ৔߹͸ϓϩμΫτͷࠃࡍԽରԠʹϞνϕʔγϣϯΛ ͍࣋ͬͯΔ • ϓϩμΫτ։ൃ͔Βղ͘΂͖՝୊Λݟ͚ͭͦΕΛOSSԽ • ಋೖ͍ͯ͠ΔOSSͷܧଓ։ൃɾϝϯς • ࣗ෼ͷ΍͍ͬͯΔ͜ͱ͕݁Ռͱͯ͠ϓϩμΫτͷՁ஋ʹఏ ڙͰ͖ΔΑ͏ʹ͍ͯ͠Δ ۀ຿ͱOSS׆ಈͷൺ཰
  51. OSSʹର͢Δ ޲͖߹͍ํ

  52. • GitHubͰPRૹͬͨΓɺIssue(Bug) ొ࿥ͨ͠ΓͳͲɺίʔυʹΑΔ΋ ͷ͚͕ͩ OSS ΁ͷߩݙͰ͸ͳ͍ • ࣗ෼ͨͪ͸ɺ৭ʑͳܗͰߩݙͰ͖ Δ͸ͣͰ͢

  53. OSSʹ͸͍ΖΜͳํ๏ͷߩݙ͕ඞཁ “Vue.js͸׬શͳOSSͰ͢ͷͰɺօ͞·ҰਓͻͱΓʹࢧ͑ΒΕͯ੒Γཱͬ ͍ͯ·͢ɻεϙϯαʔاۀ༷Λืू͍ͯ͠Δͷ͸΋ͪΖΜͰ͕͢ɺۚમ తͳαϙʔτͰ͸ͳͯ͘΋ɺGitHubʹPRΛૹͬͯ௖͍ͨΓɺϢʔβʔ ؒͰ࣭໰ʹ౴͑ͯ௖͍ͨΓͱ͍ͬͨߦಈ͕Vue.jsͷͨΊʹͳΓ·͢ɻ" https://www.youtube.com/watch?v=oWSVBwcPBIk&t=1s

  54. όάใࠂ PRϨϏϡʔ όάमਖ਼ ৽ػೳ࣮૷ ॻ੶ࣥච Q & A ରԠ ϒϩά

    ϛʔτΞοϓ։࠵ ϛʔτΞοϓͷ͓ख఻͍ ΧϯϑΝϨϯεͷ͓ख఻͍ ϙουΩϟετ εϙϯαʔ&د෇ εϐʔΧʔొஃ ಈը υΩϡϝϯτվળ υΩϡϝϯτ຋༁ νϟοτରԠ ϥΠϒϥϦ։ൃ ɾɾɾ ܒ໤ ϫʔΫγϣοϓ ࣾ಺ษڧձ
  55. OSSʹߩݙͯ͠Ձ஋ΛγΣΞ͢Δ͜ͱ͕େࣄ https://twitter.com/ikeike443/status/1062893298723876864

  56. Creator OSS develop Blog write

  57. Developer Company Creator OSS Product Developer adopt / use develop

    User use teach Blog read
  58. Developer Company Creator OSS Product Blog / SNS Developer Developer

    donate donate more use write more develop read try to use more develop Developer Developer read User more use User use feedback try to use
  59. Developer Company Creator OSS Product Blog / SNS Company Product

    Developer Plugin Developer donate donate more develop adopt / more use develop create more develop Developer Developer User User use feedback more use and contribute feedback more use
  60. Developer Company Creator OSS Product Blog / SNS Company Product

    Plugin Developer Developer donate donate more develop more use and contribute more develop more develop adopt / use more develop Developer Developer User more use Company Product develop User more use Blog write read Developer (OSS Plugin Creator) more use and contribute
  61. Developer Company Creator OSS Product Blog / SNS Company Product

    Developer (OSS Plugin Creator) Plugin Developer Developer donate donate more develop more develop more develop more use more develop Developer Developer User more use Company Product more develop User more use Event Organizer Event invite more use and contribute more use and contribute more use and contribute
  62. Developer Company Creator OSS Product Blog / SNS Company Product

    Plugin Developer Developer donate donate more use more develop more use more develop more develop more use more develop Developer Developer User more use Company Product more develop User more use Event Organizer Company Developer join as speaker Event sponsored join as attendee Slide speak attend join as speaker Developer join as staff Media report Blog Developer (OSS Plugin Creator) more use and contribute
  63. ԿΒ͔ͷߩݙʹΑͬͯΤίγες Ϝ͕ܗ੒͞ΕΔ ↓ ωοτϫʔΫޮՌͰOSSͷརӹ (Ձ஋)͕ߴ·͍ͬͯ͘ ↓ OSS࡞ऀɺར༻ऀͦͯ͠ձࣾʹ΋ རӹ͕෼͚༩͑ΒΕΔʂ

  64. ·ͱΊ

  65. ·ͱΊ • Ҏ্ɺܦݧ͖ͯͨ͠ҎԼͷ؍఺ͰOSS׆ಈʹ ͍ͭͯ࿩͠·ͨ͠ • Vue.jsίΞνʔϜϝϯόʔͱͯ͠ • ίϛϡχςΟӡӦऀͱͯ͠ • OSS։ൃऀͱͯ͠

    • ۀ຿Ͱ
  66. ·ͱΊ • ࠓޙɺOSS׆ಈʹؔΘΓ͍ͨʂαϙʔτͨ͠ ͍ʂͱࢥ͍ͬͯΔਓͷ໾ʹཱͯΕ͹޾͍Ͱ͢ • OSS ΁ͷߩݙํ๏͸͍Ζ͍Ζ͋ΔͷͰɺͥͻ ΍͍͖ͬͯ·͠ΐ͏ʂ

  67. ࠷ޙʹ

  68. Vue Fes Japan Online 2022 • ࠓ೥2022೥10݄16೔ʹ։࠵͠·͢ʂ

  69. εϙϯαʔͷօ༷ʹײँʂ

  70. ͝ਗ਼ௌ ͋Γ͕ͱ͏͍͟͝·ͨ͠ʂ 🙇