Overview

The releases manager is responsible for producing releases of current and legacy releases. It is able to do this irrespective of source control method (in conjunction with the buildsystem).

The release manager uses the buildsystem, but it is seperate from it. The buildsystem is versioned per release, but the latest release manager is used to produce old releases.

Technology

The releases manager is a set of python scripts capable of checking out a buildsystem, and running it. It provides to the buildsystem the capability to checkout new modules from source control.

Releases are stored in an xml file, which holds information such as external name, internal name, version, version status, version control tag name, and build step.

Releases can then be created in one step from the command line, through a command such as

python BuildRelease.py build ArmyOfDarkness

where ArmyOfDarkness is the internal build name.

Advantages

Future improvements

Allow parameters to be passed into the buildstep function. For example, the website buildsystem requires a destination to copy files to, whether it is a local copy, or a remote ftp location. The release manager should be able to pass in build specific parameters to the buildsystem.

News

Release manager unit tests

16 September 2004

The release manager now includes unit tests that can be run through the command
python BuildRelease.py test

Auto tagging releases

16 September 2004

New releases can now be created automatically, following the successful build of another release. For example,
python BuildRelease.py makerelease ArmyOfDarkness 'Release candidate 3'
will build a new release from the 'ArmyOfDarkness' release, assuming the release passes (ie: builds, unit tests, etc). This includes tagging the release in source control.