Release process

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

TODO: Update these instructions for github releases! Translations are now on

Step one: Translations

Merge the translations from

If you are a member of you should be able to import all translations from some github web UI into the git repository.

If you are no member clone git:// and add the translations into your git repository.

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/ You should do a commit, and then tag the release.:


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
$ ./

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
  • Add article to
  • Send email to mailing lists