potiuk opened a new issue, #71176:
URL: https://github.com/apache/airflow/issues/71176

   Our generated constraints currently pin two packages to pre-release (beta) 
versions:
   
   ```
   opentelemetry-exporter-prometheus==0.65b0
   opentelemetry-semantic-conventions==0.65b0
   ```
   
   These are the only pre-releases in the constraints files we tag and ship, 
and both require a hardcoded exception in 
[`scripts/in_container/run_generate_constraints.py`](https://github.com/apache/airflow/blob/main/scripts/in_container/run_generate_constraints.py)
 (`additional_constraints_for_highest_resolution`).
   
   ### Why the exception exists
   
   Constraints cut for a release candidate resolve with `--prerelease 
explicit`, which permits a pre-release only for packages some requirement 
explicitly marks as such, and drops the `if-necessary` fallback. Neither 
OpenTelemetry package has *ever* published a final release - every version on 
PyPI is `0.NNbM` (61 releases for `opentelemetry-semantic-conventions`, 55 for 
`opentelemetry-exporter-prometheus`, zero non-pre-release among them). Without 
an explicit pre-release lower bound in the resolution, they cannot resolve at 
all and constraints generation fails with `No solution found`.
   
   ### Where they come from
   
   - `opentelemetry-exporter-prometheus` - direct dependency of the `otel` 
extra of `apache-airflow-core` (which is part of the `all` extra), `>=0.47b0`.
   - `opentelemetry-semantic-conventions` - hard transitive dependency of 
`opentelemetry-sdk`, which comes in via `opentelemetry-exporter-otlp` (a core 
`apache-airflow-core` dependency) and directly via `shared/observability` and 
`shared/listeners`.
   
   So neither pin can simply be dropped today: `semantic-conventions` is 
unavoidable as long as we depend on the OpenTelemetry SDK at all.
   
   ### What needs to happen
   
   Any of the following would let us delete the exception:
   
   1. **Upstream stabilisation** - OpenTelemetry Python graduates these 
components to `1.x` finals. This is the real fix and is outside our control; it 
needs tracking against 
[`open-telemetry/opentelemetry-python`](https://github.com/open-telemetry/opentelemetry-python).
   2. **Drop `opentelemetry-exporter-prometheus`** from the `otel` extra and 
document it as a user-installed optional dependency - removes one of the two 
pins, but not `semantic-conventions`.
   3. **Reconsider whether shipping the OTel SDK in core dependencies is 
required**, since it is what drags `semantic-conventions` in.
   
   Option 1 is the only one that removes both pins without a functional 
trade-off, so this issue mainly serves as the tracking anchor referenced from 
the code, to be revisited whenever the OTel Python packages change their 
versioning scheme.
   
   ### Acceptance criteria
   
   - No pre-release version appears in tagged constraints files.
   - `additional_constraints_for_highest_resolution` in 
`scripts/in_container/run_generate_constraints.py` no longer needs entries for 
either OpenTelemetry package, and constraints generation still succeeds with 
`--allow-pre-releases` (the RC path).
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to