How To Release a Babel Patch

by Tom Epperly <epperly2@llnl.gov>
August 17, 2006


Our process for committing to and issuing patches for a formal Babel release is more structured than a normal commit to the main trunk because we want to ensure that we can identify what patches have been applied to a deployed copy of Babel.

  1. Normally, every commit to a release begins with an issue entry in Babel's Roundup issue tracking database. If any entry does not exist and you intend to publish a patch, create a new issue on Roundup.

  2. Frequently, issues are first addressed on the Babel main trunk svn+ssh://cca-forum.org/home/svn/babel/trunk and then back ported to the release branch. Other times, you will fix the issue on the release branch directly. Instructions for each case will be provided separately.

    Back porting fix from trunk

    In cases where you're going to back port, svn commit the fix to the main trunk and note the revision number, n, that svn reports after your commit.

    1. Check out a working copy of the release branch to which you will apply the patch:
      svn co svn+ssh://cca-forum.org/home/svn/babel/branches/release-1-0-0-branch/ babel_1_0_0_branch

    2. cd babel_1_0_0_branch

    3. svn merge -r <n-1>:<n> svn+ssh://cca-forum.org/home/svn/babel/trunk
      Where <n-1> is replaced by the numbern-1, and <n>n (the revision number of your commit to the main trunk.

    Editing the release branch

    In this case, you're not going to make the fix on the trunk first. You will edit the release branch directly.

    1. Check out a working copy of the release branch:
      svn co svn+ssh://cca-forum.org/home/svn/babel/branches/release-1-0-0-branch/ babel_1_0_0_branch

    2. cd babel_1_0_0_branch

    3. Use an editor to fix the issue.

  3. At this point you should have a working copy of the release with uncommitted changes that address the issue. Now you need to make a patch file in runtime/patches/.

    1. Use your favorite text editor to create a new file in runtime/patches/. The filename should be 14 characters or less and end with ".txt". Normally, it's named issuex.txt for something that resolves Roundup issue x. For patches that don't address a Roundup issue, give it a brief descriptive name.

    2. The first line should be a brief description of the patch (ideally less than 46 character).

      The second line should be the email of the issuing person or organization. For members of the LLNL Babel team, this should be components@llnl.gov.

    3. svn add --auto-props issuex.txt your file (use whatever patch file name you chose).

  4. Perform appropriate testing for your patch.

  5. Make the patch file. cd to the top of your release branch.
    svn diff > /tmp/issuex.txt
    Review this file, and then upload it into the appropriate Roundup issue entry.

  6. Add an entry about your patch on this Wiki: https://www.cca-forum.org/wiki/tiki-index.php?page=Babel+Patches

  7. svn commit your changes and the patch file.

  8. If the issue is very serious consider sending an email to babel-users@llnl.gov.