【日記】Kontributorになった

最終的にやったことをまとめた記事を投稿しました。

wrongwrong163377.hatenablog.com


やったこと

JetBrains/kotlinGitHubPRを出し、マージしてもらいました。
当該PRは以下です。 github.com

このPRの内容

このPRに関しては全てテストです(変更行数は2,500行超、結構巨大です)。

このPRは、足りていなかったテストコードの補完兼後続の修正を分かりやすくするためのfailing testであり、本題となる修正は別途PRを発行しています。
内容は、kotlin-reflectnullablevalue classを引数に含む関数を呼び出した際にエラーになるバグの緩和です。 github.com

感想

大まかな感想は以下の3つです。

  • 深掘りを続けてきたKotlinに貢献できたことが嬉しい
  • Kotlinのような巨大プロジェクトでテストパターンが全く足りていない部分が有るとは思わなかった
  • 上手く行けばkotlin-reflectに依存するライブラリ全体のvalue classサポートを進められそうなのでやりがいが有る

深掘りを続けてきたKotlinに貢献できたことが嬉しい

Kotlinに触れたのは、2018年のエウレカでのインターンシップがきっかけでした。 wrongwrong163377.hatenablog.com

そこから利用を続け、バックエンドはJavaだった職場にKotlinを持ち込んだり、Kotlin製の自作OSSを公開したり、moshijackson-module-kotlinのような有名リポジトリにコントリビュートしたり、そしてついにKotlinそのものにコントリビュートすることができました。
ずっと好んで取り組んできたものにコントリビュートできたというのは非常に嬉しかったです。

(どうでもいいことですが、今思い返すと、初めて外部リポジトリにコントリビュートしたのが丁度1年位前でした。) wrongwrong163377.hatenablog.com

Kotlinのような巨大プロジェクトでテストパターンが全く足りていない部分が有るとは思わなかった

前述の通り、テストだけで2,000行超という非常に大きなPRを発行した訳ですが、その原因はそもそも当該箇所に関してテストパターンが全く足りていない状況だったことです。

value classは既にstableとされている機能ですが、実際の所関連するkotlin-reflectの機能には多くの重大なバグが残されています。
今回自分はテストパターンの追加を行いましたが、テストパターンは恐らくまだまだ不足しています。

見たのがkotlin-reflect単体とは言え、Kotlinという大きなプロジェクトにこのような状況が有るというのは自分にとって大きな驚きでした。

上手く行けばkotlin-reflectに依存するライブラリ全体のvalue classサポートを進められそうなのでやりがいが有る

自分は現在KT-31141(本題となるPRで対応している問題)と、KT-27598の緩和に取り組んでいます。
これらの問題は長らくkotlin-reflectに依存するライブラリ全体のvalue classサポートを阻んできたものです。

つまり、自分の修正によって、kotlin-reflectに依存するライブラリ全体のvalue classサポートが進むということになります(あくまで上手く行けばですが)。
少なくともjackson-module-kotlinについては自分の方で進めようと思っています。

自分が書いたコードによってそのような大きな変化が起きるというのは、大規模OSSに貢献する大きなやりがいですね。
これからもぼちぼちやっていこうと思います。