Zanie Blue
eca58cbae5
Fix incorrect test token_native_auth_realm ( #17424 )
...
The state was leaking in from another test case here.
Co-authored-by: Claude <noreply@anthropic.com >
2026-01-12 20:38:50 +00:00
Charlie Marsh
6d5e8031d3
Detect workspace from uv run target ( #17423 )
...
## Summary
Given `uv run foo/bar.py`, we now detect the workspace starting at
`foo/bar.py`, rather than the current working directory. I think this is
much more intuitive as demonstrated by the new test.
This change is currently in preview, but would ship as a breaking change
in v0.10.
2026-01-12 13:52:48 -06:00
Zanie Blue
903dd292b3
Split up ci.yml ( #17388 )
...
This file is too big for an LLM context window and several contributors
have complained about it being too scary to touch.
This also gets us collapsible sections in the UI.
I renamed some jobs for clarity in the meantime. And added a meta-job
for required checks passing so we can avoid churn in our "Settings" when
we change job names.
Note this was entirely refactored by Claude.
---------
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-12 12:34:30 -06:00
Zanie Blue
0da6f263a9
Only run trampoline checks in CI when trampolines change ( #17386 )
...
I'm trying to avoid wasting CI time.
---------
Co-authored-by: Claude <noreply@anthropic.com >
2026-01-12 09:17:05 -06:00
Zsolt Dollenstein
fa218b7034
Re-enable pyx integration tests ( #17414 )
2026-01-12 09:35:43 -05:00
renovate[bot]
ae1933f20f
Update dependency astral-sh/uv to v0.9.24 ( #17409 )
...
This PR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [astral-sh/uv](https://redirect.github.com/astral-sh/uv ) | uses-with |
patch | `0.9.21` → `0.9.24` |
---
### Release Notes
<details>
<summary>astral-sh/uv (astral-sh/uv)</summary>
###
[`v0.9.24`](https://redirect.github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#0924 )
[Compare
Source](https://redirect.github.com/astral-sh/uv/compare/0.9.23...0.9.24 )
Released on 2026-01-09.
##### Bug fixes
- Fix handling of `UV_NO_SYNC=1 uv run ...`
([#​17391](https://redirect.github.com/astral-sh/uv/pull/17391 ))
- Rebuild dynamic distribution when version changes with `--no-cache`
([#​17387](https://redirect.github.com/astral-sh/uv/pull/17387 ))
##### Documentation
- Add Rust language classifier
([#​17389](https://redirect.github.com/astral-sh/uv/pull/17389 ))
###
[`v0.9.23`](https://redirect.github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#0923 )
[Compare
Source](https://redirect.github.com/astral-sh/uv/compare/0.9.22...0.9.23 )
Released on 2026-01-09.
##### Enhancements
- Only write portable paths in `RECORD` files
([#​17339](https://redirect.github.com/astral-sh/uv/pull/17339 ))
- Support relative paths in `UV_PYTHON_BIN_DIR` and `UV_TOOL_BIN_DIR`
([#​17367](https://redirect.github.com/astral-sh/uv/pull/17367 ))
##### Preview features
- Enable uploads to S3 via pre-signed URLs
([#​17349](https://redirect.github.com/astral-sh/uv/pull/17349 ))
##### Configuration
- Allow setting proxy variables via global / user configuration
([#​16918](https://redirect.github.com/astral-sh/uv/pull/16918 ))
- Manually parse and reconcile Boolean environment variables
([#​17321](https://redirect.github.com/astral-sh/uv/pull/17321 ))
##### Bug fixes
- Avoid broken build artifacts on build failure
([#​17276](https://redirect.github.com/astral-sh/uv/pull/17276 ))
- Fix missing dependencies on synthetic root in SBOM export
([#​17363](https://redirect.github.com/astral-sh/uv/pull/17363 ))
- Recognize `armv8l` as an alias for `armv7l` in platform tag parsing
([#​17384](https://redirect.github.com/astral-sh/uv/pull/17384 ))
- Fix redaction of a URL in a middleware trace log
([#​17346](https://redirect.github.com/astral-sh/uv/pull/17346 ))
##### Documentation
- Add `index.md` suggestion to `llms.txt`
([#​17362](https://redirect.github.com/astral-sh/uv/pull/17362 ))
- Clarify that `uv run` uses inexact syncing by default
([#​17366](https://redirect.github.com/astral-sh/uv/pull/17366 ))
###
[`v0.9.22`](https://redirect.github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#0922 )
[Compare
Source](https://redirect.github.com/astral-sh/uv/compare/0.9.21...0.9.22 )
Released on 2026-01-06.
##### Enhancements
- Use a dedicated error message when lockfile can't be found
([#​17318](https://redirect.github.com/astral-sh/uv/pull/17318 ))
##### Bug fixes
- Filter unusable wheels from the lockfile for more architectures
([#​17317](https://redirect.github.com/astral-sh/uv/pull/17317 ))
- Correctly count retries originating from early middleware errors
([#​17274](https://redirect.github.com/astral-sh/uv/pull/17274 ))
##### Documentation
- Clarify requirements file format in docs
([#​17284](https://redirect.github.com/astral-sh/uv/pull/17284 ))
</details>
---
### Configuration
📅 **Schedule**: Branch creation - Between 12:00 AM and 03:59 AM, only on
Monday ( * 0-3 * * 1 ) (UTC), Automerge - At any time (no schedule
defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.
♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/ ).
View the [repository job
log](https://developer.mend.io/github/astral-sh/uv ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi43NC41IiwidXBkYXRlZEluVmVyIjoiNDIuNzQuNSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiaW50ZXJuYWwiXX0=-->
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-12 11:00:34 +01:00
renovate[bot]
cfaf1430a2
Update peter-evans/create-pull-request action to v8 ( #17392 )
...
This PR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
|
[peter-evans/create-pull-request](https://redirect.github.com/peter-evans/create-pull-request )
| action | major | `v7.0.8` → `v8.0.0` |
---
### Release Notes
<details>
<summary>peter-evans/create-pull-request
(peter-evans/create-pull-request)</summary>
###
[`v8.0.0`](https://redirect.github.com/peter-evans/create-pull-request/releases/tag/v8.0.0 ):
Create Pull Request v8.0.0
[Compare
Source](https://redirect.github.com/peter-evans/create-pull-request/compare/v7.0.11...v8.0.0 )
##### What's new in v8
- Requires [Actions Runner
v2.327.1](https://redirect.github.com/actions/runner/releases/tag/v2.327.1 )
or later if you are using a self-hosted runner for Node 24 support.
##### What's Changed
- chore: Update checkout action version to v6 by
[@​yonas](https://redirect.github.com/yonas ) in
[#​4258](https://redirect.github.com/peter-evans/create-pull-request/pull/4258 )
- Update actions/checkout references to
[@​v6](https://redirect.github.com/v6 ) in docs by
[@​Copilot](https://redirect.github.com/Copilot ) in
[#​4259](https://redirect.github.com/peter-evans/create-pull-request/pull/4259 )
- feat: v8 by
[@​peter-evans](https://redirect.github.com/peter-evans ) in
[#​4260](https://redirect.github.com/peter-evans/create-pull-request/pull/4260 )
##### New Contributors
- [@​yonas](https://redirect.github.com/yonas ) made their first
contribution in
[#​4258](https://redirect.github.com/peter-evans/create-pull-request/pull/4258 )
- [@​Copilot](https://redirect.github.com/Copilot ) made their
first contribution in
[#​4259](https://redirect.github.com/peter-evans/create-pull-request/pull/4259 )
**Full Changelog**:
<https://github.com/peter-evans/create-pull-request/compare/v7.0.11...v8.0.0 >
###
[`v7.0.11`](https://redirect.github.com/peter-evans/create-pull-request/releases/tag/v7.0.11 ):
Create Pull Request v7.0.11
[Compare
Source](https://redirect.github.com/peter-evans/create-pull-request/compare/v7.0.10...v7.0.11 )
##### What's Changed
- fix: restrict remote prune to self-hosted runners by
[@​peter-evans](https://redirect.github.com/peter-evans ) in
[#​4250](https://redirect.github.com/peter-evans/create-pull-request/pull/4250 )
**Full Changelog**:
<https://github.com/peter-evans/create-pull-request/compare/v7.0.10...v7.0.11 >
###
[`v7.0.10`](https://redirect.github.com/peter-evans/create-pull-request/releases/tag/v7.0.10 ):
Create Pull Request v7.0.10
[Compare
Source](https://redirect.github.com/peter-evans/create-pull-request/compare/v7.0.9...v7.0.10 )
⚙️ Fixes an issue where updating a pull request failed when targeting a
forked repository with the same owner as its parent.
##### What's Changed
- build(deps): bump the github-actions group with 2 updates by
[@​dependabot](https://redirect.github.com/dependabot )\[bot] in
[#​4235](https://redirect.github.com/peter-evans/create-pull-request/pull/4235 )
- build(deps-dev): bump prettier from 3.6.2 to 3.7.3 in the npm group by
[@​dependabot](https://redirect.github.com/dependabot )\[bot] in
[#​4240](https://redirect.github.com/peter-evans/create-pull-request/pull/4240 )
- fix: provider list pulls fallback for multi fork same owner by
[@​peter-evans](https://redirect.github.com/peter-evans ) in
[#​4245](https://redirect.github.com/peter-evans/create-pull-request/pull/4245 )
##### New Contributors
- [@​obnyis](https://redirect.github.com/obnyis ) made their first
contribution in
[#​4064](https://redirect.github.com/peter-evans/create-pull-request/pull/4064 )
**Full Changelog**:
<https://github.com/peter-evans/create-pull-request/compare/v7.0.9...v7.0.10 >
###
[`v7.0.9`](https://redirect.github.com/peter-evans/create-pull-request/releases/tag/v7.0.9 ):
Create Pull Request v7.0.9
[Compare
Source](https://redirect.github.com/peter-evans/create-pull-request/compare/v7.0.8...v7.0.9 )
⚙️ Fixes an
[incompatibility](https://redirect.github.com/peter-evans/create-pull-request/issues/4228 )
with the recently released `actions/checkout@v6`.
#### What's Changed
- \~70 dependency updates by
[@​dependabot](https://redirect.github.com/dependabot )
- docs: fix workaround description about `ready_for_review` by
[@​ybiquitous](https://redirect.github.com/ybiquitous ) in
[#​3939](https://redirect.github.com/peter-evans/create-pull-request/pull/3939 )
- Docs: `add-paths` default behavior by
[@​joeflack4](https://redirect.github.com/joeflack4 ) in
[#​3928](https://redirect.github.com/peter-evans/create-pull-request/pull/3928 )
- docs: update to create-github-app-token v2 by
[@​Goooler](https://redirect.github.com/Goooler ) in
[#​4063](https://redirect.github.com/peter-evans/create-pull-request/pull/4063 )
- Fix compatibility with actions/checkout\@​v6 by
[@​ericsciple](https://redirect.github.com/ericsciple ) in
[#​4230](https://redirect.github.com/peter-evans/create-pull-request/pull/4230 )
#### New Contributors
- [@​joeflack4](https://redirect.github.com/joeflack4 ) made their
first contribution in
[#​3928](https://redirect.github.com/peter-evans/create-pull-request/pull/3928 )
- [@​Goooler](https://redirect.github.com/Goooler ) made their
first contribution in
[#​4063](https://redirect.github.com/peter-evans/create-pull-request/pull/4063 )
- [@​ericsciple](https://redirect.github.com/ericsciple ) made
their first contribution in
[#​4230](https://redirect.github.com/peter-evans/create-pull-request/pull/4230 )
**Full Changelog**:
<https://github.com/peter-evans/create-pull-request/compare/v7.0.8...v7.0.9 >
</details>
---
### Configuration
📅 **Schedule**: Branch creation - Between 12:00 AM and 03:59 AM, only on
Monday ( * 0-3 * * 1 ) (UTC), Automerge - At any time (no schedule
defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.
♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/ ).
View the [repository job
log](https://developer.mend.io/github/astral-sh/uv ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi43NC41IiwidXBkYXRlZEluVmVyIjoiNDIuNzQuNSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiaW50ZXJuYWwiXX0=-->
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-12 10:52:09 +01:00
Tomasz Kramkowski
4513797f46
Add --compile-bytecode to uv python install and uv python upgrade to compile the standard library ( #17088 )
...
## Summary
Implement #16408 .
Currently doesn't avoid recompiling the bytecode when it is already
compiled which should be fine since the compiler script skips things
which are already compiled.
pyodide is currently unsupported due to it using a zip for its standard library
and also because it misreports the location of the standard library.
## Test Plan
Styling of the status report was manually tested, there is a new test
for testing the actual functionality.
2026-01-12 09:31:33 +00:00
samypr100
339e97baa0
Broadcast WM_SETTINGCHANGE on uv tool update-shell ( #17404 )
...
## Summary
Closes https://github.com/astral-sh/uv/issues/17331
Certain applications on windows expect to be notified when environment
variables change such as conhost.exe (traditional cmd.exe host).
Without this notification conhost.exe will not pick up changes to
environment variables regardless of how many times conhost.exe is
re-launched after running `uv tool update-shell`.
## Test Plan
Before this change
1. Removed `%USERPROFILE%\.local\bin` from environment variables via UI
(which sends `WM_SETTINGCHANGE`)
2. Launched `%SYSTEMROOT%\System32\conhost.exe` and attempted to run any
tool preivously installed. It fails to find any.
3. Ran `uv tool update-shell`. Confirmed
`HKEY_CURRENT_USER\Environment\Path` was updated in registry.
4. Launched new `%SYSTEMROOT%\System32\conhost.exe` session. **Fails to
find installed tools**.
After this change
1. Removed `%USERPROFILE%\.local\bin` from environment variables via UI
(which sends `WM_SETTINGCHANGE`)
2. Launched `%SYSTEMROOT%\System32\conhost.exe` and attempted to run any
tool preivously installed. It fails to find any.
3. Ran `uv tool update-shell`. Confirmed
`HKEY_CURRENT_USER\Environment\Path` was updated in registry.
4. Launched new `%SYSTEMROOT%\System32\conhost.exe` session. **Finds the
installed tools**.
2026-01-11 09:10:02 -05:00
Denizhan Dakılır
7e7f1656ca
fix: add Win32_Storage_FileSystem feature and improve handle closing logic ( #17374 )
...
<!--
Thank you for contributing to uv! To help us out with reviewing, please
consider the following:
- Does this pull request include a summary of the change? (See below.)
- Does this pull request include a descriptive title?
- Does this pull request include references to any relevant issues?
-->
## Summary
fix https://github.com/astral-sh/uv/issues/17174 mentioned the invalid
issues here:
results of diagnostics:
before:
```
--- TRAMPOLINE DIAGNOSTICS: STARTUP ---
STDIN: Handle=184
-> Console Mode: 503
STDOUT: Handle=536
-> Console Mode: 7
STDERR: Handle=540
-> Console Mode: 7
-------------------------------------------
--- TRAMPOLINE DIAGNOSTICS: AFTER CLOSE_HANDLES ---
STDIN: INVALID
STDOUT: INVALID
STDERR: Handle=540
-> Console Mode: 7
```
after:
```
--- TRAMPOLINE DIAGNOSTICS: STARTUP ---
STDIN: Handle=716
-> Console Mode: 503
STDOUT: Handle=580
-> Console Mode: 7
STDERR: Handle=604
-> Console Mode: 7
-------------------------------------------
--- TRAMPOLINE DIAGNOSTICS: AFTER CLOSE_HANDLES ---
STDIN: Handle=716
-> Console Mode: 503
STDOUT: Handle=580
-> Console Mode: 7
STDERR: Handle=604
-> Console Mode: 7
```
the problem was we were closing the handlers whatever they were from
pipes (byte streams) or consoles, this will make sure we close only the
handlers from pipes by using `FILE_TYPE_PIPE`
## Test Plan
<!-- How was it tested? -->
completely manual by adding debug statements and running a simple script
to open the pdb.
2026-01-10 12:11:13 -06:00
Zanie Blue
c10c84a588
Disable pyx staging publish tests temporarily ( #17397 )
...
Co-authored-by: Claude <noreply@anthropic.com >
2026-01-09 22:19:45 +00:00
Zanie Blue
0fda1525eb
Bump version to 0.9.24 ( #17395 )
0.9.24
2026-01-09 22:09:11 +00:00
Zanie Blue
1a72f8c677
Fix handling of UV_NO_SYNC=1 uv run ... ( #17391 )
...
Closes #17390
---------
Co-authored-by: Claude <noreply@anthropic.com >
2026-01-09 21:37:20 +00:00
Charlie Marsh
ef83fc34bc
Rebuild dynamic distribution when version changes with --no-cache ( #17387 )
...
## Summary
Well-explained in https://github.com/astral-sh/uv/issues/17370 . I don't
see a reason _not_ to fix this.
Closes https://github.com/astral-sh/uv/issues/17370 .
2026-01-09 15:43:20 -05:00
Mathieu Kniewallner
161b99c546
Add Rust language classifier ( #17389 )
...
## Summary
Noticed that something really important was missing 🦀
2026-01-09 14:41:28 -06:00
Zanie Blue
00f07541a1
Bump version to 0.9.23 ( #17385 )
0.9.23
2026-01-09 19:09:04 +00:00
Zanie Blue
dbb4e0b1c7
Recognize armv8l as an alias for armv7l in platform tag parsing ( #17384 )
...
Closes #17375
It looks like this was missed in
https://github.com/astral-sh/uv/pull/8881 and now that we fail if wheel
tags do not match the target environment (see
https://github.com/astral-sh/uv/pull/16074 ), we do not allow armv8l
wheels to installed in environments where the interpreter reports
armv7l.
Co-authored-by: Claude <noreply@anthropic.com >
2026-01-09 12:29:23 -06:00
Charlie Marsh
7bb6e3109c
Split OIDC and S3 clients in publish ( #17379 )
2026-01-09 12:15:58 -05:00
Charlie Marsh
a959d625b2
Include headers when uploading to S3 ( #17381 )
...
## Summary
The server sends these down, and the pre-signed URL _requires_ them to
be set.
2026-01-09 11:32:51 -05:00
Zanie Blue
a8ecd7c477
Support relative paths in UV_PYTHON_BIN_DIR and UV_TOOL_BIN_DIR ( #17367 )
...
Closes #17364
Extends #17365
Co-authored-by: Claude <noreply@anthropic.com >
2026-01-09 07:21:46 -06:00
Zanie Blue
21f76e8a2a
Clarify that uv run uses inexact syncing by default ( #17366 )
...
Closes #14230
Co-authored-by: Claude <noreply@anthropic.com >
2026-01-09 07:20:42 -06:00
Charlie Marsh
85dedc8051
Enable uploads via pre-signed URLs ( #17349 )
...
## Summary
For pyx, we can allow uploads that bypass the registry and send the file
directly to S3. This is an opt-in feature, enabled via the `--direct`
flag.
2026-01-08 21:26:34 -05:00
Zanie Blue
25d691eeaf
Document why parse_xdg_path requires absolute paths ( #17365 )
...
Related to #17364
Co-authored-by: Claude <noreply@anthropic.com >
2026-01-08 21:22:41 +00:00
Tom Schafer
29285db48e
Fix missing dependencies on synthetic root in SBOM export ( #17363 )
2026-01-08 13:19:34 -05:00
Zanie Blue
6d9c8f853f
Add index.md suggestion to llms.txt ( #17362 )
...
I noticed that Claude did not request the `index.md` files when pointed
to `llms.txt`
---------
Co-authored-by: Claude <noreply@anthropic.com >
2026-01-08 10:57:37 -06:00
Zanie Blue
b5d3186061
Add authentication tests for URLs with an empty username ( #17347 )
...
Add test cases for https://github.com/astral-sh/uv/issues/17343 where
you have an empty username and non-empty password
These don't include the "redirect" aspect.
Co-authored-by: Claude <noreply@anthropic.com >
2026-01-08 07:41:22 -06:00
Zanie Blue
600a332bec
Add Renovate automation for maturin version bumps ( #17353 )
...
Co-authored-by: Claude <noreply@anthropic.com >
2026-01-08 07:15:17 -06:00
renovate[bot]
1447694188
Update Rust crate toml_edit to 0.24.0 ( #17303 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: William Woodruff <william@astral.sh >
2026-01-07 21:14:12 +00:00
konsti
6b2d6f2c40
Only write portable paths in RECORD ( #17339 )
...
The spec allows both, but we're already using forward paths for paths
that are not created by uv.
See
* https://github.com/astral-sh/uv/issues/14446
* https://github.com/python/importlib_metadata/issues/528
Closes #14446
---------
Co-authored-by: Tomasz Kramkowski <tom@astral.sh >
2026-01-07 20:40:18 +01:00
Zanie Blue
c71ba13b6d
Avoid checking formatting of all files during windows trampoline checks ( #17348 )
...
I've noticed this escapes the trampoline crates so these fail whenever
there's bad formatting in the workspace.
Co-authored-by: Claude <noreply@anthropic.com >
2026-01-07 13:14:47 -06:00
Jo
29c44c71c2
Use ty to type-check Python files ( #17229 )
...
I added mypy type‑checking in https://github.com/astral-sh/uv/pull/5332 ,
so I think it's a good time to switch to ty now :)
2026-01-07 12:25:15 -06:00
William Woodruff
9ddaae2244
Initial PEP 792 types and index parsing ( #17311 )
2026-01-07 16:35:39 +00:00
William Woodruff
dbe5481d5c
Use DisplaySafeUrl to readact a URL in a trace log ( #17346 )
2026-01-07 15:55:08 +00:00
Charlie Marsh
cd55d1ce12
Manually parse and reconcile Boolean environment variables ( #17321 )
...
## Summary
This gives us more flexibility since we can avoid erroring on
"conflicts" when one option is disabled (e.g., `UV_FROZEN=0 uv lock
--check`).
Closes https://github.com/astral-sh/uv/issues/13385 .
Closes https://github.com/astral-sh/uv/issues/13316 .
---------
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-06 20:43:04 +00:00
Eli Uriegas
e67dbce3fe
Allow setting proxy variables via global / user configuration ( #16918 )
...
<!--
Thank you for contributing to uv! To help us out with reviewing, please
consider the following:
- Does this pull request include a summary of the change? (See below.)
- Does this pull request include a descriptive title?
- Does this pull request include references to any relevant issues?
-->
## Summary
<!-- What's the purpose of the change? What does it do, and why? -->
This allows users to set the HTTP, HTTPS, and no proxy variables via the
configuration files like ~pyproject.toml~ and uv.toml.
Users can set like so:
`uv.toml`
```toml
https-proxy = "http://my_cool_proxy:10500 "
http-proxy = "http://my_cool_proxy:10500 "
no-proxy = [
"dontproxyme.com",
"localhost",
]
```
Resolves https://github.com/astral-sh/uv/issues/9472
## Test Plan
<!-- How was it tested? -->
It also adds a new integration test for the proxy support in
`uv-client`.
This was tested on some of our developer machines with our proxy setup
using `~/.config/uv/uv.toml` with values like:
```toml
https-proxy = "http://my_cool_proxy:10500 "
http-proxy = "http://my_cool_proxy:10500 "
no-proxy = [
"dontproxyme.com",
"localhost",
]
```
---------
Signed-off-by: Eli Uriegas <eliuriegas@meta.com >
Co-authored-by: Zanie Blue <contact@zanie.dev >
2026-01-06 11:13:59 -06:00
Leo H
cc1ca8b4a1
Avoid broken build artifacts on build failure ( #17276 )
...
## Summary
Fixes https://github.com/astral-sh/uv/issues/17232
When `uv build` fails (e.g., due to missing `__init__.py`), partial
distribution
files were being left in the `dist/` directory.
### Changes
- Use `NamedTempFile` to write build output to a temporary file first
- Only persist the file to the final location on successful build
- If build fails, the temporary file is automatically cleaned up
- Added `Error::Persist` variant for handling persistence failures
## Test Plan
Added `no_partial_files_on_build_failure` test that verifies:
1. `build_source_dist` fails when `__init__.py` is missing
2. `build_wheel` fails when `__init__.py` is missing
3. The `dist/` directory remains empty after both failures (no partial
files)
---------
Co-authored-by: Hayashi Reo <reo@wantedly.com >
2026-01-06 15:27:05 +01:00
Zanie Blue
d7cdd58d63
Format JSON schema with prettier at generation time ( #17272 )
...
Formats the generated JSON schema with prettier so it doesn't fail CI
lints immediately after update.
---------
Co-authored-by: Claude <noreply@anthropic.com >
2026-01-06 08:20:45 -06:00
konsti
82a6a66b81
Bump version to 0.9.22 ( #17333 )
...
There's a hyper-util bump to get out separate from other reqwest related
changes.
0.9.22
2026-01-06 11:23:12 +01:00
konsti
4950dd475b
Remove retries duplication uv_client error ( #17325 )
...
Previously, we had a retry count both on the top level error type, and
on an error variant, and had a conversion step in between. When
reviewing #17274 , I noticed we can simplify that.
2026-01-06 09:20:02 +00:00
Charlie Marsh
6049ddcb86
Add manylinux to armv6l match ( #17328 )
...
## Summary
See: https://github.com/astral-sh/uv/pull/17317/changes#r2662205930 . I
omitted these because we technically don't allow this for manylinux, but
this seems more consistent.
2026-01-05 19:37:08 -05:00
William Woodruff
a27e0c850d
Use Cow<str> for deserialization everywhere ( #17330 )
2026-01-05 17:57:35 -05:00
Zanie Blue
478c884704
Use Cow<str> for deserialization map keys in PypiFile and PyxFile ( #17327 )
...
Co-authored-by: Claude <noreply@anthropic.com >
2026-01-05 15:59:44 -05:00
Tomasz Kramkowski
df62ee6f4d
Track retry counts originating from early middleware errors ( #17274 )
...
## Summary
Fixes #17266 .
The retry count was getting dropped by
`ErrorKind::from_retry_middleware` and `<Error as
From<ErrorKind>>::from` so we were doing more retries than we should
have.
## Test Plan
Added a testcase for the specific error path in the issue. Added an
expect to the other retry test too.
2026-01-05 20:06:38 +00:00
William Woodruff
6f9fced6c6
Replace deprecated benchmarking mode ( #17222 )
...
## Summary
Minor, noticed this with #17221 . CodSpeed has deprecated
`instrumentation` and replaced it with `simulation`, which has the same
meaning:
https://codspeed.io/docs/instruments/cpu/overview#legacy-terminology
## Test Plan
No functional changes.
---------
Signed-off-by: William Woodruff <william@astral.sh >
2026-01-05 19:52:29 +01:00
Charlie Marsh
691719f906
Filter PPC wheels et al in lockfile ( #17317 )
...
## Summary
Closes https://github.com/astral-sh/uv/issues/17313 .
2026-01-05 10:25:02 -05:00
Charlie Marsh
a3b1aee8c7
Use a dedicated error message when lockfile can't be found ( #17318 )
...
## Summary
Closes https://github.com/astral-sh/uv/issues/17259 .
2026-01-05 07:40:56 -05:00
konsti
24cc4a789b
Fix some Rust 1.92 clippy lints ( #17324 )
...
Saw this as a build failure in a CI job.
Excluding https://github.com/zkat/miette/pull/459
2026-01-05 11:11:43 +00:00
renovate[bot]
1fd4a784d2
Update Rust crate uuid to v1.19.0 ( #17304 )
...
This PR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [uuid](https://redirect.github.com/uuid-rs/uuid ) |
workspace.dependencies | minor | `1.17.0` → `1.19.0` |
---
### Release Notes
<details>
<summary>uuid-rs/uuid (uuid)</summary>
###
[`v1.19.0`](https://redirect.github.com/uuid-rs/uuid/releases/tag/v1.19.0 )
[Compare
Source](https://redirect.github.com/uuid-rs/uuid/compare/v1.18.1...v1.19.0 )
#### What's Changed
- Switch serde dependency to serde\_core by
[@​paolobarbolini](https://redirect.github.com/paolobarbolini ) in
[#​843](https://redirect.github.com/uuid-rs/uuid/pull/843 )
- Upgrade to 2021 edition and fix most clippy warnings by
[@​paolobarbolini](https://redirect.github.com/paolobarbolini ) in
[#​848](https://redirect.github.com/uuid-rs/uuid/pull/848 )
- Prepare for 1.19.0 release by
[@​KodrAus](https://redirect.github.com/KodrAus ) in
[#​849](https://redirect.github.com/uuid-rs/uuid/pull/849 )
**Full Changelog**:
<https://github.com/uuid-rs/uuid/compare/v1.18.1...v1.19.0 >
###
[`v1.18.1`](https://redirect.github.com/uuid-rs/uuid/releases/tag/v1.18.1 )
[Compare
Source](https://redirect.github.com/uuid-rs/uuid/compare/v1.18.0...v1.18.1 )
##### What's Changed
- Unsafe cleanup by
[@​KodrAus](https://redirect.github.com/KodrAus ) in
[#​841](https://redirect.github.com/uuid-rs/uuid/pull/841 )
- Prepare for 1.18.1 release by
[@​KodrAus](https://redirect.github.com/KodrAus ) in
[#​842](https://redirect.github.com/uuid-rs/uuid/pull/842 )
**Full Changelog**:
<https://github.com/uuid-rs/uuid/compare/v1.18.0...v1.18.1 >
###
[`v1.18.0`](https://redirect.github.com/uuid-rs/uuid/releases/tag/v1.18.0 )
[Compare
Source](https://redirect.github.com/uuid-rs/uuid/compare/v1.17.0...v1.18.0 )
##### What's Changed
- Fix up mismatched\_lifetime\_syntaxes lint by
[@​KodrAus](https://redirect.github.com/KodrAus ) in
[#​837](https://redirect.github.com/uuid-rs/uuid/pull/837 )
- Conversions between `Timestamp` and `std::time::SystemTime` by
[@​dcormier](https://redirect.github.com/dcormier ) in
[#​835](https://redirect.github.com/uuid-rs/uuid/pull/835 )
- Wrap the error type used in time conversions by
[@​KodrAus](https://redirect.github.com/KodrAus ) in
[#​838](https://redirect.github.com/uuid-rs/uuid/pull/838 )
- Prepare for 1.18.0 release by
[@​KodrAus](https://redirect.github.com/KodrAus ) in
[#​839](https://redirect.github.com/uuid-rs/uuid/pull/839 )
##### New Contributors
- [@​dcormier](https://redirect.github.com/dcormier ) made their
first contribution in
[#​835](https://redirect.github.com/uuid-rs/uuid/pull/835 )
**Full Changelog**:
<https://github.com/uuid-rs/uuid/compare/v1.17.0...v1.18.0 >
</details>
---
### Configuration
📅 **Schedule**: Branch creation - Between 12:00 AM and 03:59 AM, only on
Monday ( * 0-3 * * 1 ) (UTC), Automerge - At any time (no schedule
defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.
♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/ ).
View the [repository job
log](https://developer.mend.io/github/astral-sh/uv ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi42OS4xIiwidXBkYXRlZEluVmVyIjoiNDIuNjkuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiaW50ZXJuYWwiXX0=-->
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-05 12:01:24 +01:00
renovate[bot]
fe9198e546
Update Rust crate tempfile to v3.24.0 ( #17298 )
...
This PR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [tempfile](https://stebalien.com/projects/tempfile-rs/ )
([source](https://redirect.github.com/Stebalien/tempfile )) |
workspace.dependencies | minor | `3.20.0` → `3.24.0` |
---
### Release Notes
<details>
<summary>Stebalien/tempfile (tempfile)</summary>
###
[`v3.24.0`](https://redirect.github.com/Stebalien/tempfile/blob/HEAD/CHANGELOG.md#3240 )
[Compare
Source](https://redirect.github.com/Stebalien/tempfile/compare/v3.23.0...v3.24.0 )
- Actually support WASIp2 without the nightly feature. This library is
now feature complete on WASIp2 without any additional feature flags.
- Exclude CI scripts from the published crate.
###
[`v3.23.0`](https://redirect.github.com/Stebalien/tempfile/blob/HEAD/CHANGELOG.md#3230 )
[Compare
Source](https://redirect.github.com/Stebalien/tempfile/compare/v3.22.0...v3.23.0 )
- Remove need for the "nightly" feature to compile with "wasip2".
###
[`v3.22.0`](https://redirect.github.com/Stebalien/tempfile/blob/HEAD/CHANGELOG.md#3220 )
[Compare
Source](https://redirect.github.com/Stebalien/tempfile/compare/v3.21.0...v3.22.0 )
- Updated `windows-sys` requirement to allow version 0.61.x
- Remove `unstable-windows-keep-open-tempfile` feature.
###
[`v3.21.0`](https://redirect.github.com/Stebalien/tempfile/blob/HEAD/CHANGELOG.md#3210 )
[Compare
Source](https://redirect.github.com/Stebalien/tempfile/compare/v3.20.0...v3.21.0 )
- Updated `windows-sys` requirement to allow version 0.60.x
</details>
---
### Configuration
📅 **Schedule**: Branch creation - Between 12:00 AM and 03:59 AM, only on
Monday ( * 0-3 * * 1 ) (UTC), Automerge - At any time (no schedule
defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.
♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/ ).
View the [repository job
log](https://developer.mend.io/github/astral-sh/uv ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi42OS4xIiwidXBkYXRlZEluVmVyIjoiNDIuNjkuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiaW50ZXJuYWwiXX0=-->
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-05 11:33:43 +01:00
nwyin
2318e48e81
Gate python_install tests on python-managed feature ( #17312 )
...
## Summary
Gates four tests in `python_find.rs` that call `python_install()` behind
the `python-managed` feature flag. These tests attempt to download
Python versions from the network (free-threaded and pre-release
versions) which fail in offline build environments.
Fixes #16431
## Test Plan
Verified that the gated tests match the pattern used elsewhere in the
codebase where the entire `python_install` module is already gated
behind `#[cfg(feature = "python-managed")]`.
2026-01-03 16:30:50 -06:00