From 599ac91192170e40295ba60e6053412631340019 Mon Sep 17 00:00:00 2001 From: Harold Dost <h.dost@criteo.com> Date: Sun, 18 Feb 2024 07:16:18 +0100 Subject: [PATCH 1/2] Add RELEASING.md documentation. While we try to de-centralize the release process we should establish consistent practice. Relates #1326 --- RELEASING.md | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 RELEASING.md diff --git a/RELEASING.md b/RELEASING.md new file mode 100644 index 0000000000..315a1d900b --- /dev/null +++ b/RELEASING.md @@ -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 +considerations to make before releasing the create. It may provide use to consumers of the crate if/when we develop a +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. + +## 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 + - Update API/SDK version as necessary + - If there's a large enough set of changes consider writing a migration guide. +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) +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`. + +## 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. From e0ecf97ec24c51e0ae1ba4a4f5a8a96ae3d10e56 Mon Sep 17 00:00:00 2001 From: Harold Dost <github@hdost.com> Date: Tue, 27 Feb 2024 18:18:18 +0100 Subject: [PATCH 2/2] Apply suggestions from code review Co-authored-by: Cijo Thomas <cithomas@microsoft.com> Co-authored-by: Lalit Kumar Bhasin <lalit_fin@yahoo.com> Co-authored-by: Zhongyang Wu <zhongyang.wu@outlook.com> --- RELEASING.md | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/RELEASING.md b/RELEASING.md index 315a1d900b..6db70cf181 100644 --- a/RELEASING.md +++ b/RELEASING.md @@ -1,14 +1,14 @@ # 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 -considerations to make before releasing the create. It may provide use to consumers of the crate if/when we develop a +The primary audience for this is the SIG Maintainers. It provides the list of steps for how to release the crates and the +considerations to make before releasing the crate. It may provide use to consumers of the crate if/when we develop a 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. +releases. Perhaps once we've established a 1.0 we can consider adopting a consistent release cadence. ## Considerations @@ -26,13 +26,14 @@ A draft PR can be created, but before releasing consider the following: 1. Create a release PR - For each crate - Bump appropriate version - - Update change logs to reflects + - Update change logs to reflect release version. - Update API/SDK version as necessary - - If there's a large enough set of changes consider writing a migration guide. + - Attach `integration test` label to the PR to run integration tests + - If there's a large enough set of changes, consider writing a migration guide. 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) +3. Tag the release commit based on the [tagging convention](#tagging-convention). It should usually be a bump on minor version before 1.0 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.