Releases

This document will cover how to properly release Blackspace.

Blackspace adheres to Semantic Versioning and the release process is dependent on the version change.

Quick Start

Patch Releases

  1. Create a new branch from the latest vMAJOR.MINOR.PATCH tag. Ex: git checkout -b v1.2.3 v1.2.2
  2. Make the appropriate changes/fixes.
  3. Update the [/RELEASE_NOTES.md] file.
  4. Update the [/CHANGELOG.md] and [/src/services/*/CHANGELOG.md] headers to reflect the new version vMAJOR.MINOR.PATCH - YYYY-MM-DD
  5. Commit the changes above with message "Release vMAJOR.MINOR.PATCH"
  6. Create a new tag named vMAJOR.MINOR.PATCH
  7. Push the new tag
  8. Delete the temporary branch you created.
  9. All done

Major/Minor Releases

  1. Switch to the master branch, this should be reflective of the new version's changes.
  2. Update the [/RELEASE_NOTES.md] file.
  3. Update the [/CHANGELOG.md] and [/src/services/*/CHANGELOG.md] headers to reflect the new version vMAJOR.MINOR.PATCH - YYYY-MM-DD
  4. Commit the changes above with message "Release vMAJOR.MINOR.PATCH"
  5. Create a new tag named vMAJOR.MINOR.PATCH
  6. Push the new tag.
  7. Update the [/CHANGELOG.md] header to reflect the new upcoming version vNEW_MAJOR.NEW_MINOR-dev
  8. Commit the changes above with message "Start vNEW_MAJOR.NEW_MINOR+1"
  9. All done

Fixing Up a Release

If you tried to cut a release and the CI failed for some unexpected reason, you can follow these steps to recover:

  1. Switch to the v$VERSION branch.
  2. Delete the v$VERSION tag.
  3. Cherry pick the commits directly to the branch.
  4. Run make release while still on that branch.
  5. Commit and tag accordingly.
  6. Cherry pick that commit back to master so that the release is carried over.