-
Make sure all relevant changes for this release are included under
Unreleased
section inCHANGELOG.md
and are in language that non-contributors to the project can understand. -
Run the pre-release script. It creates a branch
pre_release_<new-tag>
and updatesCHANGELOG.md
with the<new-tag>
:./buildscripts/pre_release.sh -t <new-tag>
-
Verify that CHANGELOG.md is updated properly:
git diff master
-
Push the changes to upstream and create a Pull Request on GitHub. Be sure to include the curated changes from the Changelog in the description.
Once the above Pull Request has been approved and merged it is time to tag the merged commit.
IMPORTANT: It is critical you use the same tag that you used in the Pre-Release step! Failure to do so will leave things in a broken state.
- Note down the commit hash of the master branch after above PR request is merged :
git show -s --format=%H
- Create a github tag on this commit hash:
git tag -a "<new-tag>" -s -m "Version <new-tag>" "<commit-hash>"
- Push tag to upstream remote
git push upstream
Once tag is created, it's time to use that tag for Runtime Versioning
-
Create a new brach for updating version information in
./sdk/src/version.cc
.git checkout -b update_version_${tag} master
-
Run the pre-commit script to update the version:
./buildscripts/pre-commit
-
Check if any changes made since last release broke ABI compatibility. If yes, update
OPENTELEMETRY_ABI_VERSION_NO
in version.h. -
Push the changes to upstream and create a Pull Request on GitHub.
-
Once changes are merged, move the tag created earlier to the new commit hash from step 4.
git tag -f <previous-tag> <new-commit-hash> git push --tags --force
Finally create a Release for the new on GitHub. The release body should include all the release notes from the Changelog for this release.