You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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 is still a fast moving project and it may be advantageous to wait to recommend moving to it until a few things have settled.
Dependency groups PEP 735: This is a feature that Poetry has and uv only currently has support for a single "dev" group. It is nice to be able to break up dependencies into logical groups and provide support for installing them independently.
PEP 751 standardized lockfiles: Like Poetry, uv has it's own custom lockfile format. There is on going discussions about creating a standardized lockfile format. If approved, it may be nice to wait until uv supports this, so that users do not have to migrate lockfiles twice (once to uv's custom format, and again to the standardized format).
Poetry provides it's own build backend, and it's nice to not have to track two different projects to form the entire pipeline of build and packaging. In uv's case, currently one would have to track uv and hatchling.
uv updating top level dependencies in pyproject.toml
Native PyCharm support: PyCharm already automatically supports the .venv virtual environments created, but it would be even better if it supported introspecting uv.lock and provided features similar to its native Poetry integration
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:
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
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.
pyproject.toml
astral-sh/uv#8090Nice to Have
pyproject.toml
pyproject.toml
astral-sh/uv#6794pyproject.toml
wntrblm/nox#845nox-poetry
does not have this either.venv
virtual environments created, but it would be even better if it supported introspectinguv.lock
and provided features similar to its native Poetry integrationuv.lock
uv.lock
dependabot/dependabot-core#10478uv check
similar topoetry check
uv check
command to validatepyproject.toml
uv
configuration astral-sh/uv#9653uv
does not have an equivalent to Poetrypackage-mode
Migration Guide
poetry install --sync
->uv sync
uv lock --check
--locked
and--frozen
as--check
operations foruv lock
astral-sh/uv#9662Requires-Python
astral-sh/uv#4086tool.poetry.group
poetry update
- >uv lock --upgrade
The text was updated successfully, but these errors were encountered: