Skip to content

Commit

Permalink
Fix RELEASING.md document
Browse files Browse the repository at this point in the history
The document is outdated. We are now using Github's release feature.

Resolves #508
  • Loading branch information
tigrannajaryan committed Apr 24, 2024
1 parent 4b60b81 commit 3eb305d
Showing 1 changed file with 12 additions and 83 deletions.
95 changes: 12 additions & 83 deletions RELEASING.md
Original file line number Diff line number Diff line change
@@ -1,89 +1,18 @@
# 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<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`).
- 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
```

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.
- Click "Publish Release".

0 comments on commit 3eb305d

Please sign in to comment.