Move from venvstarter to only using uv #60
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
All of my own projects use a project I started in 2016 to manage the virtualenv and dependencies in the project.
It came from the basic premise that I should be able to do nothing more than clone the repo and
./test.sh
or./my_program
to be able to bootstrap the project and use it.One of the problems I've always had with venvstarter (other than it's a niche tool that only I use and maintain) is that I can't have a lock file with it. And now it's kinda difficult to make it use uv. I started to rewrite venvstarter itself but I've decided perhaps I can have what I want with using uv itself and not having my software in the middle.
Turns out that's possible and this PR does just that to this project.
There's some awkward stuff cause I'm supporting multiple versions of mypy/django-stubs and uv project stuff doesn't have the capacity atm for conflicting requirements.
Though having said that with this change it becomes much easier to be able to run those tests locally and CI without having to apply a patch to the codebase (also because I did a change so that a patch isn't required for turning the proper_plugin on and off).
Ultimately I'm able to keep my variant of the scripts to rule them all pattern and have root level
./dev
,./lint
,./format
,./types
and implement this withuv
andclick
instead of withvenvstarter
.And I rely on
uv sync
to bootstrap the virtualenv as well as now have a lock file.