open-telemetry / open-telemetry/opentelemetry-python

Review opentelemetry-configuration dependency choices before 1.0

Open
#5,392 1 comment 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

config
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

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 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.