Table of Contents

Mantis Release Process

Prerequisites

To execute the steps described in this document, the operator must have the following in terms of access rights and setup

  1. To test before the release
    • A local machine with MantisBT
  2. To prepare the release
  3. To update mantisbt.org
    • root access on the server
    • administrator access on the bugtracker
  4. To publish the release
    • Ability to post on mantisbt-announce and mantisbt-dev mailing lists, Twitter and blog
    • Admin access to Sourceforge

Planning the Release

This activity should start about 2 weeks before the planned release date.

General Readiness

Testing

For major releases, a regression of all features is very desirable. Testing should cover:

For reference, you may also read the test plan for new Mantis releases in Debian.

Localization

File Cleanup

Preparing the Release

Localization

Repository Preparation

Cutting the Release

Troubleshooting failure to sign tags

Signing the tag fails if GIT cannot map the user with the gpg key, as in the example below

$ git tag -s release-$VERSION -m "Stable release $VERSION"
gpg: skipped "Your Name <name@example.com>": secret key not available
gpg: signing failed: secret key not available
error: gpg failed to sign the data
error: unable to sign the tag

For automatic key mapping, git config user.name and git config user.email must exactly match the gpg key's uid. If they don't, there are 2 options:

  1. Manually specify the key when signing the tag
    $ git tag -u <key-id> release-$VERSION -m "Stable release $VERSION"
  2. Update git config settings
    • Define which key to use
      $ git config [--global] user.signingkey <key-id>
    • Try to sign the tag again

Packaging the Release

Generate release tarballs using the buildrelease-repo.py script found in the mantisbt-tools.git repository:

$ /build/buildrelease-repo.py --fresh --docbook --ref release-$VERSION --clean /path/to/output

This will create the following files in the /path/to/output directory specified in the command.

The –docbook option will automatically build single-file versions of the manuals into the tarball's /doc directory.

Updating mantisbt.org

Bugtracker

Website

Nightly builds

When releasing a new major (X+1.0.0) or minor (X.Y+1.0) release, the nightly builds script must be updated so that the files are generated for the appropriate branches.

To make the change permanent, the file should be committed to the mantisbt/mantisbt-tools repository.

If desired, the script may be executed manually at this point. Note that it normally does not produce any output; check the log file at /var/log/nightly-builds.log for errors.

$ sudo /srv/mantisbt-tools/nightly-builds.sh

Deployment

This section describes how to deploy the new release on the official and demo bugtrackers on http://mantisbt.org.

The task can either be performed by executing a script, or manually (aka the hard way); please refer to the relevant section below.

Automated process (Update script)

Note: the script is also able to update a single tracker, or to target a specific commit instead of the current upstream branch's HEAD, as follows:

$ ../mantisbt-tools/update-trackers.sh -c <Tag or Commit sha> bugs

Please refer to the script's help and comments for further details on command-line options.

Manual process

Also refer to MantisBT Administration Guide upgrade section.

Upgrade Official Bug Tracker Instance

Publishing the Release

Source Forge

Notifications

The notifications below require accounts that only vboctor has access to…

Prepare for next release

Bump the version number

The MantisBT version constant must be increased to reflect the current state of the development branch.

This ensures that people running Mantis from the GIT repository are not led to believe they are working with an official release, and allows the Nightly builds to reference the proper version in the zip/tarball file name.