Commit Graph

8827 Commits

Author SHA1 Message Date
konsti 5f6da0aaee Use Python 3.14 for CI cache check (#18796)
By updating to a newer Python version, we get a newer homeassistant
version. This change also pins the mac job to the same Python version as
the Linux job.
2026-04-01 15:29:47 -05:00
Zanie Blue 6b1ebc33dc Add a "release-gate" step to the release workflow (#18804)
The way this works is

1. `release-gate` is an environment which requires approval from another
person in the organization
2. Once approved, the release can continue
3. GitHub then requires approval for every subsequent job, which we use
the `release` environment for
4. We do not require team members to approve on the `release`
environment because we run _many_ child jobs during releases
5. The `release` environment uses a deployment protection rule which
queries a GitHub App we manage
6. The GitHub App checks if the `release-gate` job was successful in the
same workflow and approves or denies accordingly

The GitHub App's source is at
https://github.com/open-security-tools/ost-environment-gate and includes
another explanation of what's going on in this process.

We don't make the release-gate block everything, so builds can start at
least while we wait for the release-gate to be approved.
2026-04-01 15:23:37 -05:00
Martin Jansche 8fe68cf52d Support debug CPython ABI tags in environment compatibility (#18739)
## Summary

This PR fixes a problem in `uv pip install`, which currently refuses to
install debug wheels in virtual environments with debug CPythons.

Before this change, wheel parsing already preserved debug ABI suffixes
like cp313d and cp314d, but Tags::from_env only propagated free-threaded
and legacy pymalloc variants. As a result, uv would detect a debug
interpreter correctly during discovery while still generating
cp313/cp314 environment tags, causing debug-built wheels to be rejected
as incompatible.

Fix this by accepting a debug_enabled flag in Tags::from_env, mapping it
to CPythonAbiVariants::Debug, and passing the interpreter debug state
from the production call sites in uv-python and uv pip resolution.

Also update the affected tests and helpers, and add a regression test
that verifies debug CPython 3.13 generates cp313-cp313d manylinux tags.

## Test Plan

Tests run:
- cargo test -p uv-platform-tags
tags::tests::test_system_tags_debug_cpython -- --exact
- cargo test -p uv-installer
plan::tests::test_abi3_on_free_threaded_python_hint -- --exact
- cargo test -p uv-installer
plan::tests::test_gil_enabled_cpython_on_free_threaded_python_hint --
--exact
- cargo test -p uv-installer
plan::tests::test_abi3_on_regular_python_no_special_hint -- --exact
- cargo test -p uv --test it
pip_install::abi_compatibility_on_debug_python -- --exact

---------

Co-authored-by: konstin <konstin@mailbox.org>
2026-04-01 19:21:12 +02:00
Zanie Blue 8120c0a950 Remove powerpc64-unknown-linux-gnu from build targets (#18800)
Removes the `powerpc64-unknown-linux-gnu` target from the list of
supported build targets in `dist-workspace.toml`. The
`powerpc64le-unknown-linux-gnu` (little-endian) target remains in the
configuration.

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

Co-authored-by: Claude <noreply@anthropic.com>
2026-04-01 11:02:43 -05:00
konsti ce65a994e5 Bump simple API cache (#18797)
#18767 adds a new variant to `AbiTag`, which is incompatible with the
current rkyv cache.

By the conjoined powers of this PR and
https://github.com/astral-sh/uv/pull/18796, the cache test should pass
again.
2026-04-01 16:34:32 +02:00
konsti 5b414b1119 Don't drop blake2b hashes (#18794)
An oversight from adding blake2b hashes.
2026-04-01 14:07:56 +02:00
konsti 5b369e6370 Handle broken range request implementations (#18780)
This updates async_http_range_reader to v0.11.0 to add the missing range
request bounds validation:
https://github.com/astral-sh/async_http_range_reader/pull/8.

An open question is how we want to behave when the server has an
incorrect range request implementation (while advertising range request
support). In the current implementation, it warns with the index URL, so
that the user is aware that the massive slowdown is caused by a server
advertising broken features.

Also removes a dependency where the corresponding repo was deleted.

Fixes https://github.com/astral-sh/uv/issues/18316
2026-04-01 10:03:31 +00:00
Zsolt Dollenstein 0c1d0f7c80 Publish installers to /installers/uv/latest on the mirror (#18725) 2026-03-31 10:51:27 -04:00
Charlie Marsh 3e6c46e377 Emit abi3t tags for every abi3 version (#18777)
## Summary

See: https://github.com/astral-sh/uv/pull/18767#discussion_r3014555045.
2026-03-31 13:11:41 +00:00
konsti b7d5faf568 Reproducible Windows trampoline builds (#18665)
Build the Windows trampolines in a fully pinned docker container that
allows auditing the compilation in CI.
2026-03-31 12:15:44 +02:00
Charlie Marsh 222f988601 Implement support for PEP 803 (#18767)
## Summary

Closes https://github.com/astral-sh/uv/issues/18750.
2026-03-30 20:17:08 -04:00
Sebastian Willing 30e3342049 docs: document false opt-out for exclude-newer-package (#18768)
## Summary

The `exclude-newer-package` setting accepts `false` to exempt a specific
package from the global `exclude-newer` constraint (via
`PackageExcludeNewer::Disabled`), but this isn't documented. This PR
adds:

- A sentence in both doc comments for `exclude_newer_package` explaining
the `false` opt-out
- An example showing `false` alongside a date value

## Motivation

This came up while adding a 3-day `exclude-newer` quarantine to a
project that also uses a private registry without PEP 700 upload-time
metadata. The `false` opt-out is exactly the right mechanism, but it
took reading the source to discover it.

The `false` value is handled by the `PackageExcludeNewer::Disabled`
variant and its custom deserializer:

https://github.com/astral-sh/uv/blob/main/crates/uv-resolver/src/exclude_newer.rs

## Test plan

- Documentation-only change (doc comments in `settings.rs`)
- Verified the generated docs render correctly by checking the existing
doc generation pipeline uses these comments

## Disclaimer

Mismatch found by @alexandrukis, patch created by Claude, reviewed by
me.

---------

Co-authored-by: Charlie Marsh <charlie.r.marsh@gmail.com>
2026-03-30 20:34:14 +00:00
William Woodruff ceb0058626 uv audit: --ignore and --ignore-until-fixed (#18737)
## Summary

This adds two new options to `uv audit` plus their corresponding config
fields: `--ignore` and `--ignore-until-fixed`. These do pretty much what
they say on the tin:

- `--ignore ID` ignores the given vulnerability by ID, unconditionally.
Any ID (including aliases) can be used, since it's common for people to
use CVE IDs even though we consider PYSEC and OSV "more" canonical.
- `--ignore-until-fixed ID` ignores the given vulnerability by ID
*until* a fix version appears.

Both options are additive, i.e. can be passed multiple times. I've also
implemented a `[tool.uv.audit]` section that these will live under on
the config side.

Please bikeshed the naming, I'm not confident on it!

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

## Test Plan

Added unit tests for both the CLI and config pathways.

---------

Signed-off-by: William Woodruff <william@astral.sh>
2026-03-30 11:03:06 -04:00
Aiman 9ed9283e9c Add progress bar for hashing phase in uv publish (#18752)
closes #17034

## Summary

When publishing a package via `uv publish`, there is a `hashing` phase
before uploading where it appears the terminal freezes.
Added a progress bar to make it clear.

## Tests

### Hashing

<img width="710" height="67" alt="uv-hash"
src="https://github.com/user-attachments/assets/9af2b963-57d1-40ff-9750-37adebb65c15"
/>

### Uploading

<img width="715" height="128" alt="uv-hash-upload"
src="https://github.com/user-attachments/assets/7d3d0108-a301-47c7-8689-e4108e5b097c"
/>

### Debug mode

<img width="711" height="204" alt="uv-debug"
src="https://github.com/user-attachments/assets/a7797454-cd5a-4a69-9641-f60a6178d5b7"
/>

---------

Co-authored-by: konstin <konstin@mailbox.org>
2026-03-30 09:10:38 +00:00
renovate[bot] 7c2f6c696b Update astral-sh/setup-uv action to v8 (#18765)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [astral-sh/setup-uv](https://redirect.github.com/astral-sh/setup-uv) |
action | major | `v7.6.0` → `v8.0.0` |

---

### Release Notes

<details>
<summary>astral-sh/setup-uv (astral-sh/setup-uv)</summary>

###
[`v8.0.0`](https://redirect.github.com/astral-sh/setup-uv/releases/tag/v8.0.0):
🌈 Immutable releases and secure tags

[Compare
Source](https://redirect.github.com/astral-sh/setup-uv/compare/v7.6.0...v8.0.0)

### This is the first immutable release of `setup-uv` 🥳

All future releases are also immutable, if you want to know more about
what this means checkout [the
docs](https://docs.github.com/en/code-security/concepts/supply-chain-security/immutable-releases).

This release also has two breaking changes

#### New format for `manifest-file`

The previously deprecated way of defining a custom version manifest to
control which `uv` versions are available and where to download them
from got removed. The functionality is still there but you have to use
the [new
format](https://redirect.github.com/astral-sh/setup-uv/blob/main/docs/customization.md#format).

#### No more major and minor tags

To increase **security** even more we will **stop publishing minor
tags**. You won't be able to use `@v8` or `@v8.0` any longer. We do this
because pinning to major releases opens up users to supply chain attacks
like what happened to
[tj-actions](https://unit42.paloaltonetworks.com/github-actions-supply-chain-attack/).

> \[!TIP]
> Use the immutable tag as a version `astral-sh/setup-uv@8.0.0`
> Or even better the githash
`astral-sh/setup-uv@cec208311dfd045dd5311c1add060b2062131d57`

#### 🚨 Breaking changes

- Remove update-major-minor-tags workflow
[@&#8203;eifinger](https://redirect.github.com/eifinger)
([#&#8203;826](https://redirect.github.com/astral-sh/setup-uv/issues/826))
- Remove deprecrated custom manifest
[@&#8203;eifinger](https://redirect.github.com/eifinger)
([#&#8203;813](https://redirect.github.com/astral-sh/setup-uv/issues/813))

#### 🧰 Maintenance

- Shortcircuit latest version from manifest
[@&#8203;eifinger](https://redirect.github.com/eifinger)
([#&#8203;828](https://redirect.github.com/astral-sh/setup-uv/issues/828))
- Simplify inputs.ts
[@&#8203;eifinger](https://redirect.github.com/eifinger)
([#&#8203;827](https://redirect.github.com/astral-sh/setup-uv/issues/827))
- Bump release-drafter to v7.1.1
[@&#8203;eifinger](https://redirect.github.com/eifinger)
([#&#8203;825](https://redirect.github.com/astral-sh/setup-uv/issues/825))
- Refactor inputs
[@&#8203;eifinger](https://redirect.github.com/eifinger)
([#&#8203;823](https://redirect.github.com/astral-sh/setup-uv/issues/823))
- Replace inline compile args with tsconfig
[@&#8203;eifinger](https://redirect.github.com/eifinger)
([#&#8203;824](https://redirect.github.com/astral-sh/setup-uv/issues/824))
- chore: update known checksums for 0.11.2
@&#8203;[github-actions\[bot\]](https://redirect.github.com/apps/github-actions)
([#&#8203;821](https://redirect.github.com/astral-sh/setup-uv/issues/821))
- chore: update known checksums for 0.11.1
@&#8203;[github-actions\[bot\]](https://redirect.github.com/apps/github-actions)
([#&#8203;817](https://redirect.github.com/astral-sh/setup-uv/issues/817))
- chore: update known checksums for 0.11.0
@&#8203;[github-actions\[bot\]](https://redirect.github.com/apps/github-actions)
([#&#8203;815](https://redirect.github.com/astral-sh/setup-uv/issues/815))
- Fix latest-version workflow check
[@&#8203;eifinger](https://redirect.github.com/eifinger)
([#&#8203;812](https://redirect.github.com/astral-sh/setup-uv/issues/812))
- chore: update known checksums for 0.10.11/0.10.12
@&#8203;[github-actions\[bot\]](https://redirect.github.com/apps/github-actions)
([#&#8203;811](https://redirect.github.com/astral-sh/setup-uv/issues/811))

</details>

---

### Configuration

📅 **Schedule**: Branch creation - Between 12:00 AM and 03:59 AM, only on
Monday ( * 0-3 * * 1 ) (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:eyJjcmVhdGVkSW5WZXIiOiI0My45NC4xIiwidXBkYXRlZEluVmVyIjoiNDMuOTQuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiYnVpbGQ6c2tpcC1kb2NrZXIiLCJidWlsZDpza2lwLXJlbGVhc2UiLCJpbnRlcm5hbCJdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-30 09:48:20 +02:00
renovate[bot] b3bee55123 Update debian Docker tag to trixie-20260316 (#18760) 2026-03-29 21:22:37 -04:00
renovate[bot] cc2a514406 Update taiki-e/install-action action to v2.69.6 (#18764) 2026-03-29 21:22:31 -04:00
renovate[bot] 4f79352b66 Update dependency astral-sh/uv to v0.11.2 (#18763) 2026-03-29 21:22:23 -04:00
renovate[bot] c4c62ddf20 Update CodSpeedHQ/action action to v4.12.1 (#18762) 2026-03-29 21:22:15 -04:00
Charlie Marsh 47c8c273b0 Fix all cargo shear warnings (#18748)
## Summary

Like https://github.com/astral-sh/ruff/pull/24268.
2026-03-28 14:24:50 -04:00
Charlie Marsh d5f1325c9a Show free-threaded Python in built-wheel errors (#18740)
## Summary

Report `Python 3.14t` as appropriate.
2026-03-27 15:08:09 -04:00
Charlie Marsh 87da0ce43a Respect dependency metadata overrides in uv pip check (#18742)
## Summary

Closes https://github.com/astral-sh/uv/issues/18719.
2026-03-27 14:31:50 -04:00
Charlie Marsh dd717a6073 Pretty-print platform in built wheel errors (#18738)
## Summary

Prefer `macOS aarch64` over `macos aarch64`, etc.
2026-03-27 14:20:33 -04:00
Aria Desires 202e0f0831 Expand uv workspace metadata with dependency information from the lock (#18356)
## Summary

This expands `uv workspace metadata` with many of the fields that are
found in `uv.lock` so that we have a format with information about the
dependency graph/resolution that we're willing to call stable and have
people rely upon (rather than `uv.lock` which we'd rather you don't try
to interpret).

To a first approximation you can think of this as "uv.lock but
serialized to json" but with the fields a bit more limited for now (easy
to add later).

The biggest intentional divergence with uv.lock is that we favour
encoding the dependency graph in a form that looks more like our
internal "resolve" graph, in that hopes that it will simplify the work
of anyone doing analysis on the graph (we structure our internal graph
like this for a reason).

Specifically, the `resolve` field contains the entire dependency graph,
with packages desugarred into several different nodes. There are 4 kinds
of nodes (really 3, the build nodes will only be introduced when we
establish build-dependency locking):

* packages: `mypackage==1.0.0 @ registry+https://pypi.org/simple`
* extras: `mypackage[myextra]==1.0.0 @ registry+https://pypi.org/simple`
* groups: `mypackage:mygroup==1.0.0 @ registry+https://pypi.org/simple`
* build:    `mypackage(build)==1.0.0 @ registry+https://pypi.org/simple`

package nodes hold additional metadata about the package itself, and ids
of the associated extra/group/build nodes.

---

A package like this:

```toml
[project]
name = "mypackage"
version = "1.0.0"

dependencies = ["httpx"]

[project.optional-dependencies]
cli = ["rich"]

[dependency-groups]
dev = ["typing-extensions"]

[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"
```

will get 4 nodes with the following edges (Version and Source omitted
here for brevity):
* `mypackage`
  * `httpx`
* `mypackage(build)`
  * `hatchling`
* `mypackage[cli]`
  * `mypackage`
  * `rich`
* `mypackage:dev`
  * `typing-extensions`
  
Note that `mypackage[cli]` has a dependency edge on `mypackage` while
`mypackage:dev` does not. This is because
`mypackage[cli]` is fundamentally an augmentation of `mypackage` while
`mypackage:dev` is just a list of packages that happens to be defined by
`mypackage`'s pyproject.toml.
 
 The resulting nodes for `mypackage` will look something like:
 
 <details>
 <summary>json blob</summary>
 
```json
{
  "resolve": {
    "mypackage==1.0.0 @ editable+.": {
      "name": "mypackage",
      "version": "1.0.0",
      "source": {
        "editable": "."
      },
      "kind": "package",
      "dependencies": [
        {
          "id": "httpx==3.6 @ registry+https://pypi.org/simple"
          "marker": "sys_platform == 'linux'"
        },
      ],
      "optional_dependencies": [
        {
          "name": "cli",
          "id": "mypackage[cli]==1.0.0 @ editable+."
        },
      ],
      "dependency_groups": [
        {
          "name": "dev",
          "id": "mypackage:dev==1.0.0 @ editable+."
        }
      ]
      "build_system": {
        "build_backend": "hatchling.build",
        "id": "mypackage(build)==1.0.0 @ editable+."
      }
      "sdist": { ... },
      "wheels": [ ... ]
    },
    "mypackage:dev==1.0.0 @ editable+.": {
        "name": "mypackage",
        "version": "1.0.0",
        "source": {
          "editable": "."
        },
        "kind": {
          "group": "dev"
        },
        "dependencies": [
          {
            "id": "typing-extensions==1.2.3 @ registry+https://pypi.org/simple"
          },
        ]
      },
   }
   "mypackage[cli]==1.0.0 @ editable+.": {
      "name": "mypackage",
      "version": "1.0.0",
      "source": {
        "editable": "."
      },
      "kind": {
        "extra": "cli"
      },
      "dependencies": [
        {
          "id": "rich==2.2.3 @ registry+https://pypi.org/simple"
        },
        {
          "id": "mypackage==1.0.0 @ editable+."
        },
      ]
    },
    "mypackage(build)==1.0.0 @ editable+.": {
      "name": "mypackage",
      "version": "1.0.0",
      "source": {
        "editable": "."
      },
      "kind": "build",
      "dependencies": [
        {
          "id": "hatchling==3.2.3 @ registry+https://pypi.org/simple"
        },
      ]
    }
  }
}
```

</details>

## Test Plan

Snapshots
2026-03-27 09:22:03 -04:00
William Woodruff a4ee36e7d3 Integration tests for uv audit (#18673) 2026-03-27 06:59:18 -04:00
Eddie Zhou 6d889fd53d Add support for ROCm 7.2 (#18730)
## Summary

In the same vein as https://github.com/astral-sh/uv/pull/17681/, this
adds support for setting rocm7.2 as a torch backend.

I have used the following script in the comments to enumerate the
architectures.

```
$ python
Python 3.12.3 (main, Mar  3 2026, 12:15:18) [GCC 13.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import torch
>>> print(torch.cuda.get_arch_list())
['gfx900', 'gfx906', 'gfx908', 'gfx90a', 'gfx942', 'gfx1030', 'gfx1100', 'gfx1101', 'gfx1102', 'gfx1200', 'gfx1201', 'gfx950', 'gfx1150', 'gfx1151']
```

## Test Plan

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

---------

Co-authored-by: Charlie Marsh <crmarsh416@gmail.com>
Co-authored-by: Charlie Marsh <charlie.r.marsh@gmail.com>
2026-03-26 22:07:30 +00:00
Zanie Blue 96f329b8d2 Use the release environment in announce (#18733)
Otherwise, there is no approved deployment!
2026-03-26 22:04:22 +00:00
Zanie Blue 02036a8ba5 Bump version to 0.11.2 (#18732) 2026-03-26 20:44:25 +00:00
github-actions[bot] d247329fbb Sync latest Python releases (#18720)
Automated update for Python releases.

Co-authored-by: zanieb <2586601+zanieb@users.noreply.github.com>
2026-03-26 15:43:53 -05:00
Zanie Blue 66c65913d0 Fetch the cargo-dist binary directly instead of using the installer (#18731) 2026-03-26 15:40:15 -05:00
Zanie Blue 4faa20e7d8 Use the release environment in publish-versions 2026-03-26 14:11:40 -05:00
Zanie Blue bfefb87a13 Use the release environment in publish-docs (#18727)
See https://github.com/astral-sh/ty/pull/3147
2026-03-26 12:05:26 -05:00
konsti 944f009f84 Mute stderr_important dead code warning (#18724)
The warning is recently showing up a lot.
2026-03-26 10:43:56 -05:00
konsti 11c89d9771 Use uv reqwest client for self update (#17982)
Currently, axoupdater is using a plain reqwest client, not using uv's
TLS settings.
2026-03-26 09:28:12 -05:00
William Woodruff 25d5549836 Evaluate extras and groups when determining auditable packages (#18511)
## Summary

I've made `uv audit`'s approach to handling extras and groups
(explicitly) subtractive: we don't support flags like `--dev` (since `uv
audit` audits everything by default); instead, we only support flags
like `--no-dev`, `--no-group`, etc., that remove items from the
to-be-audited set.

To accomplish that, I've abstracted the filtering into a new
`Lock::packages_for_audit` API (maybe there's a better location for
it?). Implementation wise, it does a BFS similar to the one used in `uv
tree`. I _think_ there's some room/opportunity for DRYing there but I
wanted to keep the PR small/local 🙂

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

## Test Plan

None yet.

---------

Signed-off-by: William Woodruff <william@astral.sh>
Co-authored-by: konsti <konstin@mailbox.org>
2026-03-26 10:28:00 -04:00
konsti 7447dd9574 Remove unnecessary preview from uv init test (#18722) 2026-03-26 13:00:06 +00:00
Zsolt Dollenstein d9d03590d4 Make uv self update fetch the manifest from the mirror first (#18679) 2026-03-26 11:42:11 +00:00
Zanie Blue 7228ad62b9 Fix crates.io trusted publish workflow name (#18714) 2026-03-25 16:05:49 +00:00
Zanie Blue edc1beb69a Use trusted publishing for crates.io (#18709)
Moves from a crates.io API key to trusted publishing.

Setup of trusted publishing is automated via a script which creates the
trust relationship and disables publish by API key. The main breakage
here is that now, when we add a new crate, a release will fail. The
script is invoked during `release.sh` to catch this case and supports
creating a stub crate so the release can subsequently succeed — but this
will require the release author to have a local crates.io API key with
permissions to create projects and configure publishing. I tested this
script a few times end-to-end, but would not be surprised if it bites us
in the future.
2026-03-25 09:15:44 -05:00
konsti 8cdb2b087a Add a dedicated Windows PE editing error (#18710)
To narrow in the location for
https://github.com/astral-sh/uv/issues/18663, which currently has a too
generic error.
2026-03-25 13:41:11 +01:00
Varun Kumar 8b1a15eae6 Show uv self update success and failure messages with --quiet (#18645)
With -q, suppress informational messages but still show when an update
actually happens. With -qq, suppress all output.

Closes #18412

## Summary

Adds `stderr_important()` to `Printer` which is only suppressed with
`-qq` (silent), not `-q` (quiet). Uses this for the update success
message in `uv self update` so cron users can run with `-q` and only
get notified when an update actually occurs.

## Test Plan

A set of new tests.

---------

Co-authored-by: Tomasz (Tom) Kramkowski <tom@astral.sh>
2026-03-25 11:33:14 +00:00
Charlie Marsh 262a50bb4c Separate pending from ready command structures (#18707)
## Summary

A follow-up to #17890 to avoid some unwraps by separating pending from
ready commands.
2026-03-25 03:01:34 +00:00
Anders Kaseorg 867e535f2a Skip redundant project configuration parsing for uv run (#17890)
## Summary

With `PreviewFeature::TargetWorkspaceDiscovery` enabled, `uv run` was
parsing both the current directory’s project and the target script’s
project. Parsing configuration from the current directory is undesirable
in this case, and might fail with an error if the current directory is
inaccessible.

- Fixes #18687.
- Followup to #17423.

## Test Plan

- See #18687.

---------

Signed-off-by: Anders Kaseorg <andersk@mit.edu>
Co-authored-by: Charlie Marsh <charlie.r.marsh@gmail.com>
2026-03-25 01:52:56 +00:00
Zanie Blue a6042f67fc Bump version to 0.11.1 (#18704) 2026-03-24 22:18:22 +00:00
Charlie Marsh bf28f8956b Remove torchdata from list of packages to source from the PyTorch index (#18703)
## Summary

All versions are on PyPI, and newer versions are seemingly only
published on PyPI.

Closes https://github.com/astral-sh/uv/issues/18699.
2026-03-24 16:57:21 -04:00
Zanie Blue dd8bc028e9 Tell agents to use [...] style references (#18698) 2026-03-24 15:38:50 +00:00
Zanie Blue edb1744df6 Special-case == Python version request ranges (#9697)
Related to https://github.com/astral-sh/uv/issues/9695

Doesn't solve the reported issue with `requires-python` because that
doesn't go through the parser


https://github.com/astral-sh/uv/blob/6ed6fc108e95e742075cf1eddb09ec86c04f632e/crates/uv/src/commands/project/mod.rs#L518-L526
2026-03-24 08:45:27 -05:00
Zanie Blue f772f71b91 Cover --python <dir> in "Using arbitrary Python environments" (#6457)
Closes https://github.com/astral-sh/uv/issues/6237
2026-03-24 13:02:27 +00:00
Zsolt Dollenstein 82aa312db5 Revert treating 'Dynamic' values as case-insensitive (#18692)
#18669 is the cause of #18690. This PR reverts #18669 to address the
regression.
2026-03-24 12:40:55 +00:00
Zsolt Dollenstein 63f63b0ca2 Fix version annotations for PS_MODULE_PATH and UV_WORKING_DIR (#18691)
## Summary

Updates the `#[attr_added_in(...)]` version annotations for two
environment variables to reflect their actual release versions:

- `PS_MODULE_PATH`: introduced in PR #17870, released in 0.10.0
- `UV_WORKING_DIR`: introduced in PR #16884, released in 0.9.14

## Test Plan

N/A - This is a documentation/annotation update with no functional code
changes.

https://claude.ai/code/session_01XMu1RyFzAPG6Rhbu19gQoi

Co-authored-by: Claude <noreply@anthropic.com>
2026-03-24 12:25:54 +00:00