Release process

This is an attempt to document what needs to be done in order to create a release for Exaile.

Step one: Translations

Merge the translations branch for the current series.

If a new series was created and no translations branch exists, follow these steps:

  • Create a new branch for translations, include the series in the branch name, like “translations-3.4.x” for the “3.4.x” series
  • Open the translation settings page of the series on Launchpad: https://translations.launchpad.net/exaile/3.4.x/+translations-settings
  • In “Import translations from branch” you should at least select “Import template files” to have changes in code automatically show up in the translation tool of Launchpad.
  • In “Export translations to branch” you just “Choose a target branch”, namely the one you just created.

You can reach the settings for all series via the general translations page: https://translations.launchpad.net/exaile

Step two: Version bumping

First, adjust the version in your local working tree to reflect the version you want to make a release for. We should never do releases with -dev in them.

The file to adjust is xl/version.py. You should do a commit, and then tag the release.:

$ bzr tag RELEASE_VERSION

Step three: Linux + Windows

The ‘make dist’ command will build both the source distribution and the Windows version using NSIS running on Wine. You must install NSIS and the inetc plugin.

Once everything is installed, you can just run the following:

$ make dist

Step four: OSX

You need py2app installed to create an OSX dmg file. Once you have that installed, then you can do the following:

$ cd tools/osx
$ ./create_dmg.sh

If everything succeeded, you should find a file called “exaile-VERSION.dmg” at dist/exaile-VERSION.dmg.

Step five: Upload everything to launchpad

  • Linux: exaile-VERSION.tar.gz + exaile-VERSION.tar.gz.asc
  • Windows: exaile-VERSION.exe + exaile-VERSION.exe.asc
  • OSX: exaile-VERSION.dmg + exaile-VERSION.dmg.asc

Step five: clean any relevant bug reports

Next, any bugs on launchpad for the release should be marked as ‘Fix released’. There is an easy way to do this via email... TODO

Step six: bump the version again

The version in trunk should reflect the upcoming release with a -dev in it.

TODO: Except after a beta/RC? What’s the right transition?

Step seven: send release notices

  • Update download links on exaile.org
  • Add article to exaile.org
  • Send email to mailing lists