From f16a3fdf35e3ad4c9b8aaef705e234ef8a2abfdf Mon Sep 17 00:00:00 2001 From: Tigran Najaryan <4194920+tigrannajaryan@users.noreply.github.com> Date: Tue, 7 May 2024 12:17:27 -0400 Subject: [PATCH] Fix RELEASING.md document (#548) The document is outdated. We are now using Github's release feature. Resolves https://github.com/open-telemetry/opentelemetry-proto/issues/508 Co-authored-by: Armin Ruech <7052238+arminru@users.noreply.github.com> --- RELEASING.md | 97 ++++++++-------------------------------------------- 1 file changed, 15 insertions(+), 82 deletions(-) diff --git a/RELEASING.md b/RELEASING.md index 207d234a9..5546cd8e0 100644 --- a/RELEASING.md +++ b/RELEASING.md @@ -1,89 +1,22 @@ -# How to Create a Release of OpenTelemetry Proto (for Maintainers Only) +# How to Create a Release -## Tagging the Release +_Instruction for Maintainers only._ -Our release branches follow the naming convention of `v..x`, while -the tags include the patch version `v..`. 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`). +- Prepare the release by updating [CHANGELOG.md](CHANGELOG.md), see for example +[this PR](https://github.com/open-telemetry/opentelemetry-proto/pull/537). +Merge the PR. From this point on no new PRs can be merged until the release is complete. -In this section upstream repository refers to the main opentelemetry-proto -github repository. +- Go to Github [release page](https://github.com/open-telemetry/opentelemetry-proto/releases), +click `Draft a new release`. -Before any push to the upstream repository you need to create a [personal access -token](https://help.github.com/articles/creating-a-personal-access-token-for-the-command-line/). +- Click "Choose a tag" and specify the next version number. The Target branch should be "main". -1. Create the release branch and push it to GitHub: +- Click "Generate release notes" to get a draft release note. Remove editorial +changes from the notes and any other changes that you don't want in the release notes. +In addition, you can refer to [CHANGELOG.md](CHANGELOG.md) for a list of major changes since last release. - ```bash - 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 - ``` +- Click "Publish Release". -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](https://help.github.com/articles/configuring-protected-branches/). - - 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: - - ```bash - 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: - -```bash -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](https://github.com/open-telemetry/opentelemetry-proto/releases), 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](https://github.com/open-telemetry/opentelemetry-proto/compare/) -to view a summary of all commits since last release as a reference. - -In addition, you can refer to [CHANGELOG.md](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](README.md) and [CHANGELOG.md](CHANGELOG.md). - -Create a PR to mark the new release in [CHANGELOG.md](CHANGELOG.md) on main branch. +Our tags follow the naming convention of `v1..`. Increment `minor` by 1 +and use `patch` value of 0 for new minor version releases. For patch releases keep `minor` +unchanged and increment the `patch`.