Skip to content

Commit

Permalink
Versioning and stability: Remove confusion around backwards compatiblity
Browse files Browse the repository at this point in the history
  • Loading branch information
pellared committed May 8, 2024
1 parent 2d6456a commit 2e626da
Showing 1 changed file with 1 addition and 8 deletions.
9 changes: 1 addition & 8 deletions specification/versioning-and-stability.md
Original file line number Diff line number Diff line change
Expand Up @@ -126,13 +126,10 @@ maintainers SHOULD choose the idiomatic way for their language.

#### SDK Stability

Public portions of SDK packages MUST remain backwards compatible.
There are two categories of public features: **plugin interfaces** and **constructors**.
Examples of plugins include the SpanProcessor, Exporter, and Sampler interfaces.
Examples of constructors include configuration objects, environment variables, and SDK builders.

Languages which ship binary artifacts SHOULD offer [ABI compatibility](glossary.md#abi-compatibility) for SDK packages.

#### Contrib Stability

Plugins, instrumentation, and other contrib packages SHOULD be kept up to date
Expand All @@ -144,10 +141,6 @@ in [Telemetry Stability](telemetry-stability.md).) The goal is to ensure users c
update to the latest version of OpenTelemetry, and not be held back by the
plugins that they depend on.

Public portions of contrib packages (constructors, configuration, interfaces) SHOULD remain backwards compatible.

Languages which ship binary artifacts SHOULD offer [ABI compatibility](glossary.md#abi-compatibility) for contrib packages.

**Exception:** Contrib packages MAY break stability when a required downstream dependency breaks stability.
For example, a database integration may break stability if the required database client breaks stability.
However, it is strongly RECOMMENDED that older contrib packages remain stable.
Expand Down Expand Up @@ -310,7 +303,7 @@ We invented a new tracing API, but continue to support the old one.

## Version numbers

OpenTelemetry clients follow [Semantic Versioning 2.0.0](https://semver.org/spec/v2.0.0.html), with the following clarifications.
OpenTelemetry clients MUST follow [Semantic Versioning 2.0.0](https://semver.org/spec/v2.0.0.html), with the following clarifications.

OpenTelemetry clients have four components: API, SDK, Semantic Conventions, and Contrib.

Expand Down

0 comments on commit 2e626da

Please sign in to comment.