1270 Commits

Author SHA1 Message Date
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
Charlie Marsh
c4fd34f063 Use Credentials abstraction in uv-publish (#12682)
## Summary

I noticed that we aren't using these here -- we have a separate username
and password situation.
2025-04-04 19:07:51 -04:00
Zanie Blue
ac145d8150 Skip repeated directories in PATH when searching for Python interpreters (#12367)
Closes https://github.com/astral-sh/uv/issues/12302

The change is visible in [this
commit](49be22dad9).
2025-04-03 11:13:07 -05:00
Zanie Blue
4a9dd27179 Bump to 0.6.12 (#12637) 2025-04-02 15:22:15 -05:00
renovate[bot]
1d2d6aa1e4 Update Rust crate etcetera to 0.10.0 (#12575) 2025-03-31 09:07:33 -04:00
renovate[bot]
c08a1929a9 Update Rust crate either to v1.15.0 (#12574) 2025-03-31 09:07:21 -04:00
renovate[bot]
4acfa8dbef Update Rust crate codspeed-criterion-compat to v2.9.1 (#12573) 2025-03-31 09:07:06 -04:00
renovate[bot]
37dc3cee28 Update Rust crate clap to v4.5.34 (#12571) 2025-03-31 09:06:55 -04:00
Charlie Marsh
fe7fc323dd Bump version to v0.6.11 (#12535) 2025-03-30 15:35:42 -04:00
Charlie Marsh
bd9c365b92 Support --find-links-style "flat" indexes in [[tool.uv.index]] (#12407)
## Summary

This PR extends `[[tool.uv.index]]` to support `--find-links`-style
"flat" indexes, so that users can point to such indexes without using
`--find-links` _and_ get access to the full functionality of
`[[tool.uv.index]]` (e.g., they can now pin packages to
`--find-links`-style indexes).

Note that, at present, `--find-links` indexes actually have some quirky
behavior, in that we combine them into a single entity and then merge
the discovered distributions into each Simple API-style index. The
motivation here, IIRC, was to match pip's behavior quite closely. I'm
interested in _removing_ that behavior, but it'd be breaking (and may
also be inconvenient for some use-cases). So, the behavior for indexes
passed in via `--find-links` remains completely unchanged. However,
`[[tool.uv.index]]` entries with `format = "flat"` are now treated
identically to those defined with `format = "simple"` (the default), in
that we stop after we find the first-matching index, etc.

Closes https://github.com/astral-sh/uv/issues/11634.
2025-03-25 21:14:44 -04:00
Charlie Marsh
f2a2d982b8 Bump version to v0.6.10 (#12430) 2025-03-25 20:43:41 -04:00
renovate[bot]
c2eb32164d Update Rust crate windows-registry to v0.5.1 (#12419) 2025-03-25 01:56:42 +00:00
renovate[bot]
c5b6a0849e Update Rust crate boxcar to v0.2.11 (#12414) 2025-03-25 01:56:07 +00:00
renovate[bot]
78b6c5e571 Update Rust crate backon to v1.4.1 (#12413) 2025-03-25 01:50:35 +00:00
renovate[bot]
c3442e822e Update Rust crate jiff to v0.2.5 (#12415) 2025-03-24 10:15:03 -04:00
renovate[bot]
5ac62e05c5 Update Rust crate reflink-copy to v0.1.26 (#12418) 2025-03-24 09:18:36 -04:00
renovate[bot]
7c57cefaa8 Update Rust crate astral-tokio-tar to v0.5.2 (#12412) 2025-03-24 02:16:43 +00:00
Charlie Marsh
46967723bb Move lowered requirement source type out of uv-pypi-types (#12356)
## Summary

This crate is for standards-compliant types, but this is explicitly a
type that's custom to uv. It's also strange because we kind of want to
reference `IndexUrl` on the registry type, but that's in a crate that
_depends_ on `uv-pypi-types`, which to me is a sign that this is off.
2025-03-20 21:16:12 -04:00
Zanie Blue
3d94602784 Bump version to 0.6.9 (#12347) 2025-03-20 15:46:26 -05:00
Zanie Blue
37c25f2a9d Use keyring --mode creds when authenticate = "always" (#12316)
Previously, we required a username to perform a fetch from the keyring
because the `keyring` CLI only supported fetching password for a given
service and username. Unfortunately, this is different from the keyring
Python API which supported fetching a username _and_ password for a
given service. We can't (easily) use the Python API because we don't
expect `keyring` to be installed in a specific environment during
network requests. This means that we did not have parity with `pip`.

Way back in https://github.com/jaraco/keyring/pull/678 we got a `--mode
creds` flag added to `keyring`'s CLI which supports parity with the
Python API. Since `keyring` is expensive to invoke and we cannot be
certain that users are on the latest version of keyring, we've not added
support for invoking keyring with this flag. However, now that we have a
mode that says authentication is _required_ for an index (#11896), we
might as well _try_ to invoke keyring with `--mode creds` when there is
no username. This will address use-cases where the username is
non-constant and move us closer to `pip` parity.
2025-03-19 16:30:32 -05:00
Charlie Marsh
5173b59b50 Automatically infer the PyTorch index via --torch-backend=auto (#12070)
## Summary

This is a prototype that I'm considering shipping under `--preview`,
based on [`light-the-torch`](https://github.com/pmeier/light-the-torch).

`light-the-torch` patches pip to pull PyTorch packages from the PyTorch
indexes automatically. And, in particular, `light-the-torch` will query
the installed CUDA drivers to determine which indexes are compatible
with your system.

This PR implements equivalent behavior under `--torch-backend auto`,
though you can also set `--torch-backend cpu`, etc. for convenience.
When enabled, the registry client will fetch from the appropriate
PyTorch index when it sees a package from the PyTorch ecosystem (and
ignore any other configured indexes, _unless_ the package is explicitly
pinned to a different index).

Right now, this is only implemented in the `uv pip` CLI, since it
doesn't quite fit into the lockfile APIs given that it relies on feature
detection on the currently-running machine.

## Test Plan

On macOS, you can test this with (e.g.):

```shell
UV_TORCH_BACKEND=auto UV_CUDA_DRIVER_VERSION=450.80.2 cargo run \
  pip install torch --python-platform linux --python-version 3.12
```

On a GPU-enabled EC2 machine:

```shell
ubuntu@ip-172-31-47-149:~/uv$ UV_TORCH_BACKEND=auto cargo run pip install torch -v
    Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.31s
     Running `target/debug/uv pip install torch -v`
DEBUG uv 0.6.6 (e95ca063b 2025-03-14)
DEBUG Searching for default Python interpreter in virtual environments
DEBUG Found `cpython-3.13.0-linux-x86_64-gnu` at `/home/ubuntu/uv/.venv/bin/python3` (virtual environment)
DEBUG Using Python 3.13.0 environment at: .venv
DEBUG Acquired lock for `.venv`
DEBUG At least one requirement is not satisfied: torch
warning: The `--torch-backend` setting is experimental and may change without warning. Pass `--preview` to disable this warning.
DEBUG Detected CUDA driver version from `/sys/module/nvidia/version`: 550.144.3
...
```
2025-03-19 14:37:08 +00:00