Commit Graph

8185 Commits

Author SHA1 Message Date
renovate[bot] 6ff2b728f4 Update MSRV to v1.90.0 (#17522)
This PR contains the following updates:

| Package | Update | Change | Pending |
|---|---|---|---|
| [msrv](https://redirect.github.com/rust-lang/rust) | minor | `1.89` →
`1.90.0` | `1.92.0` (+2) |

---

### Release Notes

<details>
<summary>rust-lang/rust (msrv)</summary>

###
[`v1.90.0`](https://redirect.github.com/rust-lang/rust/blob/HEAD/RELEASES.md#Version-1900-2025-09-18)

[Compare
Source](https://redirect.github.com/rust-lang/rust/compare/1.89.0...1.90.0)

\===========================

<a id="1.90-Language"></a>

## Language

- [Split up the `unknown_or_malformed_diagnostic_attributes`
lint](https://redirect.github.com/rust-lang/rust/pull/140717). This lint
has been split up into four finer-grained lints, with
`unknown_or_malformed_diagnostic_attributes` now being the lint group
that contains these lints:
  1. `unknown_diagnostic_attributes`: unknown to the current compiler
  2. `misplaced_diagnostic_attributes`: placed on the wrong item
3. `malformed_diagnostic_attributes`: malformed attribute syntax or
options
4. `malformed_diagnostic_format_literals`: malformed format string
literal
- [Allow constants whose final value has references to mutable/external
memory, but reject such constants as
patterns](https://redirect.github.com/rust-lang/rust/pull/140942)
- [Allow volatile access to non-Rust memory, including address
0](https://redirect.github.com/rust-lang/rust/pull/141260)

<a id="1.90-Compiler"></a>

## Compiler

- [Use `lld` by default on
`x86_64-unknown-linux-gnu`](https://redirect.github.com/rust-lang/rust/pull/140525).
- [Tier 3 `musl` targets now link dynamically by
default](https://redirect.github.com/rust-lang/rust/pull/144410).
Affected targets:
  - `mips64-unknown-linux-muslabi64`
  - `powerpc64-unknown-linux-musl`
  - `powerpc-unknown-linux-musl`
  - `powerpc-unknown-linux-muslspe`
  - `riscv32gc-unknown-linux-musl`
  - `s390x-unknown-linux-musl`
  - `thumbv7neon-unknown-linux-musleabihf`

<a id="1.90-Platform-Support"></a>

## Platform Support

- [Demote `x86_64-apple-darwin` to Tier 2 with host
tools](https://redirect.github.com/rust-lang/rust/pull/145252)

Refer to Rust's [platform support page][platform-support-doc]
for more information on Rust's tiered platform support.

[platform-support-doc]:
https://doc.rust-lang.org/rustc/platform-support.html

<a id="1.90-Libraries"></a>

## Libraries

- [Stabilize
`u*::{checked,overflowing,saturating,wrapping}_sub_signed`](https://redirect.github.com/rust-lang/rust/issues/126043)
- [Allow comparisons between `CStr`, `CString`, and
`Cow<CStr>`](https://redirect.github.com/rust-lang/rust/pull/137268)
- [Remove some unsized tuple impls since unsized tuples can't be
constructed](https://redirect.github.com/rust-lang/rust/pull/138340)
- [Set `MSG_NOSIGNAL` for
`UnixStream`](https://redirect.github.com/rust-lang/rust/pull/140005)
- [`proc_macro::Ident::new` now supports
`$crate`.](https://redirect.github.com/rust-lang/rust/pull/141996)
- [Guarantee the pointer returned from `Thread::into_raw` has at least 8
bytes of
alignment](https://redirect.github.com/rust-lang/rust/pull/143859)

<a id="1.90-Stabilized-APIs"></a>

## Stabilized APIs

-
[`u{n}::checked_sub_signed`](https://doc.rust-lang.org/stable/std/primitive.usize.html#method.checked_sub_signed)
-
[`u{n}::overflowing_sub_signed`](https://doc.rust-lang.org/stable/std/primitive.usize.html#method.overflowing_sub_signed)
-
[`u{n}::saturating_sub_signed`](https://doc.rust-lang.org/stable/std/primitive.usize.html#method.saturating_sub_signed)
-
[`u{n}::wrapping_sub_signed`](https://doc.rust-lang.org/stable/std/primitive.usize.html#method.wrapping_sub_signed)
- [`impl Copy for
IntErrorKind`](https://doc.rust-lang.org/stable/std/num/enum.IntErrorKind.html#impl-Copy-for-IntErrorKind)
- [`impl Hash for
IntErrorKind`](https://doc.rust-lang.org/stable/std/num/enum.IntErrorKind.html#impl-Hash-for-IntErrorKind)
- [`impl PartialEq<&CStr> for
CStr`](https://doc.rust-lang.org/stable/std/ffi/struct.CStr.html#impl-PartialEq%3C%26CStr%3E-for-CStr)
- [`impl PartialEq<CString> for
CStr`](https://doc.rust-lang.org/stable/std/ffi/struct.CStr.html#impl-PartialEq%3CCString%3E-for-CStr)
- [`impl PartialEq<Cow<CStr>> for
CStr`](https://doc.rust-lang.org/stable/std/ffi/struct.CStr.html#impl-PartialEq%3CCow%3C'_,+CStr%3E%3E-for-CStr)
- [`impl PartialEq<&CStr> for
CString`](https://doc.rust-lang.org/stable/std/ffi/struct.CString.html#impl-PartialEq%3C%26CStr%3E-for-CString)
- [`impl PartialEq<CStr> for
CString`](https://doc.rust-lang.org/stable/std/ffi/struct.CString.html#impl-PartialEq%3CCStr%3E-for-CString)
- [`impl PartialEq<Cow<CStr>> for
CString`](https://doc.rust-lang.org/stable/std/ffi/struct.CString.html#impl-PartialEq%3CCow%3C'_,+CStr%3E%3E-for-CString)
- [`impl PartialEq<&CStr> for
Cow<CStr>`](https://doc.rust-lang.org/stable/std/borrow/enum.Cow.html#impl-PartialEq%3C%26CStr%3E-for-Cow%3C'_,+CStr%3E)
- [`impl PartialEq<CStr> for
Cow<CStr>`](https://doc.rust-lang.org/stable/std/borrow/enum.Cow.html#impl-PartialEq%3CCStr%3E-for-Cow%3C'_,+CStr%3E)
- [`impl PartialEq<CString> for
Cow<CStr>`](https://doc.rust-lang.org/stable/std/borrow/enum.Cow.html#impl-PartialEq%3CCString%3E-for-Cow%3C'_,+CStr%3E)

These previously stable APIs are now stable in const contexts:

-
[`<[T]>::reverse`](https://doc.rust-lang.org/stable/std/primitive.slice.html#method.reverse)
-
[`f32::floor`](https://doc.rust-lang.org/stable/std/primitive.f32.html#method.floor)
-
[`f32::ceil`](https://doc.rust-lang.org/stable/std/primitive.f32.html#method.ceil)
-
[`f32::trunc`](https://doc.rust-lang.org/stable/std/primitive.f32.html#method.trunc)
-
[`f32::fract`](https://doc.rust-lang.org/stable/std/primitive.f32.html#method.fract)
-
[`f32::round`](https://doc.rust-lang.org/stable/std/primitive.f32.html#method.round)
-
[`f32::round_ties_even`](https://doc.rust-lang.org/stable/std/primitive.f32.html#method.round_ties_even)
-
[`f64::floor`](https://doc.rust-lang.org/stable/std/primitive.f64.html#method.floor)
-
[`f64::ceil`](https://doc.rust-lang.org/stable/std/primitive.f64.html#method.ceil)
-
[`f64::trunc`](https://doc.rust-lang.org/stable/std/primitive.f64.html#method.trunc)
-
[`f64::fract`](https://doc.rust-lang.org/stable/std/primitive.f64.html#method.fract)
-
[`f64::round`](https://doc.rust-lang.org/stable/std/primitive.f64.html#method.round)
-
[`f64::round_ties_even`](https://doc.rust-lang.org/stable/std/primitive.f64.html#method.round_ties_even)

<a id="1.90-Cargo"></a>

## Cargo

- [Add `http.proxy-cainfo` config for proxy
certs](https://redirect.github.com/rust-lang/cargo/pull/15374/)
- [Use `gix` for `cargo
package`](https://redirect.github.com/rust-lang/cargo/pull/15534/)
- [feat(publish): Stabilize multi-package
publishing](https://redirect.github.com/rust-lang/cargo/pull/15636/)

<a id="1.90-Rustdoc"></a>

## Rustdoc

- [Add ways to collapse all impl
blocks](https://redirect.github.com/rust-lang/rust/pull/141663).
Previously the "Summary" button and "-" keyboard shortcut would never
collapse `impl` blocks, now they do when shift is held
- [Display unsafe attributes with `unsafe()`
wrappers](https://redirect.github.com/rust-lang/rust/pull/143662)

<a id="1.90-Compatibility-Notes"></a>

## Compatibility Notes

- [Use `lld` by default on
`x86_64-unknown-linux-gnu`](https://redirect.github.com/rust-lang/rust/pull/140525).
See also
<https://blog.rust-lang.org/2025/09/01/rust-lld-on-1.90.0-stable/>.
- [Make `core::iter::Fuse`'s `Default` impl construct `I::default()`
internally as promised in the docs instead of always being
empty](https://redirect.github.com/rust-lang/rust/pull/140985)
- [Set `MSG_NOSIGNAL` for
`UnixStream`](https://redirect.github.com/rust-lang/rust/pull/140005)
This may change program behavior but results in the same behavior as
other primitives (e.g., stdout, network sockets).
Programs relying on signals to terminate them should update handling of
sockets to handle errors on write by exiting.
- [On Unix `std::env::home_dir` will use the fallback if the `HOME`
environment variable is
empty](https://redirect.github.com/rust-lang/rust/pull/141840)
- We now [reject unsupported `extern "{abi}"`s consistently in all
positions](https://redirect.github.com/rust-lang/rust/pull/142134). This
primarily affects the use of implementing traits on an `extern "{abi}"`
function pointer, like `extern "stdcall" fn()`, on a platform that
doesn't support that, like aarch64-unknown-linux-gnu. Direct usage of
these unsupported ABI strings by declaring or defining functions was
already rejected, so this is only a change for consistency.
- [const-eval: error when initializing a static writes to that
static](https://redirect.github.com/rust-lang/rust/pull/143084)
- [Check that the `proc_macro_derive` macro has correct arguments when
applied to the crate
root](https://redirect.github.com/rust-lang/rust/pull/143607)

</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-16 11:14:24 -06:00
Zanie Blue 7cd12cda6b Use --locked to install cargo-xwin in guide (#17530)
https://github.com/astral-sh/uv/pull/17507#discussion_r2698454498

Co-authored-by: Claude <noreply@anthropic.com>
2026-01-16 16:50:20 +00:00
konsti 125b116751 Remove now redundant env_remove calls (#17514)
Follow-up to https://github.com/astral-sh/uv/pull/14080
2026-01-16 15:17:51 +00:00
Ben Beasley f243f64aa8 Gate build_backend::build_with_all_metadata on pypi feature (#17520)
## Summary

This test, added in 0.9.26, tries to download anyio from PyPI. This PR
therefore gates it on the `pypi` feature.
<!-- What's the purpose of the change? What does it do, and why? -->

## Test Plan

<!-- How was it tested? -->
Applied as a patch to the `uv` package in Fedora and built in an offline
environment.
2026-01-16 14:25:47 +00:00
Tomasz Kramkowski f7d1215a98 Make uv pip compile attempt to download a specified --python-version if it can. (#17249)
## Summary

Addresses #16709. Now specifying a simple version with `--python` or
specifying a version using `--python-version` will result in the
specified version getting downloaded with a fallback to the previous
behaviour if the download fails for some transient reason or if
downloads are disabled.

The behaviour of how `--python` gets treated as `--python-version`, if a
"simple version" is specified, is kept. This means that `--python 3.7`
turns into a soft requirement. This seems at odds with how other similar
parts of UV work, but there seem to be quite a few tests which test for
this specific behaviour and I think this is best saved for a separate
issue.

## Test Plan

I added a test case which would previously fall back to the default
interpreter and warn about it.

---------

Co-authored-by: Zanie Blue <contact@zanie.dev>
2026-01-16 14:01:56 +00:00
Yusuf Bham 8a02f6352a Add -t shortform for --target to uv pip subcommands (#17501)
<!--
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

This adds `-t` to `uv pip` to preserve drop-in compatibility with pip's
`-t` shortform

Closes #17495

<!-- What's the purpose of the change? What does it do, and why? -->

## Test Plan
Just interactively checked to make sure it works in the same places as
`--test`
```bash
uv pip install -t test ansible
uv pip list -t test
echo 'ansible' > requirements.txt
uv pip sync -t test requirements.txt
```
2026-01-16 07:50:43 -06:00
Zanie Blue 5a39ceb688 Add cargo-xwin to the CONTRIBUTING guide (#17507)
This is very useful when making Windows changes.

---------

Co-authored-by: Claude <noreply@anthropic.com>
2026-01-16 07:16:23 -06:00
Zanie Blue 8968110455 Fix infinite loop when SSL_CERT_FILE is a directory (#17503)
Closes #17494

See https://github.com/rustls/pki-types/issues/98 for details.

I've posted an upstream fix https://github.com/rustls/pki-types/pull/99
but given the severity I think we should defensively patch this here as
well.

Co-authored-by: Claude <noreply@anthropic.com>
2026-01-16 07:12:55 -06:00
Zanie Blue 29aaaa4efd Revert "Attempt to fix the Claude Code session start hook" (#17506)
This reverts #17505 — I think there's another Claude Code bug that's
causing the session start hook to be skipped.
2026-01-16 07:11:44 -06:00
Zanie Blue b6332f6c62 Attempt to fix the Claude Code session start hook (#17505)
Alas https://github.com/astral-sh/uv/pull/17498 was a hallucination and
it appears to have broken hooks entirely.
2026-01-15 16:43:07 -06:00
Zanie Blue 936e6cdc42 Remove superfluous pin (#17502)
You can see in
https://github.com/astral-sh/uv/pull/3987#discussion_r1624696545 that
previously we called `Notified::enable` which required `pin!` but we no
longer do that and thus no longer require `pin!`.
2026-01-15 16:28:44 -06:00
Zanie Blue a475c720af Add missing git feature to a few tests (#17499)
Co-authored-by: Claude <noreply@anthropic.com>
2026-01-15 15:52:21 -06:00
Zanie Blue 919aa41515 Avoid running Claude session start hooks on resume (#17498)
Co-authored-by: Claude <noreply@anthropic.com>
2026-01-15 20:40:29 +00:00
Zanie Blue 0f24697b41 Fix installation of clippy and rustfmt in Claude Code for Web (#17497)
Our toolchain version doesn't match what's installed on the runner.

Co-authored-by: Claude <noreply@anthropic.com>
2026-01-15 20:34:22 +00:00
Zanie Blue ee4f003628 Bump version to 0.9.26 (#17496) 2026-01-15 14:25:54 -06:00
Zanie Blue 490b7f322e Add --no-sources-package (#14910)
I needed this for a test, e.g., to disable a source for an extra build
dependency without disabling the source for a workspace member, and had
also seen some requests for it. I think it makes sense to allow this.

The refactor is fairly mechanical, we go from
`SourceStrategy::Enabled|Disabled` to
`NoSources::All|None|Package(names)` as we do for other options like
`NoBinary`.

Related https://github.com/astral-sh/uv/issues/17441
2026-01-15 13:53:42 -06:00
Zanie Blue 009816f4ce Update Docker build workflow to use CI plan step (#17490)
Matching the rest of our CI to consolidating planning

Co-authored-by: Claude <noreply@anthropic.com>
2026-01-15 12:48:47 -06:00
Zanie Blue d673867919 Adjust the process ulimit to the maximum allowed on startup (#17464)
Closes #16999

See the commentary at
https://github.com/astral-sh/uv/issues/16999#issuecomment-3641417484 for
precedence in other tools.

This is non-fatal on error, but there are various scary behaviors from
increased ulimit sizes so I've gated this with preview.

---------

Co-authored-by: Claude <noreply@anthropic.com>
2026-01-15 18:17:46 +00:00
Zanie Blue f0fd568c76 Adjust build skip labels to match test skip label style (#17489)
Co-authored-by: Claude <noreply@anthropic.com>
2026-01-15 11:43:25 -06:00
konsti 20f468167a Log when response arrives (#17488)
Looking at #17485, I noticed we don't log when a request finishes,
making the log harder to read than necessary.

Example new log message:

```
TRACE Received response for revalidation request with status 304 Not Modified for: https://pypi.org/simple/idna/
```
2026-01-15 17:23:50 +00:00
Zanie Blue 36b6315f72 Refactor CI plan job (#17478)
Aiming for more readability and maintainability here. Sort of limited by
bash and GitHub Actions, but I don't think it quite merits a change to
Python yet.

Co-authored-by: Claude <noreply@anthropic.com>
2026-01-15 11:15:46 -06:00
Zanie Blue 73ad74c4d5 Improve error message for abi3 wheels on free-threaded Python (#17442)
Closes #17406 

Unlike https://github.com/astral-sh/uv/pull/17415, this returns a
dedicated error variant instead of adding a downstream special case to
handling of `Python` tag incompatibilities.

---------

Co-authored-by: Claude <noreply@anthropic.com>
2026-01-15 10:58:10 -06:00
konsti 6db2c62906 Normalize test snapshots (#17486)
This reduces the churn when changing test snapshots, as insta updates
the quotes when the contents change. Instead, we decouple it by updating
the quotes in bulk here.

Created by:

```
cargo insta test --accept --force-update-snapshots
```
2026-01-15 17:50:10 +01:00
Zanie Blue 3eadf6c1c1 Remove redundant mkdocs insiders installs (#17477)
All of the features moved into the public mkdocs.

---------

Co-authored-by: Claude <noreply@anthropic.com>
2026-01-15 10:25:55 -06:00
Zanie Blue 0920a0e8fb Lock to avoid concurrent refresh of pyx tokens (#17479)
Prevent concurrent processes from all refreshing the token
simultaneously by using a file lock. When a refresh is needed:

1. Acquire an exclusive file lock (which will block if another process
is refreshing)
3. Re-read the tokens from disk and check if they are fresh enough,
instead of making another request
4. Otherwise, perform the refresh and update the cached tokens

This prevents thundering herd issues when multiple concurrent processes
are invoking `uv auth token` or `uv auth helper` at the same time.

Also, set the tolerance for `uv auth helper` to the same as `uv auth
token` (5 minutes).

---------

Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Zsolt Dollenstein <zsol.zsol@gmail.com>
2026-01-15 10:24:05 -06:00
William Woodruff b3b15560c3 Test uv+PyPI Trusted Publishing on Gitlab (#17443) 2026-01-15 10:43:56 -05:00
konsti 157ac882be Use explicit manylinux/musllinux targets and better pre-upload checks (#17358)
This ensures that changes to the targets are intentional and explicit.

The target versions are from https://pypi.org/project/uv/0.9.22/#files

See also https://github.com/astral-sh/ty/pull/2393
2026-01-15 15:01:05 +01:00
Zanie Blue ba3a708160 Remove emojis from README (#17476)
Per our discussion when creating the ty README

---------

Co-authored-by: Claude <noreply@anthropic.com>
2026-01-15 07:23:25 -06:00
Zanie Blue 681e8e060f Improve cache initialization failure error message (#17469)
Adds an error chain to improve clarity when we fail to initialize the
cache directory.

Related to https://github.com/astral-sh/uv/issues/17465

---------

Co-authored-by: Claude <noreply@anthropic.com>
2026-01-15 07:23:10 -06:00
konsti ed50e40d05 Clear known env vars for tests (#14080)
Currently, it's possible to break our test suite by having an env var
set that influences uv, either a `UV_*` var, or something more generic
such as the XDG env vars. We previously fixed them env-var-by-env-var as
we discovered. By clearing uv-specific env var for subcommands, we can
invert this.

We intentionally avoid clearing all env vars as some of them, especially
on Windows, are system env vars required for basic operations.

Notable limitations are that this only affects tests that use
`TestContext::add_shared_env` (default, can be opted-out).

Fixed #9873
2026-01-15 11:40:31 +01:00
Ben Beasley 47d3d0c6e1 Gate some tests added in 0.9.23 on the pypi feature (#17481)
<!--
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

Makes it easier to run integration tests in offline environments by
gating four new tests on the `pypi` feature. All of these tests fail in
offline environments when they try to make HTTPS requests to PyPI.
<!-- What's the purpose of the change? What does it do, and why? -->

## Test Plan

<!-- How was it tested? -->
Applied as a patch to Fedora’s [`uv`
package](https://src.fedoraproject.org/rpms/uv); built and ran
integration tests in an offline environment.
2026-01-15 11:40:18 +01:00
Luis Nell db7d1a2058 Add a hint to use a newer uv when a managed Python download is not found (#17461)
## Summary

Suggest using a newer uv version when a managed python installation request
fails with `NoDownloadFound`.

Before:

```
error: No interpreter found for Python ==3.14.* in managed installations or search path
```

After:

```
error: No interpreter found for Python ==3.14.* in managed installations or search path

hint: uv embeds available Python downloads and may require an update to install new versions. Consider retrying on a newer version of uv.
```

## Test Plan

Integration test added for this case.

---------

Co-authored-by: Zanie Blue <contact@zanie.dev>
2026-01-15 09:58:41 +00:00
github-actions[bot] 0c08cba0c4 Sync latest Python releases (#17480)
Automated update for Python releases.

Co-authored-by: jjhelmus <1050278+jjhelmus@users.noreply.github.com>
2026-01-15 04:21:14 +00:00
Charlie Marsh 677d80f8c9 Add support for GCS request signing (#17474)
## Summary

This follows the pattern we've already established for S3.
2026-01-14 15:47:53 -05:00
Zanie Blue 8eb42ff2c5 Install rustfmt in Claude Code for Web (#17475)
My post-edit hooks were failing because this was not installed.

Co-authored-by: Claude <noreply@anthropic.com>
2026-01-14 20:46:35 +00:00
Zanie Blue 41c96d43c9 Reduce the number of CI checks run on pull requests (#17471)
We're hitting GitHub concurrency limits (organization wide limit of 60
jobs), and while we could move to paid runners with high concurrency
limits, I'd prefer to stay on the free runners and some of these jobs,
e.g., `test-system`, require GitHub runners.

This moves a bunch of our extended testing behind a label, e.g.,
`test:extended` or `test:system`, and only runs them on `main` by
default.
2026-01-14 13:12:11 -06:00
Zanie Blue b1668eb2d8 Add timeouts to Docker build jobs (#17473)
These are hitting OIDC failures on Depot and run for 30m consuming a lot
of CI concurrency.

These timeouts are based on historical data retrieved by Claude.
2026-01-14 18:55:57 +00:00
konsti 0ab603e035 Add METADATA.json and WHEEL.json in uv build backend (#15510)
https://discuss.python.org/t/pep-819-json-package-metadata/105558

Add an experimental JSON format for METADATA and WHEEL files in the uv
build backend to have a reference what it would look like and to
demonstrate that the actual change is just a few lines, how much easier
it is than the existing email header format.

The change is overwhelmingly adding the preview feature as it's the
first preview item in the build backend, writing the actual JSON is only
a couple of lines.

---------

Co-authored-by: Charlie Marsh <charlie.r.marsh@gmail.com>
2026-01-14 18:52:09 +00:00
Zanie Blue 9ea3466aba Add linting and formatting instructions to the CONTRIBUTING guide (#17470)
I noticed these were missing.

Co-authored-by: Claude <noreply@anthropic.com>
2026-01-14 12:18:42 -06:00
Zanie Blue 0843c4d832 Avoid rendering pyproject.toml examples for more system-level settings (#17462)
Following #16918, mark additional system-level settings as
`uv_toml_only` so they don't appear in the `pyproject.toml`
documentation examples:

- `native-tls`
- `cache-dir`
- `python-install-mirror`
- `pypy-install-mirror`
- `python-downloads-json-url`

Eventually, we'll want to ban these in the `pyproject.toml` without some
opt-in.

Co-authored-by: Claude <noreply@anthropic.com>
2026-01-14 12:18:35 -06:00
Zanie Blue a4327c21b4 Use a Depot runner for plan jobs (#17472)
This job is in the hot path for all other CI jobs, let's avoid letting
it be blocked by GitHub concurrency limits and such.
2026-01-14 18:14:43 +00:00
Zanie Blue b95b151cac Skip flaky test_simultaneous_independent_create_set on Windows (#17468)
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-14 17:17:01 +00:00
Zanie Blue ae62c0d3f7 Install Clippy in Claude Code for Web (#17466)
Co-authored-by: Claude <noreply@anthropic.com>
2026-01-14 16:23:06 +00:00
Zanie Blue 5a5bb69d2c Skip benchmarks when Rust code is unchanged (#17454)
Ignore that the file matching is a little redundant with other checks,
I'll consolidate those in a subsequent pull request.

Co-authored-by: Claude <noreply@anthropic.com>
2026-01-14 15:44:55 +00:00
Zanie Blue 10c93553e0 Update the binary build workflow names to just show targets (#17453)
I found these really noisy with the default names which show the whole
matrix entry.
2026-01-14 07:36:09 -06:00
Zanie Blue 932d5de510 Use Rust cache in "Sync Python Downloads" (#17447)
Co-authored-by: Claude <noreply@anthropic.com>
2026-01-14 07:35:57 -06:00
Zanie Blue e8f020754a Only save Rust cache on main or when cache-relevant files change (#17452)
The goal here is to reduce cache consumption and contention by avoiding
cache saves on pull requests unless the pull request makes a change that
requires a new cache entry.

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-14 07:35:45 -06:00
Zanie Blue 6efa51134d Reduce cache contention due to RUST_BACKTRACE environment variable (#17451)
This is included in the Rust cache key hash because it is prefixed with
`RUST_` but has no affect on compilation. This invalidates caches that
could be shared across jobs.

---------

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-14 07:35:25 -06:00
renovate[bot] f3add550af Update Rust crate h2 to v0.4.13 (#17458)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [h2](https://redirect.github.com/hyperium/h2) | workspace.dependencies
| patch | `0.4.12` → `0.4.13` |

---

### Release Notes

<details>
<summary>hyperium/h2 (h2)</summary>

###
[`v0.4.13`](https://redirect.github.com/hyperium/h2/blob/HEAD/CHANGELOG.md#0413-January-5-2026)

[Compare
Source](https://redirect.github.com/hyperium/h2/compare/v0.4.12...v0.4.13)

- Add support for 1xx informational responses on client and server side.
- Fix auto-releasing of padding bytes of DATA frames for flow control
windows.
- Fix to stop assigning capacity to pending streams which can't use it
yet.
- Fix tracing to not grab the parent for the connection span.

</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-14 08:52:17 +00:00
Zanie Blue 9ab2b5fe5f Use ubuntu-slim for a subset of jobs (#17450)
Co-authored-by: Claude <noreply@anthropic.com>
2026-01-13 17:16:31 -06:00