😜

【OSS】こんな私でもOSSに貢献できた!?

2024/06/03に公開

はじめに

どうも、へっぽこミジンコエンジニアのてるし〜です🤪

エンジニアになって約8ヶ月でOSS(オープンソース)に出会い初めてコミットをしました。
そこからたま〜〜〜にissueを拾ってコミットをするようになりました。

どのような経緯でOSS(オープンソース)に手を出し始めたのか、OSSに手を出して何が良かったのかを話していこうかと思います。

それでは今回もゆっくりしていってください🥰

貢献したOSS

2024/6現在貢献したOSSは2つです。

https://github.com/yamada-ui/yamada-ui

https://github.com/chakra-ui/chakra-ui

ちなみに、どちらもほ〜〜〜んのちょっとですw

そもそもOSS(オープンソース)とは

めんどくちゃいから引用しちゃいます🤪

オープンソース(Open Source)とは、ソースコードを無償で公開、再使用、改変、再配布することが可能なソフトウェアを示しています。

引用元
https://circleci.com/ja/blog/what-is-oss/

要は誰でも見れて誰でも(ルールは設けられてるけど)編集できちゃうというものです。

例を挙げるなら

https://github.com/facebook/react/
とか
https://github.com/vercel/next.js

ですね。

例を挙げた2つはフロントエンドをやっていたらよくお使いになっているのではないでしょうか?
我々が使っているライブラリやフレームワークの多くは実はソースコードが見れたり編集できたりしちゃうんですよ〜。ですが、大抵のものは難しいですね😓

てるし〜OSSへの物語

「私がどのようにしてOSSへの貢献に至ったのか?」「その後はどうしてる?」という話をしようと思います。

出会い

私がOSSという名前、存在を知ったのはとある男との出会いでした。

その男の開発しているOSSは、

https://yamada-ui.com/

である。

とある日にこんな投稿をしていました。
https://x.com/hirotomoyamada/status/1726917979697566030

リプをしdiscordへ!

いざ、OSSの世界へ

記念すべき第1回目に取り組んだissueはこちら。

https://github.com/yamada-ui/yamada-ui/issues/257

YamadaUIにはMarkdownコンポーネントがありこのzennのように
アラートメッセージを付けたいといったものでした。

私は無能なので何もわからず、とりあえずサポートしていただきながらPRまで出せました。

https://github.com/yamada-ui/yamada-ui/pull/274

その後

ちょくちょくコミット

初コミットをしてから半年ほど経ちましたがたまに、issueを立てたりPRを出したりして貢献しました。
最近のYamadaUIgood first issueはなんと答え付きが多い!!!!ので数回ほど貢献させていただきました。

答え付きissueは
https://github.com/yamada-ui/yamada-ui/issues/1681
これのことですね。
issueのところに答えがwww

記念すべき第1回YamadaUI勉強会🎉

YamadaUIで記念すべき勉強会が行われ私も仕事でちょうど気になっていた内容なので参加しました。

https://x.com/hirotomoyamada/status/1793528964067270848

内容はテストに関するものでした。
とても為になるものでした!
その後、それを受けてdisucussionを駆使して提案したり新しいissueを作成したりコミットしたりしました。

ついに、、、

勉強会を受けてテストコードについて少し詳しくなったと思い、chakraUIに手を出しました。
おかしな点がいくつかありましたが自信がなかったので1つだけissueを作ってPRを作成しました。

https://github.com/chakra-ui/chakra-ui/issues/8500

https://github.com/chakra-ui/chakra-ui/pull/8502

マージされた!!!
やった〜〜〜〜〜!

OSSに参加して良かったこと

OSSに参加して良かったなと思っていることを話していきます。

1 存在すら知らないものが知れる

私自身、OSSに参加するまで存在すら知らないものがたくさんありました。
OSSに参加する前は個人開発(というか勉強)をしていましたがStorybookとかテストとかそのような存在を知りませんでした。

https://storybook.js.org/

ですが、OSSに参加して個人開発では知れなかったことをたくさん知ることができそれを実際の案件に導入して開発効率を上げることができました。

またissueのテンプレートをyamlで書く(mdで書いてあるところもある)などいった実装以外の部分での部分で使えそうなものを案件に導入しました。

YamadaUIの実際のissueを書く部分は上の画像のようになっています。

実際に現在、どのissueも形式を変えずに書くことができるため書き手にとっても読み手にとってもわかりやすい状況を作ることができています😎

2 コードを見にいくようになり、場合によっては課題解決

OSSに参加するようになるとドキュメントを見にいくプラスソースコードを見にいく癖がついてきます。
といっても私の実力では解読することはまだまだ不可能です。
ですが、実際に仕事で技術調査をしているときにドキュメントでは紐解けなかった問題がソースコードを見にいくことで解決したという事例がありました。

例を挙げるとすればdnd-kitです。
https://dndkit.com/

これはreorderを作る時とかに使えるライブラリですがスマホでは動作しない現象があります。
ドキュメントだけでは上記問題を解決することはできませんでした🤪(もしかしたら書いてあったかも知れないが、、、)

実際にサンプルはスマホで動き、「な〜ぜな〜ぜ?」と思ってソースを見に行ったら「useSensorの部分での指定を変えればできる」ことがわかり実際にタブレットやスマホでも動かすことができました!

そもそもOSSというものを知らなければコードを見にいくという発想にすら至らず永遠とサイトをググって時間を潰してしまっていたと思います。

まとめ

いかがだったでしょうか?

現在、OSSを通してたくさんのことを学び実際の業務に活かすことができています。
OSSに参加して良かったと思ったのは個人開発(勉強)で得られなかったたくさんの知識を得ることができ、それを仕事に取り入れ開発の効率ややりやすさが上がったことです😁

これからも私自身がやれるタイミングで活動をしていこうと思います(Yamadaさん、これからもお世話になります🫠)。
力がついてきたらもっと色んなOSSに手を出していきたいなとも思ってます。

私自身まだまだ読めるというレベルではないので頑張らないとですね💪

皆さんも機会があれば是非OSSへの貢献、貢献をしなくともOSSを読んでみるということをしてみると良いかもですね👨‍💻

今回も読んでいただきありがとうございました🙇🏻‍♂️

Discussion