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
PACKAGES_GROONGA_ORG_REPOSITORY=$HOME/work/groonga/packages.groonga.org
9.2.2. ビルド環境をセットアップする¶
以下のパッケージをインストールします:
% sudo apt-get install -V ruby mecab libmecab-dev gnupg2 dh-autoreconf python-sphinx bison
9.2.3. 変更点を記述する¶
前回のリリース以降の最近の変更点を doc/source/news.rst
へまとめます。このまとめはリリースノートでも使います。
以下のコマンドを前回のリリースからの変更点を収集するのに使います:
% git log -p --reverse $(git tag | tail -1)..
^commit
でログを検索し、主な変更点を拾います。
含めるべきもの
ユーザーに影響のある変更点
互換性を壊すような変更点
含めるべきでないもの
ユーザーに影響のない内部的な変更やリファクタリング
9.2.4. configureスクリプトの生成¶
masterブランチはconfigureスクリプトを含んでいないのでビルドするのにconfigureスクリプトを生成する必要があります。
autogen.sh
を以下のコマンドで実行します:
% sh autogen.sh
configure
スクリプトを生成します。
9.2.5. configureスクリプトの実行¶
Makefile
を生成するために、 configure
スクリプトを実行します。
リリース向けに以下のオプションとともに実行します。
% ./configure \
--enable-document \
--prefix=/tmp/local \
--with-launchpad-uploader-pgp-key=(The key ID that is registered Launchpad) \
--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
の詳細については その他 を参照してください。
注釈
PPAのリポジトリは、同名のパッケージを上書いてアップロードできないので、不安定版のリポジトリでビルドできることを確認してから、安定版のリポジトリへアップロードするようにしてください。
9.2.6. パッケージをアップロード可能か確認する¶
pacakgesユーザーでpackages.groonga.orgにログインできるかを確認します。
ログインできるかどうかは以下のコマンドで確認できます。
% ssh packages@packages.groonga.org
packages.groonga.orgにログインできないときは、sshの公開鍵を登録しておかないといけません。
9.2.7. 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.8. 各テストの結果確認¶
リリース用のタグを設定する前に、以下のテストが全てパスしているかを確認します。タグを設定してから問題が発覚すると、再度リリースすることになってしまうので、タグを設定する前に問題がないか確認します。
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¶
作業ディレクトリを packages
に変更します。
% cd packages
以下のコマンドを実行します:
% rake apt
これで、パッケージのビルドと https://packages.groonga.org/ へのアップロードが完了しました。しかし、この段階ではビルドしたパッケージはまだ未署名なので、以下のコマンドでパッケージを署名します。
% cd $PACKAGES_GROONGA_ORG_REPOSITORY
% rake apt
9.2.11.2. Debian系(Ubuntu)¶
Ubuntuの場合、パッケージはlaunchpad.netのPPAで提供されます。
作業ディレクトリを packages
にし、rake ubuntu:upload
コマンドを実行します:
% cd packages
% rake ubuntu
パッケージのアップロードに成功すると、パッケージのビルドがlaunchpad.netにて行われます。アップロードに成功するとメールで通知が届きます。ビルドが成功するとパッケージをPPA経由でインストールできます。
https://launchpad.net/~groonga/+archive/ubuntu/ppa
9.2.11.3. Red Hat系¶
作業ディレクトリを packages
に変更します。
% cd packages
以下のコマンドを実行します:
% rake yum
これで、パッケージのビルドと https://packages.groonga.org/ へのアップロードが完了しました。しかし、この段階ではビルドしたパッケージはまだ未署名なので、以下のコマンドでパッケージを署名します。
% cd $PACKAGES_GROONGA_ORG_REPOSITORY
% rake yum
9.2.11.4. Windows¶
Windows向けには、 GitHub release page の成果物を使っています。
9.2.12. Update Docker images¶
Docker Hub のMroongaのDockerイメージを更新します。
MroongaのDockerリポジトリー をクローンし、リポジトリーの中のDockerfileを更新します。
以下は、MySQLのバージョンが 5.7.26
、 Mroongaのバージョンが 9.01
、Groongaのバージョンが 9.0.2
の場合の例です。:
% mkdir -p ~/work/mroonga
% test -e ~/work/mroonga/docker.clean || git clone --recursive git@github.com:mroonga/docker.git ~/work/mroonga/docker.clean
% cd ~/work/mroonga/docker.clean
% git clean -xdf
% git checkout .
% git pull
% ./update.sh 5.7.26 9.01 9.0.2 #Automatically update Dockerfiles and commit changes and create a tag.
% git push
作業時には最新のバージョンを指定してください。
MroongaのDockerリポジトリーのGithub Actions が成功しているのを確認してから、タグをpushします。:
% git push --tags
タグをpushすると、MroongaのDockerリポジトリーのGithub ActionsがDocker HubのMroongaのDockerイメージを自動で更新します。
MySQL 5.x.x と 8.x.x の両方でこの手順を実行する必要があります。
9.2.13. ドキュメントをアップロード¶
mroonga.github.comリポジトリをcloneする
以下のように
make update-document
を$MROONGA_CLONE_DIR
配下で実行する% make update-document
Mroonga.github.comの変更点をcommit&&pushする
9.2.14. Blog(Mroongaブログ)の更新¶
以下のファイルを更新します。
$MROONGA_GITHUB_COM_PATH/ja/_posts/(the date of release)-mroonga-(version).md
$MROONGA_GITHUB_COM_PATH/en/_posts/(the date of release)-mroonga-(version).md
Jekyllを使ってWebブラウザー上でブログの内容を確認します:
% jekyll serve
Webブラウザーで http://localhost:4000 にアクセスして内容を確認します。
注釈
ブログの内容を非公開にしたい場合は、 .md
ファイル内の published:
を false
に設定します。:
---
layout: post.en
title: Mroonga 10.01 has been released!
description: Mroonga 10.01 has been released!
published: false
---
9.2.15. リリースをメーリングリストで告知¶
リリースアナウンスをそれぞれのメーリングリストに送ります
ml@mysql.gr.jp for Japanese
groonga-dev@lists.osdn.me for Japanese
groonga-talk@lists.sourceforge.net for English
9.2.16. リリースをTwitterで告知¶
Tweetリンクをクリックすると、最新のリリースについてツイートできます。タイトルやブログエントリのURLがツイートに含まれます。
ツイートは日本語と英語のブログエントリから行います。ツイートは groonga
アカウントでログインした状態で行ってください。
9.2.17. リリースをFacebookで告知¶
FacebookのMroongaグループからリリースを告知します。
9.2.18. バージョンをあげる¶
最新のリリースへバージョンをあげる:
% make update-version NEW_VERSION_MAJOR=9 NEW_VERSION_MINOR=1 NEW_VERSION_MICRO=0