Skip to content

Commit 1904d34

Browse files
hdostcijothomaslalitbTommyCpp
authored
Add RELEASING.md documentation. (#1555)
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> Co-authored-by: Cijo Thomas <cijo.thomas@gmail.com>
1 parent bcf1205 commit 1904d34

File tree

1 file changed

+52
-0
lines changed

1 file changed

+52
-0
lines changed

RELEASING.md

+52
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
# Releasing OpenTelemetry Rust
2+
3+
The primary audience for this is the SIG Maintainers. It provides the list of steps for how to release the crates and the
4+
considerations to make before releasing the crate. 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 adopting 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 reflect release version.
30+
- Update API/SDK version as necessary
31+
- Attach `integration test` label to the PR to run integration tests
32+
- If there's a large enough set of changes, consider writing a migration guide.
33+
2. Merge the PR
34+
- Get reviews from other Maintainers
35+
- Ensure that there haven't been any interfering PRs
36+
3. Tag the release commit based on the [tagging convention](#tagging-convention). It should usually be a bump on minor version before 1.0
37+
4. Create Github Release
38+
5. [Publish](#publishing-crates) to crates.io using the version as of the release commit
39+
6. Post to [#otel-rust](https://cloud-native.slack.com/archives/C03GDP0H023) on CNCF Slack.
40+
41+
42+
## Tagging Convention
43+
44+
For each crate: it should be `<crate-name>-<version>` `<version>` being the simple `X.Y.Z`.
45+
46+
## Publishing Crates
47+
48+
For now we use the [basic procedure](https://doc.rust-lang.org/cargo/reference/publishing.html) from crates.io.
49+
50+
Follow this for each crate as necessary.
51+
52+
For any new crates remember to add open-telemetry/rust-maintainers to the list.

0 commit comments

Comments
 (0)