1. GeekAct-ギークアクト-
  2. ep.8 OSS コントリビュート 体..
2023-07-20 10:03

ep.8 OSS コントリビュート 体験記

#OSS #開発 #IT #javascript #Deno #podcast #typescript #fresh OC です。毎日毎日、暑くて溶けそうです。 今回は、OSS への約半年にわたるコントリビュートの経緯や、その中であったエピソードについて話しました。 日々お世話になっているOSS群に少しでも貢献できているといいなぁと思います。

サマリー

オクさんはオープンソースのソフトウェアに貢献し、ウェブフレームワークのテスト用拡張機能をプルリクエストしました。

オープンソースへのコントリビュート
このポッドキャストは、ギークの2人が 興味がある技術や熱中していることについて語る番組です。
オクです。
ゾイです。
今回は、私、オクのほうがですね、 オープンソースのソフトウェアにちょっとコントリビュートして、
その経緯の中で、いろいろ面白い話だったりとか、 経験があったので、そういう話をしていきたいなと思います。
どんなものにコントリビュートしてたのか っていうところからなんですけど、
JavaScriptの実行エンジンのDenoのDeno向けの ウェブフレームワークのフレッシュっていうのに、
プルリクを送っていたっていうのが、 それを通ったってところなんですが、
今回作ったのが、ウェブのフレームワークを テストするために拡張するっていうプルリクになってます。
何を目指したかったのかっていうところがですね、
ウェブのフレームワークテストするときに、 仮想ブラウザがないとちょっとテストしにくかったみたいなところがあったんですけど、
そちらを拡張して、仮想ブラウザ、メイタみたいなものを使わないで、 テストコードを書けるようにしたっていうのが私やったことですね。
だいたいそれを最初に送ったのが半年くらい前で、
最初に送ったらメンテナーの方から反応があってですね、 もっとこの方がいいんじゃないみたいな部屋があって、
その方法ベースで作り直しをして、
一応プルリクも方針が変わったんで、 プルリクも作り直してみたいなことをやってたらですね、
多分メンテナーの方も忙しかったんだと思うんですけど、 ざっくり4ヶ月くらい様子が動かなくなりまして、
しばらくぶりに余ってたんですけど、
その後、もうちょっと経ったら急に動きが変わってですね、
約半年くらいしたところで本体にマージされたっていう感じになってます。
新しく機能を増やすじゃないですか。
機能増やしたんで、それをマージされたら機能のドキュメントを書いてほしいっていう一周が、
プルリクの最後にメンテナーの人からコメントが書いてあってですね、
それができたんですよ。
そうなったら、これ一周って多分自分が拾った方がいいんだろうなって薄々思ってですね、
なんとなく他の人にやってもらうものでもないんだろうなと思って、
ドキュメントのプルリクを作って、メンテナーの方とやり取りしながら、
一週間くらいしたら、そのメンテナーの方がちょっと手加えましたっていう連絡があって、
メールの方の通知で見たんですけど、いざ開いたらですね、全体的にザーッと手が入ってて、
やっぱり英語のドキュメントを書くときの質が私あんまり良くなかったのかなみたいなところがあって、
結構なるほどなみたいな感じがあったんですよね。
結構DPLの翻訳に頼りつつ、ソースコードを足してドキュメントを書いたんですけど、
なるほど多分ネイティブなのかな、英語が多分メインで使ってる、生活してる人にドキュメント直してもらうと、
このぐらい文章直されるんだなっていうのはなかなか発見でしたね。
ウェブフレームワークのテスト拡張
イメージで言うと数行に一箇所差分があるみたいな。
感じで全体に手が入ってたっていう感じです。
最近リリースノートが公開されて、
フレッシュ、ディノーが管理してるフレッシュでリリースノート、リリースタグ切られると、
そこに関与した人たちのリリックのシャープ何々っていうのと、
あとGitHubのアカウントだらーっと載るんですけど、
そこに自分の名前が載ってるっていうのはなかなか考え深かったなっていう気がします。
今後も見つけたらやっていきたいなっていうのが思うところですね。
テストを簡単にするためっていうのもあると思うんですけど、
なんかどこからプルリクをプルリクというか、
コントリビュートする機能か、それとも自分の手元で直して済ませる問題かっていう切り分けっていうのがどんな感じなんですかね。
これとはですね、個々人のポリシーみたいな感じだと思うんですけど、
これは多分一般的に使いたい人がいるだろうなっていうものであればしてもいいかなっていう気がしていて、
逆に自分しか使わなくて、
多分この需要を満たすことって本当に自分本位なところかなと思ったら出さないぐらいのところかなと思うんですけど、
逆に自分本位でこういうものをこういう改造したっていうだけであれば、
単純にフォークしといて、生やしといて、プルリク出さないっていう選択肢じゃないかなと思いますね。
今回のケースだと、テスト用の拡張をするときって、
もともとDenoをホストしてるというか、配信してるテストのモジュールの中にSuperDenoっていうやつがいて、
いわゆるDenoで立ち上げられたウェブサーバーをストするためのライブラリーみたいなやつなんですけど、
それを使えるようにするにはフレッシュをどう拡張したらいいかみたいなのがもともとの最初の入り口で、
実はそれをやると多分みんな嬉しいかなって思ったっていうのが一番最初の入り口なんですよね。
あとはTwitterで試したときに反応が良かったみたいなのもあります。
プルリク送るまでの間にもある種フィードバック的なものがあってっていう感じなんですね。
それはありますね。
あとはその時にちょっと勉強になったのは、いわゆるSuperDenoの、最初Superってどういう意味だろうなと思ったんですけど、
なんか教えてくれた人によると、もともとはNode.js向けのライブラリーで、
スーパーが最初につくテスト用のライブラリーがあったらしくて、
フレームワークに付随するような感じで、
それ以来そういうテスト用にWebのアプリケーションをもう一枚外側からいじるみたいなものは、
スーパーなんとかってつくやつが結構あるらしくて、
で、それを使いたかったんですけど、
それをなんでこれスーパーなんだろうなみたいなことを最初つぶやいてたら教えてくれたりとかするので、
あれは良かったですね。
ちなみに私さんのさっき言った、スーパーディノを使ってみたくてっていう話をしたんですけど、
実はドキュメント書くときに、スーパーディノを使ってそのテストを書くドキュメントを書いたんですよ。
そしたらそのメンテナーの人から、スーパーディノを使わないでくれと。
まあまあ。
でもまあ、そりゃそうかと。
フレッシュのフレームワークをテストするにあたって、
ライブモジュール必須みたいな形の確かにドキュメントは書きたくないだろうなみたいな私も意を汲んだので、
なるほどと思って書き直したんですけど、
そもそもスーパーディノを使う前提で自分が作ってたんで、
これを使わない場合どうテスト書くんだっけっていうのはですね、
そのドキュメントにそういうコメントが入ってから改めて調べ直したりしましたね。
逆に確かにこうすればできるんだなみたいなこともあって、
それはそれで勉強になったって感じがしますね。
今回は奥の方でオープンソースのソフトウェアにコントリビュートしましたっていう話をしてきました。
コントリビュートしたフレッシュは今回拡張してちょっとテスト書きやすくなったりしてるんで、
よかったら触ってみてくださいというところです。
高評価、チャンネルのフォローよろしくお願いします。
10:03

コメント

スクロール