Our release branches follow the naming convention of v<major>.<minor>.x
, while
the tags include the patch version v<major>.<minor>.<patch>
. For example, the
same branch v0.3.x
would be used to create all v0.3
tags (e.g. v0.3.0
,
v0.3.1
).
In this section upstream repository refers to the main opentelemetry-proto github repository.
Before any push to the upstream repository you need to create a personal access token.
Create the release branch and push it to GitHub:
MAJOR=0 MINOR=3 PATCH=0 # Set appropriately for new release
git checkout -b v$MAJOR.$MINOR.x main
git push upstream v$MAJOR.$MINOR.x
Enable branch protection for the new branch, if you have admin access. Otherwise, let someone with admin access know that there is a new release branch.
Protect this branch
Require pull request reviews before merging
Require status checks to pass before merging
Include administrators
Enable the following required status checks:
cla/linuxfoundation
ci/circleci: build
For vMajor.Minor.x
branch:
Create and push a tag:
git checkout v$MAJOR.$MINOR.x
git pull upstream v$MAJOR.$MINOR.x
git tag -a v$MAJOR.$MINOR.$PATCH -m "Version $MAJOR.$MINOR.$PATCH"
git push upstream v$MAJOR.$MINOR.$PATCH
All patch releases should include only bug-fixes, and must avoid adding/modifying the public APIs. To cherry-pick one commit use the following instructions:
Create and push a tag:
COMMIT=1224f0a # Set the right commit hash.
git checkout -b cherrypick v$MAJOR.$MINOR.x
git cherry-pick -x $COMMIT
git commit -a -m "Cherry-pick commit $COMMIT"
Go through PR review and merge it to GitHub v$MAJOR.$MINOR.x branch.
Tag a new patch release when all commits are merged.
Once deployment is done, go to Github release
page, press
Draft a new release
to write release notes about the new release.
You can use git log upstream/v$MAJOR.$((MINOR-1)).x..upstream/v$MAJOR.$MINOR.x --graph --first-parent
or the Github compare tool
to view a summary of all commits since last release as a reference.
In addition, you can refer to CHANGELOG.md for a list of major changes since last release.
After releasing is done, you need to update README.md and CHANGELOG.md.
Create a PR to mark the new release in CHANGELOG.md on main branch.