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. リリースをメーリングリストで告知#

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

9.2.14. リリースをTwitterで告知#

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

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

9.2.15. リリースをFacebookで告知#

FacebookのMroongaグループからリリースを告知します。

https://www.facebook.com/mroonga/

9.2.16. バージョンをあげる#

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

% rake dev:version:bump NEW_VERSION=xx.xx