1.9.3リリース作業手順

初回リリース時の一般論はこちらを参照。 このページは1.9.3メンテナの覚書です。

  1. 日々淡々とバックポートを行う。 ちなみにバックポートの方法は

    ruby trunk-src-dir/tool/merger.rb --ticket=バックポートチケットの番号 リビジョン番号,リビジョン番号,...

    である。チケットの番号、リビジョン番号は数字のみで。 バックポートチケットがないこともあるので、その場合は--ticket=は省略。

    バックポート元がない修正の場合は手動でコミットすることになるが、コミットの前に

    ruby trunk-src-dir/tool/merger.rb revisionup

    を忘れずに。適切にversion.hを更新してくれる。

    なお、ここで使うrubyおよびmerger.rbはtrunk最新が望ましい。 他のブランチのmerger.rbはバグったままであることが多いし(いちいちバックポートしないので)、merger.rb自体に稀にtrunk依存があるのでこれが安心確実。 バグってたら諦めて直そう。

  2. じっとRubyCIRubyInstaller CIを眺め続ける。更新されるまで時間がかかるので気長に待つこと。 原則として、RubySpecを含めて、問題がいっさいない場合しかリリースしない。EかFがあったら(1)に戻ろう。 ただし、プラットフォーム特有の何かとか、タイミングによって起きたりするエラーは往々にしてあるので、その辺は以前のリリース時の結果も踏まえて臨機応変に。 RubySpecのバグとかもたまにあるので、見つけたら報告して直してもらう。
  3. 機が熟したと思ったら、タグを打つ。 タグの打ち方は、

    ruby trunk-src-dir/tool/merger.rb tag

    である。

  4. carbonにログインして、パッケージを作る。 一般に「make distで」とか言われるわけだが、それを実行するためにはrubyのソースを用意してconfigureしとかないといけないわけなので、ここは安直にtrunkからtool/make-snapshotを取ってきて

    ruby1.9.3 make-snapshot 適当なディレクトリ名 1.9.3-pXXX

    を実行した方がよい。 この時、できたパッケージ(3個)について、サイズとかMD5とかが表示されるので、ちゃんとコピペして取っておくこと。

    make-snapshotがエラーを吐いたら(たまにtrunk依存が埋め込まれていたりするので油断ならない)、ちゃっちゃとtrunkで直してコミットしておこう。

  5. この時点で周りのruby開発者に声をかけてテストしてもらうのが無難である。 RubySpecまで通っているからといって油断はできない(前例あり)。 特にRails使いに確認してもらうと安心度がぐっと上がる。

    テスト用配布にはcarbonの~ftp/pub/tmp/が使える。

  6. もう大丈夫かなーと思ったら、((5)でテスト配布をしていたらそれをちゃんと削除して)リリースを行うことになる。なお、マズった、と思ったら、(3)で打ったタグをsvn rmして(1)に戻る。

    リリースとは要するに公開ディレクトリにパッケージファイルを置くことである。 具体的には、パッケージのあるディレクトリに移動してrelease.shを実行すればよい。 release.shはruby配布物とかではないので、前任者から手に入れよう!(この記事執筆時点の物がこのページに添付してある) こいつは、

    1. ftpのトップ(~ftp/pub/ruby)にある前回リリースのパッケージへのリンクを削除して、
    2. ~ftp/pub/ruby/1.9に今回のパッケージを移動して、
    3. ftpのトップに今回のパッケージへのリンクを作成して、
    4. さらにruby-1.9-stable.なんとかというリンクも作ってくれる

    という優れものである。成瀬さんありがとう。 なお1.9系列専用なので、その他のバージョン系列を保守する人は適当に書き換える必要がある。

  7. へこへことアナウンスメールを書いてruby-listとruby-talkに投げる。 単に英語でだけ書いてruby-listとruby-talkに同時に投げるとか、日英併記してruby-listとruby-talkに同時に投げるとか、で特に誰からも苦情は来ないとは思うが、日本語はruby-listに、英語はruby-talkに、と丁寧に投げ分けるとちょっと親切かもしれない。あと、ここで英語でだけ書いたとしても、どうせ後で日本語でのアナウンス文は必要になる。 メールを投げるときにはPGP鍵で署名しておくといいかもしれない。

    アナウンス文を書くとき、(4)でコピペしておいた内容を転記するわけだが、パッケージのパスを有効なURLに書き換えるのを忘れると赤っ恥をかくことになるので注意しよう(前例あり)。 なおURLは ftp://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.3-pXXX.なんとか になる。

  8. アナウンス文の内容をちょっと加工して、www.ruby-lang.orgに掲載する。 とりあえず日英の2箇所を更新するのが自分の責任範囲だと思ってよい。 よくわからんかったら前回のアナウンス文面を穴があくほど見つめるとよい。

    なお特に注意すべき点として、以下のようなものがある。

    • 日本語版の場合、Page Title下の「more」を押して、Slugをちゃんと書くこと。
    • 前例に倣うならRDで書くと思うので、FilterをRDに設定すること。RD以外で書くならそれに合わせて。 なお、bodyとextendedの両方で設定する必要があるので要注意。
    • RD化時、よくリンクの URL: を忘れるので気をつけよう。
    • RD化すると改行が消えることを忘れないように。
    • StatusをPublishedにするまで公開されない。プレビューは...いちおうできるんだけど、結構めんどくさいので、誰かに聞いて学ぶか、諦めるか。
    • Pagesページの「Clear Page Cache」を押すまでトップページに反映されないので忘れないこと。 なお、このことを利用して押さないままにしておいていろいろ確認するという技もある(記事のURLを推測する能力が必要)が、実はRSSには既に流れてしまっているので、隠し続けることはできない。
  9. www.ruby-lang.orgのダウンロードページにこっそりとパッケージへの直リンクがあるので、探し出して今回のパッケージへのリンクに修正すること。 なお当たり前だが日英両方対応すべし。
  10. [email protected]に、(8)・(9)の作業を行ったことを報告しておくとよいと思う。 残念ながらそこまでやる人はあまりいないが。
  11. もしあなたが業務として保守作業を行っているなら、報告書への記載を忘れずに :)
  12. これですべき作業は全てである。お疲れ様でした。 後はTwitterでリリースした旨をつぶやいてRT数を稼ごう。

release.sh (335 Bytes) usa (Usaku NAKAMURA), 01/17/2013 06:51 pm