When you're ready to make release X.Y.Z you need to do following steps.
Update ./NEWS.txt with descriptions of user-visible changes.
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
Commit this changes and tag the revision with label: release-X.Y.Z
Push the code to Launchpad
Make corresponding page for new release on Launchpad:
Put info about release from ./NEWS.txt to "Release notes" section. You can leave Changelog section empty.
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
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
Build binary translations files:
python setup.py build_mo -f
Make Windows universal installer:
Run Inno Setup script compiler:
iscc installer/qbzr-setup.issThis command will produce qbzr-setup-X.Y.Z.exe file in tree root directory.
Sign this file with your GPG key:
gpg -ab qbzr-setup-X.Y.Z.exe
Update QBzr page at Bazaar wiki with corresponding NEWS entry, update links to tarball and installers.
Optionally make announcement about release via Launchpad RSS:
Usually Gary van der Merwe do the packages for Ubuntu.