Commit Graph

268 Commits

Author SHA1 Message Date
Aria Desires 3cdf50e092 Bump version to 0.11.23 (#19927) 2026-06-19 10:42:39 -07:00
Aria Desires 94988e5e08 Bump version to 0.11.22 (#19917) 2026-06-18 15:06:46 -07:00
Zsolt Dollenstein 5aa65dd7ad Bump version to 0.11.21 (#19810) 2026-06-11 17:39:38 +00:00
Jonathan J. Helmus cff9514290 Sync Python 3.13.14 and 3.14.6 (#19787)
## Summary

Pull in metadata from python-build-standalone 20260610 which includes
CPython 3.13.14 and 3.14.6

Note that this includes the change from #19786

---------

Co-authored-by: Tomasz (Tom) Kramkowski <tom@astral.sh>
2026-06-11 14:48:28 +00:00
Charlie Marsh d7ccbde278 Split uv integration tests into command-area harnesses (#19770)
## Summary

This PR deliberately relaxes the single integration-test harness
introduced in [#8093](https://github.com/astral-sh/uv/pull/8093). In
2024, `uv` had 41 top-level integration-test targets and a nextest run
saw 91 binaries across the workspace. Shared test support was compiled
into many of those targets, and the original benchmark improved from
roughly 35 seconds to 9-14 seconds after consolidation.

Since then, shared test infrastructure has moved into the separately
compiled `uv-test` crate in
[#17551](https://github.com/astral-sh/uv/pull/17551), while the suite
has grown to 62 integration-test source modules and 2,958 tests. The
remaining single executable has therefore become a large link unit:
changing one localized test relinks the entire integration suite.

This PR groups those 62 modules into 12 coarse command-area harnesses.
It does not restore one harness per source file, and it keeps the tests
in the existing `uv` package with standard Cargo binary discovery. Each
harness owns a top-level directory containing its `main.rs` and test
modules, making membership visible without `#[path]` indirection. The
groups are coarse compilation boundaries rather than a strict product
taxonomy. Shared PyPI proxy support moves into `uv-test` so it can be
reused by the independent harnesses. The reorganization preserves the
exact 2,958-test inventory and suite assignments used by the benchmarks
below.

To compare the tradeoff directly, I derived one-, 12-, and 62-harness
layouts from the same commit. Each edit used a new compile-affecting
marker, with five interleaved warm rounds for the no-op and edit cases
and three rounds after cleaning the `uv` package. Total time includes
both `cargo test --package uv --tests --no-run --locked` and subsequent
nextest test discovery.

| Layout | Harnesses | No-op | Localized test edit | Shared `uv-test`
edit | `uv` package rebuild | Integration executable size |
| -------- | --------: | ----: | ------------------: |
--------------------: | -------------------: |
--------------------------: |
| Single | 1 | 1.10s | 7.52s | 10.20s | 35.18s | 96.5 MiB |
| This PR | 12 | 1.22s | 2.60s | 7.60s | 33.30s | 591.2 MiB |
| Per-file | 62 | 2.01s | 2.58s | 17.51s | 42.95s | 1,700.9 MiB |

The 12-harness layout captures effectively all of the per-file benefit
for localized edits: 2.60 seconds versus 2.58 seconds. It avoids the
per-file penalties for shared edits, package rebuilds, executable
discovery, and disk usage. On this machine, it also outperformed the
single harness for shared edits and package rebuilds because the giant
single link unit outweighed the additional parallel link targets. All
three layouts discovered the same 2,958 tests.

CI timing is effectively unchanged. Compared with the median of three
adjacent `main` runs, two complete warm PR attempts produced:

| Job | `main` median | PR attempt 1 | PR attempt 2 | Warm PR median |
| ------------------ | ------------: | -----------: | -----------: |
-------------: |
| Linux | 4:23 | 4:29 | 4:44 | 4:37 |
| macOS | 9:40 | 9:35 | 7:54 | 8:45 |
| Windows 1 of 3 | 4:00 | 4:09 | 3:54 | 4:02 |
| Windows 2 of 3 | 3:45 | 4:22 | 4:36 | 4:29 |
| Windows 3 of 3 | 3:51 | 3:54 | 4:25 | 4:10 |
| Runner-minutes sum | 25:53 | 26:29 | 25:33 | 26:01 |
| Slowest test job | 9:40 | 9:35 | 7:54 | 8:45 |

The warm PR median changes aggregate runner time by +0:08 (+0.5%) and
reduces the observed slowest test job by 0:55. The `main` runs and first
PR attempt used partial Rust cache hits, while the rerun used exact
cache hits, so the per-platform differences should be treated as runner
and cache variance rather than a reliable clean-CI speedup.

This is the narrower alternative discussed in #19603.
2026-06-10 12:18:13 -07:00
konsti 9252ba6b52 Bump version to 0.11.20 (#19765)
Released on 2026-06-10.

### Enhancements

- Add `--emit-index-url` and `--emit-find-links` to `uv export`
([#18370](https://github.com/astral-sh/uv/pull/18370))
- Add `--find-links` support for `uv pip list`
([#16103](https://github.com/astral-sh/uv/pull/16103))
- Group executable install errors during `uv python install`
([#19691](https://github.com/astral-sh/uv/pull/19691))
- Use ICF in macOS release builds to reduce binary sizes
([#19615](https://github.com/astral-sh/uv/pull/19615))

### Preview features

- Add initial hidden `uv upgrade` command
([#19678](https://github.com/astral-sh/uv/pull/19678))
- Reject Git revisions in `uv upgrade`
([#19742](https://github.com/astral-sh/uv/pull/19742))

### Configuration

- Recognize `UV_NO_INSTALL_PROJECT`, `UV_NO_INSTALL_WORKSPACE`,
`UV_NO_INSTALL_LOCAL`
([#19323](https://github.com/astral-sh/uv/pull/19323))

### Performance

- Speed up discovery of large workspaces
([#18311](https://github.com/astral-sh/uv/pull/18311))

### Bug fixes

- Allow unknown preview flags with a warning again
([#19669](https://github.com/astral-sh/uv/pull/19669))
- Apply dependency exclusions to direct requirements
([#19699](https://github.com/astral-sh/uv/pull/19699))
- Avoid following external symlinks during cache clean
([#19682](https://github.com/astral-sh/uv/pull/19682))
- Avoid following symlinks during cache prune
([#19543](https://github.com/astral-sh/uv/pull/19543))
- Fix Git cache keys for worktrees and packed refs
([#19706](https://github.com/astral-sh/uv/pull/19706))
- Make resolver error handling iterative to avoid stack overflows
([#19695](https://github.com/astral-sh/uv/pull/19695))
- Pass `VIRTUAL_ENV` through `cygpath` inside `fish` on Windows
([#19703](https://github.com/astral-sh/uv/pull/19703))
- Rebuild explicit local directory tool installs
([#19591](https://github.com/astral-sh/uv/pull/19591))
- Validate egg top-level entries as identifiers
([#19679](https://github.com/astral-sh/uv/pull/19679))

### Documentation

- Document `--find-links` caching behavior
([#19585](https://github.com/astral-sh/uv/pull/19585))
- Add a small section for malware checks
([#19680](https://github.com/astral-sh/uv/pull/19680))
2026-06-10 10:12:23 +02:00
Zanie Blue 7b2cff1c31 Bump version to 0.11.19 (#19668) 2026-06-03 17:06:27 -05:00
Tomasz Kramkowski 95507374d8 Use global preview in CondaEnvironmentKind::from_prefix_path (#19649)
## Summary

This expands the usage of global preview in a key area which has
wide-ranging impact.

Key notes:

* uv-dev needs to set up default global preview because of this.
Although it seems like it should technically have been setting it up
earlier?
* A number of tests no longer pass `Preview::default()` but also don't
use the guard. This is because they only call into the preview stuff
when the relevant conda environment variables are present. Which we
assume they're not (otherwise the tests would be invalid for other
reasons). There's really a hermeticity issue here, but I've addressed it
in a separate PR.

## Test Plan

Tests have been modified, but existing coverage should be sufficient.
2026-06-03 20:44:15 +01:00
github-actions[bot] 48548c496e Sync latest Python releases (#19531)
Automated update for Python releases.

Co-authored-by: jjhelmus <1050278+jjhelmus@users.noreply.github.com>
Co-authored-by: Jonathan J. Helmus <jjhelmus@gmail.com>
2026-06-03 13:01:13 -05:00
Zsolt Dollenstein 8d28332d1d Preserve historical sysconfig compiler mappings (#19657)
## Summary

Keep the sysconfig generator aware of compiler paths that appeared in
older downloadable `python-build-standalone` releases, so regenerating
the mappings on current `main` does not drop support for previously
shipped aarch64 and riscv64 binaries.


## Context

uv patches compiler paths embedded in managed Python `sysconfig` data to
use portable `cc` and `c++` commands. These mappings are generated from
the current python-build-standalone targets.

Older python-build-standalone releases remain downloadable and retain
the compiler paths used when they were built. When a target changes
toolchains or is removed from the current targets, regenerating the
mappings silently drops support for those releases.

This previously removed the aarch64 GNU mappings. The upcoming
python-build-standalone sync in #19531 would similarly replace the
riscv64 GNU mappings with LLVM mappings.

## Test plan

I've manually verified, that before this patch, on an arm64 linux box:

```
% uvx python3.12.10 -c 'import sysconfig; print(sysconfig.get_config_var("CC"))'
/usr/bin/aarch64-linux-gnu-gcc -pthread
```

and after (after uninstalling the python version using `uv python
uninstall 3.12.10`):

```
% ./target/debug/uvx python3.12.10 -c 'import sysconfig; print(sysconfig.get_config_var("CC"))'
cc -pthread
```
2026-06-03 13:18:11 +01:00
Zanie Blue b4d32e4356 Vendor packse scenarios and serve them from an in-memory index (#18084)
This makes it easier for us to add resolver scenarios by

1. Rewriting the scenario package generation in Rust
2. Serving scenario packages from memory in a wiremock index
3. Rewriting the scenario test case generation in Rust
4. Dropping all dependencies on packse / the packse index

---------

Co-authored-by: Codex <noreply@openai.com>
2026-06-02 09:25:29 -05:00
Zanie Blue e32666915e Bump version to 0.11.18 (#19639) 2026-06-01 19:05:49 +00:00
Aria Desires a33a629d66 Bump version to 0.11.17 (#19599) 2026-05-28 12:58:35 -07:00
Zanie Blue 67f02f6d12 Improve the error printing API (#19581)
Adds a builder pattern for error printing options so we don't need to
provide noisy default arguments at each callsite.
2026-05-27 19:15:12 +00:00
Zanie Blue b1e02c5aef Add first-party line wrapping (#17535)
Required for https://github.com/astral-sh/uv/pull/17110 to avoid
regressions where miette previously wrapped lines in error messages.
2026-05-27 13:59:07 -05:00
Zsolt Dollenstein 496dbaeb1b Fix malformed positional anchors in the CLI reference (#19575)
Fix the malformed `<a href=...>` tag emitted for positional arguments in
`crates/uv-dev/src/generate_cli_reference.rs`, which produced invalid
HTML in the generated CLI reference.
2026-05-27 14:43:08 +01:00
William Woodruff 135a363678 Bump version to 0.11.16 (#19522)
Signed-off-by: William Woodruff <william@yossarian.net>
2026-05-21 17:21:08 -04:00
Charlie Marsh 51ba989e67 Add support for direct archive dependencies in Git (#10072)
## Summary

This PR adds support for sources that reference pre-built archives
(wheels or source distributions) within Git repositories.
2026-05-21 19:57:08 +01:00
Zanie Blue de16a7b1a3 Bump version to 0.11.15 (#19472)
Co-authored-by: Codex <noreply@openai.com>
2026-05-18 12:10:13 -07:00
github-actions[bot] 3fdfdc7d4a Bump version to 0.11.14 (#19377)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Zanie Blue <contact@zanie.dev>
2026-05-12 12:29:37 -05:00
Jonathan J. Helmus 4512a39319 Bump version to 0.11.13 (#19345)
## Summary
Preps 0.11.13.

## Test Plan
NFC
2026-05-10 17:37:45 -07:00
github-actions[bot] 60017e9d54 Sync latest Python releases (#19342)
Automated update for Python releases.

---------

Co-authored-by: jjhelmus <1050278+jjhelmus@users.noreply.github.com>
Co-authored-by: Jonathan J. Helmus <jjhelmus@gmail.com>
2026-05-10 23:58:26 +00:00
William Woodruff 63c5f57d36 Bump version to 0.11.12 (#19331) 2026-05-08 15:06:22 -07:00
github-actions[bot] 400b137122 Sync latest Python releases (#19322)
Automated update for Python releases.

Co-authored-by: zanieb <2586601+zanieb@users.noreply.github.com>
2026-05-08 14:28:10 -07:00
github-actions[bot] ed7b060013 Bump version to 0.11.11 (#19303)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Zanie Blue <contact@zanie.dev>
2026-05-06 12:34:21 -07:00
github-actions[bot] add376fd92 Bump version to 0.11.10 (#19293)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Zanie Blue <contact@zanie.dev>
2026-05-05 12:39:52 -07:00
Zanie Blue 7829a03b6c Bump version to 0.11.9 (#19273) 2026-05-05 05:06:19 +00:00
github-actions[bot] 726047a420 Sync latest Python releases (#19268)
Automated update for Python releases.

---------

Co-authored-by: zanieb <2586601+zanieb@users.noreply.github.com>
Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>
2026-05-05 02:33:32 +00:00
Zsolt Dollenstein 0e961dd9a2 Bump version to 0.11.8 (#19184) 2026-04-27 11:40:45 +00:00
github-actions[bot] 8736c7b5b4 Sync latest Python releases (#18958)
Automated update for Python releases.

Co-authored-by: zanieb <2586601+zanieb@users.noreply.github.com>
2026-04-16 04:28:47 +00:00
Zanie Blue 9d177269e1 Bump version to 0.11.7 (#19017) 2026-04-15 21:03:37 +00:00
konsti 65950801cc Bump version to 0.11.6 (#18948) 2026-04-09 11:21:12 +00:00
Zanie Blue 95eaa68c8d Bump version to 0.11.5 (#18930) 2026-04-08 15:01:32 -05:00
Zanie Blue 7b563a0f5a Report error cleanly instead of panicking on TLS certificate error (#18904)
See https://github.com/astral-sh/uv/issues/18890

We can load a certificate that is a valid bundle, but on client build we
can fail if the certificate is unsupported for various reasons. This
propagates the error instead of panicking.
2026-04-08 09:19:27 -05:00
Zanie Blue 3523c23490 Bump version to 0.11.4 (#18909) 2026-04-07 21:25:19 -04:00
github-actions[bot] 5bb0dc3e90 Sync latest Python releases (#18908)
Automated update for Python releases.

Co-authored-by: zanieb <2586601+zanieb@users.noreply.github.com>
2026-04-08 00:51:47 +00:00
Zanie Blue 464a33ca82 Bump version to 0.11.3 (#18805) 2026-04-01 15:52:54 -05:00
Charlie Marsh 47c8c273b0 Fix all cargo shear warnings (#18748)
## Summary

Like https://github.com/astral-sh/ruff/pull/24268.
2026-03-28 14:24:50 -04:00
Zanie Blue 02036a8ba5 Bump version to 0.11.2 (#18732) 2026-03-26 20:44:25 +00:00
github-actions[bot] d247329fbb Sync latest Python releases (#18720)
Automated update for Python releases.

Co-authored-by: zanieb <2586601+zanieb@users.noreply.github.com>
2026-03-26 15:43:53 -05:00
Zanie Blue a6042f67fc Bump version to 0.11.1 (#18704) 2026-03-24 22:18:22 +00:00
Zanie Blue 1f31f0e9fb Bump version to 0.11.0 (#18683)
Co-authored-by: Zsolt Dollenstein <zsol.zsol@gmail.com>
Co-authored-by: Geoffrey Thomas <geofft@ldpreload.com>
2026-03-23 21:13:35 +00:00
github-actions[bot] 00e4746cc0 Sync latest Python releases (#18591)
Automated update for Python releases.

Co-authored-by: zanieb <2586601+zanieb@users.noreply.github.com>
2026-03-20 13:13:22 -05:00
Zanie Blue 00d72dac7b Bump version to 0.10.12 (#18578) 2026-03-19 21:18:55 +00:00
Charlie Marsh 006b56b12d Bump version to 0.10.11 (#18521)
Co-authored-by: Tomasz Kramkowski <tom@astral.sh>
2026-03-16 19:32:39 -04:00
Zanie Blue 8c730aaad6 Bump version to 0.10.10 (#18455) 2026-03-13 14:35:08 -05:00
github-actions[bot] 9bcbaac3e9 Add CPython 3.15.0a7 (#18403)
Automated update for Python releases.

Co-authored-by: jjhelmus <1050278+jjhelmus@users.noreply.github.com>
2026-03-12 23:55:37 +00:00
Zanie Blue f675560f32 Bump version to 0.10.9 (#18357) 2026-03-06 14:00:59 -06:00
github-actions[bot] 379f056aff Sync latest Python releases (#18282)
Automated update for Python releases.

Co-authored-by: zanieb <2586601+zanieb@users.noreply.github.com>
2026-03-03 20:23:27 -06:00
Zanie Blue c021be36ab Bump version to 0.10.8 (#18277) 2026-03-03 15:08:03 -06:00