Skip to content

Use UV to install all needed packages locally#3124

Merged
aabmass merged 26 commits intoopen-telemetry:mainfrom
Kludex:use-uv-locally
Feb 20, 2025
Merged

Use UV to install all needed packages locally#3124
aabmass merged 26 commits intoopen-telemetry:mainfrom
Kludex:use-uv-locally

Conversation

@Kludex
Copy link
Copy Markdown
Member

@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
Comment thread pyproject.toml
Copy link
Copy Markdown
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
Copy Markdown
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
Copy Markdown
Member 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
Copy Markdown

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

@Kludex
Copy link
Copy Markdown
Member 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.

Comment thread pyproject.toml
Comment thread pyproject.toml
@emdneto emdneto added the Skip Changelog PRs that do not require a CHANGELOG.md entry label Jan 14, 2025
Comment thread pyproject.toml
Comment thread uv.lock
Comment thread uv.lock
Copy link
Copy Markdown
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
Copy Markdown
Member Author

Kludex commented Jan 24, 2025

I'm ready.

@xrmx
Copy link
Copy Markdown
Contributor

xrmx commented Jan 28, 2025

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

@Kludex
Copy link
Copy Markdown
Member 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
Copy Markdown
Member 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
Copy Markdown
Member 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?

Comment thread pyproject.toml Outdated
@Kludex
Copy link
Copy Markdown
Member 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
Copy Markdown
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
Copy Markdown
Member

aabmass commented Feb 20, 2025

🥳

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

Status: Done

Development

Successfully merging this pull request may close these issues.

8 participants