Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Dependency conflicts during python3 scripts/eachdist.py develop #1083

Closed
maxenglander opened this issue May 3, 2022 · 3 comments · Fixed by #1366
Closed

Dependency conflicts during python3 scripts/eachdist.py develop #1083

maxenglander opened this issue May 3, 2022 · 3 comments · Fixed by #1366

Comments

@maxenglander
Copy link

Hello 👋

Was trying to get set up to contribute and ran into dependency conflicts.

My environment:

  • Mac Intel
  • Python 3.8.1

Steps to reproduce:

  1. Checkout latest commit
  2. mkdir .venv
  3. python3 -m venv .venv/default
  4. python3 scripts/eachdist.py develop

Error:

ERROR: Cannot install opentelemetry-exporter-datadog[test]==0.30b0, opentelemetry-instrumentation-aiohttp-client[test]==0.30b1, opentelemetry-instrumentation-aiopg[test]==0.30b1, opentelemetry-instrumentation-asgi==0.30b1, opentelemetry-instrumentation-asgi[test]==0.30b1, opentelemetry-instrumentation-asyncpg[test]==0.30b1, opentelemetry-instrumentation-aws-lambda[test]==0.30b1, opentelemetry-instrumentation-boto[test]==0.30b1, opentelemetry-instrumentation-botocore[test]==0.30b1, opentelemetry-instrumentation-celery[test]==0.30b1, opentelemetry-instrumentation-dbapi==0.30b1, opentelemetry-instrumentation-dbapi[test]==0.30b1, opentelemetry-instrumentation-django[test]==0.30b1, opentelemetry-instrumentation-elasticsearch[test]==0.30b1, opentelemetry-instrumentation-falcon[test]==0.30b1, opentelemetry-instrumentation-fastapi[test]==0.30b1, opentelemetry-instrumentation-flask[test]==0.30b1, opentelemetry-instrumentation-grpc[test]==0.30b1, opentelemetry-instrumentation-httpx[test]==0.30b1, opentelemetry-instrumentation-kafka-python[test]==0.30b1, opentelemetry-instrumentation-pymemcache[test]==0.30b1, opentelemetry-instrumentation-pymongo[test]==0.30b1, opentelemetry-instrumentation-pyramid[test]==0.30b1, opentelemetry-instrumentation-redis[test]==0.30b1, opentelemetry-instrumentation-requests[test]==0.30b1, opentelemetry-instrumentation-sqlalchemy[test]==0.30b1, opentelemetry-instrumentation-starlette[test]==0.30b1, opentelemetry-instrumentation-tornado[test]==0.30b1, opentelemetry-instrumentation-urllib3[test]==0.30b1, opentelemetry-instrumentation-urllib[test]==0.30b1, opentelemetry-instrumentation-wsgi==0.30b1, opentelemetry-instrumentation-wsgi[test]==0.30b1 and opentelemetry-test-utils because these package versions have conflicting dependencies.

The conflict is caused by:
    opentelemetry-instrumentation-wsgi[test] 0.30b1 depends on opentelemetry-semantic-conventions==0.30b1
    opentelemetry-sdk 1.11.1 depends on opentelemetry-semantic-conventions==0.30b1
    opentelemetry-instrumentation-dbapi[test] 0.30b1 depends on opentelemetry-semantic-conventions==0.30b1
    opentelemetry-instrumentation-asgi[test] 0.30b1 depends on opentelemetry-semantic-conventions==0.30b1
    opentelemetry-instrumentation-botocore[test] 0.30b1 depends on opentelemetry-semantic-conventions==0.30b1
    opentelemetry-instrumentation-pymemcache[test] 0.30b1 depends on opentelemetry-semantic-conventions==0.30b1
    opentelemetry-instrumentation-flask[test] 0.30b1 depends on opentelemetry-semantic-conventions==0.30b1
    opentelemetry-instrumentation-wsgi 0.30b1 depends on opentelemetry-semantic-conventions==0.30b1
    opentelemetry-instrumentation-tornado[test] 0.30b1 depends on opentelemetry-semantic-conventions==0.30b1
    opentelemetry-instrumentation-dbapi 0.30b1 depends on opentelemetry-semantic-conventions==0.30b1
    opentelemetry-instrumentation-redis[test] 0.30b1 depends on opentelemetry-semantic-conventions==0.30b1
    opentelemetry-instrumentation-fastapi[test] 0.30b1 depends on opentelemetry-semantic-conventions==0.30b1
    opentelemetry-instrumentation-asgi 0.30b1 depends on opentelemetry-semantic-conventions==0.30b1
    opentelemetry-instrumentation-starlette[test] 0.30b1 depends on opentelemetry-semantic-conventions==0.30b1
    opentelemetry-instrumentation-celery[test] 0.30b1 depends on opentelemetry-semantic-conventions==0.30b1
    opentelemetry-instrumentation-urllib3[test] 0.30b1 depends on opentelemetry-semantic-conventions==0.30b1
    opentelemetry-instrumentation-falcon[test] 0.30b1 depends on opentelemetry-semantic-conventions==0.30b1
    opentelemetry-instrumentation-django[test] 0.30b1 depends on opentelemetry-semantic-conventions==0.30b1
    opentelemetry-instrumentation-requests[test] 0.30b1 depends on opentelemetry-semantic-conventions==0.30b1
    opentelemetry-instrumentation-aiopg[test] 0.30b1 depends on opentelemetry-semantic-conventions==0.30b1
    opentelemetry-instrumentation-httpx[test] 0.30b1 depends on opentelemetry-semantic-conventions==0.30b1
    opentelemetry-instrumentation-kafka-python[test] 0.30b1 depends on opentelemetry-semantic-conventions==0.30b1
    opentelemetry-instrumentation-aws-lambda[test] 0.30b1 depends on opentelemetry-semantic-conventions==0.30b1
    opentelemetry-instrumentation-asyncpg[test] 0.30b1 depends on opentelemetry-semantic-conventions==0.30b1
    opentelemetry-instrumentation-elasticsearch[test] 0.30b1 depends on opentelemetry-semantic-conventions==0.30b1
    opentelemetry-instrumentation-sqlalchemy[test] 0.30b1 depends on opentelemetry-semantic-conventions==0.30b1
    opentelemetry-instrumentation-aiohttp-client[test] 0.30b1 depends on opentelemetry-semantic-conventions==0.30b1
    opentelemetry-instrumentation-boto[test] 0.30b1 depends on opentelemetry-semantic-conventions==0.30b1
    opentelemetry-instrumentation-urllib[test] 0.30b1 depends on opentelemetry-semantic-conventions==0.30b1
    opentelemetry-instrumentation-pyramid[test] 0.30b1 depends on opentelemetry-semantic-conventions==0.30b1
    opentelemetry-instrumentation-pymongo[test] 0.30b1 depends on opentelemetry-semantic-conventions==0.30b1
    opentelemetry-instrumentation-grpc[test] 0.30b1 depends on opentelemetry-semantic-conventions==0.30b1
    opentelemetry-exporter-datadog[test] 0.30b0 depends on opentelemetry-semantic-conventions==0.30b0

To fix this you could try to:
1. loosen the range of package versions you've specified
2. remove package versions to allow pip attempt to solve the dependency conflict

ERROR: ResolutionImpossible: for help visit https://pip.pypa.io/en/latest/topics/dependency-resolution/#dealing-with-dependency-conflicts
'python -m pip install -e 'file:///Users/maxenglander/dev/open-telemetry/opentelemetry-python-contrib/opentelemetry-instrumentation[test]' -e 'file:///Users/maxenglander/dev/open-telemetry/opentelemetry-python-contrib/util/opentelemetry-util-http[test]' -e 'file:///Users/maxenglander/dev/open-telemetry/opentelemetry-python-contrib/instrumentation/opentelemetry-instrumentation-wsgi[test]' -e 'file:///Users/maxenglander/dev/open-telemetry/opentelemetry-python-contrib/instrumentation/opentelemetry-instrumentation-dbapi[test]' -e 'file:///Users/maxenglander/dev/open-telemetry/opentelemetry-python-contrib/instrumentation/opentelemetry-instrumentation-asgi[test]' -e 'file:///Users/maxenglander/dev/open-telemetry/opentelemetry-python-contrib/instrumentation/opentelemetry-instrumentation-botocore[test]' -e 'file:///Users/maxenglander/dev/open-telemetry/opentelemetry-python-contrib/instrumentation/opentelemetry-instrumentation-pymemcache[test]' -e 'file:///Users/maxenglander/dev/open-telemetry/opentelemetry-python-contrib/instrumentation/opentelemetry-instrumentation-flask[test]' -e 'file:///Users/maxenglander/dev/open-telemetry/opentelemetry-python-contrib/instrumentation/opentelemetry-instrumentation-sklearn[test]' -e 'file:///Users/maxenglander/dev/open-telemetry/opentelemetry-python-contrib/instrumentation/opentelemetry-instrumentation-tornado[test]' -e 'file:///Users/maxenglander/dev/open-telemetry/opentelemetry-python-contrib/instrumentation/opentelemetry-instrumentation-psycopg2[test]' -e 'file:///Users/maxenglander/dev/open-telemetry/opentelemetry-python-contrib/instrumentation/opentelemetry-instrumentation-redis[test]' -e 'file:///Users/maxenglander/dev/open-telemetry/opentelemetry-python-contrib/instrumentation/opentelemetry-instrumentation-sqlite3[test]' -e 'file:///Users/maxenglander/dev/open-telemetry/opentelemetry-python-contrib/instrumentation/opentelemetry-instrumentation-fastapi[test]' -e 'file:///Users/maxenglander/dev/open-telemetry/opentelemetry-python-contrib/instrumentation/opentelemetry-instrumentation-system-metrics[test]' -e 'file:///Users/maxenglander/dev/open-telemetry/opentelemetry-python-contrib/instrumentation/opentelemetry-instrumentation-starlette[test]' -e 'file:///Users/maxenglander/dev/open-telemetry/opentelemetry-python-contrib/instrumentation/opentelemetry-instrumentation-celery[test]' -e 'file:///Users/maxenglander/dev/open-telemetry/opentelemetry-python-contrib/instrumentation/opentelemetry-instrumentation-urllib3[test]' -e 'file:///Users/maxenglander/dev/open-telemetry/opentelemetry-python-contrib/instrumentation/opentelemetry-instrumentation-pika[test]' -e 'file:///Users/maxenglander/dev/open-telemetry/opentelemetry-python-contrib/instrumentation/opentelemetry-instrumentation-falcon[test]' -e 'file:///Users/maxenglander/dev/open-telemetry/opentelemetry-python-contrib/instrumentation/opentelemetry-instrumentation-django[test]' -e 'file:///Users/maxenglander/dev/open-telemetry/opentelemetry-python-contrib/instrumentation/opentelemetry-instrumentation-requests[test]' -e 'file:///Users/maxenglander/dev/open-telemetry/opentelemetry-python-contrib/instrumentation/opentelemetry-instrumentation-logging[test]' -e 'file:///Users/maxenglander/dev/open-telemetry/opentelemetry-python-contrib/instrumentation/opentelemetry-instrumentation-pymysql[test]' -e 'file:///Users/maxenglander/dev/open-telemetry/opentelemetry-python-contrib/instrumentation/opentelemetry-instrumentation-aiopg[test]' -e 'file:///Users/maxenglander/dev/open-telemetry/opentelemetry-python-contrib/instrumentation/opentelemetry-instrumentation-httpx[test]' -e 'file:///Users/maxenglander/dev/open-telemetry/opentelemetry-python-contrib/instrumentation/opentelemetry-instrumentation-kafka-python[test]' -e 'file:///Users/maxenglander/dev/open-telemetry/opentelemetry-python-contrib/instrumentation/opentelemetry-instrumentation-aws-lambda[test]' -e 'file:///Users/maxenglander/dev/open-telemetry/opentelemetry-python-contrib/instrumentation/opentelemetry-instrumentation-asyncpg[test]' -e 'file:///Users/maxenglander/dev/open-telemetry/opentelemetry-python-contrib/instrumentation/opentelemetry-instrumentation-elasticsearch[test]' -e 'file:///Users/maxenglander/dev/open-telemetry/opentelemetry-python-contrib/instrumentation/opentelemetry-instrumentation-mysql[test]' -e 'file:///Users/maxenglander/dev/open-telemetry/opentelemetry-python-contrib/instrumentation/opentelemetry-instrumentation-sqlalchemy[test]' -e 'file:///Users/maxenglander/dev/open-telemetry/opentelemetry-python-contrib/instrumentation/opentelemetry-instrumentation-aiohttp-client[test]' -e 'file:///Users/maxenglander/dev/open-telemetry/opentelemetry-python-contrib/instrumentation/opentelemetry-instrumentation-jinja2[test]' -e 'file:///Users/maxenglander/dev/open-telemetry/opentelemetry-python-contrib/instrumentation/opentelemetry-instrumentation-boto[test]' -e 'file:///Users/maxenglander/dev/open-telemetry/opentelemetry-python-contrib/
instrumentation/opentelemetry-instrumentation-urllib[test]' -e 'file:///Users/maxenglander/dev/open-telemetry/opentelemetry-python-contrib/instrumentation/opentelemetry-instrumentation-pyramid[test]' -e 'file:///Users/maxenglander/dev/open-telemetry/opentelemetry-python-contrib/instrumentati
on/opentelemetry-instrumentation-pymongo[test]' -e 'file:///Users/maxenglander/dev/open-telemetry/opentelemetry-python-contrib/instrumentation/ope
ntelemetry-instrumentation-grpc[test]' -e 'file:///Users/maxenglander/dev/open-telemetry/opentelemetry-python-contrib/exporter/opentelemetry-exporter-datadog[test]' -e 'file:///Users/maxenglander/dev/open-telemetry/opentelemetry-python-contrib/exporter/opentelemetry-exporter-richconsole[test]' -e 'file:///Users/maxenglander/dev/open-telemetry/opentelemetry-python-contrib/opentelemetry-contrib-instrumentations[test]' -e 'file:///Users/maxenglander/dev/open-telemetry/opentelemetry-python-contrib/propagator/opentelemetry-propagator-aws-xray[test]' -e 'file:///Users/maxenglander/dev/open-telemetry/opentelemetry-python-contrib/propagator/opentelemetry-propagator-ot-trace[test]' -e 'file:///Users/maxenglander/dev/open-telemetry/opentelemetry-python-contrib/opentelemetry-distro[test]' -e 'file:///Users/maxenglander/dev/open-telemetry/opentelemetry-python-contrib/sdk-extension/opentelemetry-sdk-extension-aws[test]' --upgrade-strategy=eager' failed with code 1

Some other info:

  • I believe the issue is because opentelemetry-exporter-datadog[test] 0.30b0 depends on opentelemetry-semantic-conventions==0.30b0, whereas a bunch of other packages depend on opentelemetry-semantic-conventions==0.30b1.
  • I believe this issue was introduced during the 0.30b1 release.
  • When I locally changed opentelemetry-exporter-datadog to depend on version 0.30b1 of opentelemetry-semantic-conventions the issue is locally resolved.

I'm happy to commit up this change, but wasn't sure if there's more to fixing this.

diff --git a/exporter/opentelemetry-exporter-datadog/setup.cfg b/exporter/opentelemetry-exporter-datadog/setup.cfg
index e0124554..37d988c7 100644
--- a/exporter/opentelemetry-exporter-datadog/setup.cfg
+++ b/exporter/opentelemetry-exporter-datadog/setup.cfg
@@ -43,7 +43,7 @@ install_requires =
     ddtrace>=0.34.0,<0.47.0
     opentelemetry-api ~= 1.3
     opentelemetry-sdk ~= 1.3
-    opentelemetry-semantic-conventions == 0.30b0
+    opentelemetry-semantic-conventions == 0.30b1

 [options.packages.find]
 where = src
@srikanthccv
Copy link
Member

Ah our docs are not upto date for the eachdist and we generally just use the tox. That exporter is deprecated and will not receive any new additions. Did you try using the tox? Please let us know if you run into any issue with it.

@maxenglander
Copy link
Author

Hi @srikanthccv thanks for the response. I haven't tried running tox yet. Shall I update this issue description to something like "Update docs in CONTRIBUTING.md" ?

@srikanthccv
Copy link
Member

The current title is fine. I just wanted to get you unblocked before the eachdist script is fixed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants