[cubby][subversion][maven2]SVN & Maven2時代のリリース手順

昨日Cubbyのリリース作業をやったので、備忘録の意味も込めて手順を晒してみます。間違いやもっといい方法あればつっこみ歓迎です。

まず、trunkからリリース作業をおこなうためのリリースブランチを作成します。ブランチのコピー中に他のコミッタがコミットすると問題あるので手始めにtrunkのリビジョンを確認しておきます。

svn info https://www.seasar.org/svn/sandbox/cubby/trunk
最終更新リビジョン: 100

次にtrunkをリリースブランチにコピーします。

svn cp https://www.seasar.org/svn/sandbox/cubby/trunk https://www.seasar.org/svn/sandbox/cubby/branches/0.9.1.x -m 'release branche 0.9.1.x'

再度、trunkのリビジョンを確認して、コミットが行われていないことを確認します。

svn info https://www.seasar.org/svn/sandbox/cubby/trunk
最終更新リビジョン: 100

リリース用のブランチを「0.9.1.x」にしているのは、バグフィックス版などをリリースするときに「0.9.1.x」に対して作業なりパッチをあてて、バージョン「0.9.1.1」なども、同じリリースブランチで作業を行うためです。「0.9.1.x」系列のリリースブランチっていう意味になります。

次に、リリースブランチをチェックアウトします。このリリースブランチに対してリリースの作業を進めていきます。リリースブランチを使うとtrunkには影響を与えないので、他の開発者も継続して作業することができます。

mkdir work
cd work
svn co https://www.seasar.org/svn/sandbox/cubby/branches/0.9.1.x/cubby
svn co https://www.seasar.org/svn/sandbox/cubby/branches/0.9.1.x/cubby-examples

まずは、リリース用にMaven2の設定を変更します。主にpom.xml、site.xmlCubbyのバージョン番号からSNAPSHOTを外す必要があります。何カ所で使われているか確認してみます。

find . **/*.xml | xargs grep 0.9.2-SNAPSHOT

コマンドから一括置換する方法がわからなかったので、昨日はエディタでひとつづつ「0.9.2-SNAPHOST」を「0.9.2」に変更していきました。これいい方法ないすか?

次にビルドです。CubbyMaven2を使っているのでビルドは以下のコマンドで、テストとMaven2リポジトリへのデプロイが実行されます。Maven2ではテストが通らなかった場合、ビルドが中止されるので安全装置代わりに使えます。

cd cubby
mvn clean package install

これでJARファイルとプロジェクトサイト、配賦用のZIPファイルがtarget配下に作成されます。installを実行するのは次のwarファイル作成用にローカルリポジトリに最新のCubbyのJARファイルを配置するためです。

次にサンプルのwarファイルを作成します。

cd ../cubby-examples
mvn clean package

これでwarがtarget配下に作成されます。

最後にMaven2リポジトリにJARを上げます。

cd ../cubby
mvn source:jar javadoc:jar deploy -DupdateReleaseInfo=true

今までの作業結果をSVNのリリースブランチにコミットします。もし、ここでバグ修正などした場合は、該当箇所をtrunkにマージします(今回はありませんでした)。

svn ci -m '0.9.1 release'

リリースブランチからタグへコピーしてリリース作業完了です。

svn cp https://www.seasar.org/svn/sandbox/cubby/branches/0.9.1.x https://www.seasar.org/svn/sandbox/cubby/tags/0.9.1 -m 'release branche 0.9.1.x'

リリースブランチとかMaven2の連携部分については手前味噌になりますが「構成管理 実践入門」に詳しく書いてありますので、合わせてご覧下さい。Maven Release Pluginなどを使用するともっと簡単にpomの書き換えなどできるみたいよ。

注意:wwwというCubbyのサイトも更新する必要がありますが、ここでは説明を割愛しています。