Use uv to manage ci dependencies #39060
Closed
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.
We currently just use
pip install pytest
and similar commands to install some python tools during our CI runs. Pip will always install the latest version of these tools, which might accidentally break our workflow. Thus, we need to lock the version used for these dependencies. The need for such a locking was raised also on the mailing list.Here we use uv to create and easily maintain a lock file based on the dependency groups added in #37446.
For the moment, this lock file is only used to install pytest/coverage/etc during CI. Next step would be to migrate the linters to uv.
uv
also allows to easily install all python dependencies and python versions of the actual project, so we might want to use it to replace the python bits in sage-the-distro.Also adds inline-metadata for
tools/update-meson.py
so that it can easily be run viauv
without manually installing deps.📝 Checklist
⌛ Dependencies