open-telemetry / open-telemetry/opentelemetry-python

Split semantic conventions package to two to publish stable as 1.x

Open
#4,952 3 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

feature-request
Dominant language
Python
Stars
2.6k
Forks
1k
Avg merge
4d 15h
Merged PRs (30d)
19

Description

Is your feature request related to a problem?

Currently, there is one semantic-conventions package with stable and incubating attributes in it. FWIU, there are many deprecated attributes as well inside it from before the concept of incubating was introduced.

When writing instrumentation that wants to only depend on 1.x artifacts, it would be nice if semconv could still be imported.

https://github.com/connectrpc/connect-python/pull/150/changes#diff-e00c59ab50329e61f6ae3512806ae2e2c4e4709ea93571fb5b94354e1bbf6e65

Describe the solution you'd like

I suspect the current semantic-conventions package may not want to be repurposed since it's used too much, even though it's not 1.x. In that case, I propose

  • Deprecate opentelemetry-semantic-conventions pypi package
  • Add opentelemetry-semconv pypi package which only has stable conventions. Release as 1.x (possibly align the version with OTel spec, or not)
  • Add opentelemetry-semconv-unstable pypi package that includes incubating. Using _ to extra-inforce these are unstable could make sense, or the fact that there is unstable in the artifact name could be enough. This artifact is never 1.x.
Describe alternatives you've considered

The current semantic-conventions pypi package could be reworked to only include current, stable attributes. Any user using non-stable attributes would need to migrate. This is fair since it's not 1.x but maybe too destabilizing to the ecosystem

Additional Context

No response

Would you like to implement a fix?

None

Tip

React with 👍 to help prioritize this issue. Please use comments to provide useful context, avoiding +1 or me too, to help us triage it. Learn more here.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing how the current semantic-conventions PyPI package is defined and released, then trace where stable, incubating, and deprecated attributes are grouped. Compare that structure with the proposed opentelemetry-semconv and opentelemetry-semconv-unstable packages. Done means the package boundaries, deprecation path, and versioning policy are agreed.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
build-system, release
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
28/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.