RELEASING.md 3.1 KB

How to Create a Release of OpenTelemetry Proto (for Maintainers Only)

Tagging the Release

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.

  1. 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
    
  2. 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.

    • Open the branch protection settings for the new branch, by following Github's instructions.
    • Copy the settings from a previous branch, i.e., check
      • 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
    • Uncheck everything else.
    • Click "Save changes".
  3. 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
      

Patch Release

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.

Announcement

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.

Update release versions in documentations and CHANGELOG files

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.