...
- Verify with platform team that all required code changes are checked in, and that nobody has any check-in that cause temporary stability issues (this latter case should normally be done in a development branch and merged into trunk when stable. This lets us always quickly deploy out of trunk if we need to.)
- Verify that most recent check-in results in a clean Bamboo build of trunk
- Do a svn copy of trunk to tags/Synapse-0.x.y, where y is one higher than previous number, or zero if first release of a sprint.
- Reconfigure the Bamboo build of trunk (the "Repository Path" field under "Configuration") to point to tags/Synapse-0.x.y.
- Check out tags/Synapse-0.x.y, then:
- 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.
- Validate that changes to poms and any version info in R client makes sense
- Check this into SVN. Eclipse will give you a warning that you shouldn't be checking in to a tag. Do it anyway.
- Bamboo should now run a clean build of the tag, which will end up as a permanent versioned artifact in artifactory.
- Reconfigure the Bamboo build to point back to trunk
- Delete the tag code from your workspace so you never accidentally modify the tagged version again.
- Clean labeled artifacts are sitting in artifactory libs-releases-local/org/sagebionetworks/<path-to-artifact>/0.x.y
Creating a Branch at the end of a Sprint
...
- Send email to platform declaring a check-in freeze on trunk
- Verify that most recent check-in results in a clean Bamboo build of trunk
- 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.
- 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.
- Check out tags/Synapse-0.x.y, then:
- 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.
- Validate that changes to poms and any version info in R client makes sense
- Check this into SVN. Eclipse will give you a warning that you shouldn't be checking in to a tag. Do it anyway.
- 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
- Manually kick off a build, which should pass and create the 0.x.y artifacts in Artifactory
- 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.
- 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.
- 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 Branch
...
- Developers are responsible for down-merging patches to the branch from trunk (or vice versa as appropriate).
- 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.
- Do a svn copy of branches/Synapse-0.x to tags/Synapse-0.x.y
- Reconfigure the Bamboo build of the branch (the "Repository Path" field under "Configuration") to point to tags/Synapse-0.x.y.
- Check out tags/Synapse-0.x.y, then:
- 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.
- Validate that changes to poms and any version info in R client makes sense
- Check this into SVN. Eclipse will give you a warning that you shouldn't be checking in to a tag. Do it anyway.
- Bamboo should now run a clean build of the tag, which will end up as a permanent versioned artifact in artifactory.
- Reconfigure the Bamboo build to point back to the branch
- Delete the tag code from your workspace so you never accidentally modify the tagged version again.
- Clean labeled artifacts are sitting in artifactory libs-releases-local/org/sagebionetworks/<path-to-artifact>/0.x.y