Cooking a new release.

The versions of the GIP should generally follow that of the OSG. So, gip_0_8_0_rc1 is a release candidate for the OSG 0.8.0; gip_1_0_0_rc1 is a release candidate for the OSG 1.0.0. Internal testing tags should be suffixed with alpha designations, tags which go out to the VTB should get beta designations, and tags ready for the ITB are release candidate.

So, an alpha release might be gip_0_8_0_alpha1, a beta would be gip_0_8_0_beta1, and a release candidate is gip_0_8_0_rc1. The following rules should be applied:

  • Alphas are unstable code which has been written but perhaps doesn't work. Certainly they haven't been tested on a wide range of platforms outside the developer's laptops. Major API changes may happen.
  • Betas are semi-stable code. They are ready for consumption by folks who aren't developers, but know that the code is likely to change (just not significantly). The changes will mostly be bugfixes at this stage.
  • Release candidates should be stable code that, in the absence of any discovered blocking bugs, are ready to be released as-is to production.
  • Production releases should be stable, relatively bug-free, and generally run without a problem.

Branches versus Trunk

When a release is pending (code is perhaps beta stage) it's often a good idea to cut a new branch. This allows developers who want to do major infrastructure work to continue working, but still fix bugs in code.

Ideally, there should be at most two active branches at any given time:

  • Production branch: Contains code already in production. It should change very little, if not at all.
  • Pending release branch: Contains code which is being prepared for release. It should be getting mostly bugfixes (but may get a lot of them); no major changes should happen here
  • Trunk: Major overhaul work, plus forward-porting any bugfixes discovered on the other branches.

SVN work

Do these commands from the top-level gip/ directory.

To create a branch:

svn cp trunk branches/branch_name

To tag a branch (from the top-level gip/ directory):

svn cp branches/original tags/gip_0_8_0_rc2

To tag something from trunk:

svn cp trunk tags/gip_1_0_0_alpha0

To create a VDT-friendly tarball in /tmp:

$GIP_LOCATION/make_release.sh tag_name

To examine differences between two releases (i.e.: for generating a ChangeLog)

svn diff svn://t2.unl.edu/brian/gip/tags/gip_1_0_0_rc1 svn://t2.unl.edu/brian/gip/tags/gip_1_0_1

-- BrianBockelman - 12 Mar 2008

Topic revision: r3 - 08 Jul 2008 - 16:01:28 - BurtHolzman

Google Custom Search
Common links

Information Services

Meta-TWiki links

 
Powered by TWiki
This site is powered by the TWiki collaboration platformCopyright &© by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback