Description
Describe your environment
- Python 3.8.12, 3.9.12, 3.10.4 (matrix build)
- Poetry 1.1.13
- Private package X depends on
backoff
opentelemetry-api
opentelemetry-sdk
opentelemetry-exporter-otlp
- Renovate bot trying to apply the
backoff
major version update from 1.x series to 2.0.x - Other additional dependencies already updated to backoff 2.0.x series, resulting in failing builds and deployments
Steps to reproduce
- Create pyproject.toml:
[tool.poetry]
name = "boffdep"
version = "1.0.0"
description = "backoff 2.x vs opentelemetry"
authors = []
[tool.poetry.dependencies]
python = "^3.10"
backoff = "^2.0.0"
opentelemetry-api = "^1.11.0"
opentelemetry-sdk = "^1.11.0"
opentelemetry-exporter-otlp = "^1.11.0"
[build-system]
requires = ["poetry_core>=1.0.0"]
build-backend = "poetry.core.masonry.api"
- Run
poetry install
What is the expected behavior?
Updating to / using backoff
2.0.x succeeds.
What is the actual behavior?
Poetry output:
Resolving dependencies...
SolverProblemError
Because no versions of opentelemetry-exporter-otlp match >1.11.0,<1.11.1 || >1.11.1,<2.0.0
and opentelemetry-exporter-otlp (1.11.0) depends on opentelemetry-exporter-otlp-proto-http (1.11.0), opentelemetry-exporter-otlp (>=1.11.0,<1.11.1 || >1.11.1,<2.0.0) requires opentelemetry-exporter-otlp-proto-http (1.11.0).
And because opentelemetry-exporter-otlp-proto-http (1.11.0) depends on backoff (>=1.10.0,<2.0.0), opentelemetry-exporter-otlp (>=1.11.0,<1.11.1 || >1.11.1,<2.0.0) requires backoff (>=1.10.0,<2.0.0).
And because opentelemetry-exporter-otlp (1.11.1) depends on opentelemetry-exporter-otlp-proto-http (1.11.1)
and opentelemetry-exporter-otlp-proto-http (1.11.1) depends on backoff (>=1.10.0,<2.0.0), opentelemetry-exporter-otlp (>=1.11.0,<2.0.0) requires backoff (>=1.10.0,<2.0.0).
So, because boffdep depends on both backoff (^2.0.0) and opentelemetry-exporter-otlp (^1.11.0), version solving failed.
Additional context
Backoff 2.0.x release dropped Python 3.6 support.
https://github.com/litl/backoff/blob/master/CHANGELOG.md#v200---2022-04-26
Some Opentelemery Python components depend on backoff >= 1.10.0, < 2.0.0
.
Previous change:
b2e9387
README states:
We remove support for old Python versions 6 months after they reach their end of life.
https://github.com/open-telemetry/opentelemetry-python#python-version-support-addition-and-removal
Python 3.6 reached EOL 2021-12-23, which means opentelemetry-python
support for it ends in about five weeks from now.
-> Just wait? Or could the dependency be loosened (for fresh Python versions)?