RMagick の ImageMagick 7 対応の進捗

Ubiregi Advent Calendar 2018 の 2 日目です。

私は ユビレジ でスクラムチームに所属し Rails や iOS、React.js なコードを書いております。スクラムチームでは各個人に得手不得手がありながらもサーバやクライアントのコードを分け隔て無く面倒見ています。チームの簡単な紹介については、初日の ユビレジ開発チームのご紹介 をご覧ください。

2 週間のスプリント期間で機能開発しています。この期間内にはバグマッシュデーという「普段の開発では見落とされがちな軽微な不具合の修正や技術的な調査をしたり、メンバーが自由にプロダクトに貢献」できる日が用意されています。私はバグマッシュデーを活用しながら弊社でも利用している RMagick を ImageMagick 7 に対応する作業を細々とやっております。

出発点

大江戸Ruby会議 07 の発表題材として作業をはじめました。発表日の 1 週間前にスタートしました...。

なぜ RMagick?

弊社でも RMagick を使用しているから以外に、スライドにも書いてありますが RMagick がコミュニティーにとっての負債だと感じていたからです。とりわけ macOS 上で、

$ brew install imagemagick
$ gem install rmagick

とコマンドを実行したくらいではインストールに失敗し、開発元の Issue でも ImageMagick 7 がらみのものが多く、どうにかしたいと思ったのが理由になります。

残りの作業

大江戸Ruby会議 07 で発表した際にはコード中に TODO と書き残した箇所が 90 ほどあったのですが、現在は 2 箇所になりました。

$ grep "#warning TODO" -r ~/prj/rmagick
/Users/watson/prj/rmagick/ext/RMagick/rmimage.c:#warning TODO: fix colorspace
/Users/watson/prj/rmagick/ext/RMagick/rmimage.c:#warning TODO: unused channels

あとは、

  • 自動テストが fail しているのを直したい。私が作業する前からテストは通ってなかったみたいですが...。
  • Windows 環境下でいっさい試していない。
  • 公式サイト では RPM パッケージを配布しているのですが、Ubuntu 用のものが世の中に出回っていないようで、Travis CI や heroku にデプロイするときに不便そう...。

試されたい方がおりましたら、以下に作業中のものを置いてあります。

github.com

弊社では技術的負債に全力で立ち向かうメンバーを募集しております(\( ⁰⊖⁰)/)