Commit Graph

8126 Commits

Author SHA1 Message Date
Zanie Blue
98d17fc4d2 Fix another state bug in the uv auth tests (#17435)
This test was also order dependent; see also #17424

---------

Co-authored-by: Claude <noreply@anthropic.com>
2026-01-13 01:35:31 +00:00
Charlie Marsh
69333ead26 Avoid unwrapping size for file responses (#17434)
## Summary

This may have been an oversight? The field is optional on the struct.
2026-01-12 20:13:37 -05:00
Zanie Blue
e9755bceb3 Report failing jobs when "all required jobs check" fails (#17433)
You can tell this by looking at the JSON input but that's not quite
friendly enough for me.

---------

Co-authored-by: Claude <noreply@anthropic.com>
2026-01-13 01:09:18 +00:00
liam
827edd0740 Allow disabling exclude-newer per package (#16854)
Resolves https://github.com/astral-sh/uv/issues/16846,
https://github.com/astral-sh/uv/issues/16813

This diff adds support for disabling `exclude-newer` for specific
packages using `<name>=false`. This allows packages
without upload dates (e.g., CPU-only PyTorch wheels from custom indices)
to be resolved when a global `exclude-newer` is set, without disabling
it globally.

---------

Co-authored-by: Zanie Blue <contact@zanie.dev>
2026-01-12 19:00:07 -06:00
Zanie Blue
824706ca87 Move Windows registry test from test-system to test-integration (#17432)
The Windows registry test (PEP 514 integration) tests Python
installation registration functionality rather than system Python
detection like the other tests in test-system, so it fits better in
test-integration.

Co-authored-by: Claude <noreply@anthropic.com>
2026-01-13 00:49:45 +00:00
Gyeongjae Choi
7b497d48bd Use latest Pyodide version for each python version (#17372)
## Summary

This changes how the `download-metadata.json` file is generated for
Pyodide.

Previously, if we have a different Pyodide version with a same Python
version, the older Pyodide version is selected.

For example, say we have

- Pyodide 0.29.0 with Python 3.13.2
- Pyodide 0.28.3 with Python 3.13.2

then, pyodide 0.28.3 was stored in `download-metadata.json` as we
iterate in decending order with overwriting the value that was
previously written.

I fixed it by picking up the latest Pyodide version for each Python
version.

## Test Plan

Ran `uv run -- crates/uv-python/fetch-download-metadata.py` locally, and
verified the output:

```
2026-01-09 15:39:23 INFO Fetching Pyodide checksums: 0/4
2026-01-09 15:39:24 INFO Selected cpython-3.13.2-emscripten-wasm32-musl (0.29.1)
2026-01-09 15:39:24 INFO Selected cpython-3.12.7-emscripten-wasm32-musl (0.27.7)
2026-01-09 15:39:24 INFO Selected cpython-3.12.1-emscripten-wasm32-musl (0.26.4)
2026-01-09 15:39:24 INFO Selected cpython-3.11.3-emscripten-wasm32-musl (0.25.1)
```
2026-01-12 17:59:26 -06:00
Zanie Blue
f1e5667d2f Add a Claude Code hook to install the gh CLI in web sessions (#17429) 2026-01-12 17:35:15 -06:00
Zanie Blue
7fa30ab278 Move release plan checks to a separate workflow (#17422)
We get a bunch of redundant skipped `Release / Build binary ...` jobs in
CI otherwise, and I would rather the release workflow didn't have a pull
request trigger at all.

Follows #17388
2026-01-12 14:49:40 -06:00
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 ...`
([#&#8203;17391](https://redirect.github.com/astral-sh/uv/pull/17391))
- Rebuild dynamic distribution when version changes with `--no-cache`
([#&#8203;17387](https://redirect.github.com/astral-sh/uv/pull/17387))

##### Documentation

- Add Rust language classifier
([#&#8203;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
([#&#8203;17339](https://redirect.github.com/astral-sh/uv/pull/17339))
- Support relative paths in `UV_PYTHON_BIN_DIR` and `UV_TOOL_BIN_DIR`
([#&#8203;17367](https://redirect.github.com/astral-sh/uv/pull/17367))

##### Preview features

- Enable uploads to S3 via pre-signed URLs
([#&#8203;17349](https://redirect.github.com/astral-sh/uv/pull/17349))

##### Configuration

- Allow setting proxy variables via global / user configuration
([#&#8203;16918](https://redirect.github.com/astral-sh/uv/pull/16918))
- Manually parse and reconcile Boolean environment variables
([#&#8203;17321](https://redirect.github.com/astral-sh/uv/pull/17321))

##### Bug fixes

- Avoid broken build artifacts on build failure
([#&#8203;17276](https://redirect.github.com/astral-sh/uv/pull/17276))
- Fix missing dependencies on synthetic root in SBOM export
([#&#8203;17363](https://redirect.github.com/astral-sh/uv/pull/17363))
- Recognize `armv8l` as an alias for `armv7l` in platform tag parsing
([#&#8203;17384](https://redirect.github.com/astral-sh/uv/pull/17384))
- Fix redaction of a URL in a middleware trace log
([#&#8203;17346](https://redirect.github.com/astral-sh/uv/pull/17346))

##### Documentation

- Add `index.md` suggestion to `llms.txt`
([#&#8203;17362](https://redirect.github.com/astral-sh/uv/pull/17362))
- Clarify that `uv run` uses inexact syncing by default
([#&#8203;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
([#&#8203;17318](https://redirect.github.com/astral-sh/uv/pull/17318))

##### Bug fixes

- Filter unusable wheels from the lockfile for more architectures
([#&#8203;17317](https://redirect.github.com/astral-sh/uv/pull/17317))
- Correctly count retries originating from early middleware errors
([#&#8203;17274](https://redirect.github.com/astral-sh/uv/pull/17274))

##### Documentation

- Clarify requirements file format in docs
([#&#8203;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
[@&#8203;yonas](https://redirect.github.com/yonas) in
[#&#8203;4258](https://redirect.github.com/peter-evans/create-pull-request/pull/4258)
- Update actions/checkout references to
[@&#8203;v6](https://redirect.github.com/v6) in docs by
[@&#8203;Copilot](https://redirect.github.com/Copilot) in
[#&#8203;4259](https://redirect.github.com/peter-evans/create-pull-request/pull/4259)
- feat: v8 by
[@&#8203;peter-evans](https://redirect.github.com/peter-evans) in
[#&#8203;4260](https://redirect.github.com/peter-evans/create-pull-request/pull/4260)

##### New Contributors

- [@&#8203;yonas](https://redirect.github.com/yonas) made their first
contribution in
[#&#8203;4258](https://redirect.github.com/peter-evans/create-pull-request/pull/4258)
- [@&#8203;Copilot](https://redirect.github.com/Copilot) made their
first contribution in
[#&#8203;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
[@&#8203;peter-evans](https://redirect.github.com/peter-evans) in
[#&#8203;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
[@&#8203;dependabot](https://redirect.github.com/dependabot)\[bot] in
[#&#8203;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
[@&#8203;dependabot](https://redirect.github.com/dependabot)\[bot] in
[#&#8203;4240](https://redirect.github.com/peter-evans/create-pull-request/pull/4240)
- fix: provider list pulls fallback for multi fork same owner by
[@&#8203;peter-evans](https://redirect.github.com/peter-evans) in
[#&#8203;4245](https://redirect.github.com/peter-evans/create-pull-request/pull/4245)

##### New Contributors

- [@&#8203;obnyis](https://redirect.github.com/obnyis) made their first
contribution in
[#&#8203;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
[@&#8203;dependabot](https://redirect.github.com/dependabot)
- docs: fix workaround description about `ready_for_review` by
[@&#8203;ybiquitous](https://redirect.github.com/ybiquitous) in
[#&#8203;3939](https://redirect.github.com/peter-evans/create-pull-request/pull/3939)
- Docs: `add-paths` default behavior by
[@&#8203;joeflack4](https://redirect.github.com/joeflack4) in
[#&#8203;3928](https://redirect.github.com/peter-evans/create-pull-request/pull/3928)
- docs: update to create-github-app-token v2 by
[@&#8203;Goooler](https://redirect.github.com/Goooler) in
[#&#8203;4063](https://redirect.github.com/peter-evans/create-pull-request/pull/4063)
- Fix compatibility with actions/checkout\@&#8203;v6 by
[@&#8203;ericsciple](https://redirect.github.com/ericsciple) in
[#&#8203;4230](https://redirect.github.com/peter-evans/create-pull-request/pull/4230)

#### New Contributors

- [@&#8203;joeflack4](https://redirect.github.com/joeflack4) made their
first contribution in
[#&#8203;3928](https://redirect.github.com/peter-evans/create-pull-request/pull/3928)
- [@&#8203;Goooler](https://redirect.github.com/Goooler) made their
first contribution in
[#&#8203;4063](https://redirect.github.com/peter-evans/create-pull-request/pull/4063)
- [@&#8203;ericsciple](https://redirect.github.com/ericsciple) made
their first contribution in
[#&#8203;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