Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 806d4d6

Browse files
authored
Update versioning doc (open-telemetry#1588)
1 parent 2113d4a commit 806d4d6

File tree

2 files changed

+35
-21
lines changed

2 files changed

+35
-21
lines changed

CONTRIBUTING.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ Please take a look at this list first, your contributions may belong in one of t
2525

2626
# Find the right branch
2727

28-
The default branch for this repo is `main`. Changes that pertain to components marked as `stable` in the [specifications](https://github.com/open-telemetry/opentelemetry-specification) go into this branch, which currently does not include `metrics`. Changes that pertain to `metrics` go into the `metrics` branch.
28+
The default branch for this repo is `main`. Changes that pertain to `metrics` go into the `metrics` branch. Any changes that pertain to components marked as `stable` in the [specifications](https://github.com/open-telemetry/opentelemetry-specification) or anything that is not `metrics` related go into this branch.
2929

3030
## Find a Buddy and get Started Quickly!
3131

rationale.md

Lines changed: 34 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,18 @@
11
# OpenTelemetry Rationale
22

3-
When creating a library, often times designs and decisions are made that get lost over time. This
4-
document tries to collect information on design decisions to answer common questions that may come
5-
up when you explore the SDK.
3+
When creating a library, often times designs and decisions are made that get lost over time. This document tries to collect information on design decisions to answer common questions that may come up when you explore the SDK.
64

75
## Versioning and Releasing
86

9-
The OpenTelemetry Applications and OpenTelemetry Spec itself use semver v2.
7+
This document describes the versioning and stability policy of components shipped from this repository, as per the [OpenTelemetry versioning and stability
8+
specification](https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/versioning-and-stability.md).
9+
10+
The OpenTelemetry implementations, the OpenTelemetry Spec itself and this repo follows [SemVer V2](https://semver.org/spec/v2.0.0.html) guidelines.
11+
This means that, for any stable packages released from this repo, all public APIs will remain [backward
12+
compatible](https://github.com/dotnet/runtime/blob/main/docs/coding-guidelines/breaking-change-rules.md#breaking-change-rules),
13+
unless a major version bump occurs. This applies to the API, SDK, as well as Exporters, Instrumentation etc. shipped from this repo.
14+
15+
For example, users can take a dependency on 1.0.0 version of any package, with the assurance that all future releases until 2.0.0 will be backward compatible.
1016

1117
## Goals
1218

@@ -18,16 +24,23 @@ For example, libraries that are instrumented with `opentelemetry-api 1.0.1` will
1824

1925
### SDK Stability:
2026

21-
Public portions of the SDK (constructors, configuration, end-user interfaces) must remain backwards compatible.
22-
Internal interfaces are allowed to break.
27+
Public portions of the SDK (constructors, configuration, end-user interfaces) must remain backwards compatible. Internal interfaces are allowed to break.
28+
29+
## Core components
30+
31+
Core components refer to the set of components which are required as per the spec. This includes API, SDK, propagators (B3 and Jaeger) and exporters which are required by the specification. These exporters are OTLP, Jaeger and Zipkin.
32+
33+
## Mature or stable Signals
2334

24-
## Methods
35+
Modules for mature (i.e. released) signals will be found in the latest versions of the corresponding packages of the core components. The version numbers of these will have no suffix appended, indicating they are stable. For example, the package `opentelemetry-api` v1.x.y will be considered stable.
2536

26-
### Mature Signals
27-
API modules for mature (i.e. released) signals will be included in the `opentelemetry-api` module.
37+
## Pre-releases
38+
39+
Pre-release packages are denoted by appending identifiers such as -Alpha, -Beta, -RC etc. There are no API guarantees in pre-releases. Each release can contain breaking changes and functionality could be removed as well. In general, an RC pre-release is more stable than a Beta release, which is more stable than an Alpha release.
2840

2941
### Immature or experimental signals
30-
API modules for experimental signals will not be included in the `opentelemetry-api` module, and must be installed manually. API modules will remain at version v0.x.y to make it abundantly clear that depending on them is at your own risk. For example, the `opentelemetry-metrics-api` v0.x.y module will provide experimental access to the unfinished metrics API. NO STABILITY GUARANTEES ARE MADE.
42+
43+
Modules for experimental signals will be released in a separate versions that will be marked as pre-releases, and must be installed manually. Modules will remain at version v0.x.y to make it abundantly clear that depending on them is at your own risk. For example, the `opentelemetry-api` v0.x.y-b0 module will provide experimental access to the latest features in development, which will include the experimental metrics signals. Notice the `b0` suffix which indicates that the release is still in beta, and therefore deemed to be in pre-release. NO STABILITY GUARANTEES ARE MADE.
3144

3245
## Examples
3346

@@ -37,25 +50,26 @@ Purely for illustration purposes, not intended to represent actual releases:
3750

3851
- `opentelemetry-api` 1.0.0
3952
- Contains APIs for tracing, baggage, propagators, context
40-
- `opentelemetry-tracing` 1.0.0
41-
- Contains the tracing SDK
4253
- `opentelemetry-sdk` 1.0.0
4354
- Contains SDK components for tracing, baggage, propagators, and context
4455

4556
##### Contains the following experimental packages
4657

47-
- `opentelemetry-api-metrics` 0.x.y
48-
- Contains the EXPERIMENTAL API for metrics. There are no stability guarantees.
49-
- `opentelemetry-metrics` 0.x.y
50-
- Contains the EXPERIMENTAL SDK for metrics. There are no stability guarantees.
58+
- `opentelemetry-api` 1.x.y-b0
59+
- Contains the EXPERIMENTAL API for metrics plus other unstable features. There are no stability guarantees.
60+
- `opentelemetry-sdk` 1.x.y-b0
61+
- Contains the EXPERIMENTAL SDK for metrics plus other unstable features. There are no stability guarantees.
5162

5263
#### V1.15.0 Release (with metrics)
5364

5465
- `opentelemetry-api` 1.15.0
5566
- Contains APIs for tracing, baggage, propagators, context, and metrics
56-
- `opentelemetry-tracing` 1.15.0
57-
- Contains tracing SDK
58-
- `opentelemetry-metrics` 1.15.0
59-
- Contains metrics SDK
6067
- `opentelemetry-sdk` 1.15.0
6168
- Contains SDK components for tracing, baggage, propagators, context and metrics
69+
70+
##### Contains the following experimental packages
71+
72+
- `opentelemetry-api` 1.x.y-b0
73+
- Contains the EXPERIMENTAL API for logging plus other unstable features. There are no stability guarantees.
74+
- `opentelemetry-sdk` 1.x.y-b0
75+
- Contains the EXPERIMENTAL SDK for logging plus other unstable features. There are no stability guarantees.

0 commit comments

Comments
 (0)