Commit Graph

8821 Commits

Author SHA1 Message Date
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
Zanie Blue 264b63e8e0 Avoid version commit info build churn when using jj (#18685) 2026-03-24 07:19:32 -05:00
Charlie Marsh cde48c8ac8 Fallback to direct download when direct URL streaming is unsupported (#18688)
## Summary

Closes https://github.com/astral-sh/uv/issues/18620.
2026-03-24 07:57:29 -04:00
Zanie Blue 5ad8577ff8 Add missing riscv64gc-unknown-linux-musl entry to dist-workspace (#18686)
This looks omitted from https://github.com/astral-sh/uv/pull/18228 and I
noticed a warning from the new release step from
https://github.com/astral-sh/uv/pull/18625
2026-03-23 19:26:49 -05:00
Zanie Blue 1f31f0e9fb Bump version to 0.11.0 (#18683)
Co-authored-by: Zsolt Dollenstein <zsol.zsol@gmail.com>
Co-authored-by: Geoffrey Thomas <geofft@ldpreload.com>
2026-03-23 21:13:35 +00:00
Zsolt Dollenstein e280625203 Resolve official uv self-update versions before axoupdater (#18674) 2026-03-23 19:57:06 +00:00
Zanie Blue 10477cd1ce Split the alternative indexes page into separate pages (#18607)
Same idea as #18597
2026-03-23 14:41:51 -05:00