Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add RELEASING.md documentation. #1555

Merged
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
51 changes: 51 additions & 0 deletions RELEASING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
# Releasing OpenTelemetry Rust

The primary audience for this is the SIG Maintaners. It provides the list of steps for how to release the crates and the
hdost marked this conversation as resolved.
Show resolved Hide resolved
considerations to make before releasing the create. It may provide use to consumers of the crate if/when we develop a
hdost marked this conversation as resolved.
Show resolved Hide resolved
release cadence.

## Release cadence

As of Feb 2024, there is no established cadence for the OpenTelemetry crates. The balance is required between too many
breaking changes in a single release, and since we have instability flipping between implementations across 0.x
releases. Perhaps once we've established a 1.0 we can consider a consistent release cadence.
hdost marked this conversation as resolved.
Show resolved Hide resolved

## Considerations

A draft PR can be created, but before releasing consider the following:

* Are there any pending pull requests which should be included in the next release?
* Are they blockers?
* Are there any unresolved issues which should be resolved before the next release?
* Bring it up at a SIG meeting, this can usually get some of these questions answered sooner than later. It will also
help establish a person to perform the release. Ideally this can be someone different each time to ensure that the
process is documented.

## Steps to Release

1. Create a release PR
- For each crate
- Bump appropriate version
- Update change logs to reflects
hdost marked this conversation as resolved.
Show resolved Hide resolved
- Update API/SDK version as necessary
hdost marked this conversation as resolved.
Show resolved Hide resolved
- If there's a large enough set of changes consider writing a migration guide.
hdost marked this conversation as resolved.
Show resolved Hide resolved
2. Merge the PR
- Get reviews from other Maintainers
- Ensure that there haven't been any interfering PRs
3. Tag the release commit based on the [tagging convention](#tagging-convention)
hdost marked this conversation as resolved.
Show resolved Hide resolved
4. Create Github Release
5. [Publish](#publishing-crates) to crates.io using the version as of the release commit
6. Post to [#otel-rust](https://cloud-native.slack.com/archives/C03GDP0H023) on CNCF Slack.


## Tagging Convention

For each crate: it should be `<crate-name>-<version>` `<version>` being the simple `X.Y.Z`.
cijothomas marked this conversation as resolved.
Show resolved Hide resolved

## Publishing Crates

For now we use the [basic procedure](https://doc.rust-lang.org/cargo/reference/publishing.html) from crates.io.

Follow this for each crate as necessary.

For any new crates remember to add open-telemetry/rust-maintainers to the list.
Loading