1. SCons
  2. Core
  3. SCons


Clone wiki

SCons / ReleaseHOWTO / TipFinalBody

Table of Contents

!INCLUDE "InitHG.md"

$ export VERSION=3.2.0

Check Out Release

!INCLUDE "CheckOutRelease.md"

Create Branch for Release

hg branch rel_$VERSION

Update Release Values

Verify that release_level in ReleaseConfig is being set to final.

!INCLUDE "UpdateFiles.md"

Commit Release

Look at the log messages in commit.txt and create log.file that hits the highlights of the changes that have been incorporated. Much of the information should already be in src/Announce.txt, so it mostly involves copy-n-past from there. Cut it heavily to one or two lines per feature; the major use of this log is people who are scanning to see where a feature was added, and they will appreciate clarity and brevity. This is an example of what log.file might be like:

Rebased the release branch to r54321 of the checkpoint branch.
  -- The blah was updated to do foo
  -- Feature bar was added by John Doe
  -- Various typos

Commit the changes using the log message:

!INCLUDE "Commit.md"

Build Candidate Packages

!INCLUDE "Bootstrap.md"

Test the Candidate Packages

This script is kept in the distribution as bin/xxxxxxxxx:

$ set -e
$ python runtest.py -a

Make a copy of it and edit it based on the description below.

Regression Test

The first line of the script runs the regression test. The SCons BuildBot monitors this branch and probably started running regression tests as soon as you checked in the branch. If so, delete the first line of the script as the Build``Bot is more comprehensive that running the test on a single machine. You will need to keep an eye on the BuildBot display until all the slaves have finished.

Package Tests

!INCLUDE "TestCandidates.md"

If any of the tests fail, fix the problem in trunk following your usual development practices, cherry-pick the changes into the checkpoint branch, and go back to merge the changeset(s) into the release branch.

Tag the Release

!INCLUDE "TagRelease.md"

Archive Candidate Packages

!INCLUDE "ArchivePackages.md"

Update SourceForge

!INCLUDE "UpdateSourceForge.md"

Update scons.org

!INCLUDE "UpdateSConsOrg.md"

Update Tigris.org

!INCLUDE "UpdateTigris.md"


!INCLUDE "AnnounceAll.md"

Update Trunk to Next Version

Initialize files for next version

!INCLUDE "CheckOutTrunk.md"

From within the trunk directory, edit ReleaseConfig and change the assignment of release_level to 'post'.

!INCLUDE "UpdateFiles.md"

A release level of 'post' causes update-release-info.py to update ReleaseConfig itself to the next minor version and then tweak some other files to set them up for the the beginning of a new version.

Verify files are correct Edit files ... FIXME

Commit changes for next version Create log.file ... FIXME

!INCLUDE "Commit.md"

Finalize Go celebrate; you're all done.