Skip to content

Conversation

@clacroix12
Copy link
Contributor

@clacroix12 clacroix12 commented Jan 14, 2026

This PR serves as an introduction to UV as our new project and package manager. Initially I would like to add uv compatibility alongside our current dependency management to allow us to migrate smoothly.

This contains the following:

  • pyproject.toml - Replacement for setup.py. Defines project information, dependencies, scripts, etc.
  • requirements.in - Not necessary for uv going forward but was used to add our base requirements to uv
  • uv.lock - Managed entirely by uv, lockfile which ensures that environments that run our code through uv run will be utilizing the correct dependency versions
  • .python-version - Generated by uv as a part of the init process, specifies the version we wish uv to execute with

Initial performance comparison:
I wanted to display the difference between pip installing our requirements and installing them through uv. This was done by performing the following experiment:

  • Created a lock of our dependency tree:
    • uv pip compile pyproject.toml -o requirements.lock
  • Created new venvs for both pip and uv:
    • python -m venv .venv-pip
    • python -m venv .venv-uv
  • Using their respective venvs, timed the installation of the requirements:
    • time pip install -r requirements.lock
    • time uv pip install -r requirements.lock

One example of the results:
pip install -r requirements.lock 41.09s user 2.82s system 86% cpu 50.728 total
uv pip install -r requirements.lock 0.12s user 1.09s system 333% cpu 0.362 total

I performed this experiment several times and on average uv was over 300 times faster than pip.

@clacroix12 clacroix12 requested a review from a team January 14, 2026 20:44
@clacroix12 clacroix12 requested a review from a team as a code owner January 14, 2026 20:44
@clacroix12 clacroix12 added enhancement New feature or request team/ecosystem Ecosystem team related issues/PRs labels Jan 14, 2026
@pull-request-size pull-request-size bot added the size/L PR that changes 100-499 lines label Jan 14, 2026
@openshift-ci
Copy link

openshift-ci bot commented Jan 14, 2026

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: clacroix12

The full list of commands accepted by this bot can be found here.

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

Signed-off-by: Coady LaCroix <[email protected]>
@clacroix12
Copy link
Contributor Author

Fixed formatting issue black is complaining about in the PR checks here: #14114. I'm not sure why it's blocking this PR as I haven't touched those files but I fixed them nonetheless.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

do-not-merge/work-in-progress enhancement New feature or request size/L PR that changes 100-499 lines team/ecosystem Ecosystem team related issues/PRs

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant