Skip to content

Conversation

@fischeti
Copy link
Contributor

@fischeti fischeti commented Oct 22, 2025

uv is a newer python package manager that is becoming more popular and it facilitates a couple of issues that we currently have. Essentially, it is a drop in replacement for pip and operates on the pyproject.toml description. But it has a couple of features and advantages that make it worth adapting:

  • It provides a universal lock file uv.lock to lock the resolved python package version used in the project (and subprojects). This will also be familiar to people using bender (in fact both uv and bender are inspired by Cargo)
  • It automatically installes the python version used in the project if it does not exist yet (i.e. the one that is pinned in .python-version)
  • It automatically creates a virtual environment behind the scenes and makes sure that it is synced with the lock file
  • It supports workspaces (resp. path dependencies as we know them from bender). This is not directly relevant for the snitch_cluster repository but for instance in picobello (see wip here), I can specify both floogen and snitch_cluster as dependencies and it will resolve the dependencies together, which is very convenient.
  • workspaces can also be editable so when you update the bender dependencies, you don't need to regenerate the virtual environments.
  • It supports adding specific indexes for python packages in pyproject.toml itself (looking at torch cpu-only version 👀).
  • It is waaay faster than pip 🚀 and the way it is implemented now still supports pip based installations
  • Last but not least, all the cool kidz are using it 😎

TODOs

  • Check IIS internal CI
  • Decide where uv should be taken from in the IIS environment. It is a small binary that could be installed on the fly, but we could also install it system wide
  • Adapt list-dependent-make-targets to specify python (inlined the action now with the uv environment)
  • Check if caching in CI should be enabled/disabled/improved

@fischeti fischeti marked this pull request as ready for review October 24, 2025 07:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant