Skip to content

Recognise uv >= 0.12.14 resolution errors - #16511

Open
wenceslas-sanchez wants to merge 5 commits into
dependabot:mainfrom
wenceslas-sanchez:uv-0-12-resolution-errors
Open

wenceslas-sanchez wants to merge 5 commits into
dependabot:mainfrom
wenceslas-sanchez:uv-0-12-resolution-errors

Conversation

@wenceslas-sanchez

@wenceslas-sanchez wenceslas-sanchez commented Oct 8, 2026 •

Copy link
Copy Markdown

What are you trying to accomplish?

Fixes #16510

Since uv 0.12.14, which Dependabot picked up in #16276 (0.12.7 → 0.12.15), uv reports resolution and build failures as error: / cause: instead of × / ╰─▶. The regexes in LockFileErrorHandler and PipCompileVersionResolver only matched the × form. So a conflict between two pinned packages came back as a generic DependencyFileNotResolvable carrying uv's raw output, not as UpdateNotPossible, and LockFileResolver#resolvable? raised instead of returning false.

This makes the regexes accept both prefixes, since uv 0.12.13 and earlier still print ×.

Anything you want to highlight for special attention from reviewers?

In PipCompileVersionResolver I also dropped the trailing : from the pattern, because uv >= 0.12.14 no longer prints one after "No solution found when resolving dependencies". The old × alternative still requires the leading space, as before. This also lets the old format's … for split (…): variant match, which it didn't before.

I kept the existing ×-format specs and added error:-format ones next to them, so both formats stay covered.

How will you know you've accomplished your goal?

The error:-format specs use uv 0.12.18 output (trimmed), for a pinned pair (opentelemetry-api==1.26.0 with opentelemetry-sdk==1.25.0), a conflict without a pinned pair, and a failing setup.py build. They fail on main and pass with this change. The ×-format pip-compile spec is a regression guard and passes on both. The existing uv specs still pass.

Checklist

  • I have run the complete test suite to ensure all tests and linters pass.
  • I have thoroughly tested my code changes to ensure they work as expected, including adding additional tests for new functionality.
  • I have written clear and descriptive commit messages.
  • I have provided a detailed description of the changes in the pull request, including the problem it addresses, how it fixes the problem, and any relevant details about the implementation.
  • I have ensured that the code is well-documented and easy to understand.

Since 0.12.14, uv prints resolution failures as error:/cause: instead of ×/╰─▶, so the regexes in LockFileErrorHandler and PipCompileVersionResolver stopped matching and conflicts were no longer reported as UpdateNotPossible. Accept both forms, since older uv still prints ×.
@wenceslas-sanchez
wenceslas-sanchez force-pushed the uv-0-12-resolution-errors branch from c77abf1 to ca7421b Compare October 9, 2026 21:28

This branch has not been deployed

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

Projects

Status: No status

Development

Successfully merging this pull request may close these issues.

uv: resolution errors from uv >= 0.12.14 are no longer recognised (× No solution found regexes)

1 participant