1290 Commits

Author SHA1 Message Date
Zanie Blue
1e8e08def2 Bump version to 0.7.0 and write changelog (#13201)
The changelog diff is deranged. Rendered at
https://github.com/astral-sh/uv/blob/zb/changelog-07/CHANGELOG.md#070

---------

Co-authored-by: Charlie Marsh <charlie.r.marsh@gmail.com>
Co-authored-by: Brent Westbrook <36778786+ntBre@users.noreply.github.com>
2025-04-29 16:37:00 -05:00
Zanie Blue
f84faf726a Make uv’s first-index strategy more secure by default by failing early on authentication failure (#12805)
uv’s default index strategy was designed with dependency confusion
attacks in mind. [According to the
docs](https://docs.astral.sh/uv/configuration/indexes/#searching-across-multiple-indexes),
“if a package exists on an internal index, it should always be installed
from the internal index, and never from PyPI”. Unfortunately, this is
not true in the case where authentication fails on that internal index.
In that case, uv will simply try the next index (even on the
`first-index` strategy). This means that uv is not secure by default in
this common scenario.

This PR causes uv to stop searching for a package if it encounters an
authentication failure at an index. It is possible to opt out of this
behavior for an index with a new `pyproject.toml` option
`ignore-error-codes`. For example:

```
[[tool.uv.index]]
name = "my-index"
url = "<index-url>"
ignore-error-codes = [401, 403]
```

This will also enable users to handle idiosyncratic registries in a more
fine-grained way. For example, PyTorch registries return a 403 when a
package is not found. In this PR, we special-case PyTorch registries to
ignore 403s, but users can use `ignore-error-codes` to handle similar
behaviors if they encounter them on internal registries.

Depends on #12651

Closes #9429
Closes #12362
2025-04-29 16:37:00 -05:00
Charlie Marsh
a3dae2512c Disallow mixing requirements across PyTorch indexes (#13179)
## Summary

If you use `--torch-backend=auto`, we want to avoid selecting (e.g.) a
`+cu124` build of `torch` alongside a `+cu126` build of `torchvision`.
2025-04-28 20:06:18 +00:00
renovate[bot]
37bd1d9547 Update Rust crate rustix to v1 (#13168) 2025-04-28 08:49:51 -04:00
John Mumm
4ee4a8861e Implement RFC 7231 compliant relative URI and fragment handling in redirects (#13050)
This PR restores #13041 and integrates two PRs from @zanieb:
* #13038
* #13040

It also adds tests for relative URI and fragment handling.

Closes #13037.

---------

Co-authored-by: Zanie Blue <contact@zanie.dev>
2025-04-28 09:07:06 +02:00
renovate[bot]
576a4ae3a7 Update Rust crate tempfile to v3.19.1 (#13158) 2025-04-28 03:08:02 +00:00
renovate[bot]
602d29a622 Update Rust crate miette to v7.6.0 (#13154) 2025-04-28 02:30:22 +00:00
renovate[bot]
2284985381 Update Rust crate indexmap to v2.9.0 (#13152) 2025-04-28 02:26:36 +00:00
renovate[bot]
9c8f13d102 Update Rust crate insta to v1.43.0 (#13153) 2025-04-28 02:26:15 +00:00
renovate[bot]
7aa2b82673 Update Rust crate smallvec to v1.15.0 (#13157) 2025-04-27 22:25:57 -04:00
renovate[bot]
8727b01c37 Update Rust crate petgraph to 0.8.0 (#13156) 2025-04-27 22:25:47 -04:00
renovate[bot]
7770ac60db Update Rust crate once_cell to v1.21.3 (#13155) 2025-04-27 22:25:39 -04:00
renovate[bot]
edbc6e9235 Update Rust crate toml to v0.8.21 (#13148) 2025-04-27 21:29:39 -04:00
renovate[bot]
2c5e95c6bc Update Rust crate tokio-util to v0.7.15 (#13147) 2025-04-27 20:37:38 -04:00
renovate[bot]
eb7590393f Update Rust crate syn to v2.0.101 (#13146) 2025-04-27 20:30:52 -04:00
renovate[bot]
5f6c5237b4 Update Rust crate jiff to v0.2.10 (#13145) 2025-04-27 20:28:55 -04:00
Charlie Marsh
8414e9f3dd Bump version to v0.6.17 (#13110) 2025-04-25 12:57:07 -05:00
konsti
43e5a6ef96 Update pubgrub to a3b4db3 (#13066)
Maintenance update to PubGrub a3b4db3abb1829ce889fb89fa6d157fef529ef7e
2025-04-24 10:39:57 +00:00
Zanie Blue
d8ad9d3cd6 Bump verison to 0.6.16 (#13042)
Includes #13041 

Also reverts https://github.com/astral-sh/uv/pull/13036
2025-04-22 03:53:08 +00:00
Zanie Blue
534953290b Revert "Properly handle authentication for 302 redirect URLs" (#13041)
This reverts commit 17ed789edb / #12920 

There's a regression reported in
https://github.com/astral-sh/uv/issues/13037 and it looks like we're
missing some important parts per #13040
2025-04-22 03:40:42 +00:00
Zanie Blue
e2f400adbe Bump version to 0.6.15 (#13034)
Co-authored-by: Charlie Marsh <charlie.r.marsh@gmail.com>
2025-04-22 00:03:33 +00:00
renovate[bot]
2803e6fc5f Update Rust crate http to v1.3.1 (#13015) 2025-04-21 08:30:23 -04:00
renovate[bot]
24041e5fbf Update Rust crate data-encoding to v2.9.0 (#13014) 2025-04-21 08:30:03 -04:00
konsti
da09ece8a9 Build backend: Add reference docs and schema (#12803)
Add reference documentation and schema integration for the uv build
backend. The reference documentation comes with a preview note upfront.
2025-04-21 12:27:49 +02:00
renovate[bot]
c810bc3a83 Update Rust crate proc-macro2 to v1.0.95 (#13000) 2025-04-21 02:49:52 +00:00
renovate[bot]
4f3cf4e746 Update Rust crate jiff to v0.2.9 (#12999) 2025-04-21 02:44:03 +00:00
renovate[bot]
64f4f7ea94 Update Rust crate assert_cmd to v2.0.17 (#12997) 2025-04-21 02:20:13 +00:00
John Mumm
e9e4ad4d7d Obfuscate username in tracing URL (#12969)
A URL username can be a secret token, so we should avoid logging it.
2025-04-19 11:11:41 +02:00
John Mumm
17ed789edb Properly handle authentication for 302 redirect URLs (#12920)
uv was failing to authenticate on 302 redirects when credentials were
available. This was because it was relying on `reqwest_middleware`'s
default redirect behavior which bypasses the middleware pipeline when
trying the redirect request (and hence bypasses our authentication
middleware). This PR updates uv to retrigger the middleware pipeline
when handling a 302 redirect, correctly using credentials from the URL,
the keyring, or `.netrc`.

Closes #5595
Closes #11097
2025-04-18 14:56:17 +02:00
John Mumm
211e712b83 Add test for install from remote requirements.txt (#12941)
Closes #2593.
2025-04-17 16:25:37 +02:00
konsti
88cd7d619f Cache which git in uv init (#12893)
Avoid running `which` multiple times, to be more coherent with the other
git code. In preparation of improving the `uv init` git handling.
2025-04-15 09:40:08 +00:00
renovate[bot]
291a13c276 Update Rust crate clap to v4.5.35 (#12699) 2025-04-14 12:35:41 +00:00
renovate[bot]
9289502ead Update Rust crate jiff to v0.2.8 (#12862) 2025-04-14 08:20:53 -04:00
renovate[bot]
034692e9a7 Update Rust crate anyhow to v1.0.98 (#12861)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [anyhow](https://redirect.github.com/dtolnay/anyhow) |
dev-dependencies | patch | `1.0.97` -> `1.0.98` |
| [anyhow](https://redirect.github.com/dtolnay/anyhow) |
workspace.dependencies | patch | `1.0.97` -> `1.0.98` |

---

### Release Notes

<details>
<summary>dtolnay/anyhow (anyhow)</summary>

###
[`v1.0.98`](https://redirect.github.com/dtolnay/anyhow/releases/tag/1.0.98)

[Compare
Source](https://redirect.github.com/dtolnay/anyhow/compare/1.0.97...1.0.98)

- Add
[`self.into_boxed_dyn_error()`](https://docs.rs/anyhow/1/anyhow/struct.Error.html#method.into_boxed_dyn_error)
and
[`self.reallocate_into_boxed_dyn_error_without_backtrace()`](https://docs.rs/anyhow/1/anyhow/struct.Error.html#method.reallocate_into_boxed_dyn_error_without_backtrace)
methods for anyhow::Error
([#&#8203;415](https://redirect.github.com/dtolnay/anyhow/issues/415))

</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:eyJjcmVhdGVkSW5WZXIiOiIzOS4yMzguMCIsInVwZGF0ZWRJblZlciI6IjM5LjIzOC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJpbnRlcm5hbCJdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-14 10:13:45 +02:00
renovate[bot]
97cde116ec Update Rust crate backon to v1.5.0 (#12866)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [backon](https://redirect.github.com/Xuanwo/backon) |
workspace.dependencies | minor | `1.4.1` -> `1.5.0` |

---

### Release Notes

<details>
<summary>Xuanwo/backon (backon)</summary>

###
[`v1.5.0`](https://redirect.github.com/Xuanwo/backon/releases/tag/v1.5.0)

[Compare
Source](https://redirect.github.com/Xuanwo/backon/compare/v1.4.1...v1.5.0)

#### What's Changed

- chore: Format code by
[@&#8203;Xuanwo](https://redirect.github.com/Xuanwo) in
[https://github.com/Xuanwo/backon/pull/191](https://redirect.github.com/Xuanwo/backon/pull/191)
- feat: Add adjust support for Retry by
[@&#8203;Xuanwo](https://redirect.github.com/Xuanwo) in
[https://github.com/Xuanwo/backon/pull/192](https://redirect.github.com/Xuanwo/backon/pull/192)
- chore(deps): update spin requirement from 0.9.8 to 0.10.0 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/Xuanwo/backon/pull/188](https://redirect.github.com/Xuanwo/backon/pull/188)
- docs: Polish docs for backon by
[@&#8203;Xuanwo](https://redirect.github.com/Xuanwo) in
[https://github.com/Xuanwo/backon/pull/193](https://redirect.github.com/Xuanwo/backon/pull/193)
- feat: Allow to control the max sleep time of exponential backoff by
[@&#8203;XmchxUp](https://redirect.github.com/XmchxUp) in
[https://github.com/Xuanwo/backon/pull/187](https://redirect.github.com/Xuanwo/backon/pull/187)
- Bump version to 1.5.0 by
[@&#8203;Xuanwo](https://redirect.github.com/Xuanwo) in
[https://github.com/Xuanwo/backon/pull/194](https://redirect.github.com/Xuanwo/backon/pull/194)

#### New Contributors

- [@&#8203;XmchxUp](https://redirect.github.com/XmchxUp) made their
first contribution in
[https://github.com/Xuanwo/backon/pull/187](https://redirect.github.com/Xuanwo/backon/pull/187)

**Full Changelog**:
https://github.com/Xuanwo/backon/compare/v1.4.1...v1.5.0

</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:eyJjcmVhdGVkSW5WZXIiOiIzOS4yMzguMCIsInVwZGF0ZWRJblZlciI6IjM5LjIzOC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJpbnRlcm5hbCJdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-14 09:54:22 +02:00
renovate[bot]
95d9d3a4c8 Update Rust crate codspeed-criterion-compat to v2.10.1 (#12867)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [codspeed-criterion-compat](https://codspeed.io)
([source](https://redirect.github.com/CodSpeedHQ/codspeed-rust)) |
dependencies | minor | `2.9.1` -> `2.10.1` |

---

### Release Notes

<details>
<summary>CodSpeedHQ/codspeed-rust (codspeed-criterion-compat)</summary>

###
[`v2.10.1`](https://redirect.github.com/CodSpeedHQ/codspeed-rust/releases/tag/v2.10.1)

[Compare
Source](https://redirect.github.com/CodSpeedHQ/codspeed-rust/compare/v2.10.0...v2.10.1)

#### What's Changed

- chore(cargo-codspeed): bump `cargo_metadata` to v0.19.2 by
[@&#8203;Boshen](https://redirect.github.com/Boshen) in
[https://github.com/CodSpeedHQ/codspeed-rust/pull/94](https://redirect.github.com/CodSpeedHQ/codspeed-rust/pull/94)

##### Internals

- chore(ci): add time scale measurement benches by
[@&#8203;art049](https://redirect.github.com/art049) in
[https://github.com/CodSpeedHQ/codspeed-rust/pull/88](https://redirect.github.com/CodSpeedHQ/codspeed-rust/pull/88)
- tests: add an env variable bench for testing by
[@&#8203;art049](https://redirect.github.com/art049) in
[https://github.com/CodSpeedHQ/codspeed-rust/pull/89](https://redirect.github.com/CodSpeedHQ/codspeed-rust/pull/89)

**Full Changelog**:
https://github.com/CodSpeedHQ/codspeed-rust/compare/v2.10.0...v2.10.1

###
[`v2.10.0`](https://redirect.github.com/CodSpeedHQ/codspeed-rust/releases/tag/v2.10.0)

[Compare
Source](https://redirect.github.com/CodSpeedHQ/codspeed-rust/compare/v2.9.1...v2.10.0)

#### What's Changed

- feat(cargo-codspeed): support `--jobs` flag in build command by
[@&#8203;GuillaumeLagrange](https://redirect.github.com/GuillaumeLagrange)
in
[https://github.com/CodSpeedHQ/codspeed-rust/pull/91](https://redirect.github.com/CodSpeedHQ/codspeed-rust/pull/91)
- fix: file name missing in codspeed rust flamegraph by
[@&#8203;GuillaumeLagrange](https://redirect.github.com/GuillaumeLagrange)
in
[https://github.com/CodSpeedHQ/codspeed-rust/pull/93](https://redirect.github.com/CodSpeedHQ/codspeed-rust/pull/93)

**Full Changelog**:
https://github.com/CodSpeedHQ/codspeed-rust/compare/v2.9.1...v2.10.0

</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:eyJjcmVhdGVkSW5WZXIiOiIzOS4yMzguMCIsInVwZGF0ZWRJblZlciI6IjM5LjIzOC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJpbnRlcm5hbCJdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-14 09:52:50 +02:00
renovate[bot]
ba3a2aa52e Update Rust crate reqwest-middleware to v0.4.2 (#12864)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[reqwest-middleware](https://redirect.github.com/TrueLayer/reqwest-middleware)
| workspace.dependencies | patch | `0.4.1` -> `0.4.2` |

---

### Release Notes

<details>
<summary>TrueLayer/reqwest-middleware (reqwest-middleware)</summary>

###
[`v0.4.2`](https://redirect.github.com/TrueLayer/reqwest-middleware/releases/tag/reqwest-middleware-v0.4.2)

### Added

-   Deprecated `fetch_mode_no_cors` as it's been deprecated in reqwest.

</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:eyJjcmVhdGVkSW5WZXIiOiIzOS4yMzguMCIsInVwZGF0ZWRJblZlciI6IjM5LjIzOC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJpbnRlcm5hbCJdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-14 09:48:46 +02:00
renovate[bot]
46e8f4b806 Update Rust crate tokio to v1.44.2 (#12791)
This PR contains the following updates:

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

### GitHub Vulnerability Alerts

####
[GHSA-rr8g-9fpq-6wmg](https://redirect.github.com/tokio-rs/tokio/pull/7232)

The broadcast channel internally calls `clone` on the stored value when
receiving it, and only requires `T:Send`. This means that using the
broadcast channel with values that are `Send` but not `Sync` can trigger
unsoundness if the `clone` implementation makes use of the value being
`!Sync`.

Thank you to Austin Bonander for finding and reporting this issue.

---

### Release Notes

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

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

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

This release fixes a soundness issue in the broadcast channel. The
channel
accepts values that are `Send` but `!Sync`. Previously, the channel
called
`clone()` on these values without synchronizing. This release fixes the
channel
by synchronizing calls to `.clone()` (Thanks Austin Bonander for finding
and
reporting the issue).

##### Fixed

- sync: synchronize `clone()` call in broadcast channel ([#&#8203;7232])

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

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

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

### 1.44.1 (March 13th, 2025)

##### Fixed

-   rt: skip defer queue in `block_in_place` context ([#&#8203;7216])

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

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "" (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:eyJjcmVhdGVkSW5WZXIiOiIzOS4yMzguMCIsInVwZGF0ZWRJblZlciI6IjM5LjIzOC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJpbnRlcm5hbCIsInNlY3VyaXR5Il19-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-10 10:26:48 +02:00
Zanie Blue
a4cec56dca Bump to 0.6.14 (#12786) 2025-04-09 16:29:25 -05:00
renovate[bot]
17a2e423ec Update Rust crate tokio to v1.44.0 (#12758) 2025-04-08 19:57:06 +00:00
renovate[bot]
b9c5d4fed2 Update Rust crate tokio to v1.43.1 (#12733) 2025-04-08 15:42:58 -04:00
renovate[bot]
e0b4dfe923 Update Rust crate unicode-width to 0.2.0 (#7632)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [unicode-width](https://redirect.github.com/unicode-rs/unicode-width)
| workspace.dependencies | minor | `0.1.13` -> `0.2.0` |

---

### Release Notes

<details>
<summary>unicode-rs/unicode-width (unicode-width)</summary>

###
[`v0.2.0`](https://redirect.github.com/unicode-rs/unicode-width/compare/v0.1.14...v0.2.0)

[Compare
Source](https://redirect.github.com/unicode-rs/unicode-width/compare/v0.1.14...v0.2.0)

</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:eyJjcmVhdGVkSW5WZXIiOiIzOC44MC4wIiwidXBkYXRlZEluVmVyIjoiMzkuOTIuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiaW50ZXJuYWwiXX0=-->

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: konstin <konstin@mailbox.org>
2025-04-08 19:33:00 +02:00
Zanie Blue
1cca93c099 Bump version to 0.6.13 (#12725) 2025-04-07 13:44:32 -05:00
Meitar Reihan
2b62f73064 Add UV_PYTHON_DOWNLOADS_JSON_URL to set custom managed python sources (#10939)
## Summary

Add an option to overwrite the list of available Python downloads from a
local JSON file by using the environment variable
`UV_PYTHON_DOWNLOADS_JSON_URL`

as an experimental support for providing custom sources for Python
distribution binaries #8015

related #10203

I probably should make the JSON to be fetched from a remote URL instead
of a local file.
please let me know what you think and I will modify the code
accordingly.

## Test Plan

### normal run
```
root@75c66494ba8b:/# /code/target/release/uv python list
cpython-3.14.0a4+freethreaded-linux-x86_64-gnu    <download available>
cpython-3.14.0a4-linux-x86_64-gnu                 <download available>
cpython-3.13.1+freethreaded-linux-x86_64-gnu      <download available>
cpython-3.13.1-linux-x86_64-gnu                   <download available>
cpython-3.12.8-linux-x86_64-gnu                   <download available>
cpython-3.11.11-linux-x86_64-gnu                  <download available>
cpython-3.10.16-linux-x86_64-gnu                  <download available>
cpython-3.9.21-linux-x86_64-gnu                   <download available>
cpython-3.8.20-linux-x86_64-gnu                   <download available>
cpython-3.7.9-linux-x86_64-gnu                    <download available>
pypy-3.10.14-linux-x86_64-gnu                     <download available>
pypy-3.9.19-linux-x86_64-gnu                      <download available>
pypy-3.8.16-linux-x86_64-gnu                      <download available>
pypy-3.7.13-linux-x86_64-gnu                      <download available>
```

### empty JSON file
```sh
root@75c66494ba8b:/# export UV_PYTHON_DOWNLOADS_JSON_URL=/code/crates/uv-python/my-download-metadata.json 
root@75c66494ba8b:/# cat $UV_PYTHON_DOWNLOADS_JSON_URL 
{}
root@75c66494ba8b:/# /code/target/release/uv python list
root@75c66494ba8b:/# 
```

### JSON file with valid version
```sh
root@75c66494ba8b:/# export UV_PYTHON_DOWNLOADS_JSON_URL=/code/crates/uv-python/my-download-metadata.json 
root@75c66494ba8b:/# cat $UV_PYTHON_DOWNLOADS_JSON_URL 
{
  "cpython-3.11.9-linux-x86_64-gnu": {
    "name": "cpython",
    "arch": {
      "family": "x86_64",
      "variant": null
    },
    "os": "linux",
    "libc": "gnu",
    "major": 3,
    "minor": 11,
    "patch": 9,
    "prerelease": "",
    "url": "https://github.com/astral-sh/python-build-standalone/releases/download/20240814/cpython-3.11.9%2B20240814-x86_64-unknown-linux-gnu-install_only_stripped.tar.gz",
    "sha256": "daa487c7e73005c4426ac393273117cf0e2dc4ab9b2eeda366e04cd00eea00c9",
    "variant": null
  }
}
root@75c66494ba8b:/# /code/target/release/uv python list
cpython-3.11.9-linux-x86_64-gnu    <download available>
root@75c66494ba8b:/# 
```

### Remote Path

```sh
root@75c66494ba8b:/# export UV_PYTHON_DOWNLOADS_JSON_URL=http://a.com/file.json 
root@75c66494ba8b:/# /code/target/release/uv python list
error: Remote python downloads JSON is not yet supported, please use a local path (without `file://` prefix)
```

---------

Co-authored-by: Aria Desires <aria.desires@gmail.com>
2025-04-07 13:55:00 -04:00
Aria Desires
c0ed5693a7 only warn if CRC appears to be missing (#12722)
an alternative to #12706 

fixes #12694
2025-04-07 12:49:05 -05:00
renovate[bot]
3aba9a3125 Update Rust crate hyper-util to v0.1.11 (#12703) 2025-04-07 10:00:59 -04:00
renovate[bot]
cc2e5d519f Update Rust crate home to v0.5.11 (#12702) 2025-04-07 09:59:22 -04:00
renovate[bot]
3574701844 Update Rust crate flate2 to v1.1.1 (#12701) 2025-04-07 09:59:16 -04:00
renovate[bot]
abf67e2db2 Update Rust crate ctrlc to v3.4.6 (#12700) 2025-04-07 09:59:06 -04:00
renovate[bot]
86cc2cc8e4 Update Rust crate cargo-util to v0.2.19 (#12698) 2025-04-07 09:58:58 -04:00