Skip to content

Commit

Permalink
[chore][VERSIONING.md] Document approach to optional experimental int…
Browse files Browse the repository at this point in the history
…erfaces (#11482)

<!--Ex. Fixing a bug - Describe the bug and how this fixes the issue.
Ex. Adding a feature - Explain what this achieves.-->
#### Description

<!-- Issue number if applicable -->

Documents the approach we have taken for adding experimental
functionality to interfaces. We take this approach with:

- `receiver.Factory`, may implement the
[`receiverprofiles.Factory`](https://pkg.go.dev/go.opentelemetry.io/collector/receiver/receiverprofiles#Factory)
optional interface (similar for other pipeline components)
- `component.Host` may implement the
[`componentstatus.Reporter`](https://pkg.go.dev/go.opentelemetry.io/collector/component/componentstatus#Reporter)
optional interface.
- `extension.Extension` may implement the optional interfaces in
[`extensioncapabilities`](https://pkg.go.dev/go.opentelemetry.io/collector/extension/extensioncapabilities).

In these cases we reserve the right to change the optional, experimental
parts of the underlying struct we return. You can also check whether you
are using experimental functionality by checking your `go.mod` and
seeing if you use one of these experimental modules.
  • Loading branch information
mx-psi authored Nov 21, 2024
1 parent 8dae522 commit 854dbf9
Showing 1 changed file with 3 additions and 0 deletions.
3 changes: 3 additions & 0 deletions VERSIONING.md
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,9 @@ Unless otherwise specified in the documentation, the following may change in any
* **Protocol compatibility**. Changing the default minimum version of a supported protocol (e.g. TLS) or dropping support for protocols when there are security concerns is not considered a breaking change.
* **Dependency updates**. Updating dependencies is not considered a breaking change except when their types are part of the
public API or the update may change the behavior of applications in an incompatible way.
* **Underlying type for interfaces**. If a struct exported as an interface has an experimental
method, this method may change or be removed in a minor version. The method will be published in an
optional interface under an experimental module to signal it is experimental.

### Configuration structures

Expand Down

0 comments on commit 854dbf9

Please sign in to comment.