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.PATCH
tag. 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
master
branch, 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$VERSION
branch. - Delete the
v$VERSION
tag. - Cherry pick the commits directly to the branch.
- Run
make release
while still on that branch. - Commit and tag accordingly.
- Cherry pick that commit back to master so that the release is carried over.