trac 移行作業

開発の谷間なので今週は主に trac の移行作業をやっていた。
前年度からのタスクに 0.12 から 1.0 へ移行をすると断言しながら、1年近く放置してきたというひどいことをしてる。全ての情報は trac で一元管理するという原則のもと、trac が社内インフラとして重要な位置付けになっている。ダウンタイム無くアップグレードするのに準備の工数が大きく、影響度の大きさから消極的になってた。

それでも先月からようやく少しずつ前に進み始めて3つあるプロジェクトのうち2つを移行できた。この作業と同時に mod_wsgi を embeded モードから daemon モードに変更して、それぞれのプロジェクトを独自にメンテできるようになった。さらに同僚に手伝ってもらって solr を使った TracAdvancedSearchPlugin の全文検索も試験的に導入できる段階になった。

チケットのユーザー定義ステータスを扱えなかったので修正して pull request を送ったらすぐに取り込んでくれた。ちゃんとメンテしてくれてるから安心してこのプラグインを推奨できる。おそらく12月は時間ないだろうけど、次は2月頃に余裕があれば、trac 移行の経緯や全文検索の導入をまとめられれば良いなぁ。やる気次第か。

今日はもう1つ。丁寧な pull request が来ていたのでレビューしていた。

1年以上触ってないので、コードも忘れてて、diff だけ見ても分からなくてじっくりレビューした。テストデータに大きなリストを渡すときにリテラルで記述するのではなく、オプションから生成できるように、もう一段階抽象化する仕組みを作ってくれた。なるほどなぁとその意図に感心して、コードも既存の実装の空気を読んできれいに実装してくれてたのでなるほどなぁとまた感心した。

現実の応用例として、wikipedia:同値関係 を表すテストコードを書いてくれたけど、これはちょっと理解できなかった ...