Rubyのメンテナンスサイクルについて

関西Ruby会議01で喋ってきた。

で、質疑応答でやっぱりメンテナンスサイクルまわりをつっこまれた。UbuntuのLTSみたいに長期サポートされるリリースはないのか、とか。結局、みんなが安心して使うためにはメンテナンス保証が必要なんだよね。

1.8系統については卜部さんは特に前言を撤回していないので今まで通りにメンテナンスされていくことだろう。つまり、1〜2年ぐらいで新しいteenyリリースがあって、2本のteenyブランチがメンテナンスされる。今は1.8.6と1.8.7がメンテナンスされている。1.8.5はもう放棄される予定だ。1.8.8が出たら、1.8.6はじきに放棄される。

1.9系統はそれも分からない。1.9.2が出るまでは責任を持って1.9.1をメンテナンスするつもりだけど、2本並行してメンテナンスできるかな? 可能でさえあれば、やるつもりではいる。でも、trunkとの乖離が進めばメンテナンスはそれだけ手間を要するものになっていく。MVMや、その他1.9.5あたりで予定されている諸々の変更は1.9系統に大きな変化をもたらすから、4年後には1.9.1のメンテナンスはかなり困難になっていることだろう。そもそも、1.9.1はその時点で、普及度やその後のバージョンとの互換性の観点から見て保守するに足るものであるのか、1.9.2の姿がまだ見えない現状では何とも言えない。

teenyリリース間ではいろんな意味で互換性を保ちたかったけど、1.9では仕様が収束しないと言うことが判明して、結局バイナリ互換性は放棄した。だから、1.9.xでは1.9.1の拡張ライブラリは動かない、ということがあり得る。その場合でも可能な限り再コンパイルだけで動くようにする予定だけれども。

メンテナンスを望む声は私も仕事上のRubyプログラム保守経験から賛同する。だから、何も放棄ししたくて放棄するわけではない。たぶんだけど、1.8.5のメンテナンスを担当しますという立候補は歓迎されるんじゃないだろうか。私もなー、1.9のメンテナンスにフルタイムで従事する選択肢があれば考える。

ともあれ、誰がなにかしないことには状況は改善しない。マシン、お金、メンテナとしての立候補、バグ報告、コンパイル成功報告、導入事例、なんでもいいから。Ruby 1.9がenterprise readyであるためにはまだまだ協力をお願いしたい分野がいっぱいある。