Commit Graph

7063 Commits

Author SHA1 Message Date
renovate[bot] 78b6c5e571
Update Rust crate backon to v1.4.1 (#12413) 2025-03-25 01:50:35 +00:00
Charlie Marsh ddbf90c906
Revert "Show a dedicated hint for `setuptools` dash-separator change" (#12453)
Reverts astral-sh/uv#12438
2025-03-24 19:09:26 -04:00
Shlomo 20e7dcd366
docs: update dependency-bots.md (#12454)
https://github.com/renovatebot/renovate/issues/30909 has already been
resolved and released
2025-03-24 19:08:58 -04:00
Charlie Marsh 664c77a6e1
Show a dedicated hint for `setuptools` dash-separator change (#12438)
## Summary

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

## Test Plan

The error in-context:

![Screenshot 2025-03-24 at 12 10
11 PM](https://github.com/user-attachments/assets/48885d71-4222-4364-987f-65a4b776d91f)
2025-03-24 16:37:39 +00:00
Nick Janetakis 113ae87ab4
Update `--prune` help arg from `PRUNE` to `PACKAGE` (#12432)
## Summary

This fixes https://github.com/astral-sh/uv/issues/12426 which helps use
a more accurate arg name in the help output.

## Test Plan

I didn't test it locally, @charliermarsh gave me guidance on what to
change so I looked around that file for another example of `value_name`
and repeated what I saw. I kept it formatted to 1 line based on it not
being a long line. The other example of `value_name` had everything on
separate lines because there were a bunch of parameters passed in.

---------

Co-authored-by: Charlie Marsh <charlie.r.marsh@gmail.com>
2025-03-24 15:45:29 +00:00
Charlie Marsh 1865e0a6ee
Pass around index with associated metadata (#12406)
## Summary

This PR modifies the requirement source entities to store a (new)
container struct that wraps `IndexUrl`. This will allow us to store
user-defined metadata alongside `IndexUrl`, and propagate that metadata
throughout resolution.

Specifically, I need to store the "kind" of the index (Simple API vs.
`--find-links`), but I also ran into this problem when I tried to add
support for overriding `Cache-Control` headers on a per-index basis: at
present, we have no way to passing around metadata alongside an
`IndexUrl`.
2025-03-24 10:15:49 -04:00
renovate[bot] c3442e822e
Update Rust crate jiff to v0.2.5 (#12415) 2025-03-24 10:15:03 -04:00
renovate[bot] f00f8e908a
Update taiki-e/install-action digest to 914ac1e (#12410) 2025-03-24 09:19:26 -04:00
renovate[bot] 2040c1c330
Update webfactory/ssh-agent action to v0.9.1 (#12421) 2025-03-24 09:19:07 -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] ecbf288e6b
Update Rust crate mimalloc to v0.1.44 (#12416) 2025-03-24 09:18:26 -04:00
renovate[bot] 7c57cefaa8
Update Rust crate astral-tokio-tar to v0.5.2 (#12412) 2025-03-24 02:16:43 +00:00
renovate[bot] 6355a24240
Update PyO3/maturin-action action to v1.47.3 (#12411) 2025-03-23 22:15:00 -04:00
renovate[bot] b69be96e0f
Update astral-sh/setup-uv digest to 2269511 (#12409) 2025-03-23 22:14:16 -04:00
renovate[bot] 619e300025
Update Swatinem/rust-cache digest to 9d47c6a (#12408) 2025-03-23 22:14:10 -04:00
Maxime ec997b6fd2
Update PyTorch/Python version tip (#12402)
PyTorch 2.6.0 supports Python 3.13, and publishes wheels for it. Update
the tip to reflect this.


## Summary

Clarify docs.

## Test Plan

Look for "cp313" at the following URLs:
- [x] https://download.pytorch.org/whl/cu124/torch/
- [x] https://download.pytorch.org/whl/torch/
2025-03-23 17:23:08 -04:00
Zanie Blue 2b1d50a5ab
Fix log message for `SIGTERM` when child has exited (#12400) 2025-03-23 09:35:11 -04:00
konsti fb1b3232e8
Support modules with different casing in build backend (#12240)
Match the module name to its module directory with potentially different
casing.

For example, a package may have the dist-info-normalized package name
`pil_util`, but the importable module is named `PIL_util`.

We get the module name either as dist-info-normalized package name, or
explicitly from the user. For dist-info-normalizing a package name, the
rules are lowercasing, replacing `.` with `_` and replace `-` with `_`.
Since `.` and `-` are not allowed in module names, we can check whether
a directory name matches our expected module name by lowercasing it.

Fixes #12187

---------

Co-authored-by: Charlie Marsh <charlie.r.marsh@gmail.com>
2025-03-23 13:29:21 +00:00
Charlie Marsh 9af989e30c
Extract a single-index fetch in flat index client (#12394) 2025-03-23 09:07:19 -04:00
Charlie Marsh 2250ddedbf
Ignore `--find-links` entries for pinned indexes (#12396)
## Summary

In general, we merge `--find-links` entries into each index. If a
package is pinned to an index, though, it seems surprising (and wrong)
that we'd ever select a distribution from `--find-links`. This PR
modifies the provider to ignore `--find-links` for any explicitly pinned
packages.
2025-03-23 08:46:36 -04:00
Zanie Blue 869457890a
Add support for pre-releases to Python platform key regex (#12380)
Needed for more test cases on top of #12374
2025-03-23 03:19:04 +00:00
Zanie Blue ec499807f8
Add support for Python version requests in `uv python list` (#12375)
Allows `uv python list <request>` to filter the installed list. I often
want this and it's not hard to add.

I tested the remote download filtering locally (#12381 is needed for
snapshot tests)

```
❯ cargo run -q -- python list --all-versions 3.13
cpython-3.13.2-macos-aarch64-none    <download available>
cpython-3.13.1-macos-aarch64-none    /opt/homebrew/opt/python@3.13/bin/python3.13 -> ../Frameworks/Python.framework/Versions/3.13/bin/python3.13
cpython-3.13.1-macos-aarch64-none    <download available>
cpython-3.13.0-macos-aarch64-none    /Users/zb/.local/share/uv/python/cpython-3.13.0-macos-aarch64-none/bin/python3.13
❯ cargo run -q -- python list --all-versions 3.13 --only-installed
cpython-3.13.1-macos-aarch64-none    /opt/homebrew/opt/python@3.13/bin/python3.13 -> ../Frameworks/Python.framework/Versions/3.13/bin/python3.13
cpython-3.13.0-macos-aarch64-none    /Users/zb/.local/share/uv/python/cpython-3.13.0-macos-aarch64-none/bin/python3.13
```
2025-03-23 03:13:58 +00:00
kenwoodjw cdd6de555b
docs: Update dependencies.md (#12388)
<!--
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
Fixes #12334
<!-- What's the purpose of the change? What does it do, and why? -->

## Test Plan

<!-- How was it tested? -->
2025-03-22 22:06:11 -05:00
Zanie Blue 15bf83ced8
Add comments to the `with_filtered_python_keys` regex (#12379)
I need to edit this thing and it's a nightmare as written.

See https://github.com/astral-sh/uv/pull/12380
2025-03-22 21:57:15 -05:00
Zanie Blue f80003a61b
Add `uv python list` test cases (#12374)
Needed for 

- https://github.com/astral-sh/uv/pull/12367
- https://github.com/astral-sh/uv/pull/12375
2025-03-22 21:57:07 -05:00
Charlie Marsh bbf4f830b5
Remove flat index client's dependency on registry client (#12393)
## Summary

I want to use the flat index client from within the registry client, so
making them both depend on the same underlying primitives rather than
having the flat index client depend on the registry client.
2025-03-22 18:14:25 +00:00
Charlie Marsh ed0759fb45
Omit wheels from lockfile based on `--exclude-newer` (#12299)
## Summary

We respect `--exclude-newer` during resolution, but we weren't applying
it to individual _files_ when writing the lockfile. As a result, if
wheels were added to a distribution after its initial release, we'd end
up including them in the lockfile, even if they were uploaded after the
`--exclude-newer` date.

Closes https://github.com/astral-sh/uv/issues/12296.
2025-03-22 12:27:11 -04:00
Charlie Marsh 7ac6c6963d
Allow virtual packages with `--no-build` (#12314)
## Summary

Closes #12311.
2025-03-22 12:00:02 -04:00
Charlie Marsh 149102a4e7
Use a boxed slice for extras and groups (#12391)
## Summary

A very common struct, and these are immutable. Easy to optimize.
2025-03-22 11:53:36 -04:00
Charlie Marsh 4215d0e16b
Check all compatible torch indexes when `--torch-backend` is enabled (#12385)
## Summary

It's possible that the PyTorch version the user depends on isn't in the
latest index. These indexes are equally trusted, so we should override
the policy.

Closes #12357.
2025-03-22 11:53:23 -04:00
Charlie Marsh 59c6d34b59
Omit fragment when querying for wheels in Simple HTML API (#12384)
## Summary

Closes https://github.com/astral-sh/uv/issues/12383.
2025-03-22 11:36:50 -04:00
Charlie Marsh 2b3d6fd7b6
Support `.env` files in `uv tool run` (#12386)
## Summary

Closes https://github.com/astral-sh/uv/issues/12371.
2025-03-22 11:36:42 -04:00
Zanie Blue 42a87da857
Update some Python find tests to use filters (#12377) 2025-03-21 18:44:30 +00:00
Zanie Blue 2592e0ff1a
Update `python_required_python_major_minor` with note about Homebrew (#12378)
Resolves
https://github.com/astral-sh/uv/pull/12377#discussion_r2008114043
2025-03-21 18:35:53 +00:00
Ahmed Ilyas a80353de2b
Add `uv sync --check` flag (#12342)
## Summary

Closes #12338 

## Test Plan

`cargo test`

---------

Co-authored-by: Zanie Blue <contact@zanie.dev>
2025-03-21 15:48:27 +00:00
Aria Desires 26d40cb8a5
Restore "Support `python find --script` (#11891)"
Let's see if this reproduces in a PR now...

---------

Co-authored-by: Zanie Blue <contact@zanie.dev>
2025-03-21 10:31:43 -05:00
Christopher Tee bdef77c3fe
Retain end-of-line comment position when adding dependency (#12360)
<!--
Thank you for contributing to uv! To help us out with reviewing, please
consider the following:

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

## Summary

<!-- What's the purpose of the change? What does it do, and why? -->

This fixes a case described in #12333, where trailing comments in
dependencies can be unexpectedly shifted when a new dependency is added.

Fixes #12333.

## Test Plan

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

`cargo test` (Added a snapshot test)
2025-03-21 10:16:15 -04:00
Aria Desires 4eb7ab27ab
Revert "Support `python find --script` (#11891)" (#12364)
This reverts commit b128aa0499 (#11891)

It *seems* like it's causing several tests to fail on linux?
2025-03-21 09:22:38 -04:00
InSync b128aa0499
Support `python find --script` (#11891)
## Summary

Resolves #11794.

When `uv python find` is given a `--script` option, either the existing
environment for that script or the Python executable that would be used
to create it will be returned. If neither are found, the command exits
with exit code 1.

`--script` is incompatible with all other options to the same command.

## Test Plan

Unit tests.
2025-03-20 20:48:59 -05: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
Charlie Marsh cf20d9a1ca
Use small string for index name type (#12355)
## Summary

I'm considering passing this around more, so nice to reduce the size in
easy ways.
2025-03-20 21:14:48 -04:00
Charlie Marsh 82fe8662ab
Error on missing argument in `requirements.txt` (#12354)
Closes https://github.com/astral-sh/uv/issues/12348.
2025-03-20 19:25:27 -04:00
Zanie Blue 3d94602784
Bump version to 0.6.9 (#12347) 2025-03-20 15:46:26 -05:00
John Mumm 4b8a2de660
Add boolish value parser for *MANAGED_PYTHON flags (#12345)
There was a bug where `UV_MANAGED_PYTHON` and `UV_NO_MANAGED_PYTHON`
only accepted `true` or `false`. This switches to the boolish value
parser for those flags.

Closes #12336
2025-03-20 19:59:46 +01:00
Christian Bager Bach Houmann 584dd36e46
Fix cache_prune::prune_unzipped test to match updated error message format (#12330)
## Summary

Fixes the failing `cache_prune::prune_unzipped` test that was causing CI
failures in my other PR (#12328) and others like PR #12327.

The error message format changed to show a specific version constraint
(`iniconfig<=2.0.0`) rather than the generic 'all versions' message.
This PR updates the test to expect the new, more specific error message.

## Test Plan
Ran `cargo test -p uv cache_prune::prune_unzipped` to verify the test
now passes.
2025-03-20 09:49:05 -04: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 011a6de6dc
Make deserialization non-fatal when assessing source tree revisions (#12319)
## Summary

Closes https://github.com/astral-sh/uv/issues/12318.
2025-03-19 17:15:12 +00:00
Charlie Marsh bf12cdbd37
Add experimental `--torch-backend` to the PyTorch guide (#12317) 2025-03-19 12:52:01 -04:00
John Mumm 615cd6e045
Fail with specific error message when no password on auth always (#12313)
This addresses a small part of #12280, namely when you have
`authenticate` set to `always`, it will output a distinct error message
for the case where you have a username but are missing a password.
2025-03-19 17:43:45 +01:00
Charlie Marsh f7d9b0e2fa
Fix `#keyring-provider` references in alternative index docs (#12315)
## Summary

I think editors auto-complete to this because of the way the Markdown is
structured, but it's not quite right.
2025-03-19 16:40:22 +00:00