OSSコントリビュートハッカソンを開催しました

2021年11月26日

ソニックガーデンでは、毎月1回プログラマメンバーで、ハッカソンをしています。テーマやルールは毎回変えながら、1日かけて開発をして最後にみんなで集まって作ったものの発表をします。 発表後、テーマごとに評価項目を設定し、投票を行い上位のチームには景品が送られます。

先月は、OSSコントリビュートハッカソンというテーマで実施しました。 非常に面白い内容で、OSSのテーマだけに公開することがとても良いと思ったので、記事にしています。 評価項目は、公益性・インパクト・それ欲しかったの3つでした。

9組の実装したPull Request(以下、PR)や発表内容の資料などを発表順に簡単にまとめて紹介していきます。

tochi さん

Bootstrap 5 support for Gretel

https://github.com/kzkn/gretel/pull/30

Supported the M1 mac. by tochi · Pull Request #50 · cloud-gov/caulking https://github.com/cloud-gov/caulking/pull/50

Rails のパンくずリストを簡単に実装できる gem の Gretel で Bootstrap5 に対応できるようにするためのPRです。ちなみに Gretel はもともと別の方が作成された gem でしたが、現在はソニックガーデンの kzkn がメンテナーとなってメンテナンスしている gem です。

soura & yoshito チーム

Gretel の設定ファイルの自動生成 or 設定省力化

https://github.com/soura-mas/gretel/pull/1

上と同じく Gretel gem へのPRです。Gretel ではパンくずの構造を設定ファイルで管理するのですが、それをより効率的に管理できるようにしたいという内容でした。こちらは、大きななので1日では完了しなかったようですが、方向性としてはうまくいくところまで進められたようです。

aki77 & kontikun & tokita チーム

Windi CSS prefix 対応

https://github.com/windicss/windicss/pull/534

SGメンバーも注目しているCSSフレームワークの Windi CSS に、 prefix をつけて正しく動くようにPRをしています。さらに、社内のプロジェクトで Windi CSS を導入して、 Bootstrap と一緒に稼働できるように実装を進めていました。

hiropon さん

react-big-calendar のscrollToTimeオプションとminオプションの同時指定時の不具合修正

https://github.com/jquense/react-big-calendar/pull/2051/

React のカレンダー表示ライブラリの特定のケースでの不具合修正のPRを出しました。納品のない受託開発で利用していた際に発見したライブラリの不具合を修正したものです。

jiro さん

dekiru gem のデータ移行処理実装用のDSLにトランザクションなしオプションの追加

https://github.com/mataki/dekiru/pull/23

Rails でよく使う機能をまとめたソニックガーデンメンバーでメンテナンスしている dekiru という gem へのPRです。その機能に、サービスを運用している中でデータ修正をスクリプトで実装する場合に便利なDSLがあり、もともとはトランザクションをかけて処理をする仕組みになっています。大量データを処理する場合はトランザクションをかけないほうが良い場合もあり、そのパターンでも使いやすいようにオプションを追加しています。

kzkn さん

Change Log URL of rubygems

https://github.com/kzkn/rubygems-changelog-url-action

RubyGems の仕様に ChangeLog を定義できる項目があるのですが、現状設定されていない gem が多いです。以前 kzkn が Github Actions で gem を追加した際に、ChangeLog を取得する仕組みを作ったが、設定されていない gem が多く処理効率が良くなかったようです。
そこから、ハッカソンの当日は、設定されていない gem に簡単にPRをおくれるようにする情報をまとめる仕組みを実装しました。
OSSコントリビュートしたことのない人もはじめてのコントリビュートのきっかけになる情報なので、ぜひOSSコントリビュートしてみて欲しいとのことです。

rubygems に changelog_uri が設定されていないものリスト

shunichi さん

Rails の date_select に day_format オプションを追加
https://github.com/rails/rails/pull/43567

Rails の間違ったコメントや不要なコードの修正
https://github.com/rails/rails/pull/43566

ActiveRecord::Enum に I18n のメソッド追加
https://github.com/rails/rails/pull/43568

dekiru に Capybara のアニメーション待ちヘルパーの追加
https://github.com/mataki/dekiru/pull/24

Rails にPRをだしてマージされた shunichi が、ハッカソンでまたいくつかRailsにPRを出しています。それぞれ、ソニックガーデンのメンバーも欲しかったやつだねという話をしていました。

bassar さん

CarrierWave で画像の width, height でバリデーション https://github.com/carrierwaveuploader/carrierwave/pull/2592

Rails の画像アップロードのライブラリの CarrierWave をより便利にするPRです。OSSコントリビュートを良くしている shunichi がペアプロをしてサポートをすることで、生まれて初めてのOSSコントリビュートをしました!

mat_aki さん

dekiru にメンテナンススクリプト generator を追加 https://github.com/mataki/dekiru/pull/25

ソニックガーデンでは、データメンテナンス用のスクリプトを追加するときは慣習的に scripts ディレクトリ以下にファイルを置いて、dekiru のデータ修正DSLを使うことが多いです。より簡便にできるように generator を dekiru gem に導入するPRを送りました。

以上が、ハッカソンの発表内容でした。

ふりかえりとして、参加して面白く、日頃からお世話になっているOSSに貢献することもでき、メンバーによっては初めてOSSにコントリビュートすることもできたので、良い機会でした。定期的に開催することで、日頃からアイデアを集めることもできるようになるので、またOSSのテーマで実施しようと思っています。

専業主夫を経てソニックガーデンへ入社。地元沖縄でライフステージに合わせて柔軟に働く魅力とは?
前の記事 専業主夫を経てソニックガーデンへ入社。地元沖縄でライフステージに合わせて柔軟に働く魅力とは?