Commit Graph

5684 Commits

Author SHA1 Message Date
Zanie Blue fc7c2f8b50
Bump version to 0.8.19 (#15953) 2025-09-19 14:34:41 -05:00
github-actions[bot] 974a83b676
Sync latest Python releases (#15940)
Add Python 3.13.0rc3 (and some comments in .python-version).

Co-authored-by: Geoffrey Thomas <geofft@ldpreload.com>
2025-09-19 18:13:33 +00:00
konsti 00aa2ab672
Make `uv cache clean` parallel process safe (#15888)
Currently, `uv cache clean` and `uv cache prune` can cause crashes in
other uv processes running in parallel by removing their in-use files.

We can solve this by using a shared (read) lock on the cache directory,
while the `uv cache` operations use an exclusive (write) lock. The
drawback is that this is always one extra lock, and that we assume that
all platforms support shared locks.

Once Rust 1.89 fulfills our N-2 policy, we can add support for these
methods in fs_err and switch to
https://doc.rust-lang.org/std/fs/struct.File.html#platform-specific-behavior-2.

**Test Plan**

Open one terminal, run:

```
uv venv -c -p 3.13
UV_CACHE_DIR=cache uv cache clean
UV_CACHE_DIR=cache uv pip install numpy==2.0.0
```

Open another terminal, run:

```
UV_CACHE_DIR=cache uv cache clean
```

Fixes #15704
Part of #13883
2025-09-19 10:21:22 +02:00
Charlie Marsh 0889d53c25
Bump MSRV to 1.88 (#15935)
And bump the `rust-toolchain.toml` to `1.90`. Per our versioning policy.
2025-09-18 14:00:39 -04:00
Zanie Blue 4c2d9e19b0
Use `EnvVars` in linehaul (#15931) 2025-09-18 14:08:58 +00:00
Zanie Blue e23da5b315
Use `EnvVars` for Conda variables in tests (#15930) 2025-09-18 07:52:23 -05:00
Frazer McLean f122387f89
Fix implied `platform_machine` marker for `win_arm64` platform tag (#15921)
<!--
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

I'm back again after #14041, this time for `win_arm64`. I [asked a
Windows on ARM
user](https://github.com/getlogbook/logbook/pull/451#issuecomment-3295513650)
what the value of `platform.machine()` is, and it's `ARM64`.

## Test Plan

Updated/added tests
2025-09-17 19:33:59 -04:00
Zanie Blue c4c47814a8
Bump version to 0.8.18 (#15920) 2025-09-17 16:13:41 -05:00
Zanie Blue fa53a62f0b
Always treat conda environments named `base` and `root` as base environments (#15682)
Extends https://github.com/astral-sh/uv/pull/15679

I'm not sure if we want to do this. It is probably _generally_ true, but
I think I'd rather remove the special casing entirely? I think the main
case for this is that it could help prevent regressions from #15679 and
we can remove it in a breaking release?
2025-09-17 17:32:14 +00:00
Zanie Blue d5012c66bd
Add handling for unnamed conda environments in base environment detection (#15681)
While investigating https://github.com/astral-sh/uv/pull/15679, I
created an unnamed conda environment and noticed this quality which
allows us to detect that it's not the base environment.
2025-09-17 11:34:23 -05:00
Aria Desires 1943aba150
Allow `[project]` to be missing from a `pyproject.toml` (#14113)
Closes #8666 
Closes https://github.com/astral-sh/uv/issues/6838

---------

Co-authored-by: Zanie Blue <contact@zanie.dev>
2025-09-17 10:48:56 -05:00
Charlie Marsh 2a14edf75c
Respect `UV_INSECURE_NO_ZIP_VALIDATION=1` in duplicate header errors (#15912)
## Summary

This was just an oversight on these specific returns.

Closes https://github.com/astral-sh/uv/issues/15871.
2025-09-17 14:34:49 +00:00
Charlie Marsh dea1700945
Avoid ANSI codes in debug! messages (#15843)
## Summary

I spent time trying to figure out how to support this but came up empty.
It _seems_ like maybe the `DefaultFields` implementation in
`tracing-subscriber` uses debug formatting for fields...? So if you have
a string with ANSI codes, they end up printing as unformatted values? I
even reverted all our custom formatting in `logging.rs` and saw the same
thing.

Closes https://github.com/astral-sh/uv/issues/15840.
2025-09-17 14:30:43 +00:00
Charlie Marsh 48f507680c
Add PyG packages to torch backend (#15911)
## Summary

These are now supported on pyx.
2025-09-17 14:18:30 +00:00
Charlie Marsh d4806ee921
Re-add `triton` as a torch backend package (#15910)
## Summary

This accidentally regressed in
https://github.com/astral-sh/uv/pull/15769/files#diff-fcd4a516243929cdb086b7b79af9865a6ed432a0386765b0436392edc17a5a4eL260.
2025-09-17 14:04:50 +00:00
chisato accfb48876
Fix `uv sync --no-sources` not switching from editable to registry installations (#15234)
## Summary

Fixes issue #15190 where `uv sync --no-sources` fails to switch from
editable to registry package installations. The problem occurred because
the installer's satisfaction check didn't consider the `--no-sources`
flag when determining if an existing editable installation was
compatible with a registry requirement.

## Solution

Modified `RequirementSatisfaction::check()` to reject non-registry
installations when `SourceStrategy::Disabled` and the requirement is
from registry. Added `SourceStrategy` parameter threading through the
entire call chain from commands to the satisfaction check to ensure
consistent behavior between `uv sync --no-sources` and `uv pip install
--no-sources`.

---------

Co-authored-by: Charlie Marsh <charlie.r.marsh@gmail.com>
2025-09-17 06:35:32 -05:00
konsti eb5ec95396
Better warning for no direct build (#15898)
**Setup**

```
$ git clone https://github.com/wheelnext/variant_aarch64
$ cd variant_aarch64
$ git checkout 1d047e667dbce4c74878a68c653a6b41bc3d3684
```

**Before**

```
$ uv build -v
[...]
DEBUG Not using uv build backend direct build of , no pyproject.toml: TOML parse error at line 5, column 1
  |
5 | [project]
  | ^^^^^^^^^
missing field `version`
[...]
```

**After**

```
$ uv build -v
[...]
DEBUG Not using uv build backend direct build of ``, pyproject.toml does not match: The value for `build_system.build-backend` should be `"uv_build"`, not `"flit_core.buildapi"`
[...]
```

The empty string gets fixed in
https://github.com/astral-sh/uv/pull/15897

---------

Co-authored-by: Zanie Blue <contact@zanie.dev>
2025-09-17 13:18:41 +02:00
Zanie Blue d805d4a370
Use `_CONDA_ROOT` to detect conda base environments (#15680)
While investigating https://github.com/astral-sh/uv/pull/15679, I
noticed this variable was available in the environment and seems like a
nice additional heuristic.
2025-09-17 11:17:06 +00:00
Zanie Blue ee5f155f7e
Invert the logic for determining if a path is a base conda environment (#15679)
Closes https://github.com/astral-sh/uv/issues/15604

The previous logic does not match the discussion in the original issue
about this feature, nor does it match the comment for the function. I'm
confused because I know this logic is working for some people? I'm
consequently a little wary of making this change. I'm following up with
some additional changes that should ensure this is robust, e.g., #15680
2025-09-17 06:04:29 -05:00
github-actions[bot] 9ec7971b4a
Add GraalPy 25.0.0 with support for Python 3.12 (#15900)
Automated update for Python releases.

Co-authored-by: zanieb <2586601+zanieb@users.noreply.github.com>
2025-09-17 02:54:31 +00:00
Zanie Blue 664eadc59a
Fix verbose logging configuration for flake (#15902)
Alas in
https://github.com/astral-sh/uv/actions/runs/17784455913/job/50549326728?pr=15900
we caught the flake with the assert but the `-vv` flags were not in the
right position!
2025-09-17 02:54:12 +00:00
Harshith VH 705b35c552
fix misleading debug message in uv sync (#15881)
<!--
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

- Added `RemovableReason` enum to track removal context
- Updated `OnExisting::Remove` to include source information
- Modified debug message to show appropriate context
- Updated all call sites to specify correct removal source

fixes: #14734

---------

Co-authored-by: Zanie Blue <contact@zanie.dev>
2025-09-16 18:39:08 +00:00
konsti 60f2ca3388
Don't user display empty string for absolute path CWD (#15897)
With the previous order an absolute path would become an empty string.
2025-09-16 17:49:08 +00:00
Charlie Marsh 422863ffde
Infer check URL from publish URL when known (#15886)
## Summary

If we know the publish URL-to-check URL mapping, we can just infer it.
2025-09-16 14:03:03 +00:00
Charlie Marsh ac52201626
Show organization name after authenticating (#15823)
## Summary

Shows the name of the logged-in organization on success, rather than
repeating the URL.
2025-09-16 09:46:43 -04:00
konsti 663053b0d1
packse: Use our own rendering exclusively, and use pylock.toml (#15796)
This PR contains two changes: The companion PR to
https://github.com/astral-sh/packse/pull/277, which moderately
simplifies the uv side, and switching to pylock.toml for packse as
dogfooding. These changes can be applied independent from each other.

Since all files, including the vendored build dependencies, are now on
GitHub Pages under the same root, we only need a packse index root URL.
2025-09-16 15:25:11 +02:00
Harshith VH 2825ee3435
Add `--no-clear` to `uv venv` to disable removal prompts (#15795)
<!--
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?
-->

Closes #15485

---------

Co-authored-by: Aditya-PS-05 <adityapratapsjnhh7654@gmail.com>
Co-authored-by: Zanie Blue <contact@zanie.dev>
2025-09-16 08:24:57 -05:00
Zanie Blue 89a59749c0
Store native credentials for realms with the https scheme stripped (#15879)
Closes https://github.com/astral-sh/uv/issues/15818

Unfortunately, this is how we perform lookups. We could also change the
lookup to include the scheme. I expect all of this to change in the
future anyway, as I want to redesign the storage model for native
credentials.
2025-09-15 13:47:33 -05:00
Zanie Blue 31f46cd6a6
Use the root index URL when retrieving credentials from the native store (#15873)
Part of https://github.com/astral-sh/uv/issues/15818

We use the root when we store the credentials, so we need to use the
root when we retrieve them!
2025-09-15 13:47:24 -05:00
Zanie Blue daff98988b
Add test for realm-level authentication (#15877)
Test coverage for https://github.com/astral-sh/uv/issues/15818
2025-09-15 17:27:59 +00:00
Zanie Blue e90d13e53b
Remove `lock_git_change_log` (#15880)
This test is unstable
2025-09-15 12:04:18 -05:00
Zanie Blue 0aa3c4e094
Propagate preview flag to client for `native-auth` feature (#15872)
Somehow propagation of this got dropped during a rebase, so we never
actually used the native store during resolution.

Part of https://github.com/astral-sh/uv/issues/15818
2025-09-15 10:51:44 -05:00
Charlie Marsh d706c07ae3
Avoid re-parsing `pyproject.toml` when provided as a source (#15851)
## Summary

In the process of making a different change, I noticed that we parse
this during source discovery, throw it away, then parse it again later.
2025-09-15 10:07:38 -04:00
Charlie Marsh ef17e7d0f4
Load credentials for explicit members when lowering (#15844)
## Summary

If the target for `uv pip compile` is a `pyproject.toml` in a
subdirectory, we won't have loaded the credentials when we go to lower
(since it won't be loaded as part of "configuration discovery"). We now
add those indexes just-in-time.

Closes https://github.com/astral-sh/uv/issues/15362.
2025-09-15 13:54:38 +00:00
Charlie Marsh 64bcd4e8a6
Improve BSD tag construction (#15829)
## Summary

I had to use ChatGPT to help with my research on the "correct"
architecture names for these platforms; there could still be some rough
edges, but this seems like an improvement.

Closes https://github.com/astral-sh/uv/issues/15799.
2025-09-14 10:48:37 -04:00
Charlie Marsh 3c813cde76
Error when `pyproject.toml` target does not exist for dependency groups (#15831)
## Summary

Closes https://github.com/astral-sh/uv/issues/15789.
2025-09-14 13:49:35 +00:00
Charlie Marsh b770639c91
Rename `provides_extras` to `provides_extra` (#15825)
## Summary

This is now consistent with `requires_dist` (singular).
2025-09-14 13:27:45 +00:00
Charlie Marsh 312084f2dd
Allow cached environment reuse with `@latest` (#15827)
## Summary

I think this is leftover from a prior refactor whereby we used to avoid
reusing the cached environment if `--reinstall` was passed; but then we
stopped allowing `--reinstall` in `uv tool run` anyway, and this got
changed to `--refresh`. It seems wrong to skip cache reuse with
`--refresh`, though.

Closes https://github.com/astral-sh/uv/issues/15824.
2025-09-14 09:10:46 -04:00
Charlie Marsh 0a2a7bc445
Log when the cache is disabled (#15828)
## Summary

This strikes me as fairly reasonable.

Closes https://github.com/astral-sh/uv/issues/15822.
2025-09-14 01:57:10 +00:00
Charlie Marsh f59d00b479
Allow escaping spaces in --env-file handling (#15815)
## Summary

We allow space-delimiting for `--env-file`, but Clap doesn't support any
form of escaping, so as-is, there's no way to provide a `.env` file in a
directory that contains a space. We now do the splitting ourselves and
respect escapes.

Closes https://github.com/astral-sh/uv/issues/15806.
2025-09-12 18:11:51 -04:00
Charlie Marsh b1fbb524d2
Include SHA when listing lockfile changes (#15817)
## Summary

Right now, we only list changes if the _version_ differs. This PR takes
the SHA into account. We may want to list changes to _any_ sources, but
that gets more complicated (e.g., if the user swaps the index URL, we'd
have to show _all_ changes to the index URL).

Closes #15810.
2025-09-12 17:57:58 +00:00
Charlie Marsh bd8a9348bd
Document `NO_PROXY` support (#15816)
Closes https://github.com/astral-sh/uv/issues/15785.
2025-09-12 13:11:05 -04:00
Ahmed Ilyas 9153d1a5e3
Deprecate `tool.uv.dev-dependencies` (#15469)
## Summary

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

## Test Plan

`cargo test`

---------

Co-authored-by: Zanie Blue <contact@zanie.dev>
2025-09-12 15:08:09 +00:00
Zanie Blue 8f3583a6e6
Allow selection of debug build interpreters (#11520)
Extends the `PythonVariant` logic to support interpreters with the debug
flag enabled.
2025-09-12 13:32:22 +00:00
rimathia 3081557159
Better defaults for native build backend cache keys (#15705)
<!--
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

This change extends the default initialized projects with scikit and
maturin build backends to ensure that the rust or C++ build gets invoked
when a source file changes.

## Test Plan

`cargo run init cppextension-test --build-backend=scikit` followed by
manual testing of the behaviour of the resulting project under `uv run
--with jupyter jupyter lab` and changes to the source file of the
extension.
Analogous for `cargo run init maturin-test --build-backend=maturin `.

## Relevant Issues

The question of why the python extension is not rebuilt on source
changes has been discussed in
https://github.com/astral-sh/uv/issues/15701#issuecomment-3258714942.
2025-09-12 11:14:59 +02:00
William Woodruff 21a92c1632
feat(publish): include blake2b hash in upload form (#15794) 2025-09-11 16:17:07 -04:00
Harshith VH a0f8359012
Add conflict detection between --only-group and --extra flags (#15788)
<!--
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

- Added `conflicts_with = "only_group"` to `--extra` arguments in
`SyncArgs`, `RunArgs`, and `ExportArgs`
- Added tests to verify proper conflict detection and error messages

**Before:** The `--extra` flag was silently ignored when used with
`--only-group`
**After:** Clear error message: `error: the argument '--only-group
<ONLY_GROUP>' cannot be used with '--extra <EXTRA>'`

fixes: #15676 

## Test Plan

- Tests confirm proper error message format when `--only-group` and
`--extra` are used together
- Verified existing functionality remains unchanged when flags are used
independently
2025-09-11 10:34:49 -05:00
Harsh Pratap Singh 5f2871e695
Support Gitlab CI/CD as a trusted publisher (#15583)
Co-authored-by: William Woodruff <william@astral.sh>
2025-09-11 10:35:04 -04:00
Zanie Blue cbb713f705
Review for #15769 (#15775)
Addresses my review comments from
https://github.com/astral-sh/uv/pull/15769
2025-09-11 13:20:13 +00:00
konsti 2ec71bd608
Update packse to 0.3.52: Fix requires python 3.12 (#15786)
Pull in the latest packse changes to make all test work with the new
default Python requirement, 3.12.
2025-09-11 13:19:34 +00:00