9053 Commits

Author SHA1 Message Date
renovate[bot] 7b537ed25c Update acj/freebsd-firecracker-action action to v0.9.1 (#19053)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[acj/freebsd-firecracker-action](https://redirect.github.com/acj/freebsd-firecracker-action)
| action | patch | `v0.9.0` → `v0.9.1` |

---

### Release Notes

<details>
<summary>acj/freebsd-firecracker-action
(acj/freebsd-firecracker-action)</summary>

###
[`v0.9.1`](https://redirect.github.com/acj/freebsd-firecracker-action/releases/tag/v0.9.1)

[Compare
Source](https://redirect.github.com/acj/freebsd-firecracker-action/compare/v0.9.0...v0.9.1)

Changes:

- Upgrade to Firecracker 1.15.1

</details>

---

### Configuration

📅 **Schedule**: (UTC)

- Branch creation
  - Between 12:00 AM and 03:59 AM, only on Monday (`* 0-3 * * 1`)
- 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:eyJjcmVhdGVkSW5WZXIiOiI0My4xMjMuOCIsInVwZGF0ZWRJblZlciI6IjQzLjEyMy44IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJidWlsZDpza2lwLWRvY2tlciIsImJ1aWxkOnNraXAtcmVsZWFzZSIsImludGVybmFsIl19-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-21 09:05:43 -05:00
renovate[bot] 45b930fdc7 Update taiki-e/install-action action to v2.75.10 (#19071) 2026-04-20 16:36:59 -04:00
Charlie Marsh abba775363 Respect discovered hashes from lookahead build dependencies (#19086)
## Summary

Small follow-up to https://github.com/astral-sh/uv/pull/19076. If a
lookahead URL has its own SHA, we need to include it in the acceptable
SHAs for that URL.
2026-04-20 16:17:10 -04:00
Oshadha Gunawardena e5a5fba0da Run LookaheadResolver when resolving PEP 517 build requirements (#19076)
Build dispatch was constructing its manifest without lookaheads, so the
build dependency resolver missed transitive URL dependencies from
workspace members referenced via build-system.requires.

Run LookaheadResolver first and pass the result into
`Manifest::with_lookaheads`, matching the behavior the project resolver
already uses.

Added a regression integration test that fails on main and passes with
this change.

Closes #19074!

---------

Co-authored-by: Charlie Marsh <charlie.r.marsh@gmail.com>
2026-04-20 15:50:34 -04:00
Zanie Blue 7cd3c2348b Expose UV_PYTHON_SEARCH_PATH for Python discovery PATH overrides (#19034)
Closes https://github.com/astral-sh/uv/issues/19027
Closes https://github.com/astral-sh/uv/issues/9506 (while the request
there is to extend `PATH`, they can set
`UV_PYTHON_SEARCH_PATH=...;$PATH`)

---------

Co-authored-by: Claude <noreply@anthropic.com>
2026-04-20 19:13:40 +00:00
Zanie Blue f3ed0e9521 Use an Ubuntu snapshot for apt installs in CI for reproducibility (#19032)
Co-authored-by: Claude <noreply@anthropic.com>
2026-04-20 14:03:37 -05:00
Tomasz Kramkowski e72fbd97e1 Remove duplicate hashbrown lockfile entry (#19083)
## Summary

Duplicate introduced by #19070

## Test Plan

N/A
2026-04-20 13:58:36 -05:00
Zanie Blue 224d722ce5 Add UV_PYTHON_NO_REGISTRY (#19035)
Required for https://github.com/astral-sh/uv/pull/19034

Arguably, we could keep our existing behavior and have
`UV_PYTHON_SEARCH_PATH` implicitly disable the registry lookup, but I
think that's too confusing.

This disables registry lookups everywhere and modifications in `uv
python install`. In the latter case, `UV_PYTHON_INSTALL_REGISTRY` takes
precedence.
2026-04-20 13:50:13 -05:00
renovate[bot] ff5fbce132 Update peter-evans/create-pull-request action to v8.1.1 (#19058)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[peter-evans/create-pull-request](https://redirect.github.com/peter-evans/create-pull-request)
| action | patch | `v8.1.0` → `v8.1.1` |

---

### Release Notes

<details>
<summary>peter-evans/create-pull-request
(peter-evans/create-pull-request)</summary>

###
[`v8.1.1`](https://redirect.github.com/peter-evans/create-pull-request/releases/tag/v8.1.1):
Create Pull Request v8.1.1

[Compare
Source](https://redirect.github.com/peter-evans/create-pull-request/compare/v8.1.0...v8.1.1)

#### What's Changed

- build(deps-dev): bump the npm group with 2 updates by
[@&#8203;dependabot](https://redirect.github.com/dependabot)\[bot] in
[#&#8203;4305](https://redirect.github.com/peter-evans/create-pull-request/pull/4305)
- build(deps): bump minimatch by
[@&#8203;dependabot](https://redirect.github.com/dependabot)\[bot] in
[#&#8203;4311](https://redirect.github.com/peter-evans/create-pull-request/pull/4311)
- build(deps): bump the github-actions group with 2 updates by
[@&#8203;dependabot](https://redirect.github.com/dependabot)\[bot] in
[#&#8203;4316](https://redirect.github.com/peter-evans/create-pull-request/pull/4316)
- build(deps): bump
[@&#8203;tootallnate/once](https://redirect.github.com/tootallnate/once)
and jest-environment-jsdom by
[@&#8203;dependabot](https://redirect.github.com/dependabot)\[bot] in
[#&#8203;4323](https://redirect.github.com/peter-evans/create-pull-request/pull/4323)
- build(deps-dev): bump undici from 6.23.0 to 6.24.0 by
[@&#8203;dependabot](https://redirect.github.com/dependabot)\[bot] in
[#&#8203;4328](https://redirect.github.com/peter-evans/create-pull-request/pull/4328)
- build(deps-dev): bump flatted from 3.3.1 to 3.4.2 by
[@&#8203;dependabot](https://redirect.github.com/dependabot)\[bot] in
[#&#8203;4334](https://redirect.github.com/peter-evans/create-pull-request/pull/4334)
- build(deps): bump picomatch by
[@&#8203;dependabot](https://redirect.github.com/dependabot)\[bot] in
[#&#8203;4339](https://redirect.github.com/peter-evans/create-pull-request/pull/4339)
- build(deps-dev): bump handlebars from 4.7.8 to 4.7.9 by
[@&#8203;dependabot](https://redirect.github.com/dependabot)\[bot] in
[#&#8203;4344](https://redirect.github.com/peter-evans/create-pull-request/pull/4344)
- build(deps-dev): bump the npm group with 3 updates by
[@&#8203;dependabot](https://redirect.github.com/dependabot)\[bot] in
[#&#8203;4349](https://redirect.github.com/peter-evans/create-pull-request/pull/4349)
- fix: retry post-creation API calls on 422 eventual consistency errors
by [@&#8203;peter-evans](https://redirect.github.com/peter-evans) in
[#&#8203;4356](https://redirect.github.com/peter-evans/create-pull-request/pull/4356)

**Full Changelog**:
<https://github.com/peter-evans/create-pull-request/compare/v8.1.0...v8.1.1>

</details>

---

### Configuration

📅 **Schedule**: (UTC)

- Branch creation
  - Between 12:00 AM and 03:59 AM, only on Monday (`* 0-3 * * 1`)
- 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:eyJjcmVhdGVkSW5WZXIiOiI0My4xMjMuOCIsInVwZGF0ZWRJblZlciI6IjQzLjEyMy44IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJidWlsZDpza2lwLWRvY2tlciIsImJ1aWxkOnNraXAtcmVsZWFzZSIsImludGVybmFsIl19-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-20 14:35:31 -04:00
renovate[bot] 6ab38f59df Update CodSpeedHQ/action action to v4.13.1 (#19055) 2026-04-20 14:32:38 -04:00
renovate[bot] 79357860e4 Update actions/upload-artifact action to v7.0.1 (#19054) 2026-04-20 14:32:33 -04:00
renovate[bot] 602aae4417 Update EmbarkStudios/cargo-deny-action action to v2.0.16 (#19057)
This PR contains the following updates:

| Package | Type | Update | Change | Pending |
|---|---|---|---|---|
|
[EmbarkStudios/cargo-deny-action](https://redirect.github.com/EmbarkStudios/cargo-deny-action)
| action | patch | `v2.0.15` → `v2.0.16` | `v2.0.17` |

---

### Release Notes

<details>
<summary>EmbarkStudios/cargo-deny-action
(EmbarkStudios/cargo-deny-action)</summary>

###
[`v2.0.16`](https://redirect.github.com/EmbarkStudios/cargo-deny-action/releases/tag/v2.0.16):
Release 2.0.16 - cargo-deny 0.19.1

[Compare
Source](https://redirect.github.com/EmbarkStudios/cargo-deny-action/compare/v2.0.15...v2.0.16)

##### Fixed

-
[PR#833](https://redirect.github.com/EmbarkStudios/cargo-deny/pull/833)
fixed an issue where the maximum advisory database staleness was over 14
years instead of the intended 90 days.
-
[PR#839](https://redirect.github.com/EmbarkStudios/cargo-deny/pull/839)
fixed an issue where unsound advisories would appear for transitive
dependencies despite requesting them only for workspace dependencies,
resolving
[#&#8203;829](https://redirect.github.com/EmbarkStudios/cargo-deny/issues/829).
-
[PR#840](https://redirect.github.com/EmbarkStudios/cargo-deny/pull/840)
resolved
[#&#8203;797](https://redirect.github.com/EmbarkStudios/cargo-deny/issues/797)
by passing `--filter-platform` when collecting cargo metadata if only a
single target was requested either in the config or via the command
line.
-
[PR#841](https://redirect.github.com/EmbarkStudios/cargo-deny/pull/841)
fixed an issue where `--frozen` would not disable fetching of the
advisory DB, resolving
[#&#8203;759](https://redirect.github.com/EmbarkStudios/cargo-deny/issues/759).
-
[PR#842](https://redirect.github.com/EmbarkStudios/cargo-deny/pull/842)
and
[PR#844](https://redirect.github.com/EmbarkStudios/cargo-deny/pull/844)
updated crates. Notably `krates` was updated to resolve two issues with
crates being pruned from the graph used when running checks. Resolving
these two issues may mean that updating cargo-deny may highlight issues
that were previously hidden.
-
[EmbarkStudios/krates#106](https://redirect.github.com/EmbarkStudios/krates/issues/106)
would fail to pull in crates brought in via a feature if that crate had
its `lib` target renamed by the package author.
-
[EmbarkStudios/krates#109](https://redirect.github.com/EmbarkStudios/krates/issues/109)
would fail to bring in optional dependencies if they were brought in by
a weak feature in a crate *also* brought in by a weak feature.

##### Changed

-
[PR#830](https://redirect.github.com/EmbarkStudios/cargo-deny/pull/830)
removed `gix` in favor of shelling out to `git`. This massively improves
build times and eases maintenance as `gix` bumps minor versions quite
frequently. If cargo-deny is used in an environment that for some reason
allows internet access but doesn't have `git` available, the advisory
database would need to be updated before calling cargo-deny.
-
[PR#838](https://redirect.github.com/EmbarkStudios/cargo-deny/pull/838)
removed `rustsec` in favor of manually implemented advisory parsing and
checking, with a nightly cron job that checks that the implementation
exactly matches rustsec on the official rustsec advisory db.

</details>

---

### Configuration

📅 **Schedule**: (UTC)

- Branch creation
  - Between 12:00 AM and 03:59 AM, only on Monday (`* 0-3 * * 1`)
- 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:eyJjcmVhdGVkSW5WZXIiOiI0My4xMjMuOCIsInVwZGF0ZWRJblZlciI6IjQzLjEyMy44IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJidWlsZDpza2lwLWRvY2tlciIsImJ1aWxkOnNraXAtcmVsZWFzZSIsImludGVybmFsIl19-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-20 14:32:27 -04:00
renovate[bot] eb903317e8 Update dependency astral-sh/uv to v0.11.7 (#19056) 2026-04-20 14:32:04 -04:00
renovate[bot] e5ca84cadf Update Rust crate indexmap to v2.14.0 (#19070) 2026-04-20 14:31:07 -04:00
renovate[bot] fcbb510efd Update Rust crate hashbrown to 0.17.0 (#19069) 2026-04-20 14:30:55 -04:00
renovate[bot] c7c2c19c51 Update Rust crate tokio to v1.51.1 (#19060) 2026-04-20 14:30:35 -04:00
renovate[bot] 4f129b2b05 Update astral-sh/setup-uv action to v8.1.0 (#19061) 2026-04-20 14:30:22 -04:00
renovate[bot] 7e5d83ae4b Update PyO3/maturin-action action to v1.51.0 (#19066) 2026-04-20 14:29:55 -04:00
renovate[bot] f376822148 Update aws-actions/configure-aws-credentials action to v6.1.0 (#19062)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[aws-actions/configure-aws-credentials](https://redirect.github.com/aws-actions/configure-aws-credentials)
| action | minor | `v6.0.0` → `v6.1.0` |

---

### Release Notes

<details>
<summary>aws-actions/configure-aws-credentials
(aws-actions/configure-aws-credentials)</summary>

###
[`v6.1.0`](https://redirect.github.com/aws-actions/configure-aws-credentials/releases/tag/v6.1.0)

[Compare
Source](https://redirect.github.com/aws-actions/configure-aws-credentials/compare/v6...v6.1.0)

##### Features

- add skip cleanup option
([#&#8203;1716](https://redirect.github.com/aws-actions/configure-aws-credentials/issues/1716))
([11b1c58](https://redirect.github.com/aws-actions/configure-aws-credentials/commit/11b1c58b24724e66aa52a847862a0c1b0c4b0c7b)),
closes
[#&#8203;1545](https://redirect.github.com/aws-actions/configure-aws-credentials/issues/1545)
- Support usage of AWS Profiles
([#&#8203;1696](https://redirect.github.com/aws-actions/configure-aws-credentials/issues/1696))
([a7f0c82](https://redirect.github.com/aws-actions/configure-aws-credentials/commit/a7f0c828ac76e0d049e34c920172c60f579f9eb3))

</details>

---

### Configuration

📅 **Schedule**: (UTC)

- Branch creation
  - Between 12:00 AM and 03:59 AM, only on Monday (`* 0-3 * * 1`)
- 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:eyJjcmVhdGVkSW5WZXIiOiI0My4xMjMuOCIsInVwZGF0ZWRJblZlciI6IjQzLjEyMy44IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJidWlsZDpza2lwLWRvY2tlciIsImJ1aWxkOnNraXAtcmVsZWFzZSIsImludGVybmFsIl19-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-20 14:29:47 -04:00
renovate[bot] 6bbe6839cf Update maturin to v1.13.1 (#19064) 2026-04-20 14:29:25 -04:00
William Woodruff 6a847f4190 Support pip uninstall -y (#19082)
## Summary

Fixes #19077. Both `-y` and `--yes` are now accepted (as compat no-ops)
to `pip uninstall`.

## Test Plan

Added two integration tests confirming that the flags are no-ops
(besides emitting a warning).

Signed-off-by: William Woodruff <william@astral.sh>
2026-04-20 16:39:44 +00:00
renovate[bot] 79f791826f Update Rust crate webpki to v0.103.12 (#19029)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [webpki](https://redirect.github.com/rustls/webpki) |
workspace.dependencies | patch | `0.103.10` → `0.103.12` |

### GitHub Vulnerability Alerts

####
[GHSA-xgp8-3hg3-c2mh](https://redirect.github.com/rustls/webpki/security/advisories/GHSA-xgp8-3hg3-c2mh)

Permitted subtree name constraints for DNS names were accepted for
certificates asserting a wildcard name.

This was incorrect because, given a name constraint of
`accept.example.com`, `*.example.com` could feasibly allow a name of
`reject.example.com` which is outside the constraint.
This is very similar to [CVE-2025-61727](https://go.dev/issue/76442).

Since name constraints are restrictions on otherwise properly-issued
certificates, this bug is reachable only after signature verification
and requires misissuance to exploit.

##### Severity
- CVSS Score: 2.2 / 10 (Low)
- Vector String: `CVSS:3.1/AV:N/AC:H/PR:H/UI:N/S:U/C:N/I:L/A:N`

####
[GHSA-965h-392x-2mh5](https://redirect.github.com/rustls/webpki/security/advisories/GHSA-965h-392x-2mh5)

Name constraints for URI names were ignored and therefore accepted.

Note this library does not provide an API for asserting URI names, and
URI name constraints are otherwise not implemented. URI name constraints
are now rejected unconditionally.

Since name constraints are restrictions on otherwise properly-issued
certificates, this bug is reachable only after signature verification
and requires misissuance to exploit.

##### Severity
- CVSS Score: 2.2 / 10 (Low)
- Vector String: `CVSS:3.1/AV:N/AC:H/PR:H/UI:N/S:U/C:N/I:L/A:N`

---

### Configuration

📅 **Schedule**: (UTC)

- Branch creation
  - ""
- 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:eyJjcmVhdGVkSW5WZXIiOiI0My4xMjMuOCIsInVwZGF0ZWRJblZlciI6IjQzLjEyMy44IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJpbnRlcm5hbCIsInNlY3VyaXR5Il19-->

---------

Signed-off-by: William Woodruff <william@astral.sh>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: William Woodruff <william@astral.sh>
2026-04-20 12:36:19 -04:00
Zanie Blue 44e1cf8c1f Use a no-op timestamp for exclude-newer in lockfiles when a relative value is configured (#19022)
Closes https://github.com/astral-sh/uv/issues/18708

This is a backwards compatible approach to resolve the issue where this
timestamp is causing merge conflicts.

This has no effect other than eliding the timestamp that was used for
resolution. This value is write-only when using relative `exclude-newer`
values.

---------

Co-authored-by: Claude <noreply@anthropic.com>
2026-04-20 09:36:39 -05:00
konsti c9c1eb8d83 Move retry logic into its own file (#19073)
The retry logic has enough complexity for its own module.
2026-04-20 12:30:20 +02:00
Charlie Marsh d5223f6a21 Add an environment variable for UV_NO_PROJECT (#19052)
Closes https://github.com/astral-sh/uv/issues/19020.
2026-04-19 19:19:52 -04:00
renovate[bot] 754c5d944c Update Rust crate similar to v3 (#18991)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [similar](https://redirect.github.com/mitsuhiko/similar) |
workspace.dependencies | major | `2.6.0` → `3.0.0` |

---

### Release Notes

<details>
<summary>mitsuhiko/similar (similar)</summary>

###
[`v3.1.0`](https://redirect.github.com/mitsuhiko/similar/blob/HEAD/CHANGELOG.md#310)

[Compare
Source](https://redirect.github.com/mitsuhiko/similar/compare/3.0.0...3.1.0)

- Added `capture_diff_slices_by_key` and
`capture_diff_slices_by_key_deadline`
  as convenience helpers for diffing slices by derived keys.
- Fixed `Compact` emitting inconsistent `DiffOp` cursor positions after
  compaction, which could leave `Delete`/`Insert` operations with stale
  `new_index`/`old_index` values.
- Added explicit lifetime capture (`+ use<...>`) on iterator-returning
APIs to
improve compatibility with Rust 2024 lifetime capture behavior.
[#&#8203;93](https://redirect.github.com/mitsuhiko/similar/issues/93)

###
[`v3.0.0`](https://redirect.github.com/mitsuhiko/similar/blob/HEAD/CHANGELOG.md#300)

[Compare
Source](https://redirect.github.com/mitsuhiko/similar/compare/2.7.0...3.0.0)

- Added a Git-style Histogram diff implementation exposed as
  `Algorithm::Histogram`, including deadline-aware Myers fallback and
  comprehensive regression/behavior tests.
- Raised MSRV to Rust 1.85 and moved the crate to Rust 2024 edition.
- Added a Hunt-style diff implementation exposed as `Algorithm::Hunt`.
- Added configurable inline refinement via `InlineChangeOptions` and
  `InlineChangeMode`, including semantic cleanup and new
`TextDiff::iter_inline_changes_with_options*` methods.
[#&#8203;92](https://redirect.github.com/mitsuhiko/similar/issues/92)
- Added a global disjoint-input fast path in `algorithms::diff_deadline`
  to avoid pathological runtimes on large, fully distinct inputs.
- Improved `Algorithm::Myers` performance on heavily unbalanced diffs to
  avoid pathological slowdowns.
- Added `diff_deadline_raw` entrypoints in the algorithm modules to
bypass
shared heuristics and keep minimal intrinsic trait bounds where needed.
- Added test files in `examples/diffs` that can be used with the some of
the
  examples as input pairs.
- Added `CachedLookup`, a helper for adapting virtual or computed
sequences by
materializing items on first access and then serving borrowed values
through
normal indexing. The `owned-lookup` example demonstrates this approach
for
issue
[#&#8203;33](https://redirect.github.com/mitsuhiko/similar/issues/33).
- Fixed ranged indexing in the classic LCS table algorithm.
- Improved diff compaction to merge adjacent delete hunks across equal
runs.
- Excluded development scripts from published crate contents.
[#&#8203;87](https://redirect.github.com/mitsuhiko/similar/issues/87)
- `TextDiff::from_*` and `TextDiffConfig::diff_*` now accept owned
inputs
(`String`, `Vec<u8>`, `Cow`) in addition to borrowed inputs. This allows
returning text diffs from functions without external owner lifetimes.
[#&#8203;65](https://redirect.github.com/mitsuhiko/similar/issues/65)
- `TextDiff` no longer exposes `old_slices` / `new_slices`.  Use
  `old_len`, `new_len`, `old_slice`, `new_slice`, `iter_old_slices`,
  `iter_new_slices`, `old_lookup`, and `new_lookup` instead.
- `TextDiff::iter_changes` now panics on invalid out-of-bounds `DiffOp`
  ranges instead of silently truncating iteration.
- `utils::diff_lines_inline` now takes `&TextDiff` and options rather
than
  `(Algorithm, old, new, options)`.
- `utils::diff_lines` now avoids a second line-tokenization pass.
- Renamed `get_diff_ratio` to `diff_ratio`.
- Added first-class `no_std + alloc` support with an explicit default
`std`
  feature.
- Added optional `hashbrown` backend for `no_std` map storage
(`default-features = false, features = ["hashbrown"]`), while the
default
  `no_std` backend uses `alloc::collections::BTreeMap`.
- Made core constructors const-ready (`Capture::new`, `Replace::new`,
`NoFinishHook::new`, `InlineChangeOptions::new`, `TextDiff::configure`).

</details>

---

### Configuration

📅 **Schedule**: (UTC)

- Branch creation
  - Between 12:00 AM and 03:59 AM, only on Monday (`* 0-3 * * 1`)
- 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:eyJjcmVhdGVkSW5WZXIiOiI0My4xMTAuMiIsInVwZGF0ZWRJblZlciI6IjQzLjEyMy44IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJidWlsZDpza2lwLWRvY2tlciIsImJ1aWxkOnNraXAtcmVsZWFzZSIsImludGVybmFsIl19-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-19 00:21:24 +02:00
Zanie Blue 0ec1815399 Only update test-system.yml dependencies monthly (#19040)
These are not important to update frequently

---------

Co-authored-by: Claude <noreply@anthropic.com>
2026-04-17 16:25:53 -05:00
Zanie Blue 1f4fce9692 Refactor update_availability_range to use iterator and collect (#19039)
Addresses the TODO about using a repeated union now that there's
`FromIterator` implementation upstream.

Co-authored-by: Claude <noreply@anthropic.com>
2026-04-17 16:01:29 -05:00
renovate[bot] 23ac4996d9 Update cgr.dev/chainguard/python:latest-dev Docker digest to c2ac411 (#18981)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| cgr.dev/chainguard/python | container | digest | `f475abd` → `c2ac411`
|

---

### Configuration

📅 **Schedule**: (UTC)

- Branch creation
  - Between 12:00 AM and 03:59 AM, only on Monday (`* 0-3 * * 1`)
- 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:eyJjcmVhdGVkSW5WZXIiOiI0My4xMTAuMiIsInVwZGF0ZWRJblZlciI6IjQzLjEyMy44IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJidWlsZDpza2lwLWRvY2tlciIsImJ1aWxkOnNraXAtcmVsZWFzZSIsImludGVybmFsIl19-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-17 15:19:16 -05:00
Zsolt Dollenstein 07f61551b2 Fetch uv from Astral mirror during self-update (#18682) 2026-04-17 18:40:30 +01:00
Zanie Blue 91a51cbb13 Only show the version number in uv self version --short (#19019)
Simplify the `--short` output format for `uv self version` to display
only the version string (e.g., "0.5.1") without commit info or target
triple.

See https://github.com/astral-sh/uv/pull/18520#issuecomment-4237301352

Co-authored-by: Claude <noreply@anthropic.com>
2026-04-17 11:42:01 -05:00
William Woodruff 69e1f5f1b8 Fix Python variant tagging in the Windows registry (#19012)
## Summary

This adds a regression test and fix for #18795. I ran the test and
confirmed reproduction before implementing the fix.

The underlying bug here happens only on Windows, and only when
exercising the PEP 514 Python installation registration pathway (which
the integration tests disable by default, since it involves global
mutable state that leaks between tests). The bug itself is just an
imprecision in how we compute the "tag" for the Python entry -- we
weren't including the variant (the `t` in `3.14t`), so two distinct
installs (`3.14` and `3.14t`) would end up with the same registry tag.
For an end user, this surfaces as Python installation entries missing
when running `uv python list`.

One thing to note about the test here is that it _does_ exercise the
Windows registry pathway, which means that it intentionally bypasses the
guardrail around global mutations in the integration tests. This is
"fine" in the sense that there are on other tests observing that state
at the moment, but I think it's a risk in terms of isolation (in the
sense that devs who run our integration tests will actually observe
global changes to their Python installations, plus any failure in the
test means we won't clean up our global changes). Two options there:

- I could try and harden/isolate the registry mutation pathways a bit
more, e.g. we could add `UV_DEV_WINDOWS_REGISTRY_COMPANY_KEY` or
something like that to do some more test-level isolation of HKCU writes.
This still modifies global state, but at least it'll be more namespaced.
- I could remove the integration test entirely, now that we've confirmed
that the fix itself works. This leaves us without coverage, but given
that the fix itself is ~2 lines that might be acceptable.

Fixes #18795.

## Test Plan

This PR includes a regression test.

---------

Signed-off-by: William Woodruff <william@astral.sh>
2026-04-17 15:24:49 +00:00
Kevin Stillhammer d8fb331e05 Bump astral-sh/setup-uv version in docs (#19030)
<!--
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

As the title says

## Test Plan

N/A
2026-04-17 09:55:45 -04:00
Zanie Blue 58be01e8df Add a lock equality assertion for uv lock --check with a relative exclude newer (#19031) 2026-04-17 13:10:43 +00:00
Zanie Blue 9c0eec664d Add test case for lock when exclude-newer is missing but exclude-newer-span is present (#19021)
Co-authored-by: Claude <noreply@anthropic.com>
2026-04-16 09:05:05 -05: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 afd114f574 Skip Pyodide pre-release builds during version sync (#19010)
Co-authored-by: Claude <noreply@anthropic.com>
2026-04-15 16:47:25 -05:00
Zanie Blue 091e808397 Silence warnings on empty SSL_CERT_DIR directory (#19018)
Closes #19013

---------

Co-authored-by: Claude <noreply@anthropic.com>
2026-04-15 16:47:00 -05:00
Zanie Blue 9d177269e1 Bump version to 0.11.7 (#19017) 0.11.7 2026-04-15 21:03:37 +00:00
Zanie Blue 0912d4432a Pin prettier in scripts/generate-crate-readmes.py to avoid prompts (#19016) 2026-04-15 15:52:54 -05:00
Charlie Marsh fb3b502495 Improve --exclude-newer hints (#18952)
## Summary

We now show a hint if there's an available version that's excluded and
would satisfy the range (and include that version in the hint).
Previously, we only showed this if _all_ versions were omitted.

For example:

```
  × No solution found when resolving dependencies:
  ╰─▶ Because there are no versions of iniconfig and iniconfig==2.0.0 was published after the exclude newer time, we can conclude that all versions of iniconfig cannot be used.
      And because your project depends on iniconfig, we can conclude that your project's requirements are unsatisfiable.

      hint: `iniconfig` was filtered by `exclude-newer` to only include packages uploaded before 2006-12-02T02:07:43Z. The latest version satisfying the requirement is v2.0.0, published on 2023-01-07. Consider using `exclude-newer-
  package` to override the cutoff for this package.
```

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

---------

Co-authored-by: Zanie Blue <contact@zanie.dev>
2026-04-15 11:39:32 -05:00
Zanie Blue faa49f4c5c Upgrade CPython build to 20260414 (#19004) 2026-04-14 13:20:28 -05:00
Charlie Marsh 92222f0192 Avoid installing tool workspace member dependencies as editable (#18891)
## Summary

Right now, if you use `uv tool install`, we install the tool itself as
non-editable, but if the tool is part of a workspace, then any workspace
dependencies are (accidentally) installed as editable. This PR modifies
the behavior such that those dependencies are installed as non-editable,
unless `--editable` is provided, in which case the tool itself and any
workspace dependencies respect `--editable`.

Similar logic applies to `--with` and `--with-editable`. If the target
is in a workspace, we propagate the no-editable and yes-editable flags
(respectively) to its members.

Closes https://github.com/astral-sh/uv/issues/16306
2026-04-14 10:01:31 -04:00
Tomasz Kramkowski e0793d517d Allow some modification of global preview state (#18994)
## Summary

Some preview flags are set early. Meaning the preview state can change
early on in uv's lifecycle. This means that the global preview must
accommodate for this scenario.

This PR implements that by having the normal preview state have two
initialisation stages.

`set` replaces `init` and allows unbounded new values of `preview` to be
applied to the state as long as it is not finalized.

Once `finalize` is called, the state becomes locked and further calls to
`set` result in an error.

## Test Plan

Existing test coverage.
2026-04-14 13:29:24 +00:00
Jack O'Connor 51b7b7b6b8 replace the RAYON_INITIALIZE LazyLock with a local Once
Since we don't actually need this `LazyLock` to contain data, I think
using a `Once` is slightly more idiomatic. `LazyLock` contains a `Once`
internally, so the actual synchronization that's happening in practice
is the same either way. (I noticed this while looking at how we use
`LazyLock` across our repos.)
2026-04-13 17:24:28 -07:00
Charlie Marsh 62c5e685d7 Elevate configuration errors to required-version mismatches (#18977)
## Summary

If we fail to parse a `pyproject.toml` or `uv.toml` due to unsupported
settings, we now do a post-validation check to see if we're _not_
running a required version, so that the error message reflects that
mismatch.

Closes https://github.com/astral-sh/uv/issues/17609.
2026-04-13 13:27:41 +00:00
renovate[bot] 2e38b57819 Update docker/login-action action to v4.1.0 (#18987) 2026-04-13 09:17:02 -04:00
renovate[bot] 4961a3cec4 Update taiki-e/install-action action to v2.73.0 (#18990) 2026-04-13 09:09:47 -04:00
renovate[bot] 42150cbbe4 Update Rust crate tokio to v1.51.0 (#18989) 2026-04-13 09:09:27 -04:00
renovate[bot] 3671946665 Update crate-ci/typos action to v1.45.0 (#18986) 2026-04-13 09:09:11 -04:00