Version 1 (modified by 15 years ago) (diff) | ,
---|
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):
- 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.
- Commit change
svn ci -m "add a new NEWS section for upcoming A.B release"
- 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"
- 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.
- Update files
NEWS
andconfigure.ac
on release branch- Add text in
NEWS
what is new for this release - Update
configure.ac
setting devel tofalse
- Issue
svn ci -m "adding NEWS text and preparing for release A.B.C"
- Add text in
- Issue
make distcheck
with appropriate configure options.
- Create a tag with
svn copy . http://lev.thep.lu.se/repository/pandai/tags/A.B \ -m "Tagging version A.B.C"
- 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 tosvn 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 tosvn 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
- Set devel to
true
inconfigure.ac
.
- 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."
- Update version in
configure.ac
on release branch to A.B.(C++).
- 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.
- 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.