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
- Create a new branch from the latest
vMAJOR.MINOR.PATCHtag. Ex:git checkout -b v1.2.3 v1.2.2 - Make the appropriate changes/fixes.
- Update the [
/RELEASE_NOTES.md] file. - Update the [
/CHANGELOG.md] and [/src/services/*/CHANGELOG.md] headers to reflect the new versionvMAJOR.MINOR.PATCH - YYYY-MM-DD - Commit the changes above with message "Release vMAJOR.MINOR.PATCH"
- Create a new tag named
vMAJOR.MINOR.PATCH - Push the new tag
- Delete the temporary branch you created.
- All done
Major/Minor Releases
- Switch to the
masterbranch, this should be reflective of the new version's changes. - Update the [
/RELEASE_NOTES.md] file. - Update the [
/CHANGELOG.md] and [/src/services/*/CHANGELOG.md] headers to reflect the new versionvMAJOR.MINOR.PATCH - YYYY-MM-DD - Commit the changes above with message
"Release vMAJOR.MINOR.PATCH" - Create a new tag named
vMAJOR.MINOR.PATCH - Push the new tag.
- Update the [
/CHANGELOG.md] header to reflect the new upcoming versionvNEW_MAJOR.NEW_MINOR-dev - Commit the changes above with message
"Start vNEW_MAJOR.NEW_MINOR+1" - 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:
- Switch to the
v$VERSIONbranch. - Delete the
v$VERSIONtag. - Cherry pick the commits directly to the branch.
- Run
make releasewhile still on that branch. - Commit and tag accordingly.
- Cherry pick that commit back to master so that the release is carried over.