renovate[bot]
6e511759f7
Update Rust crate bitflags to v2.10.0 ( #17586 )
2026-01-18 20:59:04 -05:00
renovate[bot]
6c4a9d116c
Update Rust crate quote to v1.0.43 ( #17561 )
2026-01-18 20:58:32 -05:00
renovate[bot]
f11adf0b63
Update Rust crate proc-macro2 to v1.0.105 ( #17560 )
2026-01-18 20:58:24 -05:00
Zanie Blue
c83066b8ee
Update the trampolines to use windows v0.61.0 for consistency with the workspace ( #17541 )
...
I need to regenerate the trampolines after this.
---------
Co-authored-by: Claude <noreply@anthropic.com >
2026-01-18 09:08:15 -06:00
Zanie Blue
7f44de5d68
Use FxHashSet<PackageName> instead of Vec for exclude in uv pip list ( #17550 )
...
Closes #17546
and use `FxHashSet` instead of `HashSet` in `uv pip freeze`
Co-authored-by: Claude <noreply@anthropic.com >
2026-01-17 16:45:18 +00:00
Zanie Blue
c6ad69bc31
Upgrade rustls-pki-types to 1.13.3 ( #17519 )
...
Pulls the upstream fix for #17494
(https://github.com/rustls/pki-types/releases/tag/v%2F1.13.3 )
Most other significant changes are in
https://github.com/rustls/pki-types/releases/tag/v%2F1.13.0
Co-authored-by: Claude <noreply@anthropic.com >
2026-01-17 10:28:10 -06:00
Tobias Gårdhus
e2095b987a
Implement uv pip freeze --exclude flag ( #17045 )
...
## Summary
Implements the `--exclude` flag to `uv pip freeze`, which allows to
filter unwanted dependencies from the resulting requirements.txt file.
```bash
uv pip freeze --exclude pandas
```
part of https://github.com/astral-sh/uv/issues/3141
## Test Plan
Unit test with simple exclusion example of command argument(s)
2026-01-17 09:34:32 -06:00
Zanie Blue
6011cb4c35
Upgrade the trampolines to nightly-2025-11-02 ( #17538 )
...
The same version we are using for Docker builds; also resolving MSRV
errors
2026-01-17 09:03:55 -06:00
Zanie Blue
13afce10aa
Run Windows trampoline checks when Rust dependencies change ( #17539 )
...
The #17522 bump broke the trampolines and checks didn't run in CI, we
should run the checks for safety.
Co-authored-by: Claude <noreply@anthropic.com >
2026-01-16 14:21:29 -06:00
Zanie Blue
237ad9ecce
Add a CLAUDE.md ( #17517 )
...
I'm a bit annoyed to make it tool-specific, and that it's needed in the
first place, but 🤷♀️ I think it'll make a difference so here we go.
This has a few items inspired by
https://github.com/astral-sh/ruff/blob/main/CLAUDE.md
2026-01-16 13:20:05 -06:00
Zanie Blue
9f4dd8cb4a
Remove some abandoned dependencies ( #17532 )
...
#2658 reports these as abandoned, so let's move off them?
2026-01-16 12:49:18 -06:00
Zanie Blue
782ab88aca
Move MSRV to platform support section ( #17534 )
...
This fits with our other support policies, it's not a part of the uv
versioning policy.
Co-authored-by: Claude <noreply@anthropic.com >
2026-01-16 12:19:33 -06:00
Zanie Blue
68185195e1
Update the testing instructions in the CONTRIBUTING guide ( #17528 )
...
Co-authored-by: Claude <noreply@anthropic.com >
2026-01-16 11:20:39 -06:00
renovate[bot]
3c8ce0daee
Update Rust to v1.92.0 ( #17523 )
...
This PR contains the following updates:
| Package | Update | Change |
|---|---|---|
| [rust](https://redirect.github.com/rust-lang/rust ) | minor | `1.91` →
`1.92.0` |
---
### Release Notes
<details>
<summary>rust-lang/rust (rust)</summary>
###
[`v1.92.0`](https://redirect.github.com/rust-lang/rust/blob/HEAD/RELEASES.md#Version-1920-2025-12-11 )
[Compare
Source](https://redirect.github.com/rust-lang/rust/compare/1.91.1...1.92.0 )
\==========================
<a id="1.92.0-Language"></a>
## Language
- [Document `MaybeUninit` representation and
validity](https://redirect.github.com/rust-lang/rust/pull/140463 )
- [Allow `&raw [mut | const]` for union field in safe
code](https://redirect.github.com/rust-lang/rust/pull/141469 )
- [Prefer item bounds of associated types over where-bounds for
auto-traits and
`Sized`](https://redirect.github.com/rust-lang/rust/pull/144064 )
- [Do not materialize `X` in `[X; 0]` when `X` is unsizing a
const](https://redirect.github.com/rust-lang/rust/pull/145277 )
- [Support combining `#[track_caller]` and `#[no_mangle]` (requires
every declaration specifying `#[track_caller]` as
well)](https://redirect.github.com/rust-lang/rust/pull/145724 )
- [Make never type lints `never_type_fallback_flowing_into_unsafe` and
`dependency_on_unit_never_type_fallback`
deny-by-default](https://redirect.github.com/rust-lang/rust/pull/146167 )
- [Allow specifying multiple bounds for same associated item, except in
trait objects](https://redirect.github.com/rust-lang/rust/pull/146593 )
- [Slightly strengthen higher-ranked region handling in
coherence](https://redirect.github.com/rust-lang/rust/pull/146725 )
- [The `unused_must_use` lint no longer warns on `Result<(),
Uninhabited>` (for instance, `Result<(), !>`), or
`ControlFlow<Uninhabited,
()>`](https://redirect.github.com/rust-lang/rust/pull/147382 ). This
avoids having to check for an error that can never happen.
<a id="1.92.0-Compiler"></a>
## Compiler
- [Make `mips64el-unknown-linux-muslabi64` link
dynamically](https://redirect.github.com/rust-lang/rust/pull/146858 )
- [Remove current code for embedding command-line args in
PDB](https://redirect.github.com/rust-lang/rust/pull/147022 )
Command-line information is typically not needed by debugging tools, and
the removed code
was causing problems for incremental builds even on targets that don't
use PDB debuginfo.
<a id="1.92.0-Libraries"></a>
## Libraries
- [Specialize `Iterator::eq{_by}` for `TrustedLen`
iterators](https://redirect.github.com/rust-lang/rust/pull/137122 )
- [Simplify `Extend` for
tuples](https://redirect.github.com/rust-lang/rust/pull/138799 )
- [Added details to `Debug` for
`EncodeWide`](https://redirect.github.com/rust-lang/rust/pull/140153 ).
-
[`iter::Repeat::last`](https://redirect.github.com/rust-lang/rust/pull/147258 )
and [`count`](https://redirect.github.com/rust-lang/rust/pull/146410 )
will now panic, rather than looping infinitely.
<a id="1.92.0-Stabilized-APIs"></a>
## Stabilized APIs
-
[`NonZero<u{N}>::div_ceil`](https://doc.rust-lang.org/stable/std/num/struct.NonZero.html#method.div_ceil )
-
[`Location::file_as_c_str`](https://doc.rust-lang.org/stable/std/panic/struct.Location.html#method.file_as_c_str )
-
[`RwLockWriteGuard::downgrade`](https://doc.rust-lang.org/stable/std/sync/struct.RwLockWriteGuard.html#method.downgrade )
-
[`Box::new_zeroed`](https://doc.rust-lang.org/stable/std/boxed/struct.Box.html#method.new_zeroed )
-
[`Box::new_zeroed_slice`](https://doc.rust-lang.org/stable/std/boxed/struct.Box.html#method.new_zeroed_slice )
-
[`Rc::new_zeroed`](https://doc.rust-lang.org/stable/std/rc/struct.Rc.html#method.new_zeroed )
-
[`Rc::new_zeroed_slice`](https://doc.rust-lang.org/stable/std/rc/struct.Rc.html#method.new_zeroed_slice )
-
[`Arc::new_zeroed`](https://doc.rust-lang.org/stable/std/sync/struct.Arc.html#method.new_zeroed )
-
[`Arc::new_zeroed_slice`](https://doc.rust-lang.org/stable/std/sync/struct.Arc.html#method.new_zeroed_slice )
-
[`btree_map::Entry::insert_entry`](https://doc.rust-lang.org/stable/std/collections/btree_map/enum.Entry.html#method.insert_entry )
-
[`btree_map::VacantEntry::insert_entry`](https://doc.rust-lang.org/stable/std/collections/btree_map/struct.VacantEntry.html#method.insert_entry )
- [`impl Extend<proc_macro::Group> for
proc_macro::TokenStream`](https://doc.rust-lang.org/stable/proc_macro/struct.TokenStream.html#impl-Extend%3CGroup%3E-for-TokenStream )
- [`impl Extend<proc_macro::Literal> for
proc_macro::TokenStream`](https://doc.rust-lang.org/stable/proc_macro/struct.TokenStream.html#impl-Extend%3CLiteral%3E-for-TokenStream )
- [`impl Extend<proc_macro::Punct> for
proc_macro::TokenStream`](https://doc.rust-lang.org/stable/proc_macro/struct.TokenStream.html#impl-Extend%3CPunct%3E-for-TokenStream )
- [`impl Extend<proc_macro::Ident> for
proc_macro::TokenStream`](https://doc.rust-lang.org/stable/proc_macro/struct.TokenStream.html#impl-Extend%3CIdent%3E-for-TokenStream )
These previously stable APIs are now stable in const contexts:
-
[`<[_]>::rotate_left`](https://doc.rust-lang.org/stable/std/primitive.slice.html#method.rotate_left )
-
[`<[_]>::rotate_right`](https://doc.rust-lang.org/stable/std/primitive.slice.html#method.rotate_right )
<a id="1.92.0-Cargo"></a>
## Cargo
- [Added a new
chapter](https://redirect.github.com/rust-lang/cargo/issues/16119 ) to
the Cargo book, ["Optimizing Build
Performance"](https://doc.rust-lang.org/stable/cargo/guide/build-performance.html ).
<a id="1.92.0-Rustdoc"></a>
## Rustdoc
- [If a trait item appears in rustdoc search, hide the corresponding
impl items](https://redirect.github.com/rust-lang/rust/pull/145898 ).
Previously a search for "last" would show both `Iterator::last` as well
as impl methods like `std::vec::IntoIter::last`. Now these impl methods
will be hidden, freeing up space for inherent methods like
`BTreeSet::last`.
- [Relax rules for identifiers in
search](https://redirect.github.com/rust-lang/rust/pull/147860 ).
Previously you could only search for identifiers that were valid in rust
code, now searches only need to be valid as part of an identifier. For
example, you can now perform a search that starts with a digit.
<a id="1.92.0-Compatibility-Notes"></a>
## Compatibility Notes
- [Fix backtraces with `-C panic=abort` on Linux by generating unwind
tables by
default](https://redirect.github.com/rust-lang/rust/pull/143613 ). Build
with `-C force-unwind-tables=no` to keep omitting unwind tables.
* As part of the larger effort refactoring compiler built-in attributes
and their diagnostics, [the future-compatibility lint
`invalid_macro_export_arguments` is upgraded to deny-by-default and will
be reported in dependencies
too.](https://redirect.github.com/rust-lang/rust/pull/143857 )
* [Update the minimum external LLVM to
20](https://redirect.github.com/rust-lang/rust/pull/145071 )
* [Prevent downstream `impl DerefMut for
Pin<LocalType>`](https://redirect.github.com/rust-lang/rust/pull/145608 )
* [Don't apply temporary lifetime extension rules to the arguments of
non-extended `pin!` and formatting
macros](https://redirect.github.com/rust-lang/rust/pull/145838 )
</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>
Co-authored-by: Zanie Blue <contact@zanie.dev >
2026-01-16 11:14:34 -06:00
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