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

Port from Poetry to uv #238

Open
1 of 9 tasks
johnthagen opened this issue Oct 12, 2024 · 3 comments
Open
1 of 9 tasks

Port from Poetry to uv #238

johnthagen opened this issue Oct 12, 2024 · 3 comments
Labels
enhancement New feature or request upstream

Comments

@johnthagen
Copy link
Owner

johnthagen commented Oct 12, 2024

Given the funding and momentum behind uv, it seems inevitable that it will become the most powerful, de facto packaging tool for Python. When it is deemed ready, it should be recommended in place of Poetry.

Benefits

  • Bootstrapping: A source of friction with Poetry is that users must first be instructed on how to install Python and pipx before they can install Poetry
  • uv can install Python itself, which is totally outside the scope of Poetry and is a desirable feature in and of itself (i.e. rustup for Python)
  • Speed: uv, being written in Rust and also having a design focus on performance, will likely out perform Poetry on every benchmark
  • Single binary: uv is distributed as a single binary meaning that all, among other things, users of uv version X get the exact same code. On the other hand, Poetry does not pin its dependencies so breakages can occur and not all users are guarenteed to have the same third party libraries installed with it
  • uv supports running scripts with PEP 723 Inline script metadata, while it does not appear Poetry supports this. pipx would need to be used for this, which further fragments the tools users must understand and keep up to date.

Upstream Requests

uv is still a fast moving project and it may be advantageous to wait to recommend moving to it until a few things have settled.

Nice to Have

Migration Guide

@johnthagen johnthagen added the enhancement New feature or request label Oct 12, 2024
@johnthagen
Copy link
Owner Author

uv 0.5.0 had a lot of breaking changes

So it's probably still prudent to continue to let it settle in while it goes through it's rapid early development.

@drmikehenry
Copy link

There's nothing wrong with waiting for some dust to settle, but the items marked "Breaking changes" in the 0.5.0 release notes don't seem very destabilizing to me. Because they potentially "could break some workflows", they've been gathered into a new 0.x.0 release, but these changes "have been marked as breaking out of an abundance of caution. We expect most users to be able to upgrade without making changes."

Also interesting is this issue and associated pull request that's in review:

When the pull request lands, uv will be marked with the classifier "Development Status :: 5 - Production/Stable".

So Astral may soon be considering uv to be stable.

@benomahony
Copy link

Looks like this has landed!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request upstream
Projects
None yet
Development

No branches or pull requests

3 participants