Skip to content

Latest commit

 

History

History
124 lines (93 loc) · 5.29 KB

RELEASING.md

File metadata and controls

124 lines (93 loc) · 5.29 KB

Search Index Rebuilder (SIR) release process

Preamble: This document covers steps for releasing new versions of Search Index Rebuilder which is performed by maintainers only. It includes discussion about private servers, repositories and tools which other contributors don’t have access to. It is made public for transparency and to allow for improvement suggestions.

Table of contents

Prerequisites

  • Docker
  • Git

Interdependencies

Both repositories mb-solr and mbsssss may have to be updated at the same time. Make sure to keep those working with SIR in any case.

The repository musicbrainz-docker can be used to test everything together locally. The website test.mb.o can be used to get community feedback as well if needed.

Update SQL trigger files

Assuming that you followed development setup for local development of Search Index Rebuilder, run the following commands in the indexer service:

python -m sir triggers -bid 2
./GenerateDropSql.pl

Prepare Jira tickets

Prepare GitHub release notes

  • Draft a new release at https://github.com/metabrainz/sir/releases;
  • Set semantic version number M.m.p for release title. A new major version M is required when SIR cannot be updated independently of other search components (See below);
  • Copy the formatted list of resolved tickets from unreleased SEARCH versions (by clicking on sir-next, then on “Release Notes“) to the description;
  • Add an introductive section “New Requirements” i, especially if a new version is required for any of the following:
    • MusicBrainz database schema (musicbrainz-server schema-change code and MBDB schema documentation),
    • MusicBrainz XML metadata schema (mmd-schema releases),
    • its associated Python bindings (mb-rngpy tags),
    • MusicBrainz Solr search schema (mbsssss releases),
    • and its associated MusicBrainz Solr query response writer (mb-solr releases);
  • Add update instructions if needed (to reinstall triggers or rebuild any search index);
  • Add task list items to cover other (supposedly unnoticeable) changes.

Add Git tag

For version M.m.p:

git status
# Please verify that the clone is on branch master without any local change
git pull --ff-only
git tag 'vM.m.p' -m 'One-line summary'

Build Docker image

docker/push.sh

Please verify that a new image tag (M.m.p-git2consul) is available from from https://hub.docker.com/r/metabrainz/sir/tags.

Deploy to production

Point deployment configuration to the new image and follow update instructions if any.

Push Git tag

git push origin 'vM.m.d'

Publish GitHub release notes

Choose the above pushed tag for the above drafted release and publish it.

Update Jira tickets

  1. Edit sir-next from SEARCH component versions (in “Indexer” component) as follows:
    • Change name to sir-M.m.p
    • Set release date
    • Replace description with the GitHub release URL;
  2. Close tickets for this version from SEARCH releases;
  3. Mark it as released;
  4. Archive the previous sir-* version.