Release Checklist

Since we don't release all that often or consistently, we seem to forget some key steps in the process. Hence, a checklist! On this page the term "release" refers to the final stable release tag and binaries.

Testing
The following apply for all supported platforms and architectures.
 * Compile.
 * Video playback of popular codecs. (xvid, h264, vc1, mpeg2)
 * Audio playback of popular codecs. (mp3, aac(+), ogg, flac,, ac3, dts)
 * Playback from popular sources. (local, dvd, smb, http)
 * Scripts/plugins.
 * Initialization of new settings and databases.
 * Updating of settings and databases from the last stable release.

Pre-tag/branch

 * Update version in configure.in (see AC_INIT)
 * Update version string in xbmc/utils/GUIInfoManager.h
 * Update version string for OSX installer in xbmc/osx/Info.plist (there are two strings to change)
 * Update version string for Windows installer in xbmc/win32/XBMC_PC.rc
 * Update any necessary changelogs, readmes, known_bugs
 * Update XBMC Credits

Release

 * scp binaries to sourceforge in staging folder. xbmc-x.yy-zz.*
 * svn export tag and scp to sourceforge. Downloading the tarball from sourceforge tag WILL NOT WORK as it doesn't keep file attributes.
 * move from staging to final location (using shell service)
 * update links and analytics on xbmc.org/download
 * add xbmc.org frontpage news item. tick 'Announcements' category also (for sidebar)
 * Add trac version and set as default milestone.
 * [WIN32] copy the file XBMC.pdb for the released binary to the team ftp server and name it accordingly (is this all we need for reading crash dumps?)

Post-release

 * Update version string in xbmc/utils/GUIInfoManager.h to pre-[NextVersion].
 * Remove blanked strings from strings.xml to liberate them for reuse.