uv is fast rising in popularity. It's written by Astral, the same folks behind ruff.
It does everything that Poetry does when combined with pyenv for Python installation, although its Python or even pyenv's may not be suitable for production use.
This experimentation should try swapping out poetry + pyenv in the Makefile to see what changes would be necessary.
I would not consider a wholesale switch until uv is 1.0.0, at which time I'd consider it with the values of
-
first-time setup performance
-
package installation performance (cold cache)
-
package update performance (hot cache)
-
availability of tooling replacements, e.g. diff-poetry-lockfile in our GitHub workflows
|
# This will post a comment on PRs when poetry.lock changes |
|
- name: Diff poetry.lock |
|
uses: nborrmann/diff-poetry-lock@c0afd3666864cec339f03ee5c5cf9cb671780c12 |
-
minimization of helper tasks e.g. poetry-venv-implode.
|
.PHONY: poetry-implode-venv |
|
poetry-implode-venv: ## Destroys the Poetry-managed virtualenv |
|
sleep 2 && rm -rf $$($(POETRY) env info --path) |
-
lockfile improvements (e.g. standardization track vs bespoke, diff-able, etc.)
-
others TBD
uv is fast rising in popularity. It's written by Astral, the same folks behind ruff.
It does everything that Poetry does when combined with pyenv for Python installation, although its Python or even pyenv's may not be suitable for production use.
This experimentation should try swapping out poetry + pyenv in the Makefile to see what changes would be necessary.
I would not consider a wholesale switch until uv is 1.0.0, at which time I'd consider it with the values of
first-time setup performance
package installation performance (cold cache)
package update performance (hot cache)
availability of tooling replacements, e.g. diff-poetry-lockfile in our GitHub workflows
make-python-devex/.github/workflows/make-based-ci.yml
Lines 22 to 24 in 669a039
minimization of helper tasks e.g. poetry-venv-implode.
make-python-devex/Makefile
Lines 314 to 316 in 669a039
lockfile improvements (e.g. standardization track vs bespoke, diff-able, etc.)
others TBD