Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  1. Send email to platform declaring a check-in freeze on trunk
  2. Verify that most recent check-in results in a clean Bamboo build of trunk
  3. Do a svn copy of trunk to branches/Synapse-0.x.  If we need to do work to create a patch release, it will go in this branch, and continue to be labeled 0.x-SNAPSHOT.
  4. Do a svn copy of branches/Synapse-0.x to tags/Synapse-0.x.y.  y is one higher than previous number, or zero if first release of a sprint.
  5. Check out tags/Synapse-0.x.y, then:
    1. edit  tools/SynapseDeployer/pomVersioner.py so that oldVersion=0.x-SNAPSHOT, newVersion=0.x.y, and startPath 'points' to your local copy, then run pomVersioner.py. 
    2. Validate that changes to poms and any version info in R client makes sense
    3. Check this into SVN.  Eclipse will give you a warning that you shouldn't be checking in to a tag.  Do it anyway.
  6. Create a new Bamboo build called "Synapse-0.x" based on the existing Bamboo build of trunk and reconfigure it to point it at tags/Synapse-0.x.y
  7. Manually kick off a build, which should pass and create the 0.x.y artifacts in Artifactory
  8. Reconfigure the Bamboo build to point to branches/Synapse-0.x.  The next time somebody checks into the branch it should kick off this build.
  9. Run SynapseDeployer/pomVersioner.py to bring trunk up to minor version x+1.  This should generate a bamboo build of trunk that pushes 0.[x+1]-SNAPSHOT to Artifactory for the first time.  Verify that this in fact happens.
  10. Send email to platform declaring trunk and branch open for check-ins.  The end of sprint build is sitting in artifactory libs-releases-local/org/sagebionetworks/<path-to-artifact>/0.x.y

Creating a Patch Release on a Release Branch

Once we have moved trunk up to Synapse-0.x, we may find situations where we want to deploy bug fixes to production on the x-1 branch to avoid deploying other code in trunk before it is ready.  In this case

  1. Developers are responsible for down-merging patches to the branch from trunk (or vice versa as appropriate).
  2. Verify that the most recent check-in on the branch resulted in a clean Bamboo build, and verify with the developer who created the patch that it is in fact checked in.
  3. Do a svn copy of branches/Synapse-0.x to tags/Synapse-0.x.y
  4. Reconfigure the Bamboo build of the branch (the "Repository Path" field under "Configuration") to point to tags/Synapse-0.x.y.
  5. Check out tags/Synapse-0.x.y, then:
    1. edit  tools/SynapseDeployer/pomVersioner.py so that oldVersion=0.x-SNAPSHOT, newVersion=0.x.y, and startPath 'points' to your local copy, then run pomVersioner.py. 
    2. Validate that changes to poms and any version info in R client makes sense
    3. Check this into SVN.  Eclipse will give you a warning that you shouldn't be checking in to a tag.  Do it anyway.
  6. Bamboo should now run a clean build of the tag, which will end up as a permanent versioned artifact in artifactory.
  7. Reconfigure the Bamboo build to point back to the branch
  8. Delete the tag code from your workspace so you never accidentally modify the tagged version again.
  9. Clean labeled artifacts are sitting in artifactory libs-releases-local/org/sagebionetworks/<path-to-artifact>/0.x.y