|
| 1 | +# Releasing OpenTelemetry Rust |
| 2 | + |
| 3 | +The primary audience for this is the SIG Maintaners. It provides the list of steps for how to release the crates and the |
| 4 | +considerations to make before releasing the create. It may provide use to consumers of the crate if/when we develop a |
| 5 | +release cadence. |
| 6 | + |
| 7 | +## Release cadence |
| 8 | + |
| 9 | +As of Feb 2024, there is no established cadence for the OpenTelemetry crates. The balance is required between too many |
| 10 | +breaking changes in a single release, and since we have instability flipping between implementations across 0.x |
| 11 | +releases. Perhaps once we've established a 1.0 we can consider a consistent release cadence. |
| 12 | + |
| 13 | +## Considerations |
| 14 | + |
| 15 | +A draft PR can be created, but before releasing consider the following: |
| 16 | + |
| 17 | +* Are there any pending pull requests which should be included in the next release? |
| 18 | + * Are they blockers? |
| 19 | +* Are there any unresolved issues which should be resolved before the next release? |
| 20 | +* Bring it up at a SIG meeting, this can usually get some of these questions answered sooner than later. It will also |
| 21 | + help establish a person to perform the release. Ideally this can be someone different each time to ensure that the |
| 22 | + process is documented. |
| 23 | + |
| 24 | +## Steps to Release |
| 25 | + |
| 26 | +1. Create a release PR |
| 27 | + - For each crate |
| 28 | + - Bump appropriate version |
| 29 | + - Update change logs to reflects |
| 30 | + - Update API/SDK version as necessary |
| 31 | + - If there's a large enough set of changes consider writing a migration guide. |
| 32 | +2. Merge the PR |
| 33 | + - Get reviews from other Maintainers |
| 34 | + - Ensure that there haven't been any interfering PRs |
| 35 | +3. Tag the release commit based on the [tagging convention](#tagging-convention) |
| 36 | +4. Create Github Release |
| 37 | +5. [Publish](#publishing-crates) to crates.io using the version as of the release commit |
| 38 | +6. Post to [#otel-rust](https://cloud-native.slack.com/archives/C03GDP0H023) on CNCF Slack. |
| 39 | + |
| 40 | + |
| 41 | +## Tagging Convention |
| 42 | + |
| 43 | +For each crate: it should be `<crate-name>-<version>` `<version>` being the simple `X.Y.Z`. |
| 44 | + |
| 45 | +## Publishing Crates |
| 46 | + |
| 47 | +For now we use the [basic procedure](https://doc.rust-lang.org/cargo/reference/publishing.html) from crates.io. |
| 48 | + |
| 49 | +Follow this for each crate as necessary. |
| 50 | + |
| 51 | +For any new crates remember to add open-telemetry/rust-maintainers to the list. |
0 commit comments