9.2. Release procedure

9.2.1. 必要なもの

以下はリリース手順に必要なものです。

  • Debian GNU/Linux (sid)

  • zshをユーザーシェルとして使います

以下の作業ディレクトリを使います。

  • MROONGA_DIR=$HOME/work/mroonga

  • MROONGA_CLONE_DIR=$HOME/work/mroonga/mroonga.clean

  • MROONGA_GITHUB_COM_PATH=$HOME/work/mroonga/mroonga.github.com

  • CUTTER_DIR=$HOME/work/cutter

  • CUTTER_SOURCE_PATH=$HOME/work/cutter/cutter

  • GROONGA_SOURCE_PATH=$HOME/work/groonga/groonga.clean

9.2.2. ビルド環境をセットアップする

以下のパッケージをインストールします:

% sudo apt-get install -V ruby mecab libmecab-dev gnupg2 dh-autoreconf python-sphinx bison

We use Vagrant for building deb or rpm packages and expect that Virtualbox package is already installed. If not, please install it in the following steps:

% cat /etc/apt/sources.list
deb http://ftp.jp.debian.org/debian/ sid main contrib
deb-src http://ftp.jp.debian.org/debian/ sid main contrib
% sudo apt-get update
% sudo apt-get install virtualbox

9.2.3. バージョンをあげる

最新のリリースへバージョンをあげる

% make update-version NEW_VERSION_MAJOR=9 NEW_VERSION_MINOR=1 NEW_VERSION_MICRO=0

9.2.4. 変更点を記述する

前回のリリース以降の最近の変更点を doc/source/news.rst へまとめます。このまとめはリリースノートでも使います。

以下のコマンドを前回のリリースからの変更点を収集するのに使います:

% git log -p --reverse $(git tag | tail -1)..

^commit でログを検索し、主な変更点を拾います。

含めるべきもの

  • ユーザーに影響のある変更点

  • 互換性を壊すような変更点

含めるべきでないもの

  • ユーザーに影響のない内部的な変更やリファクタリング

9.2.5. configureスクリプトの生成

masterブランチはconfigureスクリプトを含んでいないのでビルドするのにconfigureスクリプトを生成する必要があります。

autogen.sh を以下のコマンドで実行します:

% sh autogen.sh

configure スクリプトを生成します。

9.2.6. configureスクリプトの実行

Makefile を生成するために、 configure スクリプトを実行します。

リリース向けに以下のオプションとともに実行します。

% ./configure \
    --enable-document \
    --prefix=/tmp/local \
    --with-launchpad-uploader-pgp-key=(Launchpadに登録したkeyID) \
    --with-mroonga-github-com-path=$MROONGA_GITHUB_COM_PATH \
    --with-cutter-source-path=$CUTTER_SOURCE_PATH \
    --with-groonga-source-path=$GROONGA_SOURCE_PATH \
    --with-mysql-source=(The directory of MySQL source code) \
    --with-mysql-build=(The build directory of MySQL) \
    --with-mysql-config=(The path to mysql_config command)

--with-mysql-source の詳細については その他 を参照してください。

9.2.7. パッケージをアップロード可能か確認する

pacakgesユーザーでpackages.groonga.orgにログインできるかを確認します。

ログインできるかどうかは以下のコマンドで確認できます。

% ssh packages@packages.groonga.org

packages.groonga.orgにログインできないときは、sshの公開鍵を登録しておかないといけません。

9.2.8. make update-latest-releaseを実行する

make update-latest-release を OLD_RELEASE_DATE や NEW_RELEASE_DATE とともに実行します。

9.09 のリリースの際は、以下のコマンドを実行しました。

% make update-latest-release OLD_RELEASE=9.09 OLD_RELEASE_DATE=2019-09-27 NEW_RELEASE_DATE=2019-10-30

このコマンドはMroongaのサイトのHTMLファイルやspecやdebian/changelogファイルのバージョンを更新します。

9.2.9. リリースのためのタグ打ち

タグを打つために以下のコマンドを実行します:

% make tag
% git push --tags origin

注釈

リリースのためにタグを打ったら、confiugre スクリプトを実行します。このタグの情報はドキュメントを生成するときに反映されます。

9.2.10. アーカイブファイルのアップロード

次に配布用のアーカイブファイル(tar.gz)を作成します:

% make dist

作業ディレクトリを packages/source に変更します。

% cd packages/source

make download を実行し、同期します。

% make download

ソースアーカイブを生成するために、 make archive を実行します:

% make archive

アーカイブファイルをアップロードするために、make upload を実行します:

% make upload

結果として、 tar.gz アーカイブ・ファイルが https://packages.groonga.org/source/mroonga/から入手可能になります。

9.2.11. リリース向けにパッケージを作成する

LinuxとWindowsのパッケージを作成します。

9.2.11.1. Debian

作業ディレクトリを apt に変更します:

% cd apt

以下のコマンドを実行します:

% make download
% make build
% make upload

パッケージをアップロードした後、署名やメタデータを更新します。詳細はGroongaのリリース手順を参照してください。

9.2.11.2. Debian系(Ubuntu)

Ubuntuの場合、パッケージはlaunchpad.netのPPAで提供されます。

作業ディレクトリを ubuntu にし、make upload コマンドを実行します:

% cd packages/ubuntu
% make upload

パッケージのアップロードに成功すると、パッケージのビルドがlaunchpad.netにて行われます。アップロードに成功するとメールで通知が届きます。ビルドが成功するとパッケージをPPA経由でインストールできます。

* https://launchpad.net/~groonga/+archive/ubuntu/ppa

9.2.11.3. Red Hat系

作業ディレクトリを yum に変更します:

% cd apt

以下のコマンドを実行します:

% make download
% make build
% make upload

パッケージをアップロードした後、署名やメタデータを更新します。詳細はGroongaのリリース手順を参照してください。

9.2.11.4. Windows

Windows向けには、 AppVeyor CI の成果物を使っています。

9.2.12. ドキュメントをアップロード

  1. mroonga.github.comリポジトリをcloneする

  2. make update-document を実行する

  3. Mroonga.github.comの変更点をcommit&&pushする

9.2.13. リリースをメーリングリストで告知

リリースアナウンスをそれぞれのメーリングリストに送ります

9.2.14. リリースをTwitterで告知

Tweetリンクをクリックすると、最新のリリースについてツイートできます。タイトルやブログエントリのURLがツイートに含まれます。

ツイートは日本語と英語のブログエントリから行います。ツイートは groonga アカウントでログインした状態で行ってください。