前の記事 に続いてRubyKaigi2007をレポートする。
安定版Rubyとその今後
Ruby安定版のリリースマネージャーに就任したmputこと卜部昌平さんの発表。まつもとさんは偉大な言語デザイナだがリリースマネジメントはちょっとまずい、と言うことで卜部さんが代わったわけだけれども、おかげさまでRubyの運用における安心感はぐっと増した。
Rubyの歴史
- 2002-12-24: 1.6系統最後の1.6.8のリリース。同日、1.8.0 preview1リリース。
- 2003-08-03: 1.8.0リリース。8ヶ月previewをしたにも関わらず大変不安定であった。ライブラリが大量に追加されたのもあるけれども、同じ頃Perlも5.8出てライブラリが大量に追加されていた。
2003-12-25: 1.8.1リリース。
- クリスマスリリース。
- バグフィックスがメイン。
2004-12-24: 1.8.2リリース。
- クリスマスリリース。
- 1年もリリースがなかった。
- 2003年にruby-lang.orgのサーバーがクラックされたのも一因。
- このバージョンはコアを吐きまくった。
2005-11-21: 1.8.3リリース。
- リリースした理由は主にセキュリティホール( JVN 62914675 )
- しかし、機能追加が混ざっていた。
2005-12-24: 1.8.4リリース。この回から10週間のリリースサイクルを実施
2006-08-25: 1.8.5リリース。
要するにRubyのリリースは「セキュリティホールが見つかってもうすぐ公開される」とか「クリスマスだから」 *1 という理由で行なわれ、まともなリリースマネジメントがなかったと卜部さんは指摘する。私も、外部からもそのような指摘があったのを記憶している。
改善
まぁ、そんな反省もあって 議論 の末、安定版ブランチのリリースマネージャーが交代となったのであった。卜部さんは発表では触れていなかったけれども、ここでRubyのバージョン番号体系も変更されて、新たにpatch levelが加わっている。1.8.6-p36を例に取ると、
1
Major version
8
Minor version
6
Teeny version
36
patch level
バグフィックスのためにリリースされる度、最後のpatch levelが増えていく。
で、現在のところ、1.8系統で開発が進められているブランチは次の通り。( [ruby-core:10019] )
ruby_1_8
マネージャーknu。開発的安定版。1.9ほど大きな変更は加えず、互換性を重視しつつ、便利な機能の追加などは行っていく。
ruby_1_8_5
マネージャーshyouhei。1.8.5系統のバグフィックスリリースを行なう。機能追加などのバグフィックス以外の変更は認められない。
ruby_1_8_6
マネージャーshyouhei。1.8.6系統のバグフィックスリリースを行なう。機能追加などのバグフィックス以外の変更は認められない。
リリース方針としては
とのこと。
それで、そろそろ3ヶ月経つので発表の少し前に1.8.6-p56と1.8.5-p32をリリースしたそうだ。
今後は、
- 1.8.7の予定はまだ立たない。10月あたりだろうか。JSONライブラリあたりが入れば嬉しいところ
- 1.9.1はささださんにおまかせ
- 1.8.5系統と1.8.6系統のメンテナンスは1.8.7がリリースされた時点で終了する。
- 1.8開発ブランチはこれまで通り開発を続ける
と。
斯くして、Rubyは明文化されたポリシーの元で開発/リリースされるようになったのであった。
*1:クリスマスにリリースするのは伝統となっている