Commit graph

6636 commits

Author SHA1 Message Date
Zanie Blue
1e5120e15c
Bump version to 0.7.10 (#13821) 2025-06-03 11:07:21 -05:00
Zanie Blue
f429d99b6c
Disable OpenSUSE system test for now (#13818)
ref #13811
2025-06-03 14:53:09 +00:00
John Mumm
90aefe4a4a
Display ssh git username in Debug implementation (#13806)
This updates the `Debug` implementation of `DisplaySafeUrl` to display
the git username in a case like `git+ssh://git@github.com/org/repo`. It
also factors out the git username check into a shared function and adds
related unit tests to `DisplaySafeUrl`.
2025-06-03 14:52:51 +00:00
Zanie Blue
a96e766b55
Retain credentials for direct URLs in uv export (#13809)
Reverts unintended breaking change from #13560 

Test case from https://github.com/astral-sh/uv/pull/13808
2025-06-03 14:23:07 +00:00
konsti
63ba5e9f9e
Add data locations to logging (#13797)
`trace!`-log the locations of data directories used by a wheel. These
paths are queried from sysconfig, i.e. they are mostly Python
interpreter defined instead of being computed by uv.
2025-06-03 09:22:18 -05:00
konsti
eb9ad6c8c0
Don't redact username git for SSH (#13799)
Fixes #13795 specifically by not redacting the username convention `git`
for SSH URLs, though we should never write stars in `uv export`
generally (#13791).
2025-06-03 09:18:18 -05:00
Zanie Blue
99a4b78af2
Add comment to lock_redact_url_sources indicating that we do not redact the credentials (#13813)
This was previously present, but got removed at some point.


https://github.com/astral-sh/uv/pull/8307/files#diff-82edd36151736f44055f699a34c8b19a63ffc4cf3c86bf5fb34d69f8ac88a957R6544
2025-06-03 14:15:46 +00:00
Zanie Blue
c8448815ef
Add uv export test cases for PEP 751 format with credentials (#13810)
Same as the following, but for `pylock.toml` instead of
`requirements.txt`

- #13808
- #13792
2025-06-03 09:11:53 -05:00
Zanie Blue
4cdac77fe9
Add test case for HTTPS credentials on direct URL in uv export (#13808)
Related to 

- #13799 
- #13792
2025-06-03 14:11:13 +00:00
konsti
fd48b8bb78
Update acj/freebsd-firecracker-action to v0.4.1 (#13804)
This should hopefully fix the flakes we're seeing.

Fixes #13746, hopefully.
2025-06-03 15:12:03 +02:00
Zanie Blue
98c708149a
Add uv export test case with credentials in pyproject.toml (#13792)
Testing reported case in https://github.com/astral-sh/uv/issues/13791

I cherry-picked this commit onto 0.7.0, and saw no change.
2025-06-03 07:47:05 -05:00
konsti
4368c403fe
Downgrade firecracker action to v0.3 (#13786)
Some checks are pending
CI / check system | conda3.8 on windows x86-64 (push) Blocked by required conditions
CI / check system | amazonlinux (push) Blocked by required conditions
CI / check system | embedded python3.10 on windows x86-64 (push) Blocked by required conditions
CI / benchmarks | walltime aarch64 linux (push) Blocked by required conditions
CI / benchmarks | instrumented (push) Blocked by required conditions
CI / check system | python on debian (push) Blocked by required conditions
CI / check system | python on fedora (push) Blocked by required conditions
CI / check system | python on ubuntu (push) Blocked by required conditions
CI / check system | python on opensuse (push) Blocked by required conditions
CI / check system | python on rocky linux 8 (push) Blocked by required conditions
CI / check system | python on rocky linux 9 (push) Blocked by required conditions
CI / check system | graalpy on ubuntu (push) Blocked by required conditions
CI / check system | pypy on ubuntu (push) Blocked by required conditions
CI / check system | pyston (push) Blocked by required conditions
CI / check system | python on macos aarch64 (push) Blocked by required conditions
CI / check system | homebrew python on macos aarch64 (push) Blocked by required conditions
CI / check system | python on macos x86-64 (push) Blocked by required conditions
CI / check system | python3.10 on windows x86-64 (push) Blocked by required conditions
CI / check system | python3.10 on windows x86 (push) Blocked by required conditions
CI / check system | python3.13 on windows x86-64 (push) Blocked by required conditions
CI / check system | x86-64 python3.13 on windows aarch64 (push) Blocked by required conditions
CI / check system | windows registry (push) Blocked by required conditions
CI / check system | python3.12 via chocolatey (push) Blocked by required conditions
CI / check system | python3.9 via pyenv (push) Blocked by required conditions
CI / check system | python3.13 (push) Blocked by required conditions
CI / check system | conda3.11 on macos aarch64 (push) Blocked by required conditions
CI / check system | conda3.8 on macos aarch64 (push) Blocked by required conditions
CI / check system | conda3.11 on linux x86-64 (push) Blocked by required conditions
CI / check system | conda3.8 on linux x86-64 (push) Blocked by required conditions
CI / check system | conda3.11 on windows x86-64 (push) Blocked by required conditions
See https://github.com/acj/freebsd-firecracker-action/issues/3
2025-06-02 13:25:12 -05:00
samypr100
d65c146b21
feat: add dynamically generated sysconfig replacement mappings (#13441)
## Summary

Implementation referenced in
https://github.com/astral-sh/uv/pull/12239#issuecomment-2744880003

Closes #12919 #12901

This makes the sysconfig replacements mappings dynamically generated
from
https://github.com/astral-sh/python-build-standalone/blob/main/cpython-unix/targets.yml

## Test Plan

cargo dev tests, and tested scenario from
https://github.com/astral-sh/uv/issues/12901#issuecomment-2822107454
2025-06-02 10:58:30 -05:00
konsti
73eb2dfb1f
Remove winsafe (#13779)
We've been using a number of different winapi crates. This PR removes
winsafe in favor of the official windows-* crates, so all of uv's own
winapi calls go through the official windows-* crates.

---------

Co-authored-by: Aria Desires <aria.desires@gmail.com>
2025-06-02 17:53:03 +02:00
Tobias Gårdhus
459c902425
add --show-extras to uv tool list to list extra requirements installed with tools (#13783)
## Summary

Implemented as suggested in #13761 

eg.

```
$ uv tool install 'harlequin[postgres]'
$ uv tool list --show-extras
harlequin v2.1.2 [extras: postgres]
- harlequin
```

## Test Plan

Added a new test with the argument along with the others from the `uv
tool list` cli.
2025-06-02 14:59:40 +00:00
corentin-ant
5400434957
Unify zip and async_zip compression methods (#13781)
## Summary

#13285 added additional compression methods for `async_zip`, but they
should also be added to `zip` to support local wheel installation, on
top of the ones retrieved over network.

## Test Plan

Installation of local wheels with alternative compression schemes now
works (e.g. `uv add test.whl`)
2025-06-02 14:39:31 +02:00
Michał Górny
b5e7ad2c6d
Update lock::lock_requires_python not to require Python 3.8 (#13780)
Some checks are pending
CI / check system | python on macos x86-64 (push) Blocked by required conditions
CI / check system | python3.10 on windows x86-64 (push) Blocked by required conditions
CI / check system | python3.10 on windows x86 (push) Blocked by required conditions
CI / check system | python3.13 on windows x86-64 (push) Blocked by required conditions
CI / check system | x86-64 python3.13 on windows aarch64 (push) Blocked by required conditions
CI / check system | windows registry (push) Blocked by required conditions
CI / check system | python3.12 via chocolatey (push) Blocked by required conditions
CI / check system | python3.9 via pyenv (push) Blocked by required conditions
CI / check system | python3.13 (push) Blocked by required conditions
CI / check system | conda3.11 on macos aarch64 (push) Blocked by required conditions
CI / check system | conda3.8 on macos aarch64 (push) Blocked by required conditions
CI / check system | conda3.11 on linux x86-64 (push) Blocked by required conditions
CI / check system | conda3.8 on linux x86-64 (push) Blocked by required conditions
CI / check system | conda3.11 on windows x86-64 (push) Blocked by required conditions
CI / check system | conda3.8 on windows x86-64 (push) Blocked by required conditions
CI / check system | amazonlinux (push) Blocked by required conditions
CI / check system | embedded python3.10 on windows x86-64 (push) Blocked by required conditions
CI / benchmarks | walltime aarch64 linux (push) Blocked by required conditions
CI / benchmarks | instrumented (push) Blocked by required conditions
CI / check cache | macos aarch64 (push) Blocked by required conditions
CI / check system | python on debian (push) Blocked by required conditions
CI / check system | python on ubuntu (push) Blocked by required conditions
CI / check system | python on opensuse (push) Blocked by required conditions
CI / check system | python on rocky linux 8 (push) Blocked by required conditions
CI / check system | python on rocky linux 9 (push) Blocked by required conditions
CI / check system | graalpy on ubuntu (push) Blocked by required conditions
CI / check system | pypy on ubuntu (push) Blocked by required conditions
CI / check system | pyston (push) Blocked by required conditions
CI / check system | python on macos aarch64 (push) Blocked by required conditions
CI / check system | homebrew python on macos aarch64 (push) Blocked by required conditions
## Summary

Update `lock::lock_requires_python` not to require Python 3.8.

Fixes #13676

## Test Plan

`cargo test --no-default-features --features git,pypi,python` after
removing Python 3.8.
2025-06-02 09:10:51 +00:00
Eric Egli
290849d438
Update dockerfile path in contributing docs (#13751)
<!--
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

Sets the correct path to the builder dockerfile in the contributing
docs.

---------

Co-authored-by: konsti <konstin@mailbox.org>
2025-06-02 08:16:20 +00:00
renovate[bot]
25294a5393
Update Rust crate nix to 0.30.0 (#13773)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [nix](https://redirect.github.com/nix-rust/nix) |
workspace.dependencies | minor | `0.29.0` -> `0.30.0` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>nix-rust/nix (nix)</summary>

###
[`v0.30.1`](https://redirect.github.com/nix-rust/nix/blob/HEAD/CHANGELOG.md#0301---2025-05-04)

[Compare
Source](https://redirect.github.com/nix-rust/nix/compare/v0.30.0...v0.30.1)

##### Fixed

-   doc.rs build
    ([#&#8203;2634](https://redirect.github.com/nix-rust/nix/pull/2634))

###
[`v0.30.0`](https://redirect.github.com/nix-rust/nix/blob/HEAD/CHANGELOG.md#0300---2025-04-29)

[Compare
Source](https://redirect.github.com/nix-rust/nix/compare/v0.29.0...v0.30.0)

##### Added

-   Add socket option `IPV6_PKTINFO` for BSDs/Linux/Android, also
    `IPV6_RECVPKTINFO` for DragonFlyBSD
    ([#&#8203;2113](https://redirect.github.com/nix-rust/nix/pull/2113))
-   Add `fcntl`'s `F_PREALLOCATE` constant for Apple targets.
    ([#&#8203;2393](https://redirect.github.com/nix-rust/nix/pull/2393))
- Improve support for extracting the TTL / Hop Limit from incoming
packets
    and support for DSCP (ToS / Traffic Class).
    ([#&#8203;2425](https://redirect.github.com/nix-rust/nix/pull/2425))
- Add socket option IP_TOS (nix::sys::socket::sockopt::IpTos)
IPV6\_TCLASS
    (nix::sys::socket::sockopt::Ipv6TClass) on Android/FreeBSD
    ([#&#8203;2464](https://redirect.github.com/nix-rust/nix/pull/2464))
-   Add `SeekData` and `SeekHole` to `Whence` for hurd and apple targets
    ([#&#8203;2473](https://redirect.github.com/nix-rust/nix/pull/2473))
-   Add `From` trait implementation between `SocketAddr` and `Sockaddr`,
`Sockaddr6`
([#&#8203;2474](https://redirect.github.com/nix-rust/nix/pull/2474))
-   Added wrappers for `posix_spawn` API
    ([#&#8203;2475](https://redirect.github.com/nix-rust/nix/pull/2475))
-   Add the support for Emscripten.
    ([#&#8203;2477](https://redirect.github.com/nix-rust/nix/pull/2477))
-   Add fcntl constant `F_RDADVISE` for Apple target
    ([#&#8203;2480](https://redirect.github.com/nix-rust/nix/pull/2480))
-   Add fcntl constant `F_RDAHEAD` for Apple target
    ([#&#8203;2482](https://redirect.github.com/nix-rust/nix/pull/2482))
-   Add `F_LOG2PHYS` and `F_LOG2PHYS_EXT` for Apple target
    ([#&#8203;2483](https://redirect.github.com/nix-rust/nix/pull/2483))
- `MAP_SHARED_VALIDATE` was added for all linux targets. & `MAP_SYNC`
was added
    for linux with the exclusion of mips architecures, and uclibc
    ([#&#8203;2499](https://redirect.github.com/nix-rust/nix/pull/2499))
-   Add `getregs()`/`getregset()`/`setregset()` for Linux/musl/aarch64
    ([#&#8203;2502](https://redirect.github.com/nix-rust/nix/pull/2502))
-   Add FcntlArgs `F_TRANSFEREXTENTS` constant for Apple targets
    ([#&#8203;2504](https://redirect.github.com/nix-rust/nix/pull/2504))
-   Add `MapFlags::MAP_STACK` in `sys::man` for netbsd
    ([#&#8203;2526](https://redirect.github.com/nix-rust/nix/pull/2526))
-   Add support for `libc::LOCAL_PEERTOKEN` in `getsockopt`.
    ([#&#8203;2529](https://redirect.github.com/nix-rust/nix/pull/2529))
-   Add support for `syslog`, `openlog`, `closelog` on all `unix`.
    ([#&#8203;2537](https://redirect.github.com/nix-rust/nix/pull/2537))
-   Add the `TCP_FUNCTION_BLK` sockopt, on FreeBSD.
    ([#&#8203;2539](https://redirect.github.com/nix-rust/nix/pull/2539))
- Implements `Into<OwnedFd>` for
`PtyMaster/Fanotify/Inotify/SignalFd/TimerFd`
    ([#&#8203;2548](https://redirect.github.com/nix-rust/nix/pull/2548))
- Add `MremapFlags::MREMAP_DONTUNMAP` to `sys::mman::mremap` for linux
target.
    ([#&#8203;2555](https://redirect.github.com/nix-rust/nix/pull/2555))
- Added `sockopt_impl!` to the public API. It's now possible for users
to
    define
    their own sockopts without needing to make a PR to Nix.
    ([#&#8203;2556](https://redirect.github.com/nix-rust/nix/pull/2556))
-   Add the `TCP_FUNCTION_ALIAS` sockopt, on FreeBSD.
    ([#&#8203;2558](https://redirect.github.com/nix-rust/nix/pull/2558))
- Add `sys::mman::MmapAdvise` `MADV_PAGEOUT`, `MADV_COLD`,
`MADV_WIPEONFORK`,
    `MADV_KEEPONFORK` for Linux and Android targets
    ([#&#8203;2559](https://redirect.github.com/nix-rust/nix/pull/2559))
- Add socket protocol `Sctp`, as well as `MSG_NOTIFICATION` for
non-Android
Linux targets.
([#&#8203;2562](https://redirect.github.com/nix-rust/nix/pull/2562))
-   Added `from_owned_fd` constructor to `EventFd`
    ([#&#8203;2563](https://redirect.github.com/nix-rust/nix/pull/2563))
- Add `sys::mman::MmapAdvise` `MADV_POPULATE_READ`,
`MADV_POPULATE_WRITE` for
    Linux and Android targets
    ([#&#8203;2565](https://redirect.github.com/nix-rust/nix/pull/2565))
-   Added `from_owned_fd` constructor to
    `PtyMaster/Fanotify/Inotify/SignalFd/TimerFd`
    ([#&#8203;2566](https://redirect.github.com/nix-rust/nix/pull/2566))
-   Added `FcntlArg::F_READAHEAD` for FreeBSD target
    ([#&#8203;2569](https://redirect.github.com/nix-rust/nix/pull/2569))
-   Added `sockopt::LingerSec` for Apple targets
    ([#&#8203;2572](https://redirect.github.com/nix-rust/nix/pull/2572))
-   Added `sockopt::EsclBind` for solarish targets
    ([#&#8203;2573](https://redirect.github.com/nix-rust/nix/pull/2573))
-   Exposed the `std::os::fd::AsRawFd` trait method for
    `nix::sys::fanotify::Fanotify` struct
    ([#&#8203;2575](https://redirect.github.com/nix-rust/nix/pull/2575))
-   Add support for syslog's `setlogmask` on all `unix`.
    ([#&#8203;2579](https://redirect.github.com/nix-rust/nix/pull/2579))
-   Added Fuchsia support for `ioctl`.
    ([#&#8203;2580](https://redirect.github.com/nix-rust/nix/pull/2580))
-   Add `sys::socket::SockProtocol::EthIp`,
    `sys::socket::SockProtocol::EthIpv6`,
    `sys::socket::SockProtocol::EthLoop`
    ([#&#8203;2581](https://redirect.github.com/nix-rust/nix/pull/2581))
-   Add OpenHarmony target into CI and Update documents.
    ([#&#8203;2599](https://redirect.github.com/nix-rust/nix/pull/2599))
-   Added the TcpMaxSeg `setsockopt` option for apple targets
    ([#&#8203;2603](https://redirect.github.com/nix-rust/nix/pull/2603))
-   Add `FilAttach` and `FilDetach` to socket::sockopt for Illumos
    ([#&#8203;2611](https://redirect.github.com/nix-rust/nix/pull/2611))
-   Add `PeerPidfd` (`SO_PEERPIDFD`) to `socket::sockopt` for Linux
    ([#&#8203;2620](https://redirect.github.com/nix-rust/nix/pull/2620))
-   Added `socket::sockopt::AttachReusePortCbpf` for Linux
    ([#&#8203;2621](https://redirect.github.com/nix-rust/nix/pull/2621))
-   Add `ptrace::syscall_info` for linux/glibc
    ([#&#8203;2627](https://redirect.github.com/nix-rust/nix/pull/2627))

##### Changed

-   Module sys/signal now adopts I/O safety
    ([#&#8203;1936](https://redirect.github.com/nix-rust/nix/pull/1936))
- Change the type of the `name` argument of `memfd_create()` from
`&CStr` to
`<P: NixPath>(name: &P)`
([#&#8203;2431](https://redirect.github.com/nix-rust/nix/pull/2431))
-   Public interfaces in `fcntl.rs` and `dir.rs` now use I/O-safe types.
    ([#&#8203;2434](https://redirect.github.com/nix-rust/nix/pull/2434))
-   Module `sys/stat` now adopts I/O safety.
    ([#&#8203;2439](https://redirect.github.com/nix-rust/nix/pull/2439))
-   Module unistd now adopts I/O safety.
    ([#&#8203;2440](https://redirect.github.com/nix-rust/nix/pull/2440))
-   Module sys/fanotify now adopts I/O safety
    ([#&#8203;2443](https://redirect.github.com/nix-rust/nix/pull/2443))
- Socket option `IpTos` has been renamed to `Ipv4Tos`, the old symbol is
deprecated since 0.30.0
([#&#8203;2465](https://redirect.github.com/nix-rust/nix/pull/2465))
- Rename Flags `EventFlag` to `EvFlags`, and `MemFdCreateFlag` to
`MFdFlags`
    ([#&#8203;2476](https://redirect.github.com/nix-rust/nix/pull/2476))
-   Made `nix::sys::socket::UnknownCmsg` public and more readable
    ([#&#8203;2520](https://redirect.github.com/nix-rust/nix/pull/2520))
-   recvmsg: take slice for cmsg_buffer instead of Vec
    ([#&#8203;2524](https://redirect.github.com/nix-rust/nix/pull/2524))
-   linkat: allow distinct types for path arguments
    ([#&#8203;2582](https://redirect.github.com/nix-rust/nix/pull/2582))

##### Fixed

-   Disable unsupported signals on sparc-linux
    ([#&#8203;2454](https://redirect.github.com/nix-rust/nix/pull/2454))
-   Fix cmsg_len() return type on OpenHarmony
    ([#&#8203;2456](https://redirect.github.com/nix-rust/nix/pull/2456))
- The `ns` argument of `sys::prctl::set_timerslack()` should be of type
`c_ulong`
([#&#8203;2505](https://redirect.github.com/nix-rust/nix/pull/2505))
- Properly exclude NUL characters from `OSString`s returned by
`getsockopt`.
    ([#&#8203;2557](https://redirect.github.com/nix-rust/nix/pull/2557))
-   Fixes the build on OpenHarmony
    ([#&#8203;2587](https://redirect.github.com/nix-rust/nix/pull/2587))

##### Removed

- Type `SigevNotify` is no longer `PartialEq`, `Eq` and `Hash` due to
the use
of `BorrowedFd`
([#&#8203;1936](https://redirect.github.com/nix-rust/nix/pull/1936))
- `EventFd::defuse()` is removed because it does nothing,
`EventFd::arm()` is
    also removed for symmetry reasons.
    ([#&#8203;2452](https://redirect.github.com/nix-rust/nix/pull/2452))
-   Removed the `Copy` trait from `PollFd`
    ([#&#8203;2631](https://redirect.github.com/nix-rust/nix/pull/2631))

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "before 4am on Monday" (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:eyJjcmVhdGVkSW5WZXIiOiI0MC4zMy42IiwidXBkYXRlZEluVmVyIjoiNDAuMzMuNiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiaW50ZXJuYWwiXX0=-->

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: konstin <konstin@mailbox.org>
2025-06-02 08:05:01 +00:00
Ben Beasley
73829f3bf4
Conditionalize more tests that require PyPI (#13699)
<!--
Thank you for contributing to uv! To help us out with reviewing, please
consider the following:

- Does this pull request include a summary of the change? (See below.)
- Does this pull request include a descriptive title?
- Does this pull request include references to any relevant issues?
-->

## Summary

<!-- What's the purpose of the change? What does it do, and why? -->
Use the existing `pypi` feature to conditionalize a number of tests that
attempt to access https://pypi.org and/or
https://files.pythonhosted.org. See
https://github.com/astral-sh/uv/issues/8970#issuecomment-2466794088.

There is no reason to believe that these are *all* of the tests that
need to be conditionalized on the `pypi` feature, but this should be a
solid step in the right direction.

## Test Plan

<!-- How was it tested? -->

This allows me to build and run the integration tests in [Fedora’s `uv`
package](https://src.fedoraproject.org/rpms/uv) without having to
manually skip tests that try to access PyPI. I confirmed that this
appears to accomplish that goal.

Otherwise, this should be tested by building and running the tests as
usual. As mentioned in
https://github.com/astral-sh/uv/issues/8970#issuecomment-2516181501, a
more complete solution would include CI tests that confirm these
features are working as intended. I’m not in a position to offer that.
2025-06-02 09:57:03 +02:00
renovate[bot]
1e890b5ac7
Update taiki-e/install-action action to v2.52.4 (#13778)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[taiki-e/install-action](https://redirect.github.com/taiki-e/install-action)
| action | minor | `v2.50.3` -> `v2.52.4` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>taiki-e/install-action (taiki-e/install-action)</summary>

###
[`v2.52.4`](https://redirect.github.com/taiki-e/install-action/releases/tag/v2.52.4):
2.52.4

[Compare
Source](https://redirect.github.com/taiki-e/install-action/compare/v2.52.3...v2.52.4)

-   Update `cargo-binstall@latest` to 1.12.6.

-   Update `wash@latest` to 0.42.0.

###
[`v2.52.3`](https://redirect.github.com/taiki-e/install-action/releases/tag/v2.52.3):
2.52.3

[Compare
Source](https://redirect.github.com/taiki-e/install-action/compare/v2.52.2...v2.52.3)

-   Update `cargo-nextest@latest` to 0.9.97.

-   Update `trivy@latest` to 0.63.0.

-   Update `protoc@latest` to 3.31.1.

###
[`v2.52.2`](https://redirect.github.com/taiki-e/install-action/releases/tag/v2.52.2):
2.52.2

[Compare
Source](https://redirect.github.com/taiki-e/install-action/compare/v2.52.1...v2.52.2)

-   Update `mdbook@latest` to 0.4.51.

###
[`v2.52.1`](https://redirect.github.com/taiki-e/install-action/releases/tag/v2.52.1):
2.52.1

[Compare
Source](https://redirect.github.com/taiki-e/install-action/compare/v2.52.0...v2.52.1)

-   Update `taplo@latest` to 0.10.0.

-   Update `mdbook@latest` to 0.4.50.

-   Update `deepsource@latest` to 0.9.0.

-   Update `cargo-shear@latest` to 1.3.0.

###
[`v2.52.0`](https://redirect.github.com/taiki-e/install-action/releases/tag/v2.52.0):
2.52.0

[Compare
Source](https://redirect.github.com/taiki-e/install-action/compare/v2.51.3...v2.52.0)

- Support `trivy`.
([#&#8203;970](https://redirect.github.com/taiki-e/install-action/pull/970),
thanks [@&#8203;jayvdb](https://redirect.github.com/jayvdb))

-   Update `syft@latest` to 1.26.1.

-   Update `rclone@latest` to 1.69.3.

-   Update `cargo-shear@latest` to 1.2.8.

###
[`v2.51.3`](https://redirect.github.com/taiki-e/install-action/releases/tag/v2.51.3):
2.51.3

[Compare
Source](https://redirect.github.com/taiki-e/install-action/compare/v2.51.2...v2.51.3)

-   Update `wasmtime@latest` to 33.0.0.

-   Update `cargo-tarpaulin@latest` to 0.32.7.

-   Update `espup@latest` to 0.15.1.

-   Update `dprint@latest` to 0.50.0.

###
[`v2.51.2`](https://redirect.github.com/taiki-e/install-action/releases/tag/v2.51.2):
2.51.2

[Compare
Source](https://redirect.github.com/taiki-e/install-action/compare/v2.51.1...v2.51.2)

-   Update `syft@latest` to 1.25.1.

-   Update `release-plz@latest` to 0.3.135.

###
[`v2.51.1`](https://redirect.github.com/taiki-e/install-action/releases/tag/v2.51.1):
2.51.1

[Compare
Source](https://redirect.github.com/taiki-e/install-action/compare/v2.51.0...v2.51.1)

-   Update `syft@latest` to 1.25.0.

-   Update `cargo-binstall@latest` to 1.12.5.

###
[`v2.51.0`](https://redirect.github.com/taiki-e/install-action/releases/tag/v2.51.0):
2.51.0

[Compare
Source](https://redirect.github.com/taiki-e/install-action/compare/v2.50.10...v2.51.0)

- Support `cargo-shear`.
([#&#8203;962](https://redirect.github.com/taiki-e/install-action/pull/962),
thanks [@&#8203;vivienm](https://redirect.github.com/vivienm))

-   Update `grcov@latest` to 0.10.0.

-   Update `cargo-nextest@latest` to 0.9.96.

-   Update `protoc@latest` to 3.31.0.

-   Update `syft@latest` to 1.24.0.

###
[`v2.50.10`](https://redirect.github.com/taiki-e/install-action/releases/tag/v2.50.10):
2.50.10

[Compare
Source](https://redirect.github.com/taiki-e/install-action/compare/v2.50.9...v2.50.10)

-   Update `trunk@latest` to 0.21.14.

-   Update `release-plz@latest` to 0.3.134.

-   Update `cargo-binstall@latest` to 1.12.4.

###
[`v2.50.9`](https://redirect.github.com/taiki-e/install-action/releases/tag/v2.50.9):
2.50.9

[Compare
Source](https://redirect.github.com/taiki-e/install-action/compare/v2.50.8...v2.50.9)

-   Update `editorconfig-checker@latest` to 3.3.0.

-   Update `cargo-lambda@latest` to 1.8.5.

###
[`v2.50.8`](https://redirect.github.com/taiki-e/install-action/releases/tag/v2.50.8):
2.50.8

[Compare
Source](https://redirect.github.com/taiki-e/install-action/compare/v2.50.7...v2.50.8)

-   Update `cargo-tarpaulin@latest` to 0.32.5.

-   Update `mdbook@latest` to 0.4.49.

###
[`v2.50.7`](https://redirect.github.com/taiki-e/install-action/releases/tag/v2.50.7):
2.50.7

[Compare
Source](https://redirect.github.com/taiki-e/install-action/compare/v2.50.6...v2.50.7)

-   Update `cargo-tarpaulin@latest` to 0.32.4.

###
[`v2.50.6`](https://redirect.github.com/taiki-e/install-action/releases/tag/v2.50.6):
2.50.6

[Compare
Source](https://redirect.github.com/taiki-e/install-action/compare/v2.50.5...v2.50.6)

-   Update `knope@latest` to 0.20.0.

###
[`v2.50.5`](https://redirect.github.com/taiki-e/install-action/releases/tag/v2.50.5):
2.50.5

[Compare
Source](https://redirect.github.com/taiki-e/install-action/compare/v2.50.4...v2.50.5)

-   Update `xh@latest` to 0.24.1.

-   Update `typos@latest` to 1.32.0.

-   Update `rclone@latest` to 1.69.2.

###
[`v2.50.4`](https://redirect.github.com/taiki-e/install-action/releases/tag/v2.50.4):
2.50.4

[Compare
Source](https://redirect.github.com/taiki-e/install-action/compare/v2.50.3...v2.50.4)

-   Update `typos@latest` to 1.31.2.

-   Update `osv-scanner@latest` to 2.0.2.

-   Update `cargo-nextest@latest` to 0.9.95.

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "before 4am on Monday" (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:eyJjcmVhdGVkSW5WZXIiOiI0MC4zMy42IiwidXBkYXRlZEluVmVyIjoiNDAuMzMuNiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiaW50ZXJuYWwiXX0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-02 09:50:01 +02:00
renovate[bot]
b112baccff
Update Rust crate tempfile to v3.20.0 (#13776)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [tempfile](https://stebalien.com/projects/tempfile-rs/)
([source](https://redirect.github.com/Stebalien/tempfile)) |
workspace.dependencies | minor | `3.19.1` -> `3.20.0` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>Stebalien/tempfile (tempfile)</summary>

###
[`v3.20.0`](https://redirect.github.com/Stebalien/tempfile/blob/HEAD/CHANGELOG.md#3200)

[Compare
Source](https://redirect.github.com/Stebalien/tempfile/compare/v3.19.1...v3.20.0)

This release mostly unifies the behavior/capabilities around "keeping"
temporary files:

- Rename `Builder::keep(bool)` (via deprecation) to
`Builder::disable_cleanup(bool)` to make it clear that behaves
differently from `NamedTempFile::keep()`. The former disables automatic
cleanup while the latter *consumes* the `NamedTempFile` object entirely
and unsets the "temporary file" attribute (on Windows).
- Rename `TempDir::into_path` (via deprecation) to `TempDir::keep` to
mirror `NamedTempFile::keep`.
- Add `TempDir::disable_cleanup`, `NamedTempFile::disable_cleanup`, and
`TempPath::disable_cleanup` making it possible to disable automatic
cleanup in-place *after* creating a temporary file/directory (equivalent
to calling `Builder::disable_cleanup` before creating the
file/directory).

Additionally, it adds a few spooled temporary file features:

- Add `SpooledTempFile::into_file` for turning a `SpooledTempFile` into
a regular unnamed temporary file, writing it to the backing storage
("rolling" it) if it was still stored in-memory.
- Add `spooled_tempfile_in` and `SpooledTempFile::new_in` methods for
creating spooled temporary files in a specific directory. This makes it
possible to choose the backing device for your spooled temporary file
which is rather important on Linux where the default temporary directory
is likely backed by memory (defeating the entire point of having a
spooled temporary file).

Finally, this release improves documentation, especially the top-level
documentation explaining which temporary file type to use.

**BREAKING** for those with `deny(warnings)`:

-   `Builder::keep` deprecated in favor of `Builder::disable_cleanup`.
-   `TempDir::into_path` is deprecated in favor of `TempDir::keep`.

**BREAKING**:

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "before 4am on Monday" (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:eyJjcmVhdGVkSW5WZXIiOiI0MC4zMy42IiwidXBkYXRlZEluVmVyIjoiNDAuMzMuNiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiaW50ZXJuYWwiXX0=-->

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: konstin <konstin@mailbox.org>
2025-06-02 07:47:08 +00:00
renovate[bot]
b144cfed87
Update Rust crate tokio to v1.45.1 (#13777)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [tokio](https://tokio.rs)
([source](https://redirect.github.com/tokio-rs/tokio)) |
dev-dependencies | minor | `1.44.2` -> `1.45.1` |
| [tokio](https://tokio.rs)
([source](https://redirect.github.com/tokio-rs/tokio)) |
workspace.dependencies | minor | `1.44.2` -> `1.45.1` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>tokio-rs/tokio (tokio)</summary>

###
[`v1.45.1`](https://redirect.github.com/tokio-rs/tokio/releases/tag/tokio-1.45.1):
Tokio v1.45.1

[Compare
Source](https://redirect.github.com/tokio-rs/tokio/compare/tokio-1.45.0...tokio-1.45.1)

### 1.45.1 (May 24th, 2025)

This fixes a regression on the wasm32-unknown-unknown target, where code
that previously did not panic due to calls to `Instant::now()` started
failing. This is due to the stabilization of the first time-based
metric.

##### Fixed

- Disable time-based metrics on wasm32-unknown-unknown ([#&#8203;7322])

[#&#8203;7322]: https://redirect.github.com/tokio-rs/tokio/pull/7322

###
[`v1.45.0`](https://redirect.github.com/tokio-rs/tokio/releases/tag/tokio-1.45.0):
Tokio v1.45.0

[Compare
Source](https://redirect.github.com/tokio-rs/tokio/compare/tokio-1.44.2...tokio-1.45.0)

##### Added

- metrics: stabilize `worker_total_busy_duration`, `worker_park_count`,
and `worker_unpark_count` ([#&#8203;6899], [#&#8203;7276])
-   process: add `Command::spawn_with` ([#&#8203;7249])

##### Changed

-   io: do not require `Unpin` for some trait impls ([#&#8203;7204])
-   rt: mark `runtime::Handle` as unwind safe ([#&#8203;7230])
-   time: revert internal sharding implementation ([#&#8203;7226])

##### Unstable

-   rt: remove alt multi-threaded runtime ([#&#8203;7275])

[#&#8203;6899]: https://redirect.github.com/tokio-rs/tokio/pull/6899

[#&#8203;7276]: https://redirect.github.com/tokio-rs/tokio/pull/7276

[#&#8203;7249]: https://redirect.github.com/tokio-rs/tokio/pull/7249

[#&#8203;7204]: https://redirect.github.com/tokio-rs/tokio/pull/7204

[#&#8203;7230]: https://redirect.github.com/tokio-rs/tokio/pull/7230

[#&#8203;7226]: https://redirect.github.com/tokio-rs/tokio/pull/7226

[#&#8203;7275]: https://redirect.github.com/tokio-rs/tokio/pull/7275

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "before 4am on Monday" (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 these
updates 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:eyJjcmVhdGVkSW5WZXIiOiI0MC4zMy42IiwidXBkYXRlZEluVmVyIjoiNDAuMzMuNiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiaW50ZXJuYWwiXX0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-02 09:44:07 +02:00
renovate[bot]
518a4e6a9c
Update Rust crate reqwest to v0.12.18 (#13768)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [reqwest](https://redirect.github.com/seanmonstar/reqwest) |
workspace.dependencies | patch | `0.12.15` -> `0.12.18` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>seanmonstar/reqwest (reqwest)</summary>

###
[`v0.12.18`](https://redirect.github.com/seanmonstar/reqwest/blob/HEAD/CHANGELOG.md#v01218)

[Compare
Source](https://redirect.github.com/seanmonstar/reqwest/compare/v0.12.17...v0.12.18)

-   Fix compilation when `socks` enabled without TLS.

###
[`v0.12.17`](https://redirect.github.com/seanmonstar/reqwest/blob/HEAD/CHANGELOG.md#v01217)

[Compare
Source](https://redirect.github.com/seanmonstar/reqwest/compare/v0.12.16...v0.12.17)

-   Fix compilation on macOS.

###
[`v0.12.16`](https://redirect.github.com/seanmonstar/reqwest/blob/HEAD/CHANGELOG.md#v01216)

[Compare
Source](https://redirect.github.com/seanmonstar/reqwest/compare/v0.12.15...v0.12.16)

- Add `ClientBuilder::http3_congestion_bbr()` to enable BBR congestion
control.
- Add `ClientBuilder::http3_send_grease()` to configure whether to send
use QUIC grease.
- Add `ClientBuilder::http3_max_field_section_size()` to configure the
maximum response headers.
- Add `ClientBuilder::tcp_keepalive_interval()` to configure TCP probe
interval.
- Add `ClientBuilder::tcp_keepalive_retries()` to configure TCP probe
count.
- Add `Proxy::headers()` to add extra headers that should be sent to a
proxy.
- Fix `redirect::Policy::limit()` which had an off-by-1 error, allowing
1 more redirect than specified.
-   Fix HTTP/3 to support streaming request bodies.
-   (wasm) Fix null bodies when calling `Response::bytes_stream()`.

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "before 4am on Monday" (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:eyJjcmVhdGVkSW5WZXIiOiI0MC4zMy42IiwidXBkYXRlZEluVmVyIjoiNDAuMzMuNiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiaW50ZXJuYWwiXX0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-02 09:32:26 +02:00
Michał Górny
59efe06aaf
Update more tests not to use Python 3.8 (#13755)
## Summary

Update a few more tests to avoid using Python 3.8 unnecessarily. From
what I can see, neither of these really need that specific Python
version, so just update them to use 3.9 instead.

Bug #13676

## Test Plan

Uninstall Python 3.8 and run: `cargo test --no-default-features
--features git,pypi,python`

One test failure remains.
2025-06-02 09:22:35 +02:00
renovate[bot]
9423f05ca7
Update Rust crate hyper-util to v0.1.13 (#13767)
Some checks are pending
CI / check system | python3.10 on windows x86 (push) Blocked by required conditions
CI / check system | python3.13 on windows x86-64 (push) Blocked by required conditions
CI / check cache | macos aarch64 (push) Blocked by required conditions
CI / check system | python on debian (push) Blocked by required conditions
CI / check system | python on ubuntu (push) Blocked by required conditions
CI / check system | python on opensuse (push) Blocked by required conditions
CI / check system | python on rocky linux 8 (push) Blocked by required conditions
CI / check system | python on rocky linux 9 (push) Blocked by required conditions
CI / check system | graalpy on ubuntu (push) Blocked by required conditions
CI / check system | pypy on ubuntu (push) Blocked by required conditions
CI / check system | pyston (push) Blocked by required conditions
CI / check system | python on macos aarch64 (push) Blocked by required conditions
CI / check system | homebrew python on macos aarch64 (push) Blocked by required conditions
CI / check system | python on macos x86-64 (push) Blocked by required conditions
CI / check system | python3.10 on windows x86-64 (push) Blocked by required conditions
CI / check system | x86-64 python3.13 on windows aarch64 (push) Blocked by required conditions
CI / check system | windows registry (push) Blocked by required conditions
CI / check system | python3.12 via chocolatey (push) Blocked by required conditions
CI / check system | python3.9 via pyenv (push) Blocked by required conditions
CI / check system | python3.13 (push) Blocked by required conditions
CI / check system | conda3.11 on macos aarch64 (push) Blocked by required conditions
CI / check system | conda3.8 on macos aarch64 (push) Blocked by required conditions
CI / check system | conda3.11 on linux x86-64 (push) Blocked by required conditions
CI / check system | conda3.8 on linux x86-64 (push) Blocked by required conditions
CI / check system | conda3.11 on windows x86-64 (push) Blocked by required conditions
CI / check system | conda3.8 on windows x86-64 (push) Blocked by required conditions
CI / check system | amazonlinux (push) Blocked by required conditions
CI / check system | embedded python3.10 on windows x86-64 (push) Blocked by required conditions
CI / benchmarks | walltime aarch64 linux (push) Blocked by required conditions
CI / benchmarks | instrumented (push) Blocked by required conditions
2025-06-01 22:02:11 -04:00
renovate[bot]
490a3a1909
Update pre-commit hook astral-sh/ruff-pre-commit to v0.11.12 (#13764) 2025-06-01 21:59:34 -04:00
renovate[bot]
53efc0cf6d
Update docker/build-push-action action to v6.18.0 (#13770) 2025-06-01 21:57:51 -04:00
renovate[bot]
6fbdb8de84
Update Rust crate goblin to 0.10.0 (#13772) 2025-06-01 21:57:28 -04:00
renovate[bot]
e0821176a4
Update Rust crate criterion to 0.6.0 (#13771) 2025-06-01 21:57:25 -04:00
renovate[bot]
a0d60eef12
Update Rust crate winsafe to 0.0.24 (#13769) 2025-06-01 21:57:15 -04:00
renovate[bot]
3b7bfed6f9
Update Rust crate clap to v4.5.39 (#13766) 2025-06-01 21:57:04 -04:00
renovate[bot]
14598f811f
Update Rust crate backon to v1.5.1 (#13765) 2025-06-02 00:53:08 +00:00
Zanie Blue
691a4f1379
Propagate credentials to files on devpi indexes ending in /+simple (#13743)
Closes https://github.com/astral-sh/uv/issues/13737

Not much to say here — devpi is common enough that we should support
their weird `/+simple` URL format.
2025-06-01 20:20:56 -04:00
Zanie Blue
13a86a23b3
Bump version to 0.7.9 (#13739)
Some checks failed
CI / check cache | macos aarch64 (push) Has been cancelled
CI / check system | python on debian (push) Has been cancelled
CI / check system | python on ubuntu (push) Has been cancelled
CI / check system | python on opensuse (push) Has been cancelled
CI / check system | python on rocky linux 8 (push) Has been cancelled
CI / check system | python on rocky linux 9 (push) Has been cancelled
CI / check system | graalpy on ubuntu (push) Has been cancelled
CI / check system | pypy on ubuntu (push) Has been cancelled
CI / check system | pyston (push) Has been cancelled
CI / check system | python on macos aarch64 (push) Has been cancelled
CI / check system | homebrew python on macos aarch64 (push) Has been cancelled
CI / check system | python on macos x86-64 (push) Has been cancelled
CI / check system | python3.10 on windows x86-64 (push) Has been cancelled
CI / check system | python3.10 on windows x86 (push) Has been cancelled
CI / check system | python3.13 on windows x86-64 (push) Has been cancelled
CI / check system | x86-64 python3.13 on windows aarch64 (push) Has been cancelled
CI / check system | windows registry (push) Has been cancelled
CI / check system | python3.12 via chocolatey (push) Has been cancelled
CI / check system | python3.9 via pyenv (push) Has been cancelled
CI / check system | python3.13 (push) Has been cancelled
CI / check system | conda3.11 on macos aarch64 (push) Has been cancelled
CI / check system | conda3.8 on macos aarch64 (push) Has been cancelled
CI / check system | conda3.11 on linux x86-64 (push) Has been cancelled
CI / check system | conda3.8 on linux x86-64 (push) Has been cancelled
CI / check system | conda3.11 on windows x86-64 (push) Has been cancelled
CI / check system | conda3.8 on windows x86-64 (push) Has been cancelled
CI / check system | amazonlinux (push) Has been cancelled
CI / check system | embedded python3.10 on windows x86-64 (push) Has been cancelled
CI / benchmarks | walltime aarch64 linux (push) Has been cancelled
CI / benchmarks | instrumented (push) Has been cancelled
2025-05-30 14:30:37 -05:00
konsti
483b4c82e8
Don't fail direct URL hash checking with dependency metadata (#13736)
Some checks are pending
CI / check system | python on macos aarch64 (push) Blocked by required conditions
CI / check system | homebrew python on macos aarch64 (push) Blocked by required conditions
CI / check system | python on macos x86-64 (push) Blocked by required conditions
CI / check system | python3.10 on windows x86-64 (push) Blocked by required conditions
CI / check system | python3.10 on windows x86 (push) Blocked by required conditions
CI / check system | python3.13 on windows x86-64 (push) Blocked by required conditions
CI / check system | x86-64 python3.13 on windows aarch64 (push) Blocked by required conditions
CI / check system | windows registry (push) Blocked by required conditions
CI / check system | python3.12 via chocolatey (push) Blocked by required conditions
CI / check system | python3.9 via pyenv (push) Blocked by required conditions
CI / check system | python3.13 (push) Blocked by required conditions
CI / check system | conda3.11 on macos aarch64 (push) Blocked by required conditions
CI / check system | conda3.8 on macos aarch64 (push) Blocked by required conditions
CI / check system | conda3.11 on linux x86-64 (push) Blocked by required conditions
CI / check system | python on debian (push) Blocked by required conditions
CI / check system | python on fedora (push) Blocked by required conditions
CI / check system | python on ubuntu (push) Blocked by required conditions
CI / check system | python on opensuse (push) Blocked by required conditions
CI / check system | python on rocky linux 8 (push) Blocked by required conditions
CI / check system | python on rocky linux 9 (push) Blocked by required conditions
CI / check system | graalpy on ubuntu (push) Blocked by required conditions
CI / check system | pypy on ubuntu (push) Blocked by required conditions
CI / check system | pyston (push) Blocked by required conditions
CI / check system | conda3.8 on linux x86-64 (push) Blocked by required conditions
CI / check system | conda3.11 on windows x86-64 (push) Blocked by required conditions
CI / check system | conda3.8 on windows x86-64 (push) Blocked by required conditions
CI / check system | amazonlinux (push) Blocked by required conditions
CI / check system | embedded python3.10 on windows x86-64 (push) Blocked by required conditions
CI / benchmarks | walltime aarch64 linux (push) Blocked by required conditions
CI / benchmarks | instrumented (push) Blocked by required conditions
Fixes #12512
2025-05-30 19:39:40 +02:00
Aria Desires
891fe524d9
update python build standalone, unblocklist linux updates (#13732) 2025-05-30 12:33:21 -04:00
Jack O'Connor
7310ea75da
allow running non-default Python interpreters directly via uvx (#13583)
Previously if you wanted to run e.g. PyPy via `uvx`, you had to spell it
like `uvx -p pypy python`. Now we reuse some of the
`PythonRequest::parse` machinery to handle the executable, so all of the
following examples work:

- `uvx python3.8`
- `uvx 'python>3.7,<3.9'`
- `uvx --from python3.8 python` (or e.g. `bash`)
- `uvx pypy38`
- `uvx graalpy@38`

The `python` (and on Windows only, `pythonw`) special cases are
retained, which normally aren't allowed values of `-p`/`--python`.

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

---------

Co-authored-by: Zanie Blue <contact@zanie.dev>
Co-authored-by: konsti <konstin@mailbox.org>
2025-05-30 09:12:39 -07:00
Zanie Blue
4cc5291c08
Allow discovery of x86-64 managed Python builds on macOS (#13722)
Some checks are pending
CI / check cache | macos aarch64 (push) Blocked by required conditions
CI / check system | python on debian (push) Blocked by required conditions
CI / check system | python on fedora (push) Blocked by required conditions
CI / check system | python on ubuntu (push) Blocked by required conditions
CI / check system | python on opensuse (push) Blocked by required conditions
CI / check system | python on rocky linux 8 (push) Blocked by required conditions
CI / check system | python on rocky linux 9 (push) Blocked by required conditions
CI / check system | graalpy on ubuntu (push) Blocked by required conditions
CI / check system | pypy on ubuntu (push) Blocked by required conditions
CI / check system | pyston (push) Blocked by required conditions
CI / check system | python on macos aarch64 (push) Blocked by required conditions
CI / check system | homebrew python on macos aarch64 (push) Blocked by required conditions
CI / check system | python3.10 on windows x86-64 (push) Blocked by required conditions
CI / check system | python3.10 on windows x86 (push) Blocked by required conditions
CI / check system | python3.13 on windows x86-64 (push) Blocked by required conditions
CI / check system | x86-64 python3.13 on windows aarch64 (push) Blocked by required conditions
CI / check system | windows registry (push) Blocked by required conditions
CI / check system | python3.12 via chocolatey (push) Blocked by required conditions
CI / check system | python3.9 via pyenv (push) Blocked by required conditions
CI / check system | python3.13 (push) Blocked by required conditions
CI / check system | conda3.11 on macos aarch64 (push) Blocked by required conditions
CI / check system | conda3.8 on macos aarch64 (push) Blocked by required conditions
CI / check system | conda3.11 on linux x86-64 (push) Blocked by required conditions
CI / check system | conda3.8 on linux x86-64 (push) Blocked by required conditions
CI / check system | conda3.11 on windows x86-64 (push) Blocked by required conditions
CI / check system | conda3.8 on windows x86-64 (push) Blocked by required conditions
CI / check system | amazonlinux (push) Blocked by required conditions
CI / check system | embedded python3.10 on windows x86-64 (push) Blocked by required conditions
CI / benchmarks | walltime aarch64 linux (push) Blocked by required conditions
CI / benchmarks | instrumented (push) Blocked by required conditions
Replacement for https://github.com/astral-sh/uv/pull/13474 (clobbered by
a changed base)

Once these are explicitly installed, they should be discoverable and
usable. Currently, they are not.
2025-05-29 17:55:21 -05:00
Zanie Blue
0c5ae1f25c
Differentiate between implicit vs explicit architecture requests (#13723)
In https://github.com/astral-sh/uv/pull/13721#issuecomment-2920530601 I
presumed that all the installation problems in
https://github.com/astral-sh/uv/pull/13722 were solved by
https://github.com/astral-sh/uv/pull/13709 but they were not because we
don't differentiate between implicit and explicit architecture requests
so a request for `aarch64` is considered satisfied by an existing
`x86-64` installation even if the user explicitly requested that
architecture.

Now, we track if it was explicit or implicit, requiring an exact match
in the former case, and a `supports` in the latter.

We considered doing this for other items in the request, like the
operating system but we don't have a `supports()` concept there. It
might make sense for libc in the future.
2025-05-29 22:04:57 +00:00
Aria Desires
067b03cc9a
Only show the first match per platform (and architecture) by default in uv python list (#13721)
This is an alternative to #13701
2025-05-29 17:38:44 -04:00
Zanie Blue
dfc85336f8
Implement ordering for Python architectures to prefer native installations (#13709)
Resolves
https://github.com/astral-sh/uv/pull/13474#discussion_r2112586405

This kind of dynamic ordering freaks me out a little, but I think it's
probably the best solution and is static at compile-time.

Currently, we're just sorting by the stringified representation! which
is just convenient for reproducibility, but we rely on these orderings
for prioritization in discovery.
2025-05-29 19:06:33 +00:00
Zanie Blue
59070b5b3f
Use codspeed runner for wall time benchmarking (#13586)
Some checks are pending
CI / check cache | macos aarch64 (push) Blocked by required conditions
CI / check system | python on debian (push) Blocked by required conditions
CI / check system | python on ubuntu (push) Blocked by required conditions
CI / check system | python on opensuse (push) Blocked by required conditions
CI / check system | python on rocky linux 8 (push) Blocked by required conditions
CI / check system | python on rocky linux 9 (push) Blocked by required conditions
CI / check system | graalpy on ubuntu (push) Blocked by required conditions
CI / check system | pypy on ubuntu (push) Blocked by required conditions
CI / check system | pyston (push) Blocked by required conditions
CI / check system | python on macos aarch64 (push) Blocked by required conditions
CI / check system | homebrew python on macos aarch64 (push) Blocked by required conditions
CI / check system | python on macos x86-64 (push) Blocked by required conditions
CI / check system | python3.10 on windows x86-64 (push) Blocked by required conditions
CI / check system | python3.10 on windows x86 (push) Blocked by required conditions
CI / check system | python3.13 on windows x86-64 (push) Blocked by required conditions
CI / check system | x86-64 python3.13 on windows aarch64 (push) Blocked by required conditions
CI / check system | windows registry (push) Blocked by required conditions
CI / check system | python3.12 via chocolatey (push) Blocked by required conditions
CI / check system | python3.9 via pyenv (push) Blocked by required conditions
CI / check system | python3.13 (push) Blocked by required conditions
CI / check system | conda3.11 on macos aarch64 (push) Blocked by required conditions
CI / check system | conda3.8 on macos aarch64 (push) Blocked by required conditions
CI / check system | conda3.11 on linux x86-64 (push) Blocked by required conditions
CI / check system | conda3.8 on linux x86-64 (push) Blocked by required conditions
CI / check system | conda3.11 on windows x86-64 (push) Blocked by required conditions
CI / check system | conda3.8 on windows x86-64 (push) Blocked by required conditions
CI / check system | amazonlinux (push) Blocked by required conditions
CI / check system | embedded python3.10 on windows x86-64 (push) Blocked by required conditions
CI / benchmarks | walltime aarch64 linux (push) Blocked by required conditions
CI / benchmarks | instrumented (push) Blocked by required conditions
We couldn't use the CodSpeed "walltime" runner because it required
administrative permissions on our repositories, but following some
feedback they've adjusted the required permissions so we can give it a
try now.

As a brief background, CodSpeed uses Valgrind for instrumented
benchmarking, emulating the execution for improved stability on GitHub's
runners. This is nice, but means things like allocs and io are not
measured. Now, they support standard wall time benchmarking, using their
own managed runners for stable measurements. Here, we add support for
those while retaining the old workflow — you can toggle between views in
their UI.
2025-05-29 12:52:17 -05:00
Jack O'Connor
08f2fa48ff
make the error message clearer when running distroless containers (#13549)
Previously you could get a confusing error message like this:

```
$ docker run ghcr.io/astral-sh/uv run python
error: Could not read ELF interpreter from any of the following paths: /bin/sh, /usr/bin/env, /bin/dash, /bin/ls
```

Now the error message is better:

```
error: Failed to discover managed Python installations
  Caused by: Failed to determine the libc used on the current platform
  Caused by: Failed to find any common binaries to determine libc from: /bin/sh, /usr/bin/env, /bin/dash, /bin/ls
```

See https://github.com/astral-sh/uv/issues/8635.

---------

Co-authored-by: konsti <konstin@mailbox.org>
Co-authored-by: Zanie Blue <contact@zanie.dev>
2025-05-29 10:29:01 -07:00
johnthagen
72e2821d26
Fix exclude-newer date format in docs (#13706)
Some checks are pending
CI / check cache | macos aarch64 (push) Blocked by required conditions
CI / check system | python on debian (push) Blocked by required conditions
CI / check system | python on fedora (push) Blocked by required conditions
CI / check system | python on ubuntu (push) Blocked by required conditions
CI / check system | python on opensuse (push) Blocked by required conditions
CI / check system | python on rocky linux 8 (push) Blocked by required conditions
CI / check system | python on rocky linux 9 (push) Blocked by required conditions
CI / check system | graalpy on ubuntu (push) Blocked by required conditions
CI / check system | pypy on ubuntu (push) Blocked by required conditions
CI / check system | pyston (push) Blocked by required conditions
CI / check system | python on macos aarch64 (push) Blocked by required conditions
CI / check system | homebrew python on macos aarch64 (push) Blocked by required conditions
CI / check system | python on macos x86-64 (push) Blocked by required conditions
CI / check system | python3.10 on windows x86-64 (push) Blocked by required conditions
CI / check system | python3.10 on windows x86 (push) Blocked by required conditions
CI / check system | python3.13 on windows x86-64 (push) Blocked by required conditions
CI / check system | x86-64 python3.13 on windows aarch64 (push) Blocked by required conditions
CI / check system | windows registry (push) Blocked by required conditions
CI / check system | python3.12 via chocolatey (push) Blocked by required conditions
CI / check system | python3.9 via pyenv (push) Blocked by required conditions
CI / check system | python3.13 (push) Blocked by required conditions
CI / check system | conda3.11 on macos aarch64 (push) Blocked by required conditions
CI / check system | conda3.8 on macos aarch64 (push) Blocked by required conditions
CI / check system | conda3.11 on linux x86-64 (push) Blocked by required conditions
CI / check system | conda3.8 on linux x86-64 (push) Blocked by required conditions
CI / check system | conda3.11 on windows x86-64 (push) Blocked by required conditions
CI / check system | conda3.8 on windows x86-64 (push) Blocked by required conditions
CI / check system | amazonlinux (push) Blocked by required conditions
CI / check system | embedded python3.10 on windows x86-64 (push) Blocked by required conditions
CI / benchmarks (push) Blocked by required conditions
## Summary

Closes #13704
2025-05-28 20:23:10 +00:00
Reci
e5d002beb1
Add uvw as alias for uv without console window on Windows (#11786)
<!--
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

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

Currently on Windows, uv itself will always creates a console window,
even though the window could be empty if `uv run --gui-script` is used.
This is due to it using the [default `console` window
subsystem](https://rust-lang.github.io/rfcs/1665-windows-subsystem.html).

This PR introduces a wrapper `uvw` that, similar to the existing `uvx`,
invokes `uv` with the
[`CREATE_NO_WINDOW`](https://learn.microsoft.com/en-us/windows/win32/procthread/process-creation-flags#:~:text=CREATE_NO_WINDOW)
process creation flag on Windows, which creates child process without
console window.

Note that this PR does not alter any behaviors regarding `run --script`
and `run --gui-script`.

## Test Plan

Built and tested locally by doing something like `uvw run test.py`.
2025-05-28 14:37:21 -04:00
konsti
f62836fa04
Windows paths are valid URLs (#13625)
Some checks are pending
CI / check cache | ubuntu (push) Blocked by required conditions
CI / check cache | macos aarch64 (push) Blocked by required conditions
CI / check system | python on debian (push) Blocked by required conditions
CI / check system | python on ubuntu (push) Blocked by required conditions
CI / check system | python on opensuse (push) Blocked by required conditions
CI / check system | python on rocky linux 8 (push) Blocked by required conditions
CI / check system | python on rocky linux 9 (push) Blocked by required conditions
CI / check system | graalpy on ubuntu (push) Blocked by required conditions
CI / check system | pypy on ubuntu (push) Blocked by required conditions
CI / check system | pyston (push) Blocked by required conditions
CI / check system | python on macos aarch64 (push) Blocked by required conditions
CI / check system | homebrew python on macos aarch64 (push) Blocked by required conditions
CI / check system | python on macos x86-64 (push) Blocked by required conditions
CI / check system | python3.10 on windows x86-64 (push) Blocked by required conditions
CI / check system | python3.10 on windows x86 (push) Blocked by required conditions
CI / check system | python3.13 on windows x86-64 (push) Blocked by required conditions
CI / check system | x86-64 python3.13 on windows aarch64 (push) Blocked by required conditions
CI / check system | windows registry (push) Blocked by required conditions
CI / check system | python3.12 via chocolatey (push) Blocked by required conditions
CI / check system | python3.9 via pyenv (push) Blocked by required conditions
CI / check system | python3.13 (push) Blocked by required conditions
CI / check system | conda3.11 on macos aarch64 (push) Blocked by required conditions
CI / check system | conda3.8 on macos aarch64 (push) Blocked by required conditions
CI / check system | conda3.11 on linux x86-64 (push) Blocked by required conditions
CI / check system | conda3.8 on linux x86-64 (push) Blocked by required conditions
CI / check system | conda3.11 on windows x86-64 (push) Blocked by required conditions
CI / check system | conda3.8 on windows x86-64 (push) Blocked by required conditions
CI / check system | amazonlinux (push) Blocked by required conditions
CI / check system | embedded python3.10 on windows x86-64 (push) Blocked by required conditions
CI / benchmarks (push) Blocked by required conditions
Currently, it is not possible to set a custom Python downloads JSON on
Windows, as Windows paths can be valid URLs.

```rust
use url::Url;

fn main() {
    dbg!(Url::parse(r"C:\Users\Ferris\download.json"));
}
```

Tested by https://github.com/astral-sh/uv/pull/13585 (where it is
currently failing CI).
2025-05-28 10:11:56 -05:00
konsti
fc77be09f4
Use only a single 3.13t Linux integration test (#13700)
Fixes https://github.com/astral-sh/uv/issues/13681

We're still using the apt repo in the deadsnakes test but this is one
less location with the flaky apt script.
2025-05-28 16:15:02 +02:00
Zanie Blue
56ce40b0f4
Update packse scenarios (#13688)
Closes #13676 

See https://github.com/astral-sh/packse/pull/242 and
https://github.com/astral-sh/packse/releases/tag/0.3.47
2025-05-28 08:58:38 -05:00
konsti
56203484a2
Add uv add --bounds to configure the version constraint (#12946)
By default, uv uses only a lower bound in `uv add`, which avoids
dependency conflicts due to upper bounds. With this PR, this cna be
changed by setting a different bound kind. The bound kind can be
configured in `uv.toml`, as a user preference, in `pyproject.toml`, as a
project preference, or on the CLI, when adding a specific project.

We add two options that add an upper bound on the constraint, one for
SemVer (`>=1.2.3,<2.0.0`, dubbed "major", modeled after the SemVer
caret) and another one for dependencies that make breaking changes in
minor version (`>=1.2.3,<1.3.0`, dubbed "minor", modeled after the
SemVer tilde). Intuitively, the major option bumps the most significant
version component, while the minor option bumps the second most
significant version component. There is also an exact bounds option
(`==1.2.3`), though generally we recommend setting a wider bound and
using the lockfile for pinning.

Versions can have leading zeroes, such as `0.1` or `0.0.1`. For a single
leading 0, we shift the the meaning of major and minor similar to cargo.
For two or more leading zeroes, the difference between major and minor
becomes inapplicable, instead both bump the most significant component:
- major: `0.1` -> `>=0.1,<0.2`
- major: `0.0.1` -> `>=0.0.1,<0.0.2`
- major: `0.0.1.1` -> `>=0.0.1.1,<0.0.2.0`
- major: `0.0.0.1` -> `>=0.0.0.1,<0.0.0.2`
- minor: `0.1` -> `>=0.1,<0.1.1`
- minor: `0.0.1` -> `>=0.0.1,<0.0.2`
- minor: `0.0.1.1` -> `>=0.0.1.1,<0.0.2.0`
- minor: `0.0.0.1` -> `>=0.0.0.1,<0.0.0.2`

For a consistent appearance, we try to preserve the number of components
in the upper bound. For example, adding a version `2.17` with the major
option is stored as `>=2.17,<3.0`. If a version uses three components
and is greater than 0, both bounds will also use three components
(SemVer versions always have three components). Of the top 100 PyPI
packages, 8 use a non-three-component version (docutils, idna, pycparser
and soupsieve with two components, packaging, pytz and tzdata with two
component, CalVer and trove-classifiers with four component CalVer).
Example `pyproject.toml` files with the top 100 packages: [`--bounds
major`](https://gist.github.com/konstin/0aaffa9ea53c4834c22759e8865409f4)
and [`--bounds
minor`](https://gist.github.com/konstin/e77f5e990a7efe8a3c8a97c5c5b76964).
While many projects follow version scheme that roughly or directly
matches the major or minor options, these compatibility ranges are
usually not applicable for the also popular CalVer versioning.

For pre-release versions, there are two framings we could take: One is
that pre-releases generally make no guarantees about compatibility
between them and are used to introduce breaking changes, so we should
pin them exactly. In many cases however, pre-release specifiers are used
because a project needs a bugfix or a feature that hasn't made it into a
stable release, or because a project is compatible with the next version
before a final version for that release is published. In those cases,
compatibility with other packages that depend on the same library is
more important, so the desired bound is the same as it would be for the
stable release, except with the lower bound lowered to include
pre-release.

The names of the bounds and the name of the flag is up for bikeshedding.
Currently, the option is call `tool.uv.bounds`, but we could also move
it under `tool.uv.edit.bounds`, where it would be the first/only entry.

Fixes #6783

---------

Co-authored-by: Zanie Blue <contact@zanie.dev>
2025-05-28 13:11:31 +00:00