Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Change schema version format to major.minor(-prerelease) #4355

Open
lmolkova opened this issue Jan 8, 2025 · 1 comment
Open

Change schema version format to major.minor(-prerelease) #4355

lmolkova opened this issue Jan 8, 2025 · 1 comment
Labels
triage:deciding:community-feedback Open to community discussion. If the community can provide sufficient reasoning, it may be accepted

Comments

@lmolkova
Copy link
Contributor

lmolkova commented Jan 8, 2025

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.

  1. 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 put https://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

  2. 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, but 1.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 add 1.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 or https://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)

@lmolkova lmolkova changed the title Change schema-url (version) format to major.minor-prerelease Change schema version format to major.minor-prerelease Jan 8, 2025
@lmolkova lmolkova changed the title Change schema version format to major.minor-prerelease Change schema version format to major.minor(-preprelease) Jan 8, 2025
@lmolkova lmolkova changed the title Change schema version format to major.minor(-preprelease) Change schema version format to major.minor(-prerelease) Jan 8, 2025
@danielgblanco danielgblanco added the triage:deciding:community-feedback Open to community discussion. If the community can provide sufficient reasoning, it may be accepted label Jan 13, 2025
@danielgblanco
Copy link
Contributor

I'll leave this in community-feedback for now, but feel free to move it to accepted if this is something that's already been discussed in the TC @lmolkova

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
triage:deciding:community-feedback Open to community discussion. If the community can provide sufficient reasoning, it may be accepted
Projects
None yet
Development

No branches or pull requests

2 participants