前の記事に続いて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リリース。
- 2005-12-24: 1.8.4リリース。この回から10週間のリリースサイクルを実施
- 2006-08-25: 1.8.5リリース。
要するにRubyのリリースは「セキュリティホールが見つかってもうすぐ公開される」とか「クリスマスだから」という理由で行なわれ、まともなリリースマネジメントがなかったと卜部さんは指摘する。私も、外部からもそのような指摘があったのを記憶している。
■ 改善
まぁ、そんな反省もあって議論の末、安定版ブランチのリリースマネージャーが交代となったのであった。卜部さんは発表では触れていなかったけれども、ここで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ヶ月おきぐらいで新しいパッチレベルリリースを行なう
とのこと。
それで、そろそろ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.8.5系統と1.8.6系統のメンテナンスは1.8.7がリリースされた時点で終了する
2世代がメンテナンスされるので、1.8.7のリリースで終了するのは1.8.5系統のメンテナンスのみではありませんでしたっけ?