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

Formalize attribute deprecation, restrict removal #740

Closed
lmolkova opened this issue Feb 13, 2024 · 1 comment · Fixed by #764
Closed

Formalize attribute deprecation, restrict removal #740

lmolkova opened this issue Feb 13, 2024 · 1 comment · Fixed by #764
Assignees

Comments

@lmolkova
Copy link
Contributor

lmolkova commented Feb 13, 2024

One of the key takeaways from #551 and similar issues on the tooling is that removing an attribute from semconv results in breaking changes for all languages.

Codegen (jinja based) does not take into account previous versions of the spec and does not generate code for removed attributes.

Given that semconv artifact is used by user applications and by different instrumentation libraries (potentially of different versions), removing an attribute leads to breaking changes that are too annoying even for unstable artifact.

The workaround SIGs implemented is to (manually) preserve removed attributes and annotate them as deprecated which created a lot of unnecessary work (and pain).

Proposal

  • Do not remove attributes, deprecate them
  • Stable -> deprecated attributes should stay till the next major semconv version (forever 🤞)
  • We can decide to remove experimental -> deprecated attributes after X versions/months
  • Add automated checks to semconv repo to prevent attribute removal

Nice-to-haves:

  • add yaml annotations like deprecated_since (and maybe to_be_removed_in )
@lmolkova
Copy link
Contributor Author

Work items:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants