Why?
Arguments for doing so:
- It is fast
- Less typing
- It unifies the packaging experience, under one tool
- It is widely used according to https://pypistats.org/packages/uv and also supports build backends like setuptools, hatch, flit etc
Arguments against:
- Relatively new and frequently updated
Things to teach
For now, to avoid becoming obsolete we will only teach three commands:
uv init --lib with some manual edits or uv init --lib --no-pin-python --python 3.10
uv build
uv publish
As of now, these commands could be used with similar behaviour, if we replace uv with either flit, hatch, poetry, pdm.
In the future, when are sure that uv is here to stay, we can extend it to:
uv add
uv sync
uv lock
uv run