Using only one package manager in project #4872
Replies: 2 comments 6 replies
-
I think the big kicker will be dropping
Getting rid of and deps that rely on |
Beta Was this translation helpful? Give feedback.
-
We have an open discussion about dropping Python 3.8 in #4738. The move to a single package manager is a good argument in my opinion. Feel free to create a first shot at this @ProfessorTom. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
I recently made a PR where I addressed the
dev
container not building out of the box. While doing so, I noticed that we use bothpip
andpoetry
when building that container. I believe this pattern of mixing both package managers is prevalent throughout the project e.g. in fly.dockerflie, pyproject.toml and .devcontainer/Dockerfile to list a few.I asked around at my local Python meetup and was advised that the point of
poetry
was to have reproducible builds, hencepoetry.lock
. So, I'd like to propose that one package manager be used.This suggestion, however, could mean multiple steps.
Why? it turns out that uv is a drop-in replacement for
poetry
.uv
is written in Rust and is quite a bit faster thanpoetry
. In theory we could move touv
in one go, but I'm a cautious man and prefer to do things one step at a time so I can fix what breaks at each step. So Step 1 may be to eliminatepip
and only usepoetry
...which may in turn lead to the very problem that existed with the development container when I submitted my PR:Python 3.8
is no longer supported by several dependencies. So the real Step 1 may be to drop support forPython 3.8
in favor for at leastPython 3.9
, then removepip
, then move touv
.Of course, there may be good reason for keeping
pip
around Maybe there is a dependency that only works withpip
(but I'm told thatpoetry
anduv
both pull frompypy
, so ifpip
can install the dependency,poetry
anduv
should be able to do so as well.I would be more than happy to this work, but it may require a deep understanding of the project. Then again, maybe I could just YOLO
poetry
oruv
only say indevelopment.dockerfile
in a branch and see if I can get the project to come up. My concern at that point would be that just having a site that runs may not be a sufficient test.I welcome any and all thoughts, comments and criticisms.
Beta Was this translation helpful? Give feedback.
All reactions