OLFSReleaseGuide

From OPeNDAP Documentation
Revision as of 02:04, 13 September 2013 by Ndp (talk | contribs)
⧼opendap2-jumptonavigation⧽

<< back to HowTo Guides

This document describes how to make new release of the OLFS.

For this document, $svn refers to the svn root, presumably "https://scm.opendap.org/svn".

About version numbers:

  • We use Hyrax <major>.<minor> version numbers for release branches.
  • We use <major>.<minor>.<revision> version numbers for the olfs code version.


This page is based on the branching and merging guidelines found here.

Make sure the code is ready to release

Make sure that all of the code in your working copy of the trunk is checked in, and that all development branches whose functionality/features/codeBase are to included in the release have been merged to the trunk.

Check out the OLFS code from the subversion trunk

svn co https://scm.opendap.org/svn/trunk/olfs

Build the OLFS

In the checked out OLFS directory run the command:

% ant server

Run the make-check script located in the olfs directory

This script will run a series of tests between the OLFS and an already installed BES. The BES should be configured with the netcdf_handler, freeform_handler, and hdf4_handler modules. If it's not already running the make-check script will start it. Or you can start the BES yourself. This requires that hyrax is running on localhost:8080.

% make-check

Note: You can use the script mkTestPatch to see the diffs of any broken tests.

Determine OLFS Version Number

  1. Look in the NEWS and README files to determine the previous version number.
  2. Determine new version number by looking at the changes to the code (start by reviewing the ChangeLog file)
    • Versioning rules: What the MAJOR.MINOR.REVISION string means:
      • No interfaces changed, only implementations (good): ==> Increment REVISION.
      • Interfaces added, none removed (good): ==> Increment MINOR, set REVISION to 0.
      • Interfaces removed or changed (BAD, breaks upward compatibility): ==> Increment MAJOR, set MINOR and REVISION to 0.
  3. Remember the new version number so that it can be used to:
    • Update the release related files
    • Tag the release
    • Build the versioned software distribution bundles.

Edit the release related files

ChangeLog
Update the ChangeLog file using the script update_cl.sh which can be found in the svn-tools project. (e.g., ~/svn-tools/update_cl.sh ChangeLog). If you're making the first ChangeLog entries, then you'll need to create the ChangeLog file first. Here's a key tip: When you're making the commit log entries, always include the file name(s) of the affected files in your entry. Then to write the NEWS file, just read over the new ChangeLog entries and summarize. In the old days of CVS, the logs automatically included the names of the changed files, but subversion doesn't do that. A little discipline with those log entries will go a long way toward streamlining the release process!
README
Update version number.
Review content to make sure it's current.
NEWS
Add new version number and,
Summarize the new additions to the change log. There may be many checkins associated with new feature development. You can summarize those as "Added 'X' feature."
install.html
Update version number.
Review content to make sure it's current.

Check in changes

In the local copy of the OLFS trunk in which you updated the ChangeLog and other files:

svn ci -m "olfs: Updating olfs version and release files to version 1.2.3"

Create the release branch

Create a new release branch for this release of the OLFS.

Naming the release branch
Since every release of the OLFS is tied to a release of the Hyrax server we create OLFS release branches based the name of the Hyrax release with which they are associated.
svn cp -m "olfs: Creating OLFS release branch for hyrax-4.5" $svn/trunk/olfs $svn/branch/olfs/hyrax-4.5

Build the versioned distribution bundles.

Build the OLFS distribution files by running ant and providing both the Hyrax version and OLFS version:

% ant -DOLFS_VERSION=1.2.3  -DHYRAX_VERSION=4.5.0 DISTRO

This will create the three compressed tar files for the release in the $olfs/build/dist directory.

olfs-1.2.3-doc.tgz
Contains the javadoc documentation for the release
olfs-1.2.3-src.tgz
Contains the source files for the release
olfs-1.2.3-webapp.tgz
Contains the instructions and .war file that will be used in the tomcat webapps directory.

Use GPG to detach sign each of these three files and you're ready to upload them to the website for distribution.

The OLFS has historically been published here: http://www.opendap.org/pub/olfs/