open-telemetry / open-telemetry/opentelemetry-python
Review opentelemetry-configuration dependency choices before 1.0
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 2.6k
- Forks
- 1k
- Avg merge
- 4d 15h
- Merged PRs (30d)
- 19
Description
Before opentelemetry-configuration reaches 1.0, revisit two dependency-choice questions raised during the PR that extracted the package (#5356).
1. SDK / API version pinning
Today the package pins opentelemetry-api == 1.44.0.dev and opentelemetry-sdk == 1.44.0.dev. The pin is required because the package uses developmental/unstable functionality from the SDK that is not covered by the SDK's stable API guarantees, so a ~= compatible-release specifier would risk silent breakage across minor versions.
Once the SDK internals used by opentelemetry-configuration are either stable or replaced with public API, relax the pin to opentelemetry-api ~= X.Y and opentelemetry-sdk ~= X.Y.
Raised by @herin049 in #5356 review, reiterated by @lzchen in #5356.
2. yaml / json extras
Today pyyaml >= 5.4 and jsonschema >= 4.0 are both required top-level dependencies. Users who only want to load JSON configuration still pay the pyyaml install cost. Consider whether to split parsing into [yaml] and [json] extras (or a single [yaml] extra with json remaining in the base install, since json is stdlib).
Decision was to keep pyyaml as a required dep for now because YAML is what the spec and docs lead with, and the common path shouldn't be one install step longer. Revisit if there is real demand for JSON-only installs.
Raised by @herin049 in #5356 review.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the opentelemetry-configuration package and PR #5356, then inspect the SDK internals it uses and its dependency metadata. Determine whether those internals are stable or public and whether JSON-only installs have real demand. Done means reaching and recording a dependency decision, then validating the package’s dependency resolution.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- tooling
- Issue type
- Refactor
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100