Skip to content

Investigate uv as venv/package manager #17935

@LeonarddeR

Description

@LeonarddeR

UV seems to be a new replacement for several python eco system tools, including pip and venv. It is build by the ruff authors and claims to be much faster than tools like pip. It can also be used as a replacement for these tools without too much hazard.

I think this tool can offer us many benefits, especially as part of the x64 migration strategy.

  1. Support for dependency groups, for example to have a separate group for system tests
  2. It can manage python itself as well has handling multiple python versions per project, likely beneficial for the X64 migration.
  3. It has support for package locking, meaning that nvda development environments will be consistent and reproducible
  4. It has the concept of build systems, so we can probably integrate it with scons pretty neatly.
  5. Probably more...

A downside is that you need to install uv stand alone, but that's a oneliner with winget. And after that, you can either use an already installed version of python or let uv automatically use the right python version.

Metadata

Metadata

Assignees

Labels

audience/nvda-devPR or issue is relevant to NVDA / Add-on developersblocked/needs-product-decisionA product decision needs to be made. Decisions about NVDA UX or supported use-cases.needs-triage
No fields configured for Feature.

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions