open-telemetry / open-telemetry/opentelemetry-python-contrib
Running tox tests locally is painfully slow (for slow internet connections)
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 1.1k
- Forks
- 1.1k
- Avg merge
- 4d 15h
- Merged PRs (30d)
- 16
Description
When running tox tests for an instrumentation dependencies to the core repo are currently resolved/installed via pip, which clones the core repo to a temporary local folder.
A single instrumentation usually requires multiple packages from the core repo. E.g. running tox -e py39-test-instrumentation-botocore requires: opentelemetry-api, opentelemetry-semantic-conventions, opentelemetry-instrumentation, opentelemetry-sdk, and opentelemetry-test.
For each of these dependencies, pip will separately clone the core repo. Currently, the core repo is ~75MB in size. For slow internet connections (~1MB/s) a single clone operation can already take up to 1min. So for a single test run to complete that would already be about 5min+.
It might not be that noticeable in CI but i guess cloning the core repo for every dependency also negatively impacts the CI build time since this actually multiplies by test and by runtime.
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
The reported entry point is tox -e py39-test-instrumentation-botocore; begin by tracing how this environment installs the five core-repository packages with pip. Compare local and CI behavior, then verify that one instrumentation run no longer repeats the core-repository clone for each dependency.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- build-system, testing-qa
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100