9.2. Release procedure#
9.2.1. Requirements#
Here is the requirements about release procedure.
Debian GNU/Linux (sid)
Use zsh as user shell
Use the following working directories.
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. Setup build environment#
Install the following packages:
$ sudo apt-get install -V ruby mecab libmecab-dev gnupg2 dh-autoreconf bison
9.2.3. Describe the changes#
Summarize recent changes since the previous release into doc/source/news/xx.md
.
Should be included
The changes which affect to users
The changes which broke compatibility
Shoud not be included
The changes which doesn’t affect to users (Internal source code changes or refactoring)
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. Execute release
task#
Execute rake release
:
$ rake release
9.2.4.1. About release
task#
release
task executes the three tasks.
release:version:update
Append the changelog of the new version to the spec file of the RPM package, and so on
You can also specify a release date with
NEW_RELEASE_DATE
release:tag
Push the tag for release
This will start the automatic release
dev:version:bump
We will bump up the version for the next release
You can also specify a version with
NEW_VERSION
9.2.5. Confirm CI#
We confirm whether below CIs green or not.
We use CI to do automatic releases, so if it fails, we retry.
9.2.6. Update Docker images#
Execute the following commands:
$ git clone git@github.com:mroonga/docker.git mroonga-docker
$ cd mroonga-docker
$ ./update.sh
$ git push
$ git push --tags
9.2.7. Update documents#
Execute the following commands:
$ export GROONGA_ORG_REPOSITORY=${HOME}/work/groonga.org
$ git clone git@github.com:groonga/groonga.org.git ${GROONGA_ORG_REPOSITORY}
$ rake -C ${MROONGA_ORG_DIR} release
9.2.8. Announce release for X(Twitter)#
Click Tweet link in Mrooga blog entry. You can share tweet about latest release. If you use tweet link, title of release announce and URL is embedded into your tweet.
Execute sharing tweet in Japanese and English version of blog entry.
Note that this tweet should be done when logged in by groonga
account.
9.2.9. Announce release for Facebook#
We announce release from Mroonga group in Facebook.