wiki:ReleaseProcedure

Version 1 (modified by Peter Johansson, 13 years ago) (diff)

copy Release Procedure from Pandai project

Release Procedure

Pandai uses "MAJOR.MINOR.PATCH" release numbers, with the same guidelines as APR (see http://apr.apache.org/versioning.html).

Creating a release branch

A new release branch is created for each new major and minor release. So, for example, a new release branch is created when preparing to release version 1.0.0, or version 0.3.0. However, when preparing to release 0.3.1 (a patch-version increment), the release branch created at the time of 0.3.0 is used.

If you are preparing for a patch release, then there is no release branch to create. You just pick up where you left off in the current minor version series release branch.

Once people agree that a new release branch should be made, the Release Manager creates it with the following procedure (substitute A.B with the version you are preparing, eg. 0.3, or 1.0):

  1. Edit NEWS on trunk to introduce a new section for the upcoming release. The section starts with:
    Version A.B.0 (released ?? ????? 200X, from /branches/A.B-stable)
          http://lev.thep.lu.se/repository/pandai/tags/A.B
    
    Leave the release date blank for now. It will remain this way until rolling time.
  1. Commit change svn ci -m "add a new NEWS section for upcoming A.B release"
  1. Create a new release branch using a one liner like
      svn copy http://lev.thep.lu.se/repository/pandai/trunk \
               http://lev.thep.lu.se/repository/pandai/branches/A.B-stable \
               -m "New branch for Pandai A.B.x"
    
  1. Update version number in configure.ac on trunk. The version number on trunk always reflects the major/minor version that will immediately follow the one for which you just created a branch (eg. 1.1.0 for the 1.0.x branch, and 0.4.0 for the 0.3.x branch).

Rolling a release

This section describes how to roll a release A.B.C.

  1. Update files NEWS and configure.ac on release branch
    • Add text in NEWS what is new for this release
    • Update configure.ac setting devel to false
    • Issue svn ci -m "adding NEWS text and preparing for release A.B.C"
  1. Issue make distcheck with appropriate configure options.
  1. Create a tag with
      svn copy . http://lev.thep.lu.se/repository/pandai/tags/A.B \
               -m "Tagging version A.B.C"
    
  1. Create new source packages with make dist. Make the appropriate updates on DownloadPage including:
    • Upload gzipped tar file and update corresponding link.
    • Update link to NEWS file to source:tags/A.B.C/NEWS
    • In Pandai latest release update to [source:tags/A.B.C/NEWS NEWS] and modify svn command to svn checkout http://lev.thep.lu.se/repository/pandai/tags/A.B.C pandai-A.B.C
    • In Pandai stable update link to [milestone:A.B.(C++) A.B.(C++)]dev and modify svn command to svn checkout http://lev.thep.lu.se/repository/pandai/branches/A.B-stable pandai-A.B.(C++)dev
    • In Pandai devel modify svn command to svn checkout http://lev.thep.lu.se/repository/pandai/trunk pandai-A.(B++).0dev
  1. Set devel to true in configure.ac.
  1. Merge changes in release branch to trunk.
    • cd path/to/release-branch
    • Find revision (N) for latest merge: svn log -r 1:HEAD | grep Merged
    • Find head revision (M) in release branch: svn info | grep Rev:
    • cd path/to/trunk
    • svn merge -r N:M http://lev.thep.lu.se/repository/pandai/branches/A.B-stable
    • Run make check to make sure that the merge succeeded.
    • Commit changes to trunk: svn commit -m "Merged log:branches/0.1-stable#N:M trunk."
  1. Update version in configure.ac on release branch to A.B.(C++).
  1. Edit NEWS on trunk (and release branch) to introduce a new section for the upcoming release. The section starts with:
    Version A.B.0 (released ?? ????? 200X, from /branches/A.B-stable)
          http://lev.thep.lu.se/repository/pandai/tags/A.B.(C++)
    
    Leave the release date blank for now. It will remain this way until rolling time.
  1. Update Trac:
    • Update the version list in Trac using the trac-admin tool, i.e., add version A.B
    • Close the milestone A.B and add a new milestones.