9.2. Release procedure#
9.2.1. 必要なもの#
以下はリリース手順に必要なものです。
Debian GNU/Linux (sid)
zshをユーザーシェルとして使います
以下の作業ディレクトリを使います。
MROONGA_SOURCE_DIR=$HOME/work/mroonga
MROONGA_BUILD_DIR=$HOME/work/build-dir/mroonga
MROONGA_ORG_DIR=$HOME/work/mroonga.org
MARIADB_SOURCE_DIR=$HOME/work/mariadb
MARIADB_BUILD_DIR=$HOME/work/build-dir/mariadb
GROONGA_SOURCE_DIR=$HOME/work/groonga
GROONGA_BUILD_DIR=$HOME/work/build-dir/groonga
INSTALL_DIR=/tmp/local
9.2.2. ビルド環境をセットアップする#
以下のパッケージをインストールします:
% sudo apt-get install -V ruby mecab libmecab-dev gnupg2 dh-autoreconf python-sphinx bison
% pip3 install -U sphinx myst-parser linkify-it-py
9.2.3. 変更点を記述する#
前回のリリース以降の最近の変更点を doc/source/news/xx.md
へまとめます。
含めるべきもの
ユーザーに影響のある変更点
互換性を壊すような変更点
含めるべきでないもの
ユーザーに影響のない内部的な変更やリファクタリング
Execute the following command to create HTML for news:
% cmake -S ${MARIADB_SOURCE_DIR} -B ${MARIADB_BUILD_DIR} -GNinja -DCMAKE_INSTALL_PREFIX=${INSTALL_DIR} -DPLUGIN_CASSANDRA=NO
% cmake --build ${MARIADB_BUILD_DIR}
% cmake --install ${MARIADB_BUILD_DIR}
% cmake -S ${GROONGA_SOURCE_DIRECTORY} -B ${GROONGA_BUILD_DIR} --preset=release-default --fresh -DCMAKE_INSTALL_PREFIX="${INSTALL_DIR}"
% cmake --build ${GROONGA_BUILD_DIR}
% cmake --install ${GROONGA_BUILD_DIR}
% PKG_CONFIG_PATH=${INSTALL_DIR}/lib/pkgconfig cmake -S ${MROONGA_SOURCE_DIRECTORY} -B ${MROONGA_BUILD_DIR} --fresh --preset=doc -DCMAKE_INSTALL_PREFIX="${INSTALL_DIR}" -DMYSQL_SOURCE_DIR=~${MARIADB_SOURCE_DIR} -DMYSQL_BUILD_DIR=${MARIADB_BUILD_DIR} -DMYSQL_CONFIG=${INSTALL_DIR}/bin/mariadb_config
% cmake --build ${MROONGA_BUILD_DIR}
9.2.4. パッケージをアップロード可能か確認する#
pacakgesユーザーでpackages.groonga.orgにログインできるかを確認します。
ログインできるかどうかは以下のコマンドで確認できます。
% ssh packages@packages.groonga.org
packages.groonga.orgにログインできないときは、sshの公開鍵を登録しておかないといけません。
9.2.5. make update-latest-releaseを実行する#
rake release:version:update
を OLD_RELEASE_DATE や NEW_RELEASE_DATE とともに実行します。
14.07 のリリースの際は、以下のコマンドを実行しました
% rake release:version:update OLD_RELEASE=14.04 OLD_RELEASE_DATE=2024-06-12 NEW_RELEASE_DATE=2024-09-06
このコマンドはdebian/changelogファイルのバージョンを更新します。
9.2.6. 各テストの結果確認#
リリース用のタグを設定する前に、以下のテストとビルドが全てパスしているかを確認します。タグを設定してから問題が発覚すると、再度リリースすることになってしまうので、タグを設定する前に問題がないか確認します。
How to build packages for Ubuntu on Nightly:
Download source archive from GitHub actions.
% mv mroonga-14.07.tar.gz mroonga/
% cd mroonga/packages
% rake ubuntu DPUT_CONFIGURATION_NAME=groonga-ppa-nightly DPUT_INCOMING="~groonga/ubuntu/nightly" LAUNCHPAD_UPLOADER_PGP_KEY=xxxxxxx
9.2.7. リリースのためのタグ打ち#
タグを打つために以下のコマンドを実行します:
% rake release:tag
9.2.8. アーカイブファイルのアップロード#
Execute the following command for uploading source archive:
% cd packages/source
% rake source
結果として、 tar.gz
アーカイブ・ファイルが https://packages.groonga.org/source/mroonga/から入手可能になります。
9.2.9. リリース向けにパッケージを作成する#
LinuxとWindowsのパッケージを作成します。
9.2.9.1. Debian#
作業ディレクトリを packages
に変更します。
% cd packages
以下のコマンドを実行します:
% rake apt
これで、パッケージのビルドと https://packages.groonga.org/ へのアップロードが完了しました。しかし、この段階ではビルドしたパッケージはまだ未署名なので、以下のコマンドでパッケージを署名します。
% cd $PACKAGES_GROONGA_ORG_REPOSITORY
% rake apt
9.2.9.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.9.3. Red Hat系#
作業ディレクトリを packages
に変更します。
% cd packages
以下のコマンドを実行します:
% rake yum
これで、パッケージのビルドと https://packages.groonga.org/ へのアップロードが完了しました。しかし、この段階ではビルドしたパッケージはまだ未署名なので、以下のコマンドでパッケージを署名します。
% cd $PACKAGES_GROONGA_ORG_REPOSITORY
% rake yum
9.2.9.4. Windows#
Windows向けには、 GitHub release page の成果物を使っています。
9.2.10. Update Docker images#
TODO
9.2.11. ドキュメントをアップロード#
以下のコマンドを実行します:
% rake release:document:update BUILD_DIR=${MROONGA_BUILD_DIR} MROONGA_ORG_DIR=${MROONGA_ORG_DIR}
mroonga.orgの変更点をcommit&&pushする。
9.2.12. 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.13. リリースをメーリングリストで告知#
リリースアナウンスをそれぞれのメーリングリストに送ります
ml@mysql.gr.jp for Japanese
groonga-dev@lists.osdn.me for Japanese
groonga-talk@lists.sourceforge.net for English
9.2.14. リリースをTwitterで告知#
Tweetリンクをクリックすると、最新のリリースについてツイートできます。タイトルやブログエントリのURLがツイートに含まれます。
ツイートは日本語と英語のブログエントリから行います。ツイートは groonga
アカウントでログインした状態で行ってください。
9.2.15. リリースをFacebookで告知#
FacebookのMroongaグループからリリースを告知します。
9.2.16. バージョンをあげる#
最新のリリースへバージョンをあげる:
% rake dev:version:bump NEW_VERSION=xx.xx