Commit Graph

526 Commits

Author SHA1 Message Date
Zanie Blue 1f1321d842 Bump version to 0.9.29 (#17837) 2026-02-03 13:06:01 -06:00
William Woodruff 0ccf06d009 Bump ambient-id to 0.0.8 (#17823) 2026-02-03 09:31:00 +00:00
Zanie Blue 0e1351e400 Bump version to 0.9.28 (#17738) 2026-01-29 13:51:05 -06:00
Zanie Blue 1b4407f2e9 Ensure uv.exe exits when uvw.exe or uvx.exe is killed (#17500)
This matches the approach used by the trampoline in `bounce.rs` so we
combine the implementations in a new `uv-windows` crate.

Closes #17492
Closes https://github.com/astral-sh/uv/issues/11817
2026-01-29 11:50:21 -06:00
Ben Beasley e007d3f379 Require fs-err 3.2.2 (for File::set_modified) (#17718)
<!--
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

Update the `fs-err` dependency to 3.2.2, because `uv` uses
`File::set_modified` in


https://github.com/astral-sh/uv/blob/2183c3fe1b4b8e83ea284f7b8ffbdc736f40332e/crates/uv-install-wheel/src/linker.rs#L337

and this API was added [in
3.2.2](https://github.com/andrewhickman/fs-err/blob/3.2.2/CHANGELOG.md#322).
<!-- What's the purpose of the change? What does it do, and why? -->

Version 3.2.2 was already in `Cargo.lock`, but I ran `cargo update
fs-error` and it made two small changes anyway.

## Test Plan

<!-- How was it tested? -->
There’s not much to test, as this just increases the minimum version.
You can verify the original problem by checking out `main` and running

```
$ cargo update fs-err --precise 3.2.1
$ cargo build
```

to see the error

```
error[E0599]: no method named `set_modified` found for struct `fs_err::File` in the current scope
   --> crates/uv-install-wheel/src/linker.rs:337:35
    |
337 |             if let Err(err) = dir.set_modified(now) {
    |                                   ^^^^^^^^^^^^ method not found in `fs_err::File`
```
2026-01-27 12:31:36 +00:00
Zanie Blue b5797b2ab4 Bump version to 0.9.27 (#17706) 2026-01-26 22:38:10 +00:00
samypr100 f2d216a78c Update Rust toolchain to 1.93 and MSRV to 1.91 (#17677)
## Summary

Updates Rust Toolchain to
[1.93](https://blog.rust-lang.org/2026/01/22/Rust-1.93.0/) and bumps
MSRV to [1.91](https://blog.rust-lang.org/2025/10/30/Rust-1.91.0/) per
versioning policy.

This also drops the nighly patch on Dockerfile introduced in
https://github.com/astral-sh/uv/pull/16584
2026-01-25 20:44:10 -05:00
Tomasz Kramkowski 6e3ba2f03d Introduce PreviewFeature to clarify intent throughout the codebase (#17670)
## Summary

This PR replaces `bitflags` in favour of `enumflags2` (which we already
transitively depended on) so that `PreviewFeatures` can be replaced with
`PreviewFeature` which is an enum. This clarifies intent in cases where
we only care about one specific `PreviewFeature`.

To avoid a bunch of boilerplate changes, the `Preview` wrapper has been
kept and creation now involves a `&[PreviewFeature]` in all cases. The
alternative was to have everything which initialises a `Preview` use
`BitFlags` directly and possibly to remove `Preview` entirely but this
keeps things simpler and limits the changes throughout the rest of the
codebase solely to changes which deal with the name changes (ALL_CAPS to
PascalCase) and the impact on `--show-settings` which I don't believe we
care about stability of output for?

The changes to `--show-settings` could be avoided with some custom
`Debug` implementation but that seems excessive.

This PR will impact #16452. But the changes were inspired by trying to
remove the need for that particular PR to add more runtime type
checking.

## Test Plan

Existing tests were adjusted (I also fixed some missing cases). The test
for panicking in cases which are now prevented through the use of type
changes has been dropped. All the rest of the tests were ran, snapshot
changes reviewed and applied.
2026-01-23 17:19:23 +00:00
William Woodruff ffb45112ab PEP 792: plumb statuses into internal representation (#17631) 2026-01-23 10:29:39 -05:00
renovate[bot] 1ab8f613b9 Update Rust crate whoami to v2 (#17605)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [whoami](https://redirect.github.com/ardaku/whoami/releases)
([source](https://redirect.github.com/ardaku/whoami)) |
workspace.dependencies | major | `1.6.0` → `2.0.0` |

---

### Release Notes

<details>
<summary>ardaku/whoami (whoami)</summary>

###
[`v2.0.2`](https://redirect.github.com/ardaku/whoami/releases/tag/v2.0.2)

[Compare
Source](https://redirect.github.com/ardaku/whoami/compare/v2.0.1...v2.0.2)

### Changelog

#### Fixed

- Crate not compiling when `std` feature isn't set
([#&#8203;215](https://redirect.github.com/ardaku/whoami/issues/215))

***

#### What's Changed

- Test no-std in C/I by
[@&#8203;AldaronLau](https://redirect.github.com/AldaronLau) in
[#&#8203;216](https://redirect.github.com/ardaku/whoami/pull/216)
- Prepare v2.0.2 by
[@&#8203;AldaronLau](https://redirect.github.com/AldaronLau) in
[#&#8203;217](https://redirect.github.com/ardaku/whoami/pull/217)

**Full Changelog**:
<https://github.com/ardaku/whoami/compare/v2.0.1...v2.0.2>

###
[`v2.0.1`](https://redirect.github.com/ardaku/whoami/releases/tag/v2.0.1)

[Compare
Source](https://redirect.github.com/ardaku/whoami/compare/v2.0.0...v2.0.1)

### Changelog

#### Fixed

- MSRV testing in CI actually works again
- MSRV mishap - WhoAmI 2.0.0 was requiring an MSRV of 1.81 accidentally,
due to using `core::error::Error`, changed so that when the `std`
feature is enabled the MSRV is as-advertised - 1.65. Updated MSRV
documentation to reflect that when the `std` feature is disabled it
bumps the MSRV to 1.81
- Fixed Daku reporting 64-bit when 32-bit in `cpu_arch()` implementation
- Fixed environment variable typo `LC_MONTEARY` -> `LC_MONETARY`
- Fixed `whoami::Error` having infinite recursion in the `Display`
implementation
- Fixed Broken links in the README.md
- Updated wasite minimum version to v1.0.2 to fix MSRV issues on WASI

***

#### What's Changed

- Fix architecture detection bug in Daku OS by
[@&#8203;paolobarbolini](https://redirect.github.com/paolobarbolini) in
[#&#8203;206](https://redirect.github.com/ardaku/whoami/pull/206)
- Fix typo in `LC_MONETARY` env var name by
[@&#8203;paolobarbolini](https://redirect.github.com/paolobarbolini) in
[#&#8203;205](https://redirect.github.com/ardaku/whoami/pull/205)
- Fix recursive Display implementation in Error type by
[@&#8203;paolobarbolini](https://redirect.github.com/paolobarbolini) in
[#&#8203;209](https://redirect.github.com/ardaku/whoami/pull/209)
- Update MSRV docs in README and fix broken links by
[@&#8203;AldaronLau](https://redirect.github.com/AldaronLau) in
[#&#8203;210](https://redirect.github.com/ardaku/whoami/pull/210)
- Downgrade wasi in `Cargo.lock`, fix doc error by
[@&#8203;AldaronLau](https://redirect.github.com/AldaronLau) in
[#&#8203;211](https://redirect.github.com/ardaku/whoami/pull/211)
- Restore MSRV support and CI checks by
[@&#8203;paolobarbolini](https://redirect.github.com/paolobarbolini) in
[#&#8203;204](https://redirect.github.com/ardaku/whoami/pull/204)
- Prepare v2.0.1 by
[@&#8203;AldaronLau](https://redirect.github.com/AldaronLau) in
[#&#8203;212](https://redirect.github.com/ardaku/whoami/pull/212)

#### New Contributors

- [@&#8203;paolobarbolini](https://redirect.github.com/paolobarbolini)
made their first contribution in
[#&#8203;206](https://redirect.github.com/ardaku/whoami/pull/206)

**Full Changelog**:
<https://github.com/ardaku/whoami/compare/v2.0.0...v2.0.1>

###
[`v2.0.0`](https://redirect.github.com/ardaku/whoami/releases/tag/v2.0.0):
(yanked)

### Changelog

#### Added

- Added `LanguagePreferences`
- Added `Error`, which implements `Into<std::io::Error>`
- no-std support
- Better docs around hostnames and platform-specific limitations
- `#[must_use]` to applicable functions
- Support checking for `Xfce` desktop environment

#### Changed

- MSRV updated to 1.65, upgraded to 2021 edition
- Rename `Platform::MacOS` to `Platform::Mac`
- Rename `Platform::Nintendo` to `Platform::Nintendo3ds`
- When checking pointer width, if can't be determined return
`ErrorKind::Unsupported` instead of `ErrorKind::Other`
- `*::Unknown(_)` variants are now defined at the top of enums
- Updated libredox to v0.1.12
- `desktop_env()` now returns an `Option` - returning `None` when no
desktop environment is applicable (such as over SSH)
- Feature set changed to:
  - `force-stub`: Only compile to stub backend
  - `std`: Depend on the standard library (default feature)
- `wasi-wasite`: Assume Wasite environment variables are defined when
compiling to wasi targets (default feature)
- `wasm-web`: Assume wasm with unknown OS is being compiled for a web
page (default feature)
- Rename `arch()` / `Arch` to `cpu_arch()` / `CpuArchitecture`
- Rename `DesktopEnv` to `DesktopEnvironment`
- `Language` is now a struct instead of an enum
- Language fallbacks without the country are appended at the end of
language iteration
- `DesktopEnv::WebBrowser` variant now includes browser name and version
- `devicename()` on web target now always returns "Browser"
- `hostname()` on web target now returns the webpage URL instead of
"localhost"
- `DesktopEnvironment::is_gtk()` and `DesktopEnvironment::is_kde()` are
now `const` and marked with `#[must_use]`
- Update wasite target dependency to 1.0.0
- `distro()` now reports Windows 11 as Windows 11 instead of 10

#### Removed

- Removed `Platform::Xbox`
- Remove all infallible function variants, and remove the `fallible`
module, moving those functions to the root module
- Remove deprecated `lang()`
- Remove `langs()` in favor of `lang_prefs()`
- `Language::country()`, `Country`
- Unnecessary `#[non_exhaustive]` attributes

***

#### What's Changed

- WhoAmI 2.0: 2021 edition by
[@&#8203;AldaronLau](https://redirect.github.com/AldaronLau) in
[#&#8203;100](https://redirect.github.com/ardaku/whoami/pull/100)
- Make major 2.0 breaking changes by
[@&#8203;AldaronLau](https://redirect.github.com/AldaronLau) in
[#&#8203;101](https://redirect.github.com/ardaku/whoami/pull/101)
- Deny doc warnings by
[@&#8203;AldaronLau](https://redirect.github.com/AldaronLau) in
[#&#8203;105](https://redirect.github.com/ardaku/whoami/pull/105)
- Test docs in CI by
[@&#8203;AldaronLau](https://redirect.github.com/AldaronLau) in
[#&#8203;107](https://redirect.github.com/ardaku/whoami/pull/107)
- V2: Update redox\_syscall to v0.5.1 by
[@&#8203;AldaronLau](https://redirect.github.com/AldaronLau) in
[#&#8203;112](https://redirect.github.com/ardaku/whoami/pull/112)
- Keep V2 up to date with V1 patches by
[@&#8203;AldaronLau](https://redirect.github.com/AldaronLau) in
[#&#8203;123](https://redirect.github.com/ardaku/whoami/pull/123)
- V2: Make `desktop_env()` return an `Option` by
[@&#8203;AldaronLau](https://redirect.github.com/AldaronLau) in
[#&#8203;125](https://redirect.github.com/ardaku/whoami/pull/125)
- Use std::ffi everywhere instead of std::os::raw
([#&#8203;122](https://redirect.github.com/ardaku/whoami/issues/122)) by
[@&#8203;AldaronLau](https://redirect.github.com/AldaronLau) in
[#&#8203;127](https://redirect.github.com/ardaku/whoami/pull/127)
- CI: Make cross compile clippy a separate action by
[@&#8203;AldaronLau](https://redirect.github.com/AldaronLau) in
[#&#8203;128](https://redirect.github.com/ardaku/whoami/pull/128)
- Update copyright by
[@&#8203;AldaronLau](https://redirect.github.com/AldaronLau) in
[#&#8203;129](https://redirect.github.com/ardaku/whoami/pull/129)
- Update readme with new MSRV policy by
[@&#8203;AldaronLau](https://redirect.github.com/AldaronLau) in
[#&#8203;131](https://redirect.github.com/ardaku/whoami/pull/131)
- Fix clippy duplicate attribute for MacOS by
[@&#8203;AldaronLau](https://redirect.github.com/AldaronLau) in
[#&#8203;134](https://redirect.github.com/ardaku/whoami/pull/134)
- Update wasm-bindgen to v0.2.100 by
[@&#8203;AldaronLau](https://redirect.github.com/AldaronLau) in
[#&#8203;137](https://redirect.github.com/ardaku/whoami/pull/137)
- Update platform dependencies by
[@&#8203;AldaronLau](https://redirect.github.com/AldaronLau) in
[#&#8203;139](https://redirect.github.com/ardaku/whoami/pull/139)
- Check more environment variables for language by
[@&#8203;AldaronLau](https://redirect.github.com/AldaronLau) in
[#&#8203;144](https://redirect.github.com/ardaku/whoami/pull/144)
- Switch Windows `hostname()` to return `PhysicalDnsHostname` by
[@&#8203;AldaronLau](https://redirect.github.com/AldaronLau) in
[#&#8203;147](https://redirect.github.com/ardaku/whoami/pull/147)
- Improved error handling by
[@&#8203;robertbacula](https://redirect.github.com/robertbacula) in
[#&#8203;136](https://redirect.github.com/ardaku/whoami/pull/136)
- Adjusts `langs()` to match POSIX locale spec by
[@&#8203;cjohnson19](https://redirect.github.com/cjohnson19) in
[#&#8203;150](https://redirect.github.com/ardaku/whoami/pull/150)
- Bump version to "2.0.0-pre.1" by
[@&#8203;AldaronLau](https://redirect.github.com/AldaronLau) in
[#&#8203;152](https://redirect.github.com/ardaku/whoami/pull/152)
- Fix license link by
[@&#8203;AldaronLau](https://redirect.github.com/AldaronLau) in
[#&#8203;153](https://redirect.github.com/ardaku/whoami/pull/153)
- upsteam v1 -> v2: Add discriminants to `ExtendedNameFormat` enum by
[@&#8203;AldaronLau](https://redirect.github.com/AldaronLau) in
[#&#8203;157](https://redirect.github.com/ardaku/whoami/pull/157)
- Add ability to get language prefs for categories by
[@&#8203;cjohnson19](https://redirect.github.com/cjohnson19) in
[#&#8203;155](https://redirect.github.com/ardaku/whoami/pull/155)
- Bump version to 2.0.0-pre.2 by
[@&#8203;AldaronLau](https://redirect.github.com/AldaronLau) in
[#&#8203;159](https://redirect.github.com/ardaku/whoami/pull/159)
- Try new templates by
[@&#8203;AldaronLau](https://redirect.github.com/AldaronLau) in
[#&#8203;160](https://redirect.github.com/ardaku/whoami/pull/160)
- More template changes by
[@&#8203;AldaronLau](https://redirect.github.com/AldaronLau) in
[#&#8203;161](https://redirect.github.com/ardaku/whoami/pull/161)
- Fix reading escaped unix pretty names by
[@&#8203;AldaronLau](https://redirect.github.com/AldaronLau) in
[#&#8203;164](https://redirect.github.com/ardaku/whoami/pull/164)
- Remove some TODOs now that dedicated issues exist by
[@&#8203;AldaronLau](https://redirect.github.com/AldaronLau) in
[#&#8203;177](https://redirect.github.com/ardaku/whoami/pull/177)
- Fix `LanguagePrefs` impl of `Display` by
[@&#8203;cjohnson19](https://redirect.github.com/cjohnson19) in
[#&#8203;179](https://redirect.github.com/ardaku/whoami/pull/179)
- Update crate description by
[@&#8203;AldaronLau](https://redirect.github.com/AldaronLau) in
[#&#8203;181](https://redirect.github.com/ardaku/whoami/pull/181)
- CI: Turn off auto install for rustup by
[@&#8203;AldaronLau](https://redirect.github.com/AldaronLau) in
[#&#8203;182](https://redirect.github.com/ardaku/whoami/pull/182)
- Migrate to workspace and define xtask by
[@&#8203;cjohnson19](https://redirect.github.com/cjohnson19) in
[#&#8203;180](https://redirect.github.com/ardaku/whoami/pull/180)
- CI: only cross-compile whoami library by
[@&#8203;AldaronLau](https://redirect.github.com/AldaronLau) in
[#&#8203;184](https://redirect.github.com/ardaku/whoami/pull/184)
- Update Release PR template (v1.6.0) by
[@&#8203;AldaronLau](https://redirect.github.com/AldaronLau) in
[#&#8203;183](https://redirect.github.com/ardaku/whoami/pull/183)
- v1 -> v2: Windows linkage fix by
[@&#8203;AldaronLau](https://redirect.github.com/AldaronLau) in
[#&#8203;186](https://redirect.github.com/ardaku/whoami/pull/186)
- Replace redox\_syscall with libredox by
[@&#8203;AldaronLau](https://redirect.github.com/AldaronLau) in
[#&#8203;189](https://redirect.github.com/ardaku/whoami/pull/189)
- Bump libredox from 0.1.9 to 0.1.10 by
[@&#8203;dependabot](https://redirect.github.com/dependabot)\[bot] in
[#&#8203;191](https://redirect.github.com/ardaku/whoami/pull/191)
- Change web behavior for whoami 2.0 by
[@&#8203;DynoW](https://redirect.github.com/DynoW) in
[#&#8203;192](https://redirect.github.com/ardaku/whoami/pull/192)
- docs: document platform-specific hostname character limits by
[@&#8203;naoNao89](https://redirect.github.com/naoNao89) in
[#&#8203;194](https://redirect.github.com/ardaku/whoami/pull/194)
- Bump libredox from 0.1.10 to 0.1.11 by
[@&#8203;dependabot](https://redirect.github.com/dependabot)\[bot] in
[#&#8203;196](https://redirect.github.com/ardaku/whoami/pull/196)
- Finalize Language API for whoami 2.0 by
[@&#8203;AldaronLau](https://redirect.github.com/AldaronLau) in
[#&#8203;198](https://redirect.github.com/ardaku/whoami/pull/198)
- Bump libredox from 0.1.11 to 0.1.12 by
[@&#8203;dependabot](https://redirect.github.com/dependabot)\[bot] in
[#&#8203;199](https://redirect.github.com/ardaku/whoami/pull/199)
- Final changes preparing for whoami 2.0 by
[@&#8203;AldaronLau](https://redirect.github.com/AldaronLau) in
[#&#8203;200](https://redirect.github.com/ardaku/whoami/pull/200)
- Add some `must_use`s, organize attributes, remove redundant
`non_exhaustive`, fix small copypaste bug (Wasm64) by
[@&#8203;BioTomateDE](https://redirect.github.com/BioTomateDE) in
[#&#8203;201](https://redirect.github.com/ardaku/whoami/pull/201)
- Release v2.0.0 by
[@&#8203;AldaronLau](https://redirect.github.com/AldaronLau) in
[#&#8203;163](https://redirect.github.com/ardaku/whoami/pull/163)

#### New Contributors

- [@&#8203;robertbacula](https://redirect.github.com/robertbacula) made
their first contribution in
[#&#8203;136](https://redirect.github.com/ardaku/whoami/pull/136)
- [@&#8203;cjohnson19](https://redirect.github.com/cjohnson19) made
their first contribution in
[#&#8203;150](https://redirect.github.com/ardaku/whoami/pull/150)
- [@&#8203;DynoW](https://redirect.github.com/DynoW) made their first
contribution in
[#&#8203;192](https://redirect.github.com/ardaku/whoami/pull/192)
- [@&#8203;naoNao89](https://redirect.github.com/naoNao89) made their
first contribution in
[#&#8203;194](https://redirect.github.com/ardaku/whoami/pull/194)
- [@&#8203;BioTomateDE](https://redirect.github.com/BioTomateDE) made
their first contribution in
[#&#8203;201](https://redirect.github.com/ardaku/whoami/pull/201)

**Full Changelog**:
<https://github.com/ardaku/whoami/compare/v1.6.0...v2.0.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:eyJjcmVhdGVkSW5WZXIiOiI0Mi43NC41IiwidXBkYXRlZEluVmVyIjoiNDIuODUuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiYnVpbGQ6c2tpcC1yZWxlYXNlIiwiaW50ZXJuYWwiXX0=-->

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: konstin <konstin@mailbox.org>
2026-01-20 09:59:08 +00: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
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 ee4f003628 Bump version to 0.9.26 (#17496) 2026-01-15 14:25:54 -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
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 38fcac0f36 Bump version to 0.9.25 (#17449) 2026-01-13 16:55:34 -06: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
Zanie Blue 0fda1525eb Bump version to 0.9.24 (#17395) 2026-01-09 22:09:11 +00:00
Zanie Blue 00f07541a1 Bump version to 0.9.23 (#17385) 2026-01-09 19:09:04 +00: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 82a6a66b81 Bump version to 0.9.22 (#17333)
There's a hyper-util bump to get out separate from other reqwest related
changes.
2026-01-06 11:23:12 +01:00
Ben Beasley 5ed40429e4 Update procfs to 0.18.0 (#17275)
## Summary

This brings various minor improvements described in
https://github.com/eminence/procfs/releases/tag/v0.18.0, avoids
duplicate rustix versions in Cargo.lock, and offers upstream the change
that we’re making in Fedora’s `uv` package to avoid shipping a
`rust-procfs0.17` compat package.

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

## Test Plan

<!-- How was it tested? -->
`cargo nextest run -- --skip python_install_pyodide`

Co-authored-by: Charlie Marsh <charlie.r.marsh@gmail.com>
2026-01-01 13:36:23 +00:00
Zanie Blue 0dc9556adb Bump version to 0.9.21 (#17270) 2025-12-30 15:46:08 +00:00
Charlie Marsh 765a967236 Bump version to 0.9.20 (#17256)
## Summary

In #17254, I failed to bump the versions of the various internal crates,
so need to re-release.
2025-12-29 20:13:57 +00:00
konsti 44d1a302c8 Update retry-policies to 0.5.1 (#17170)
Fixes #17169
2025-12-18 10:59:15 +00:00
konsti 0cee76417f Bump version to 0.9.18 (#17141)
It's been a week.

---------

Co-authored-by: Zanie Blue <contact@zanie.dev>
2025-12-16 13:32:35 +00:00
konsti af95677b9b Update cargo shear (#17106)
Requires a companion PR that updates the GitHub Action.
2025-12-15 18:46:35 +01:00
Ben Beasley a2d64aa224 Update spdx dependency to 0.13 (#17129)
<!--
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

Updates the `spdx` dependency from 0.12.x to the latest release, 0.13.2.

https://github.com/EmbarkStudios/spdx/blob/0.13.2/CHANGELOG.md

Here in uv upstream, this just helps keep dependencies up to date; there
isn’t any other particular specific motivation or benefit. Downstream in
Fedora, this change allows me to avoid maintaining a `rust-spdx0.12`
compat package.
<!-- What's the purpose of the change? What does it do, and why? -->

## Test Plan

<!-- How was it tested? -->
`cargo nextest run -- --skip python_install::python_install_pyodide`
2025-12-14 13:25:06 -05:00
Matthew Mckee 6de869cc88 Speed up cache size command (#17015)
## Summary

`uv cache size` can be quite slow. Here i use
https://github.com/sharkdp/diskus to walk the cache directory with in
multiple threads.

Add cli option to set the number of threads and default to `
std::thread::available_parallelism()` or 1.

## Test Plan

Added cli statement with info log test.

I believe this is a fair test, where i set cache dir to a large
directory.

```bash
matthew@matthew-main ~/develop/personal/uv                                                                                                                                                                                                                 [14:17:50]                                                                                                                                                                                                                                       [±cache-size-speed-up ✓▴]
> $ uv cache size --preview-features cache-size -H --cache-dir ~/develop/                                                                                                                                                                   [±cache-size-speed-up ✓▴]
75.7GiB

matthew@matthew-main ~/develop/personal/uv                                                                                                                                                                                                                 [14:18:24]
> $ hyperfine 'uv cache size --preview-features cache-size -H --cache-dir ~/develop/' 'target/debug/uv cache size --preview-features cache-size -H --cache-dir ~/develop/'                                                                  [±cache-size-speed-up ✓▴]
Benchmark 1: uv cache size --preview-features cache-size -H --cache-dir ~/develop/
  Time (mean ± σ):      1.059 s ±  0.014 s    [User: 0.171 s, System: 0.884 s]
  Range (min … max):    1.048 s …  1.097 s    10 runs

Benchmark 2: target/debug/uv cache size --preview-features cache-size -H --cache-dir ~/develop/
  Time (mean ± σ):     413.8 ms ±  17.1 ms    [User: 5789.2 ms, System: 1682.0 ms]
  Range (min … max):   386.3 ms … 441.6 ms    10 runs

Summary
  target/debug/uv cache size --preview-features cache-size -H --cache-dir ~/develop/ ran
    2.56 ± 0.11 times faster than uv cache size --preview-features cache-size -H --cache-dir ~/develop/  
```
2025-12-11 12:11:01 -05:00
konsti ebdffaf728 CI Perf: fast-build (#16780)
Co-authored-by: Zanie Blue <contact@zanie.dev>
2025-12-11 13:51:37 +00:00
Zanie Blue 2b5d65e61d Bump version to 0.9.17 (#17058) 2025-12-09 16:36:00 -06:00
William Woodruff 0dd71f4382 Bump ambient-id to 0.0.7 (#17048) 2025-12-09 09:08:26 -08:00
Zanie Blue a63e5b62e3 Bump version to 0.9.16 (#17008) 2025-12-06 07:52:06 -06:00
Charlie Marsh ed19672f1f Bump astral-tl to v0.7.11 (#17010)
## Summary

This was reverted due to a hang
(https://github.com/astral-sh/uv/issues/16937) which was then resolved
upstream (https://github.com/astral-sh/astral-tl/pull/16).
2025-12-06 07:32:55 -06:00
konsti 62bf92132b Add a 5 min default timeout for deadlocks (#16342)
When a process is running and another calls `uv cache clean` or `uv
cache prune` we currently deadlock - sometimes until the CI timeout
(https://github.com/astral-sh/setup-uv/issues/588). To avoid this, we
add a default 5 min timeout waiting for a lock. 5 min balances allowing
in-progress builds to finish, especially with larger native
dependencies, while also giving timely errors for deadlocks on (remote)
systems.

Commit 1 is a refactoring.

This branch also fixes a problem with the logging where acquired and
released resources currently mismatch:

```
DEBUG Acquired lock for `https://github.com/tqdm/tqdm`
DEBUG Using existing Git source `https://github.com/tqdm/tqdm`
DEBUG Released lock at `C:\Users\Konsti\AppData\Local\uv\cache\git-v0\locks\16bb813afef8edd2`
```
2025-12-04 14:59:04 +01:00
Zanie Blue e7af5838bb Bump version to 0.9.15 (#16942) 2025-12-02 17:48:28 -06:00
Zanie Blue d2162e27e6 Revert "Bump astral-tl to v0.7.10 (#16887)" (#16938)
This reverts commit 5f3d46c241 / #16887

Investigating https://github.com/astral-sh/uv/issues/16937
2025-12-02 17:06:09 -06:00
samypr100 23b8fc9d18 Add a Windows manifest to uv binaries (#16894)
## Summary

Currently we do not include a Windows manifest on the uv binary for
windows builds. This can cause problems such as the one in
https://github.com/astral-sh/uv/issues/16877 which can limit what uv can
do for some Windows operations (e.g. symlinks) that can have
restrictions imposed by the OS unbeknownst to us and make it none
obvious to isolate the issue.

Given we already do this for the `uv-trampoline`, we should also do it
for uv. In the case of uv, I opted for explicit entries in the manifest
rather than using the defaults embed_manifest crate provides which are
not appropriate in all general cases.

The manifest now includes declarations for:
* Explicit "system" codepage declaration to retain backwards compat with
previous uv releases. We should move to utf-8 codepage in the future to
align with `uv-trampoline`, but it's arguably a breaking change in rare
cases. We shouldn't have issues with using utf-8 as we don't really rely
on *A calls to begin with.
* Explicit Windows 10+ support to ensure the executables are not treated
as a legacy, preventing application compatibility layers being wrongly
applied to it all the way back to NT 6.0 (Windows Vista). Note, other
Windows compatibility entries do not imply support, rather they imply
awareness as a preventive measure.
* Long Path support to avoid Windows operations assuming
[MAX_PATH](https://learn.microsoft.com/en-us/windows/win32/fileio/maximum-file-path-limitation)
applies. This still requires the system to have long paths enabled via
``HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem@LongPathsEnabled``
dword being set to ``1`` (see
[ref](https://learn.microsoft.com/en-us/windows/win32/fileio/maximum-file-path-limitation#registry-setting-to-enable-long-paths)).
* Standard invoker execution levels for CLI applications to disable UAC
virtualization after including the manifest.

The resulting manifest is the following

```xml
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" 
    xmlns:asmv3="urn:schemas-microsoft-com:asm.v3" manifestVersion="1.0">
    <assemblyIdentity name="uv" type="win32" version="0.9.13.0"></assemblyIdentity>
    <asmv3:trustInfo>
        <asmv3:security>
            <asmv3:requestedPrivileges>
                <asmv3:requestedExecutionLevel level="asInvoker" uiAccess="false"></asmv3:requestedExecutionLevel>
            </asmv3:requestedPrivileges>
        </asmv3:security>
    </asmv3:trustInfo>
    <asmv3:application>
        <asmv3:windowsSettings>
            <longPathAware xmlns="http://schemas.microsoft.com/SMI/2016/WindowsSettings">true</longPathAware>
        </asmv3:windowsSettings>
    </asmv3:application>
    <ms_compatibility:compatibility xmlns:ms_compatibility="urn:schemas-microsoft-com:compatibility.v1" 
        xmlns="urn:schemas-microsoft-com:compatibility.v1">
        <ms_compatibility:application xmlns:ms_compatibility="urn:schemas-microsoft-com:compatibility.v1">
            <ms_compatibility:supportedOS xmlns:ms_compatibility="urn:schemas-microsoft-com:compatibility.v1" Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"></ms_compatibility:supportedOS>
            <ms_compatibility:supportedOS xmlns:ms_compatibility="urn:schemas-microsoft-com:compatibility.v1" Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"></ms_compatibility:supportedOS>
            <ms_compatibility:supportedOS xmlns:ms_compatibility="urn:schemas-microsoft-com:compatibility.v1" Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}"></ms_compatibility:supportedOS>
            <ms_compatibility:supportedOS xmlns:ms_compatibility="urn:schemas-microsoft-com:compatibility.v1" Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}"></ms_compatibility:supportedOS>
        </ms_compatibility:application>
    </ms_compatibility:compatibility>
</assembly>
```

For reference, here's `cargo`'s manifest from 1.91

```xml
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" 
    xmlns:asmv3="urn:schemas-microsoft-com:asm.v3">
    <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
        <security>
            <requestedPrivileges>
                <requestedExecutionLevel level="asInvoker" uiAccess="false"></requestedExecutionLevel>
            </requestedPrivileges>
        </security>
    </trustInfo>
    <asmv3:application>
        <asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2019/WindowsSettings" 
            xmlns:ws2="http://schemas.microsoft.com/SMI/2016/WindowsSettings">
            <ws2:longPathAware>true</ws2:longPathAware>
            <activeCodePage>UTF-8</activeCodePage>
        </asmv3:windowsSettings>
    </asmv3:application>
    <ms_compatibility:compatibility xmlns:ms_compatibility="urn:schemas-microsoft-com:compatibility.v1" 
        xmlns="urn:schemas-microsoft-com:compatibility.v1">
        <ms_compatibility:application xmlns:ms_compatibility="urn:schemas-microsoft-com:compatibility.v1">
            <ms_compatibility:supportedOS xmlns:ms_compatibility="urn:schemas-microsoft-com:compatibility.v1" Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"></ms_compatibility:supportedOS>
            <ms_compatibility:supportedOS xmlns:ms_compatibility="urn:schemas-microsoft-com:compatibility.v1" Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"></ms_compatibility:supportedOS>
            <ms_compatibility:supportedOS xmlns:ms_compatibility="urn:schemas-microsoft-com:compatibility.v1" Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}"></ms_compatibility:supportedOS>
            <ms_compatibility:supportedOS xmlns:ms_compatibility="urn:schemas-microsoft-com:compatibility.v1" Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}"></ms_compatibility:supportedOS>
        </ms_compatibility:application>
    </ms_compatibility:compatibility>
</assembly>
```

Closes #16877

## Test Plan

Before changes on Windows 11 25H2 (without
SeCreateSymbolicLinkPrivilege)

```console
$ uv init
$ uv add jupyterlab-widgets==3.0.16 --link-mode=symlink
...
Resolved 2 packages in [TIME]
error: Failed to install: jupyterlab_widgets-3.0.16-py3-none-any.whl (jupyterlab-widgets==3.0.16)
  Caused by: failed to symlink file from [CACHE_DIR]\archive-v0\aQcqEjLJAkVwuSzohqymc\jupyterlab_widgets-3.0.16.data\data\share\jupyter\labextensions\@jupyter-widgets\jupyterlab-manager\static\packages_base_lib_index_js-webpack_sharing_consume_default_jquery_jquery.5dd13f8e980fa3c50bfe.js to [ROOT]\.venv\Lib\site-packages\jupyterlab_widgets-3.0.16.data\data\share\jupyter\labextensions\@jupyter-widgets\jupyterlab-manager\static\packages_base_lib_index_js-webpack_sharing_consume_default_jquery_jquery.5dd13f8e980fa3c50bfe.js: A required privilege is not held by the client. (os error 1314)
```

Before changes on Windows 11 25H2 (with SeCreateSymbolicLinkPrivilege)

```console
$ uv init
$ uv add jupyterlab-widgets==3.0.16 --link-mode=symlink
...
Resolved 2 packages in [TIME]
error: Failed to install: jupyterlab_widgets-3.0.16-py3-none-any.whl (jupyterlab-widgets==3.0.16)
  Caused by: failed to symlink file from [CACHE_DIR]\archive-v0\aQcqEjLJAkVwuSzohqymc\jupyterlab_widgets-3.0.16.data\data\share\jupyter\labextensions\@jupyter-widgets\jupyterlab-manager\static\packages_base_lib_index_js-webpack_sharing_consume_default_jquery_jquery.5dd13f8e980fa3c50bfe.js to [ROOT]\.venv\Lib\site-packages\jupyterlab_widgets-3.0.16.data\data\share\jupyter\labextensions\@jupyter-widgets\jupyterlab-manager\static\packages_base_lib_index_js-webpack_sharing_consume_default_jquery_jquery.5dd13f8e980fa3c50bfe.js: The parameter is incorrect. (os error 87)
```

After changes on Windows 11 25H2 (with or without
SeCreateSymbolicLinkPrivilege)

```console
$ uv init
$ uv add jupyterlab-widgets==3.0.16 --link-mode=symlink
...
Resolved 2 packages in [TIME]
Installed 1 package in [TIME]
 + jupyterlab-widgets==3.0.16
```
2025-12-01 14:02:35 -06:00
Zsolt Dollenstein 05814f9cd5 Bump version to 0.9.14 (#16909) 2025-12-01 11:52:15 -05:00
Charlie Marsh 5f3d46c241 Bump astral-tl to v0.7.10 (#16887)
## Summary

Enables SIMD for HTML parsing.
2025-11-28 19:49:44 +00:00
konsti 0db41803cd Update pubgrub to 0.3.3 (#16829)
Maintenance update.
2025-11-28 14:51:24 +01:00
Zanie Blue 735b87004c Bump version to 0.9.13 (#16862) 2025-11-26 15:12:54 +00:00
Zanie Blue 0fb1233363 Bump version to 0.9.12 (#16840) 2025-11-24 23:22:12 +00:00
William Woodruff 7b3199f07c Collect and upload PEP 740 attestations during uv publish (#16731)
Co-authored-by: konsti <konstin@mailbox.org>
2025-11-24 16:47:15 -05:00
Zanie Blue 563438f13d Fix documentation links for crates (#16801)
Part of https://github.com/astral-sh/uv/issues/4392

We shouldn't link to PyPI, and dropping the workspace-level
documentation link should mean that we get the auto-generated `docs.rs`
links.
2025-11-21 10:44:58 -06:00
Zanie Blue 4be1e0a83c Bump version to 0.9.11 (#16794) 2025-11-20 16:24:01 -06:00
Zanie Blue dfe89047bb Publish to crates.io (#16770) 2025-11-20 21:26:44 +00:00
Tom Schafer fd7e6d0a05 Add SBOM export support (#16523)
Co-authored-by: Will Rollason <william.rollason@snyk.io>
2025-11-20 12:52:31 -05:00
samypr100 bf99f0a195 Add support for SSL_CERT_DIR (#16473)
## Summary

Closes https://github.com/astral-sh/uv/issues/16414

Adds support for the standard
[SSL_CERT_DIR](https://docs.openssl.org/3.6/man3/SSL_CTX_load_verify_locations)
which has gained recent proper support from
[rustls-native-certs](https://github.com/rustls/rustls-native-certs/pull/187)
in v0.8.2.

In addition, this PR clarifies documentation around `SSL_CERT_FILE` and
`SSL_CERT_DIR` when used in combination with `UV_NATIVE_TLS` as
mentioned in
https://github.com/astral-sh/uv/issues/16412#issuecomment-3434927201

## Test Plan

Manually tested with custom cert chains in multiple directories and
loading them via SSL_CERT_DIR. We didn't have tests for `SSL_CERT_FILE`
or `SSL_CERT_DIR` environment variables so I added a basic one using our
own test-only certificate generation and dummy https server. I also
moved some things around for better reuse.
2025-11-16 11:48:31 -06:00
Meitar Reihan b9826778b9 Support http/https URLs in uv python --python-downloads-json-url (#16542)
continuation PR based on #14687

---------

Co-authored-by: Geoffrey Thomas <geofft@ldpreload.com>
Co-authored-by: Aria Desires <aria.desires@gmail.com>
2025-11-14 17:51:24 -05:00