uv/crates
Aria Desires 317ce6e245
disfavor aarch64 windows in its own house (#13724)
and prefer emulated x64 windows in its stead.

This is preparatory work for shipping support for uv downloading and
installing aarch64 (arm64) windows Pythons. We've [had builds for this
platform ready for a
while](https://github.com/astral-sh/python-build-standalone/pull/387),
but have held back on shipping them due to a fundamental problem:

**The Python packaging ecosystem does not have strong support for
aarch64 windows**, e.g., not many projects build aarch64 wheels yet. The
net effect of this is that, if we handed you an aarch64 python
interpreter on windows, you would have to build a lot more sdists, and
there's a high chance you will simply fail to build that sdist and be
sad.

Yes unfortunately, in this case a non-native Python interpreter simply
*works better* than the native one... in terms of working at all, today.
Of course, if the native interpreter works for your project, it should
presumably have better performance and platform compatibility.

We do not want to stand in the way of progress, as ideally this
situation is a temporary state of affairs as the ecosystem grows to
support aarch64 windows. To enable progress, on aarch64 Windows builds
of uv:

* We will still use a native python interpreter, e.g., if it's at the
front of your `PATH` or the only installed version.
* If we are choosing between equally good interpreters that differ in
architecture, x64 will be preferred.
* If the aarch64 version is newer, we will prefer the aarch64 one.
* We will emit a diagnostic on installation, and show the python request
to pass to uv to force aarch64 windows to be used.
* Will be shipping [aarch64 Windows Python
downloads](https://github.com/astral-sh/python-build-standalone/pull/387)
* Will probably add some kind of global override setting/env-var to
disable this behaviour.
* Will be shipping this behaviour in
[astral-sh/setup-uv](https://github.com/astral-sh/setup-uv)

We're coordinating with Microsoft, GitHub (for the `setup-python`
action), and the CPython team (for the `python.org` installers), to
ensure we're aligned on this default and the timing of toggling to
prefer native distributions in the future.

See discussion in 

- https://github.com/astral-sh/uv/issues/12906

---

This is an alternative to 

* #13719 

which uses sorting rather than filtering, as discussed in 

* #13721
2025-06-30 17:42:00 -04:00
..
uv disfavor aarch64 windows in its own house (#13724) 2025-06-30 17:42:00 -04:00
uv-auth Fix Indexes::new doc (#14293) 2025-06-26 20:40:40 +00:00
uv-bench Remove wheel filename benchmark (#14240) 2025-06-24 11:54:12 -04:00
uv-build Bump version to 0.7.17 (#14347) 2025-06-29 09:58:33 -04:00
uv-build-backend Allow symlinks in the build backend (#14212) 2025-06-25 07:44:22 +00:00
uv-build-frontend Lock the source tree when running setuptools, to protect concurrent builds 2025-06-26 12:28:15 -07:00
uv-cache Reduce number of reference-checks for uv cache clean (#13669) 2025-05-26 21:43:24 -04:00
uv-cache-info Avoid allocations for default cache keys (#12063) 2025-03-17 19:59:32 -04:00
uv-cache-key Add DisplaySafeUrl newtype to prevent leaking of credentials by default (#13560) 2025-05-27 00:05:30 +02:00
uv-cli Require disambiguated relative paths for --index (#14152) 2025-06-25 10:02:06 +02:00
uv-client Respect URL-encoded credentials in redirect location (#14315) 2025-06-27 16:41:14 +02:00
uv-configuration Update schemars 1.0.0 (#13693) 2025-06-24 21:43:31 +02:00
uv-console Bump MSRV to 1.85 and Edition 2024 (#13516) 2025-05-18 19:38:43 -04:00
uv-dev Sync latest Python releases (#14339) 2025-06-28 03:08:53 +00:00
uv-dirs Bump MSRV to 1.85 and Edition 2024 (#13516) 2025-05-18 19:38:43 -04:00
uv-dispatch Support transparent Python patch version upgrades (#13954) 2025-06-20 16:17:13 +02:00
uv-distribution Avoid using path URL for workspace Git dependencies in requirements.txt (#14288) 2025-06-26 19:48:12 +00:00
uv-distribution-filename Remove wheel filename-from URL conversion (#14223) 2025-06-23 14:26:14 -04:00
uv-distribution-types Consistently normalize trailing slashes on URLs with no path segments (#14349) 2025-06-29 12:25:10 -05:00
uv-extract Bump MSRV to 1.85 and Edition 2024 (#13516) 2025-05-18 19:38:43 -04:00
uv-fs Bump MSRV and rust-toolchain version (#14303) 2025-06-27 10:27:45 -04:00
uv-git Skip GitHub fast path when rate-limited (#13033) 2025-06-24 12:11:41 -07:00
uv-git-types make GitOid strict about parsing exactly 40 hex characters 2025-06-09 23:50:36 +00:00
uv-globfilter Change GlobDirFilter fallback to true (#13882) 2025-06-06 14:07:34 +02:00
uv-install-wheel Add data locations to logging (#13797) 2025-06-03 09:22:18 -05:00
uv-installer Add DisplaySafeUrl newtype to prevent leaking of credentials by default (#13560) 2025-05-27 00:05:30 +02:00
uv-macros Bump MSRV to 1.85 and Edition 2024 (#13516) 2025-05-18 19:38:43 -04:00
uv-metadata only warn if CRC appears to be missing (#12722) 2025-04-07 12:49:05 -05:00
uv-normalize Bump MSRV to 1.85 and Edition 2024 (#13516) 2025-05-18 19:38:43 -04:00
uv-once-map Bump MSRV to 1.84 (#12670) 2025-04-04 11:49:26 -04:00
uv-options-metadata Upgrade minimum Rust version to 1.83 (#9815) 2024-12-11 10:06:19 -06:00
uv-pep440 Warn users on ~= python version specifier (#14008) 2025-06-27 15:48:41 -05:00
uv-pep508 Drop trailing slashes when converting index URL from URL (#14346) 2025-06-29 09:36:13 -04:00
uv-performance-memory-allocator Update Rust crate mimalloc to v0.1.47 (#14207) 2025-06-23 12:07:09 +02:00
uv-platform-tags Add Pyodide support (#12731) 2025-06-03 12:01:26 -05:00
uv-publish Add an IntoIterator for FormMetadata (#14351) 2025-06-29 15:07:07 -04:00
uv-pypi-types Update schemars 1.0.0 (#13693) 2025-06-24 21:43:31 +02:00
uv-python disfavor aarch64 windows in its own house (#13724) 2025-06-30 17:42:00 -04:00
uv-redacted Avoid using path URL for workspace Git dependencies in requirements.txt (#14288) 2025-06-26 19:48:12 +00:00
uv-requirements Support reading dependency-groups from pyproject.tomls with no project (#13742) 2025-06-13 22:16:48 +00:00
uv-requirements-txt Make DisplaySafeUrlRef Copy and other minor PR follow-ups (#13683) 2025-05-28 06:36:18 -04:00
uv-resolver Avoid rendering desugared prefix matches in error messages (#14195) 2025-06-27 18:06:19 +00:00
uv-scripts handle an existing shebang in uv init --script (#14141) 2025-06-19 14:47:22 -07:00
uv-settings Update schemars 1.0.0 (#13693) 2025-06-24 21:43:31 +02:00
uv-shell Bump MSRV to 1.85 and Edition 2024 (#13516) 2025-05-18 19:38:43 -04:00
uv-small-str Update schemars 1.0.0 (#13693) 2025-06-24 21:43:31 +02:00
uv-state Bump MSRV to 1.85 and Edition 2024 (#13516) 2025-05-18 19:38:43 -04:00
uv-static move the test buckets dir into the canonicalized temp dir 2025-06-26 14:56:20 -07:00
uv-tool Support transparent Python patch version upgrades (#13954) 2025-06-20 16:17:13 +02:00
uv-torch Add auto-detection for AMD GPUs (#14176) 2025-06-21 15:21:06 +00:00
uv-trampoline Support transparent Python patch version upgrades (#13954) 2025-06-20 16:17:13 +02:00
uv-trampoline-builder Bump MSRV and rust-toolchain version (#14303) 2025-06-27 10:27:45 -04:00
uv-types Add DisplaySafeUrl newtype to prevent leaking of credentials by default (#13560) 2025-05-27 00:05:30 +02:00
uv-version Bump version to 0.7.17 (#14347) 2025-06-29 09:58:33 -04:00
uv-virtualenv Add check for using minor version link when creating a venv on Windows (#14252) 2025-06-25 10:12:32 +02:00
uv-warnings Consistently use Ordering::Relaxed for standalone atomic use cases (#14190) 2025-06-24 12:30:26 -07:00
uv-workspace Ignore invalid build backend settings when not building (#14372) 2025-06-30 16:32:28 +02:00
README.md Link to Dependency specifiers instead of PEP 508 (#8411) 2024-10-21 14:43:38 -04:00

Crates

uv-bench

Functionality for benchmarking uv.

uv-cache-key

Generic functionality for caching paths, URLs, and other resources across platforms.

uv-distribution-filename

Parse built distribution (wheel) and source distribution (sdist) filenames to extract structured metadata.

uv-distribution-types

Abstractions for representing built distributions (wheels) and source distributions (sdists), and the sources from which they can be downloaded.

uv-install-wheel-rs

Install built distributions (wheels) into a virtual environment.

uv-once-map

A waitmap-like concurrent hash map for executing tasks exactly once.

uv-pep440-rs

Utilities for interacting with Python version numbers and specifiers.

uv-pep508-rs

Utilities for parsing and evaluating dependency specifiers, previously known as PEP 508.

uv-platform-tags

Functionality for parsing and inferring Python platform tags as per PEP 425.

uv-cli

Command-line interface for the uv package manager.

uv-build-frontend

A PEP 517-compatible build frontend for uv.

uv-cache

Functionality for caching Python packages and associated metadata.

uv-client

Client for interacting with PyPI-compatible HTTP APIs.

uv-dev

Development utilities for uv.

uv-dispatch

A centralized struct for resolving and building source distributions in isolated environments. Implements the traits defined in uv-types.

uv-distribution

Client for interacting with built distributions (wheels) and source distributions (sdists). Capable of fetching metadata, distribution contents, etc.

uv-extract

Utilities for extracting files from archives.

uv-fs

Utilities for interacting with the filesystem.

uv-git

Functionality for interacting with Git repositories.

uv-installer

Functionality for installing Python packages into a virtual environment.

uv-python

Functionality for detecting and leveraging the current Python interpreter.

uv-normalize

Normalize package and extra names as per Python specifications.

uv-requirements

Utilities for reading package requirements from pyproject.toml and requirements.txt files.

uv-resolver

Functionality for resolving Python packages and their dependencies.

uv-shell

Utilities for detecting and manipulating shell environments.

uv-types

Shared traits for uv, to avoid circular dependencies.

uv-pypi-types

General-purpose type definitions for types used in PyPI-compatible APIs.

uv-virtualenv

A venv replacement to create virtual environments in Rust.

uv-warnings

User-facing warnings for uv.

uv-workspace

Workspace abstractions for uv.

uv-requirements-txt

Functionality for parsing requirements.txt files.