RubyKaigi2007 (3) - 卜部さん

前の記事 に続いて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のリリースは「セキュリティホールが見つかってもうすぐ公開される」とか「クリスマスだから」 *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ヶ月おきぐらいで新しいパッチレベルリリースを行なう

とのこと。

それで、そろそろ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:クリスマスにリリースするのは伝統となっている