Skip to content

feat(uv): multiversion packages and extras support#778

Merged
arrdem merged 36 commits intomainfrom
arrdem/fix-718-multiversion-and-extras
Mar 4, 2026
Merged

feat(uv): multiversion packages and extras support#778
arrdem merged 36 commits intomainfrom
arrdem/fix-718-multiversion-and-extras

Conversation

@arrdem
Copy link
Copy Markdown
Contributor

@arrdem arrdem commented Jan 16, 2026

The original uv extension prototype treated the uv.lock file as "requirements.txt++" which enormously undersells what uv can and will put into the lockfile.

One example of which is that in cases where the user provided marker dependent version constraints, uv will happily solve the constraints for all cases of the markers and generate a lockfile which captures the version disambiguated requirement graph for all configurations, and propagates marker expressions as needed.

A related example is that uv retains extras and their activations explicitly as part of the graph rather than simply listing the reach set of requirements after extras have all been activated, which would discard that information.

Fixes #798, #797, #794, #792, #791, #773

Changes are visible to end-users: yes

  • Searched for relevant documentation and updated as needed: yes
  • Breaking change (forces users to change their own code or config): no
  • Suggested release notes appear below: yes

The experimental uv extension has seen significant changes to address a number of outstanding bugs.

  • Multiple versions of a single package are now supported
  • [dependency-groups] are now interpreted as defining build/venv configurations
  • Extra activations are propagated correctly

Test plan

  • New test cases added

Remaining work

@aspect-workflows
Copy link
Copy Markdown

aspect-workflows Bot commented Jan 16, 2026

Bazel 8 (Test)

Waiting for runner...


Bazel 9 (Test)

Waiting for runner...


Bazel 8 (Test)

e2e

Waiting for runner...


Bazel 9 (Test)

e2e

Waiting for runner...


Bazel 8 (Test)

examples/uv_pip_compile

Waiting for runner...

@CLAassistant
Copy link
Copy Markdown

CLAassistant commented Jan 23, 2026

CLA assistant check
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.
1 out of 2 committers have signed the CLA.

✅ arrdem
❌ aspect-marvin
You have signed the CLA already but the status is still pending? Let us recheck it.

@arrdem arrdem force-pushed the arrdem/fix-718-multiversion-and-extras branch 6 times, most recently from 682061b to 2eabb49 Compare February 4, 2026 00:38
@arrdem arrdem force-pushed the arrdem/fix-718-multiversion-and-extras branch 2 times, most recently from ed7f199 to 8346944 Compare February 10, 2026 18:55
@arrdem arrdem force-pushed the arrdem/fix-718-multiversion-and-extras branch 7 times, most recently from 6cca0b7 to f2eae67 Compare February 18, 2026 07:03
- Correct `toml` watching
- Correct `extra` handling
- Move to `[dependency-groups]` for configurations
@arrdem arrdem force-pushed the arrdem/fix-718-multiversion-and-extras branch from 5fb465c to c8e2270 Compare February 18, 2026 07:06
@arrdem arrdem marked this pull request as ready for review February 18, 2026 07:09
@arrdem arrdem changed the title feat(uv): [dependency-groups] based configurations feat(uv): uv lock interpretation v2 Feb 18, 2026
@arrdem arrdem force-pushed the arrdem/fix-718-multiversion-and-extras branch from 0fb1710 to ea3f4ab Compare February 18, 2026 07:15
@arrdem arrdem changed the title feat(uv): uv lock interpretation v2 chore(uv): multiversion packages and extras support Feb 18, 2026
@arrdem arrdem changed the title chore(uv): multiversion packages and extras support feat(uv): multiversion packages and extras support Feb 18, 2026
@arrdem arrdem merged commit a20bbd5 into main Mar 4, 2026
3 of 4 checks passed
@arrdem arrdem deleted the arrdem/fix-718-multiversion-and-extras branch March 4, 2026 17:57
@arrdem
Copy link
Copy Markdown
Contributor Author

arrdem commented Mar 4, 2026

There's more work to be done here, but as-is this is a substantial step in the right direction. Declaring victory and will fast-follow other work.

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.

3 participants