Archive:Release Checklist: Difference between revisions

From Official Kodi Wiki
Jump to navigation Jump to search
>Martijn
mNo edit summary
 
(18 intermediate revisions by 6 users not shown)
Line 1: Line 1:
Since we don't release all that often or consistently, we seem to forget some key steps in the process. Hence, a checklist!<br>'''On this page the term "release" refers to the final stable release tag and binaries.'''
Since we don't release all that often or consistently, we seem to forget some key steps in the process. Hence, a checklist!<br />'''On this page the term "release" refers to the final stable release tag and binaries.'''
==Testing==
 
== 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.
The following apply for all supported platforms and architectures.
* Compile.
* Compile.
Line 9: Line 44:
* Initialization of new settings and databases.
* Initialization of new settings and databases.
* Updating of settings and databases from the last stable release.
* Updating of settings and databases from the last stable release.
==Pre-tag/branch==
 
== Pre-tag/branch ==
* Update version string:
* Update version string:
:* configure.in (see AC_INIT)
:* configure.in (see AC_INIT)
Line 25: Line 61:


See below the version bump updates undertaken for Frodo Beta 1:
See below the version bump updates undertaken for Frodo Beta 1:
* [https://github.com/xbmc/xbmc/pull/1897 XBMC Version bump]
* [https://github.com/MartijnKaijser/xbmc/commit/d2b6456e09bf0ff74ecbac73a49d3fec72cacb17 XBMC Version bump]
* [https://github.com/xbmc/xbmc/commit/d9c5aad1b8d2fab670eacee286b39263f898eed5 json bump]
* [https://github.com/xbmc/xbmc/commit/d9c5aad1b8d2fab670eacee286b39263f898eed5 json bump]
* [https://github.com/xbmc/xbmc/commit/fc6558ad7c82538179a89faceecbaaa6a6b872be default webinterface bump]
* [https://github.com/xbmc/xbmc/commit/fc6558ad7c82538179a89faceecbaaa6a6b872be default webinterface bump]
Line 31: Line 67:
* [https://github.com/xbmc/xbmc/pull/1789 Scraper sync]
* [https://github.com/xbmc/xbmc/pull/1789 Scraper sync]


==Release==
== Release ==
* scp binaries to sourceforge in staging folder. xbmc-x.yy-zz.*
* tag release commit on github
* svn export tag and scp to sourceforge. Downloading the tarball from sourceforge tag WILL NOT WORK as it doesn't keep file attributes.
* build release builds on buildbot
* move from staging to final location (using shell service)
* move from staging to final location (using shell service)
* update links and analytics on xbmc.org/download
* update links and analytics on xbmc.org/download
Line 40: Line 76:
* [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?)
* [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.


[https://github.com/xbmc/xbmc/commit/fb595f23fbf4f4a4bc9297373f5f0138a1e01a9f| Release bump example]
=== PPA builds ===
Info here
== Post-release ==
Post release the steps in Merge window should be followed again.


[[Category:Team XBMC specific notes]]
[[Category:Development-Archived]]
[[Category:Development]]

Latest revision as of 07:26, 3 August 2020

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:

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.