Skip to end of metadata
Go to start of metadata
Beacon Navigation

Release Process

Good tips on performing a release from M2Eclipse: https://docs.sonatype.org/display/M2ECLIPSE/Staging+and+releasing+new+M2Eclipse+release

New strategy: odd versions will be for snapshot releases (eg 1.0.1), releases will be even (1.0.0, 1.0.2, etc).  This is because of a problem with OSGi where 1.0.2-2011.XXX snapshot version is actually reasoned as higher than a 1.0.2 RELEASE version.  After a release has been made, immediately advance code to the next odd snapshot version.

Prereqs

sudo apt-get install tofrodos

prepare

  • Check any new files to ensure they have licensing header
  • cd beacon (or do git clone git@gitosis.stanford.edu:beacon.git)
  • make sure you are on master branch and have no outgoing/incoming changes
  • do git pull
  • create release branch

    git branch rb-<version>
    
  • update master to the next -SNAPSHOT version. from net.beaconcontroller.parent execute

    mvn -Dtycho.mode=maven org.eclipse.tycho:tycho-versions-plugin:set-version -DnewVersion=<version+1>-SNAPSHOT
    find ../ -name MANIFEST.MF -exec fromdos -p {} \;
    
  • ensure everything is updated to this new version, do a search in Eclipse across all files for the old version. Items worth checking:
    • The target version for materializing products inside the parent pom
    • Version inside the *.product files, note this version doesn't seem to work with -SNAPSHOT in it
git commit -s -a -m "new version <version+1>-SNAPSHOT"
git push

stage

  • checkout the release branch

    git checkout rb-<version>
    
  • pick release BUILDQUALIFIER (eg, 20100924-1107) and update release branch to the release version. From net.beaconcontroller.parent execute

    mvn -Dtycho.mode=maven org.eclipse.tycho:tycho-versions-plugin:set-version -DnewVersion=<version+1>.BUILDQUALIFIER
    find ../ -name MANIFEST.MF -exec fromdos -p {} \;
    
  • commit and tag your changes

    git commit -s -a -m "new release <version>.BUILDQUALIFIER"
    git tag <version>.BUILDQUALIFIER
    
  • stage the release

    mvn clean deploy -Ppublish-site -Dmaven.test.skip=true
    
  • from nexus gui, find and close staging repo

promote

  • promote nexus staging repo
  • push release tag

    git push origin <version>.BUILDQUALIFIER
    

cleanup

  • remove all N builds from Nexus
  • remove release branch if you intend to keep local git repository

    git branch -D rb-<version>
    

Release Process TODO

Things that need to be included in archive:

  • beacon.properties, with items commented out and explained
  • README.txt
  • LICENSE.txt
  • LICENSE_EXCEPTION.txt
  • Additional learning switch only configuration

Other

  • Build Javadoc, link it to OpenFlowJ's
  • Document running Beacon, including using different configurations
  • Document using external logging config file
  • Script to build Eclipse + Beacon + OpenFlowJ files
  • Update OpenFlowJ version for javadoc
  • Update main video
  • Verify tutorials
  • Instructions for just running Beacon
  • New version in JIRA
  • Add issues for all fixes so they make it to release notes
  • Update the new properties in the guide

 

  • No labels