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
It makes sense to download fresh translations from Launchpad just before major releases, or on regular basis.
To do so, go to translation page https://translations.launchpad.net/qbzr
Select series for which you want to get translations, usually it's ok to go straight to trunk series: https://translations.launchpad.net/qbzr/trunk/+translations
And in Manual Synchronization section select "download" https://translations.launchpad.net/qbzr/trunk/+export You need PO format of files.
After some time you'll get an e-mail with download link.
Download that tarball and place it to the root of your qbzr development tree, then execute command:
python setup.py import_po
Inspect changes, run:
make mo
to ensure that everything is OK.
If there are new translation files for new languages appear (not under version control) - ensure you're bzr add them before commit (NOTE in NEWS.txt about new translations are very welcome).
Commit updated translations and push to Launchpad.
You'd better update transaltions before starting release process.
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
Also make announcement about release via Launchpad RSS:
???