Commit Graph

7670 Commits

Author SHA1 Message Date
konstin 1860947930 Clear the env vars for tests
Currently, it's possible to break our test suite by having an env var set that influences uv, either a `UV_*` var, or something more generic such as the XDG env vars. We previously fixed them env-var-by-env-var as we discovered. By clearing the env var for subcommands entirely, we can invert this to only include the env vars we care about.

Notable limitations are that this only affects tests that use `TestContext::add_shared_env` (default, can be opted-out) and we still pass a (modified) `PATH`.
2025-10-15 22:11:59 +02:00
Zanie Blue 83635a6c45
Update changelog to escape GitHub bad behavior (#16315) 2025-10-15 08:45:05 -05:00
Zanie Blue 9db7d38cf7
Bump version to 0.9.3 (#16305) 2025-10-14 18:19:49 -05:00
Zanie Blue d1413a60d8
Add CPython 3.15.0a1 and 3.13.9 (#16304) 2025-10-14 18:05:44 -05:00
Mark Dodgson b151e0ea3d
Fix workspace with relative pathing (#16296)
<!--
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 #16285 

## Test Plan

<!-- How was it tested? -->
2025-10-14 19:15:19 +02:00
Geoffrey Thomas 8eada1685c
Fix comments on python_no_transparent_upgrade_with_venv_patch_specification (#16294)
I think this was originally intended to behave as the comments
specified, but the behavior changed in discussions in #13312 somewhere.
2025-10-14 07:32:47 -05:00
renovate[bot] f9fbf41f69
Update Rust crate ref-cast to v1.0.25 (#16272) 2025-10-13 10:59:44 -04:00
renovate[bot] 45e8b38bb6
Update Rust crate thiserror to v2.0.17 (#16276) 2025-10-13 10:59:09 -04:00
renovate[bot] ae273f35d3
Update Rust crate serde to v1.0.228 (#16275) 2025-10-13 10:59:01 -04:00
Zanie Blue 15829bb30a
Obfuscate Bearer Token values in logs (#16164)
Sometimes a credential's `Debug` formatted value appears in tracing logs
- make sure the credential doesn't appear there.

## Test plan

Added a test case + ran
```
uv pip install --default-index $PYX_API_URL/$SOME_INDEX $SOME_PACKAGE -vv
```
With an authenticated uv client and confirmed the tokens are obfuscated.

---------

Co-authored-by: Zsolt Dollenstein <zsol.zsol@gmail.com>
2025-10-13 08:28:20 -05:00
renovate[bot] 01d43382be
Update Rust crate rkyv to v0.8.12 (#16274) 2025-10-13 02:57:25 +00:00
renovate[bot] e3690e702f
Update Rust crate regex-automata to v0.4.12 (#16273) 2025-10-13 02:55:24 +00:00
renovate[bot] 15f1dc6269
Update Rust crate petgraph to v0.8.3 (#16270) 2025-10-13 02:42:49 +00:00
renovate[bot] 3837b92cc1
Update Rust crate owo-colors to v4.2.3 (#16269) 2025-10-13 02:40:07 +00:00
renovate[bot] dd89bdaab0
Update Rust crate quote to v1.0.41 (#16271) 2025-10-13 02:36:45 +00:00
renovate[bot] cd859ccd17
Update Rust crate memchr to v2.7.6 (#16268) 2025-10-12 22:21:43 -04:00
renovate[bot] c741e4bfb5
Update Rust crate fs-err to v3.1.3 (#16265) 2025-10-12 22:21:23 -04:00
renovate[bot] 7d5795e2a5
Update Rust crate flate2 to v1.1.4 (#16264) 2025-10-12 22:21:17 -04:00
renovate[bot] 1b91b31763
Update Rust crate goblin to v0.10.2 (#16266) 2025-10-13 02:00:35 +00:00
renovate[bot] 2898e5c346
Update Rust crate bytecheck to v0.8.2 (#16262) 2025-10-13 01:33:17 +00:00
renovate[bot] 3e6e1eddf5
Update Rust crate anstream to v0.6.21 (#16261) 2025-10-13 01:32:30 +00:00
renovate[bot] a2360c1753
Update Rust crate criterion to v4.0.4 (#16263) 2025-10-13 01:26:45 +00:00
Andrei Berenda c7d3d549e2
Move parsing concurrency env variable to EnvironmentOptions (#16223)
## Summary
- Move parsing `UV_CONCURRENT_INSTALLS`, `UV_CONCURRENT_BUILDS` and
`UV_CONCURRENT_DOWNLOADS` to `EnvironmentOptions`

Relates https://github.com/astral-sh/uv/issues/14720

## Test Plan

- Tests with existing tests
- Add test with invalid parsing
2025-10-12 21:22:30 -04:00
renovate[bot] d536d3f27d
Update dependency astral-sh/uv to v0.9.2 (#16259) 2025-10-13 01:13:59 +00:00
William Woodruff 141369ce73
Bump version to 0.9.2 (#16238)
Co-authored-by: Geoffrey Thomas <geofft@ldpreload.com>
2025-10-10 14:20:14 -04:00
github-actions[bot] d54a5bb5cb
Sync latest Python releases (#16229)
Add python-build-standalone 20251010 for CPython 3.12.12, 3.11.14, 3.10.19 and 3.9.24.

Co-authored-by: Geoffrey Thomas <geofft@ldpreload.com>
2025-10-10 13:35:37 -04:00
Harshith VH b4168e665e
Add uv tool list --show-python (#15814)
<!--
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 #15312 
Closes https://github.com/astral-sh/uv/issues/16237

---------

Co-authored-by: pythonweb2 <32141163+pythonweb2@users.noreply.github.com>
Co-authored-by: Wade Roberts <wade.roberts@centralsquare.com>
2025-10-10 12:33:26 -05:00
William Woodruff 6fb00a9936
publish: don't infer check URLs for pyx uploads (#16234) 2025-10-10 12:51:02 -04:00
konsti d45acaebc8
Fix typo in resolver internal docs (#16232) 2025-10-10 15:46:47 +00:00
samypr100 d5dd43aa18
Missing added_in on new env vars (#16217)
## Summary

Adds the version for environment variables added in
https://github.com/astral-sh/uv/pull/16040 and
https://github.com/astral-sh/uv/pull/16125. as these were in-flight
before documentation versioning was added.

Adds ability to emit a compiler error when added in is missing for
improved reporting to the developer.

e.g. example for the ones fixed in this PR

```shell
error: missing #[attr_added_in("x.y.z")] on `UV_UPLOAD_HTTP_TIMEOUT`
       note: env vars for an upcoming release should be annotated with `#[attr_added_in("next release")]`
   --> crates\uv-static\src\env_vars.rs:593:15
    |
593 |     pub const UV_UPLOAD_HTTP_TIMEOUT: &'static str = "UV_UPLOAD_HTTP_TIMEOUT";
    |               ^^^^^^^^^^^^^^^^^^^^^^

error: missing #[attr_added_in("x.y.z")] on `UV_WORKING_DIRECTORY`
       note: env vars for an upcoming release should be annotated with `#[attr_added_in("next release")]`
    --> crates\uv-static\src\env_vars.rs:1087:15
     |
1087 |     pub const UV_WORKING_DIRECTORY: &'static str = "UV_WORKING_DIRECTORY";
     |               ^^^^^^^^^^^^^^^^^^^^
error: could not compile `uv-static` (lib) due to 2 previous errors
```
2025-10-10 08:55:09 -05:00
Skyler Hawthorne ea5a09215b
fix recompiling every time in uv-python (#16214)
Cargo is currently recompiling uv-python on every invocation because the
minified JSON output file is getting a mod time newer than the last run.
Instead, set the mod time of the output file to the same as the input
file.
2025-10-09 16:10:08 -05:00
Zanie Blue 9887ef5bd7
Bump version to 0.9.1 (#16212)
Archives the 0.8.x changelog too.
2025-10-09 18:28:59 +00:00
Alyssa Coghlan 628eedea36
Fix pylock.toml config conflict error messages (#16211)
## Summary

When specifying constraints or overrides in combination with
`pylock.toml` as an input to `uv pip install`,
the error messages are not currently correct.

## Test Plan

No testing, it's a straightforward error string fix.

---------

Co-authored-by: Zanie Blue <contact@zanie.dev>
2025-10-09 17:38:18 +00:00
Andrei Berenda a58d031157
Add `UV_UPLOAD_HTTP_TIMEOUT` and respect `UV_HTTP_TIMEOUT` in uploads (#16040)
## Summary
- Move parsing `UV_HTTP_TIMEOUT`, `UV_REQUEST_TIMEOUT` and
`HTTP_TIMEOUT` to `EnvironmentOptions`
- Add new env varialbe `UV_UPLOAD_HTTP_TIMEOUT`

Relates https://github.com/astral-sh/uv/issues/14720

## Test Plan

Tests with existing tests
2025-10-09 12:28:30 -05:00
Zanie Blue 84d6a913ac Ignore pre-release Python versions when a patch version is requested (#16210)
I think this is ostensively breaking, though I think the impact would be
small given this will go out in 0.9.1 and should only affect people
using pre-release Python versions.

When `3.14.0` is requested (opposed to `3.14`), we treat this as a
request for a final / stable version and ignore pre-releases.

I think this is a fairly clean way to allow users to explicitly request
the stable version.

Closes https://github.com/astral-sh/uv/issues/16175
Follows #16208
2025-10-09 12:24:42 -05:00
Zanie Blue fb7d5361b0 Fix handling of Python requests with pre-releases in ranges 2025-10-09 12:24:42 -05:00
Assad Yousuf 24ebdf02c0
Preserve comments on version bump (#16141)
## Summary
Fixes [1633](https://github.com/astral-sh/uv/issues/16133). Preserves
comments preceding "version = ..." line when uv version --bump is ran

## Test Plan
Added IT test

---------

Co-authored-by: konsti <konstin@mailbox.org>
2025-10-09 16:07:00 +00:00
konsti 787d035d5e
Document why uv discards upper bounds on `requires-python` (#15927)
We're regularly get questions about this. The DPO thread is the best
ressource, but it's also a long read, so I summarized some points for
uv's decision.

---------

Co-authored-by: Zanie Blue <contact@zanie.dev>
2025-10-09 17:15:03 +02:00
konsti 3e6fe1da86
Allow missing `Scripts` directory (#16206)
With the new Python install manager, the `Scripts` directory reported by
Python may not exist.

See https://github.com/astral-sh/uv/pull/16205 for a failing CI run:
https://github.com/astral-sh/uv/actions/runs/18377230241/job/52354460636?pr=16205#step:4:15

Fixes https://github.com/astral-sh/uv/issues/16204
2025-10-09 16:34:40 +02:00
konsti f0fbda1001
Update codspeed to v4 (#16139)
Simplifies the codspeed setup.
2025-10-09 15:57:05 +02:00
konsti 40397ddb4b
Log Python choice in `uv init` (#16182)
Example output:

```
$ uv-debug init foo -v
  DEBUG uv 0.9.0+6 (d3324baf68 2025-10-08)
  DEBUG Acquired shared lock for `/home/konsti/.cache/uv`
  DEBUG No Python version file found in ancestors of working directory: /home/konsti/projects/foo
  DEBUG Checking for Python environment at: `foo/.venv`
  DEBUG Searching for default Python interpreter in managed installations or search path
  DEBUG Searching for managed installations at `/home/konsti/.local/share/uv/python`
  DEBUG Found managed installation `cpython-3.14.0-linux-x86_64-gnu`
  DEBUG Found `cpython-3.14.0-linux-x86_64-gnu` at `/home/konsti/.local/share/uv/python/cpython-3.14.0-linux-x86_64-gnu/bin/python3.14` (managed installations)
  DEBUG Using Python version `>=3.14` from default interpreter
  DEBUG `git rev-parse --is-inside-work-tree` failed but didn't contain `not a git repository` in stderr for `/home/konsti/projects/foo`
  DEBUG No Python version file found in ancestors of working directory: /home/konsti/projects/foo
  DEBUG Writing Python versions to `/home/konsti/projects/foo/.python-version`
  Initialized project `foo` at `/home/konsti/projects/foo`
  DEBUG Released lock at `/home/konsti/.cache/uv/.lock`
```

First commit is refactoring, second commit is the actual change.
2025-10-09 13:55:22 +00:00
Zanie Blue c96abc93f2
Pin a uv version in CI (#16207)
To reduce rate-limiting by avoiding a latest version fetch
2025-10-09 13:54:28 +00:00
konsti 5ee728b3e3
Retry all h2 errors (#16038)
The h2 errors, a specific type nested in reqwest errors, all look like
they shouldn't happen in regular operations and should be retried. This
covers all `io::Error`s going through h2 (i.e., only HTTP 2
connections).

Fixes https://github.com/astral-sh/uv/issues/15916
2025-10-09 13:53:14 +00:00
konsti d3dc451ee9
Update pypa/gh-action-pypi-publish to release tag (#16176)
Renovate has been complaining.
2025-10-09 15:34:43 +02:00
Mitchell Berendhuysen 40204f06d1
Replace `fs_err` alias (#16201) 2025-10-09 15:18:38 +02:00
samypr100 f81c6b9a62
document uv version for environment variables (#15196)
## Summary

As new environment variables get introduced (e.g. `UV_EDITABLE`) I
thought it would useful to start tracking which release they were
introduced. I think its a common workflow to navigate to the [env var
documentation](https://docs.astral.sh/uv/reference/environment) to know
what the env var for something is but then end up in a situation where
one is using an environment variable with the wrong version of uv and
not notice immediately that its not compatible and therefore ignored.

## Test Plan

Existing tests.

The versions in `since` have all been manually reviewed to the best of
my ability for correctness.
2025-10-08 12:31:12 -05:00
Zanie Blue 1051709792
Treat deleted Windows registry keys as equivalent to missing ones (#16194)
I noticed this flaked in a snapshot.

We may want to encode this in a helper at some point.
2025-10-08 12:24:36 -05:00
Zanie Blue a681fe9976
Retry on Rocky Linux Python install (#16190)
I'm not sure why these mirrors have been flaky lately.

e.g.
https://github.com/astral-sh/uv/actions/runs/18346934817/job/52256348387?pr=16182
2025-10-08 12:24:27 -05:00
Zanie Blue 3c30e11a4d
Add a system test for Rocky Linux 10 (#16191) 2025-10-08 12:24:10 -05:00
Zanie Blue 9cec60bcc4
Include the RFC in the docs for our `Credentials` variants (#16162) 2025-10-08 16:26:30 +00:00