astral-sh / uv

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

Write migration guides #5200

Open zanieb opened 1 month ago

zanieb commented 1 month ago

e.g from Poetry and pip-tools to uv

chrisrodrigue commented 1 month ago

pdm is pretty similar to poetry but it could still be worth having one for it as well.

pdm supports defining scripts/commands in pyproject.toml so there might not be a direct translation of that feature (would be cool if uv could do that though!)

zanieb commented 1 month ago

We want to do that eventually, we're trying to keep the scope down so we can get some stable features in peoples hands :)

I don't think we'll include a guide for every package manager out there, e.g., pdm is great but has ~2.5% of the monthly downloads of Poetry (1m vs 40m). In general, migration guides are a lot of work to maintain since we need to keep tabs on other tools — I'd like to keep the scope small.

michaelmior commented 3 weeks ago

Would be nice to have pipenv included here if possible. It's got around the same number of monthly downloads as pip-tools.

ucg8j commented 2 weeks ago

@zanieb glad to see this issue created. Massive plus one on prioritising by monthly downloads. If there was a poetry migration guide I'd imagine you'd see quite an uptick in uv usage. Myself included! I want to get an idea of what is involved, common edge cases etc, before investing the time doing it.

wu-clan commented 2 weeks ago

I'd like to express my thoughts.

So far it seems that uv init --from-project <path> can copy dependencies from an existing project

In fact, if I use this command, which in the vast majority of cases I believe I do in order to migrate the project to uv, then why add the ---from-project parameter?

I'm a fan of pdm, which determines whether to create or migrate by recognizing the current existence of pyproject.toml, which I think is great, and if this is implemented, the user can do a quick migration with uv init, but consider the other commands for compatibility: uv init --lib...

Please don't try to reject pdm, fastapi, pydantic all use it!