Skip to content

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

Open
arrdem wants to merge 4 commits intomainfrom
arrdem/fix-718-multiversion-and-extras
Open

feat(uv): multiversion packages and extras support#778
arrdem wants to merge 4 commits intomainfrom
arrdem/fix-718-multiversion-and-extras

Conversation

@arrdem
Copy link
Collaborator

@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

aspect-workflows bot commented Jan 16, 2026

Bazel 8 (Test)

⚠️ Buildkite build #2618 failed.


Bazel 9 (Test)

⚠️ Buildkite build #2618 failed.


Bazel 8 (Test)

e2e

All tests were cache hits

13 tests (100.0%) were fully cached saving 12s.


Bazel 9 (Test)

e2e

All tests were cache hits

13 tests (100.0%) were fully cached saving 7s.


Bazel 8 (Test)

examples/uv_pip_compile

All tests were cache hits

1 test (100.0%) was fully cached saving 335ms.

@CLAassistant
Copy link

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
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

Comments