9.2. Release procedure — Mroonga vmrn_version documentation

Skip to main content
`Ctrl`+`K`

# 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.

1. `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`

2. `release:tag`

   - Push the tag for release

   - This will start the automatic release

3. `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.

- GitHub Actions

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.

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