-
Notifications
You must be signed in to change notification settings - Fork 838
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
Semantic Conventions Update Options #4771
Comments
I think option 3 is the best. It avoids massive installation size duplication, allows users to reference deprecated attributes, and makes it clear what is experimental and what is stable. |
I agree that option 3 is best. Thanks very much for writing these out. It helped me sort out my understanding and preferences. |
I also support Option 3.
|
It's actually in two places:
|
+1 to Option 3 For open-telemetry/semantic-conventions#1118 it seems we're reaching a consensus towards option 2. IIUC this will solve the collision problem but cannot avoid the problem of old const name having the new value (as mentioned open-telemetry/semantic-conventions#1118 (comment)). Which kind of version bump is going to happen in |
If the answer is major, then let's talk about dropping the old ( |
+1 to option 3. Unless it is reasonable for a single package to depend on multiple semconv versions at the same time, I would find that utilize semver of the semconv package and exposing an experimental entrypoint would be more intuitive and maintainable. |
I thought we would have a minor version which contains both the old names and the new names. It should not be necessary to depend on multiple versions. When an attribute is renamed/deprecated, it is added to the deprecated yaml and still appears in newer versions of the semconv, so should be in the latest version. Any code that compiles with semver 1.25 should also compile just fine with semver 1.26 We could consider going to 2.0 to remove the namespace versions and old SEMATTRS names, but I think we should have at least some period of overlap before doing that. |
This issue is stale because it has been open 60 days with no activity. Remove stale label or comment or this will be closed in 14 days. |
We've gone with Option 3 in #4690 |
This is to document each of the potential solutions we have discussed to update our semantic conventions
Option 1: package.json entry points
example: #4770
This option involves adding an entry point for each semconv version. The top level export would export stable attributes, and all experimental attributes would be hidden under a version-specific entrypoint.
Cons:
Option 2: single semconv version per release
This option involves publishing a new semconv package and version-locking it with the upstream semconv. Each version would contain only its generated attributes.
Cons:
Option 2.1: Release a new package for each semconv version with version in name
This is similar to the above but we actually bake the semconv version directly into the name of the package so the user doesn't have to mess around with package.json renames. We would not keep old versions in the repo since they would never be updated. If they do need to be updated we would have to resurrect them from git history.
Option 3: use stable/experimental package.json entrypoints
Example: #4690
This involves using package.json entrypoints to export experimental attributes explicitly. Top level would only include stable attributes. Deprecated attributes are included with
@deprecated
tags for backwards compatibility.Other options lightning round
These options were discussed but nobody seemed to jump at them and there wasn't much discussion
The text was updated successfully, but these errors were encountered: