astral-sh / uv

An extremely fast Python package and project manager, written in Rust.
https://docs.astral.sh/uv
Apache License 2.0
21.62k stars 631 forks source link

pick some real Python projects and attempt to port them to `uv` with universal locking #3881

Closed BurntSushi closed 2 months ago

BurntSushi commented 4 months ago

I'd like to start small (as in, a small dependency tree) but with a project that benefits from having a platform independent lock file. So probably a project that utilizes the universal locking of Poetry or PDM.

I'd also like to try locking packse's pyproject.toml and see what happens.

The idea is to see what issues arise with our universal locking implementation in real projects.

Ref #3347

mjclarke94 commented 4 months ago

Pretty much anything which leverages torch would be a good stress test given you need to use different index urls on a per platform basis.

adeebshihadeh commented 3 months ago

We're excited to switch for openpilot.

Previous attempt here: https://github.com/commaai/openpilot/pull/32530.

helderco commented 3 months ago

Curious to try it in dagger modules, but I'll need to catch up on these changes.

jab commented 3 months ago

bidict has a pretty small dependency tree (no runtime deps, and just a handful of test deps), in case it's a good candidate for testing this with -- it would exercise resolving different dependencies for different versions of python as well as for different dependency groups all into the same lockfile. It currently uses uv pip compile-generated requirements files (rather than Poetry or PDM). Looking forward to simplifying all those test.txt requirements files (under the dev-deps/* subtree) that have been required without this feature.

zanieb commented 3 months ago

I ported packse in https://github.com/astral-sh/packse/pull/183 if anyone is interested in what that looked like.