Fringeneer's Tech blog

Fringe81の開発者ブログ

Scala Matsuri 2018 OSS ハッカソンに参加しました! #ScalaMatsuri

Fringe81エンジニアの森本です。

Scala Matsuri 2018 OSS ハッカソンに参加しましたので、その詳細及び感想について紹介します。

OSS ハッカソンとは?

blog.scalamatsuri.org

Scala Matsuriに合わせて、Scala界隈の著名なメンテナが来日されるので、そのメンテナに直接サポートを頂きながら、コントリビュート(Pull Request)を目指すという、なんとも豪華なイベントです。 Scala Matsuriでは今年が初の試みとなるようですが、運営の方のお話では海外では同様の取り組みが実施されているようです。

今回の対象ライブラリは上記のリンク先にもある通り、下記になります。

  • twitter4s(Daniela Sfregolaさん)
  • aeron, agrona, simple-binary-encoding(Martin Thompsonさん)
  • akka, akka-http, alpakka(Konrad Malawskiさん)
  • sbt, sbt-plugin, zinc(Eugene Yokotaさん)
  • ScalikeJDBC, Skinny Framework(瀬良 和弘さん)

Scalaプログラマであれば普段利用しているライブラリにコントリビュートできるチャンスということで、募集が開始された際に、我先にと応募しました。 運良く抽選に受かり、当日はakka, akka-http, alpakkaに取り組むことになりました。

issue 探し

当日までの準備として、まず取り組むissueを探します。 大体のプロジェクトにおいてContirubuting Guideが用意されていると思うので、まずはそれを読みます。 akkaプロジェクトの場合、おおよそ下記のようにissueがタグ分けされています。

moduleの中のどのcategoryに関連するtopicなのかを示すもの

  • t:core
  • t:stream

初めてコントリビュートする人向けに最適なもの

  • good first issue
  • help wanted
  • nice-to-have (low-priority)

issueのステータスを示すもの

  • 0 - new : まだ議論中でPRを受け付ける状態になっていないもの
  • 1 - triaged : PRを受付中のもの
  • 2 - pick next : 次回のリリースに含めたいと思っているもの
  • 3 - in progress : 既に誰かが着手中のもの

運営の方からも開催数日前にhelp wantedのものを対象にissueを探しておくと当日スムーズに作業に移れますよと案内が来た為、help wanted, 1 - triagedのタグが打たれているものを中心に、取り組むissueを探しました。

初心者向けのタグとはいえ、ある程度内部構造を知らないと修正方法が分からなかったり、1 - triagedとタグが打たれているものの、既にPRが作成されているものもある為、根気強く自分でも修正できそうなissueを探しました。

最終的に私が選んだissueは下記になります。issue中でおおよその修正方法が議論されており、取り掛かりやすそうだったのが理由です。

github.com

また当日までに、対象となるライブラリをGithubからcloneしておくと良いと思います。会場にはwifiが用意されていますが、やはり大きなものをダウンロードすると会場のwifiに負荷がかかりますし、IntelliJに読み込む際にもそれなりに時間が掛かってしまうので。

ハッカソン当日

ハッカソン当日は、事前に選んだissueを元に作業を進めていきます。またissueを決めていなくとも、メンテナの方と相談しながら、取り組むissueを探すことができます。

修正方針に問題がないか、メンテナの方に直接相談しながら、進めます。どのように実装してよいか分からない時は、メンテナの方がペアプロまでして直接指導してくれます。

私のメンテナはKonrad Malawskiさんでしたが、とても良い方で懇切丁寧に教えて頂き、ここまで丁寧に教えていただけるのかと非常に感激しました。

修正方法が決まり、実装が完了した後、メンテナの方に確認して頂き問題なければ、PRを作成します。Konradさんのサポートもあり、私もなんかと当日にPRを作成することができました。

github.com

英語が不安な方(私もそうです!)の為に、運営の方が通訳の方まで用意してくれており、ここまで至れり尽くせりのイベントはそうそう無いのではないかと思います。

PR

無事PRが作成できれば、Github上で他のメンテナの方がレビューしてくれます。Konradさんがすぐに他のレビューの方にメンションしてくれたので、おそらく普段よりも早くレビューして頂けたのではないかと思います。

Github上でも不明点や分からないことを相談したら、直ぐにレビュアーの方が丁寧に回答してくれ、修正方法を指導してくれます。

残念ながらBinary Compatibleの修正で手こずっており、現時点でまだ私のPRは取り込まれていませんが、引き続き、取り込まれるように頑張りたいと思います。

感想

普段利用しているライブラリの方と直接お話できる機会ということで、参加を非常に楽しみにしていました。 参加してみた結果、想像以上に楽しい時間を過ごせたと思います。 当日は四苦八苦しながらも、なんとかPRを作成できた時は謎の感動が湧き上がりました笑

当日は12のPRが作成されたとのことで、運営の方の想定以上の結果だったようです。

来年も実施が検討されているようなので、興味がある方は是非参加して頂ければと思います。

最後に貴重な機会を設けていただいたScala Matsuriの運営の方々、指導して頂いたメンテナの方々、本当にありがとうございました!