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.

Version scheme
Internal version numbering


 * 14.0 Alpha1: 13.9.701
 * 14.0 Alpha2: 13.9.702
 * 14.0 Beta1: 13.9.801
 * 14.0 RC1: 13.9.901
 * 14.0 final: 14.0.000
 * 14.1 final: 14.1.000
 * 14.1 Beta1: 14.1.801
 * 14.1 RC1: 14.1.901


 * 15.0 Alpha1: 14.9.701
 * 15.0 Alpha2: 14.9.702
 * 15.0 Beta1: 14.9.801
 * 15.0 RC1: 14.9.901
 * 15.0 final: 15.0.000

Example: https://github.com/xbmc/xbmc/pull/4633

Release manager
Before starting a new release and calling a feature freeze, a release manager needs to be picked. He will guide the release through the feature freeze process, beta stage, release candidates and in the end the final release. In case there need to be bugfixes he will handle those as well.

The Release Manager has absolute Authority regarding the release. From the moment of feature freeze he is in control. During feature freeze only bugfixes are allowed to go in and mayor ones need to go through a pull request. He will call the moment of beta cycle to final release.

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 string:
 * configure.in (see AC_INIT)
 * tools/android/depends/configure.in (see AC_INIT)
 * tools/android/packaging/xbmc/AndroidManifest.xml
 * Bump android:versionCode="1" by one for each beta/rc/release
 * Change android:versionName"12.0-BETA3" to match others
 * xbmc/utils/GUIInfoManager.h
 * tools/darwin/packaging/xbmc-ios/mkdeb-xbmc-ios.sh
 * tools/darwin/packaging/xbmc-atv2/mkdeb-xbmc-atv2.sh
 * xbmc/osx/Info.plist (there are two strings to change)
 * xbmc/win32/XBMC_PC.rc


 * Update any necessary changelogs, readmes, known_bugs
 * Update XBMC Credits

See below the version bump updates undertaken for Frodo Beta 1:
 * XBMC Version bump
 * json bump
 * default webinterface bump
 * Repo bump
 * Scraper sync

Release

 * tag release commit on github
 * build release builds on buildbot
 * 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?)

| Release bump example

PPA builds
Info here

Post-release
Post release the steps in Merge window should be followed again.