Change schema version format to major.minor(-prerelease)
#4355
Labels
triage:deciding:community-feedback
Open to community discussion. If the community can provide sufficient reasoning, it may be accepted
Today Schema URL looks like
https://opentelemetry.io/schemas/1.29.0
and the version part of it follows MAJOR.MINOR.PATCH format.It has a couple of limitations.
It has no indication of stability.
We should add pre-release part - instrumentation that follows stable part of conventions, would use
https://opentelemetry.io/schemas/1.29.0
, instrumentation that follows experimental conventions would puthttps://opentelemetry.io/schemas/1.29.0-dev
version. We can support other suffixes matching maturity levels used in semconv if necessary.Related: Publish two schemas versions with each release: stable and everything semantic-conventions#1511
Exact patch number limits ability to fix issues.
E.g. we botched semconv release
1.42.0
and need to patch.If somebody managed to start using this broken version and reports telemetry with schema
1.42.0
, but1.42.1
is available, I'd say consumer should assume it follows 1.42.1. One of the problems it solves are bugs in schema file - there is no way to fix them now without publishing a new version and changing the producer to start using it.If semconv artifact was generated and lists
1.42.0
as one of available versions, this artifact would need to add1.42.1
too, even though nobody should ever use 1.42.0 version anymore.One way to improve it would be to publish all semconv patches to the same URL and use
https://opentelemetry.io/schemas/1.42
orhttps://opentelemetry.io/schemas/1.42.x
format.The downside is that the producer of telemetry has no way to specify which patch they emit. I can't come up with a realistic
example where it would be important.
Related: Prepare stable release semantic-conventions-java#130 (comment)
The text was updated successfully, but these errors were encountered: