Short checklist and instructions how to make release

When you're ready to make release X.Y.Z you need to do following steps.

Prepare code

  1. Update ./NEWS.txt with descriptions of user-visible changes.

  2. Update version numbers in following places:

    • ./__init__.py: at the beginning of file:

      version_info = (X, Y, Z, 'final', 0)
      
    • ./setup.py: function setup() at the end of file, argument version:

      version='X.Y.Z',
      
    • ./installer/qbzr-setup.iss: at the beginning of file:

      AppVerName=QBzr X.Y.Z
      OutputBaseFilename=qbzr-setup-X.Y.Z
      
  3. Commit this changes and tag the revision with label: release-X.Y.Z

  4. Push the code to Launchpad

Register release at Launchpad

  1. Make corresponding page for new release on Launchpad:

    https://launchpad.net/qbzr/trunk/+addrelease

  2. Put info about release from ./NEWS.txt to "Release notes" section. You can leave Changelog section empty.

Build distribution files

Building + signing distribution files now possible to do in semi-automated way using make utility.

Run command:

make release RELEASE=X.Y.Z

This command will create sources tarball (qbzr-X.Y.Z.tar.gz) and windows universal installer (qbzr-setup-X.Y.Z.exe) and will sign both with GPG.

Upload tarball and installer with their gpg-signatures to Launchpad:

https://launchpad.net/qbzr/trunk/X.Y.Z/+adddownloadfile

Building distribution files under the hood

  1. Make source code tarball:

    bzr export --root=qbzr qbzr-X.Y.Z.tar.gz
    

    The file qbzr-X.Y.Z.tar.gz will be created in tree root directory. Sign this file with your GPG key:

    gpg -ab qbzr-X.Y.Z.tar.gz
    
  2. Build binary translations files:

    python setup.py build_mo -f
    
  3. Make Windows universal installer:

    1. Run Inno Setup script compiler:

      iscc installer/qbzr-setup.iss
      

    This command will produce qbzr-setup-X.Y.Z.exe file in tree root directory.

    1. Sign this file with your GPG key:

      gpg -ab qbzr-setup-X.Y.Z.exe
      

Update QBzr Wiki page

  1. Update QBzr page at Bazaar wiki with corresponding NEWS entry, update links to tarball and installers.

    http://wiki.bazaar.canonical.com/QBzr

Make announcement

  1. Send short e-mail with announcement to:
  2. Optionally make announcement about release via Launchpad RSS:

    https://launchpad.net/qbzr/+announce

Finishing stuff at Launchpad

Create deb packages with Launchpad PPA

Usually Gary van der Merwe do the packages for Ubuntu.