-
Notifications
You must be signed in to change notification settings - Fork 20
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
Discuss possible stable+incubating solutions for semconv artifacts #50
Comments
I think the cleanest solution from user perspective would be option 2: we'd have We can also discuss at the SIG meeting, but I always have a conflict discussing the same thing with Python SIG at the same time:) Once we pick the ideal solution I'll make another pass on build-tools to add convenience for this specific case if anything else is necessary. |
We discussed in the 3/14/24 Java SIG. Decided that a single artifact is probably not the right approach based on the following example:
The normal way to resolve dependency version conflicts is to update to the latest of all dependencies. In this case, The consensus of the discussion was to:
Note that #45 is aligned with this strategy, except in that it does not currently retain deprecated experimental attributes. Will address that in a followup. |
Extracted from #45
Repeating the question I left on the python PR open-telemetry/opentelemetry-python#3586 (comment)
Option 1: ship 2 artifacts (
semconv
andsemconv-incubating
) - current solutionIt's aligned with semantic versioning, easy to maintain.
Still having stable attributes as deprecated in the incubating artifact is not great.
Option 2: ship 1 artifact, but two different versions: stable and preview. Stable contains only stable semconv. Preview contains all of them.
Ideal in terms of semantic versioning. When attribute stabilizes, it remains in the same namespace and all libs/apps that depend on it don't need to change
The only downside is that it could be harder to maintain and release.
Option 3: Probably not applicable to Java - ship 1 artifact, 1 version containing stable and experimental semconv. Emphasize that some parts are experimental via namespace (
import semconv.experimental.foo_attributes
, perhaps we should call it_experimental
)?It's easy to do, but violates semantic versioning. When attribute stabilizes, it moves to a different namespace, i.e. libs/apps that depend on it need to change.
The text was updated successfully, but these errors were encountered: