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

Use UV to install all needed packages locally #3124

Merged
merged 26 commits into from
Feb 20, 2025

Conversation

Kludex
Copy link
Contributor

@Kludex Kludex commented Dec 20, 2024

This is specifically to have a single virtual environment with all dependencies to make it easier to develop here.

@Kludex Kludex requested a review from a team as a code owner December 20, 2024 12:38
Copy link
Member

@emdneto emdneto left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Loved this. I would say other than speed-up local development, this paves the way to adopt uv in opentelemetry-python.

I think it will be necessary to add some instructions on how to use that. But just a note for reviewers:

With a simple command like uv sync you can have all packages from the project installed locally. If you want to install only one package you can run: uv sync --package opentelemetry-instrumentation-sqlalchemy for example.

@xrmx
Copy link
Contributor

xrmx commented Dec 23, 2024

Loved this. I would say other than speed-up local development, this paves the way to adopt uv in opentelemetry-python.

I think it will be necessary to add some instructions on how to use that. But just a note for reviewers:

With a simple command like uv sync you can have all packages from the project installed locally. If you want to install only one package you can run: uv sync --package opentelemetry-instrumentation-sqlalchemy for example.

Sure but aren't we adding another source of dependabot warnings? I'm fine on adding the metadata to the pyproject for people using uv but isn't this duplicating what we use tox for?

@Kludex
Copy link
Contributor Author

Kludex commented Dec 23, 2024

Sure but aren't we adding another source of dependabot warnings?

Unfortunately/Fortunately, Dependabot doesn't see the uv.lock yet.

I'm fine on adding the metadata to the pyproject for people using uv but isn't this duplicating what we use tox for?

Not really. The idea here is to have a single virtual environment that can be used by the IDE, and to simplify local development (running some scripts locally to test some integrations, etc). The tox is used to run the tests with multiple different environments, it doesn't really create this virtual environment.

@idan-rahamim-lendbuzz
Copy link

Is it possible that opentelemetry-bootstrap --action=install would install with UV/Poetry instead of pip?

@Kludex
Copy link
Contributor Author

Kludex commented Dec 29, 2024

Is it possible that opentelemetry-bootstrap --action=install would install with UV/Poetry instead of pip?

This is not related with this PR, please create an issue.

@emdneto emdneto added the Skip Changelog PRs that do not require a CHANGELOG.md entry label Jan 14, 2025
Copy link
Member

@emdneto emdneto left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@Kludex could you please write a guide on how people can use this setup? Maybe a small section in CONTRIBUTING.md is enough.

@Kludex
Copy link
Contributor Author

Kludex commented Jan 24, 2025

I'm ready.

@xrmx
Copy link
Contributor

xrmx commented Jan 28, 2025

Looks like the uv.lock is confusing ruff? Also curious aws xray propagator test failures.

@Kludex
Copy link
Contributor Author

Kludex commented Feb 6, 2025

Looks like the uv.lock is confusing ruff? Also curious aws xray propagator test failures.

No...

[testenv:ruff]
basepython: python3
deps =
  -c {toxinidir}/dev-requirements.txt
  pre-commit
commands =
  pre-commit run --color=always --all-files {posargs}

Calling the test ruff but running pre-commit doesn't help 👀

@Kludex
Copy link
Contributor Author

Kludex commented Feb 6, 2025

Also curious aws xray propagator test failures.

It seems it's looking to the uv.lock.

@Kludex
Copy link
Contributor Author

Kludex commented Feb 6, 2025

Also curious aws xray propagator test failures.

It seems it's looking to the uv.lock.

@emdneto we talked about this at some point. Do you remember why?

@Kludex
Copy link
Contributor Author

Kludex commented Feb 20, 2025

I dropped xray from the list of packages. It seems the problem is that on the tests, we try to install a package that is listed in the pyproject, but on the pyproject it references a commit, and in the tox it references a version.

I asked on their discord to see if I can do something about it.


But the test suite has their own virtual environments, so it's all good.

@emdneto
Copy link
Member

emdneto commented Feb 20, 2025

I dropped xray from the list of packages. It seems the problem is that on the tests, we try to install a package that is listed in the pyproject, but on the pyproject it references a commit, and in the tox it references a version.

I asked on their discord to see if I can do something about it.

But the test suite has their own virtual environments, so it's all good.

Just a note: The same will happen for all packages that are tested using pinned released versions of api/sdk in test requirements e.g., gen-ai stuff

@aabmass
Copy link
Member

aabmass commented Feb 20, 2025

🥳

@aabmass aabmass merged commit 6245fb8 into open-telemetry:main Feb 20, 2025
694 checks passed
@Kludex Kludex deleted the use-uv-locally branch February 20, 2025 22:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Skip Changelog PRs that do not require a CHANGELOG.md entry
Projects
None yet
Development

Successfully merging this pull request may close these issues.

8 participants