397 Commits

Author SHA1 Message Date
Zanie Blue e5d20c6e3a Fix pre-release handling in the manual release script (#19276) 2026-05-05 02:06:48 -05:00
William Woodruff c643c8820d Allow apply-ci-snapshots.sh review without ID (#19149)
## Summary

This is a small nice-to-have: previously to use `review` you'd need to
pass the run ID manually, since `apply-ci-snapshots.sh review` would
result in "review" being interpreted as the run ID.

## Test Plan

Dev only.

Signed-off-by: William Woodruff <william@astral.sh>
2026-04-29 16:02:25 -04:00
Tomasz Kramkowski 5f461d69a2 Allow scripts/build-trampolines.sh to try podman when it's available (#19134)
## Summary

Opportunistically use `podman` instead of `docker` when `docker` is not
available but `podman` is.

This required a few small compatibility adjustments to the `Dockerfile`.

## Test Plan

Manually tested locally...
2026-04-23 21:36:46 +00:00
Zanie Blue 1641a88441 Pin the platform during reproducible trampoline builds (#18811)
This allows builds to succeed on an aarch64 host, though it's going to
be very slow :/

Closes https://github.com/astral-sh/uv/issues/18809
2026-04-23 10:48:54 +00:00
Zanie Blue 7cd3c2348b Expose UV_PYTHON_SEARCH_PATH for Python discovery PATH overrides (#19034)
Closes https://github.com/astral-sh/uv/issues/19027
Closes https://github.com/astral-sh/uv/issues/9506 (while the request
there is to extend `PATH`, they can set
`UV_PYTHON_SEARCH_PATH=...;$PATH`)

---------

Co-authored-by: Claude <noreply@anthropic.com>
2026-04-20 19:13:40 +00:00
Zanie Blue 0912d4432a Pin prettier in scripts/generate-crate-readmes.py to avoid prompts (#19016) 2026-04-15 15:52:54 -05:00
Charlie Marsh bfb4d2804d Convert Clippy allows to expects (#18906) 2026-04-07 13:47:08 -05:00
Zanie Blue f40124f1ee Patch Cargo.lock in uv-build source distributions (#18831)
Closes #18824 

This is a little janky but not ridiculous while we work on upstreaming a
proper fix. It seems like they can't just invoke `cargo` so I think it's
quite involved.

See also https://github.com/PyO3/maturin/issues/2609

Co-authored-by: Claude <noreply@anthropic.com>
2026-04-07 11:50:34 -05: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
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
Zsolt Dollenstein 2175e2ffba Enable checksum verification in the generated installer script (#18625) 2026-03-23 13:57:11 -04:00
Zanie Blue 8093dfcaa9 Add a system test for the chainguard Python image (#18460)
Should require https://github.com/astral-sh/uv/pull/18457
2026-03-20 13:13:43 -05:00
Zanie Blue cb093394b3 Drop requirement on which in Python system tests (#18588) 2026-03-20 11:26:07 -05:00
Zanie Blue 42c85f654f Add support for using Python 3.6 interpreters (#18454)
Applies a patch to use Python 3.6 compatible types in our vendored
`packaging` implementation used in the interpreter query script. Adds
Python 3.6 and 3.7 test coverage in CI.
2026-03-18 18:33:30 -05:00
Zanie Blue d04f25d1b7 Create release branch and commit automatically (#18456) 2026-03-13 18:10:24 -05:00
Zanie Blue 9fa25fb25a Improve output for apply-ci-snapshots.sh (#18444) 2026-03-13 10:06:14 -05:00
Zanie Blue dfc866c2da Use mktemp -d in apply-ci-snapshots.sh (#18439)
https://github.com/astral-sh/uv/pull/18424#discussion_r2928468965
2026-03-13 08:32:40 -05:00
Zanie Blue 273d29b8f2 Allow snapshots to be updated from failures in CI (#18424)
Persists snapshots as artifacts on test failure in CI and adds a script
to apply them locally

```
❯ ./scripts/apply-ci-snapshots.sh
Found pull request #18424 for branch 'zb/ci-snapshots'...
Found latest CI run 23022983761
Downloading pending snapshot artifacts...
Downloaded 3 artifacts
Applying 2 snapshot changes...
accepted:
  crates/uv/tests/it/pip_install.rs:13679 (transitive_dependency_config_settings_invalidation-2)
  crates/uv/tests/it/python_install.rs:1694 (python_install_default-5)
```

We infer the target run via the `gh` CLI. You may also provide the run
ID directly.

We'll merge snapshot artifacts from multiple platforms, so if there are
platform-specific failures on both Linux and Windows we'll apply both.
2026-03-12 17:13:28 -05:00
Zanie Blue 9345450b4c Use cargo auditable to include SBOM in uv builds (#18276)
Inspired by #18252 

This required an upstream change
https://github.com/rust-secure-code/cargo-auditable/pull/245 which is
now released.

This increases binary sizes slightly, ~4KB.

The cargo wrapper implementation will be extended in #18280 to code sign
binaries.
2026-03-06 11:38:02 -06:00
Zanie Blue 4ff4720da5 Use uv to manage our Python documentation dependencies (#18263)
I want to lock our Zig build dependencies and this is an incremental
step towards doing so via uv
2026-03-04 09:52:15 -06:00
Zanie Blue 74fe4a0431 Vendor mold installation and add more retries (#18271) 2026-03-03 11:59:58 -06:00
Zanie Blue 5fa874f031 Fix the wheel sbom contents check (again) and ensure CI runs on such changes (#18177) 2026-02-24 00:24:50 +00:00
Zanie Blue d6342a811a Fix wheel check failure due to new cyclonedx sbom (#18173)
The maturin update to v1.12.1 (#18142) introduced automatic SBOM
generation in wheels https://github.com/PyO3/maturin/pull/2980
2026-02-23 17:12:10 -06:00
konsti 585dac12a9 Update packse and remove Python 3.9.20 from test requirements (#17881)
Requires the packse PR to land first.
2026-02-18 19:35:30 +01:00
konsti 244e242471 Check that uv wheels contain the expected files (#18067)
This ensures for example that the license files don't get silently
dropped. The idea is that the script has a "snapshot" of the wheel
contents, and that snapshot is updated when adding or removing files.

With these changes, we can safely remove the extraneous annotations from
#18055.

Closes #18055
2026-02-18 17:46:27 +01:00
Jonathan J. Helmus 6663f8899d Add CPython 3.15.0a6 (#17987)
Update available python versions to include CPython 3.15.0a6
Update scripts used to sync pbs releases to account for recent changes
in the repo and to support running on macOS.
2026-02-12 11:23:41 -06:00
Zanie Blue c8a1518ecf Split the TestContext into a dedicated uv-test crate (#17551) 2026-02-07 08:02:58 -06:00
Zanie Blue 0ba432459a Bump version to 0.10.0 (#17882)
Co-authored-by: Brent Westbrook <36778786+ntBre@users.noreply.github.com>
2026-02-05 20:28:44 +00:00
Zanie Blue f3d50129c6 Update uv test features to use test- as a prefix (#17860)
I'll roll this into 0.10 even though it isn't breaking for "users".

---------

Co-authored-by: Claude <noreply@anthropic.com>
2026-02-05 11:52:18 -06:00
Zanie Blue 27424e4f08 Emit the plan target during publish test failures (#17740)
I'm always staring at these wondering which job actually failed
2026-01-29 14:51:39 -06:00
William Woodruff ba1306430e Support Trusted Publishing with pyx (#17438) 2026-01-20 22:18:26 +00:00
Tomasz Kramkowski 6dd2c0ca4b Fix scripts/check_system_python.py (#17629)
## Summary

Fix a bug in #17533 which was auto-merged despite failures.

## Test Plan

N/A (CI PR).
2026-01-20 16:23:58 +00:00
Tomasz Kramkowski cfd048aa7a Change chocolatey system test to ensure uv uses the right python (#17533)
Fix #17524.

This adds a couple of new options to `scripts/check_system_python.py` to verify that it is running with the right interpreter version and that it would hopefully be the interpreter picked up by uv (although that isn't strictly necessary as other tests should fail in that case).

Additionally, since the path to the newly installed chocolatey python is not loaded from registry on every step, we now manually load it.

Beware, this will break `GITHUB_PATH` but this job wasn't using it at the moment.
2026-01-20 16:02:14 +00:00
Zanie Blue 6caa08adba Add a nextest setup hook and optional code signing for tests on macOS (#17542)
Uses a nextest setup hook to sign the uv and test binaries before
running the tests. This allows you to grant permission to the test suite
_once_ when running native authentication tests on macOS. Otherwise, you
get prompted on every access on every binary change.
2026-01-20 08:43:40 -06:00
Zanie Blue 3456ae45f2 Add check for uv-trampoline windows crate version consistency (#17552)
Ensures consistency following https://github.com/astral-sh/uv/pull/17541
2026-01-19 09:24:01 -06:00
William Woodruff b3b15560c3 Test uv+PyPI Trusted Publishing on Gitlab (#17443) 2026-01-15 10:43:56 -05:00
Zanie Blue 3c72e56d92 Use constants for latest Python versions in tests (#17444)
Co-authored-by: Claude <noreply@anthropic.com>
2026-01-13 21:36:45 +00:00
Zsolt Dollenstein fa218b7034 Re-enable pyx integration tests (#17414) 2026-01-12 09:35:43 -05:00
Zanie Blue c10c84a588 Disable pyx staging publish tests temporarily (#17397)
Co-authored-by: Claude <noreply@anthropic.com>
2026-01-09 22:19:45 +00:00
Zanie Blue b5660cec26 Silence prettier logs during crate readme generation (#17271)
These were interleaved in stderr and are just noise.
2025-12-30 09:46:59 -06:00
Zanie Blue e006a69fe8 Configure prettier prose-wrap in .prettierrc instead of the CLI (#17184)
This also removes the file-specific targets from prettier execution
which means we're including `.json`, `.css`, and `.html` files, which
seems like an improvement.

Co-authored-by: Claude <noreply@anthropic.com>
2025-12-18 18:54:23 -06:00
Zanie Blue a70ee58ae1 Move test support files out of scripts/ into test/
(#17032)

It's been bothering me that we have a bunch of stub packages and such in
a `scripts` directory.
2025-12-09 10:06:05 -06:00
Zanie Blue 5a6f2ea319 Generate reference documentation at publish-time and the JSON schema at release-time (#16969)
It'd be nice to avoid churn for contributors. This is a pretty frequent
cause of CI failures and I don't think we really need to have the
reference documentation committed.
2025-12-08 12:31:38 +00:00
Zanie Blue f6ad3dcd57 Regenerate the crates.io readmes on release (#16992)
Otherwise, they're stale!
2025-12-04 19:19:36 -06:00
samypr100 d3cd94ecaf Adjust release script to handle uv-trampoline lockfile changes (#16971)
## Summary

Given `bump-workspace-crate-versions.py` will bump all crates, we also
need to update uv-trampoline lockfile references to those new versions
(for uv-static, uv-macros) after
https://github.com/astral-sh/uv/pull/16950.

## Test Plan

Ran release script manually and verify uv-trampoline lockfile is up to
date after the changes from bump-workspace-crate-versions.py
2025-12-04 11:45:18 -06:00
Zanie Blue 99c40f74c5 Link to the uv version in crates.io member READMEs (#16939)
Closes https://github.com/astral-sh/uv/issues/16931
2025-12-02 20:02:22 +00:00
William Woodruff 3347e196bb Use npm ci --ignore-scripts in update_schemastore.py (#16915) 2025-12-01 23:36:55 +00:00
konsti c67a0fdd7b Support only rendering a specific packse template (#16874)
Support only updating a specific one of the three packse template, to
avoid re-build all three tests each time.
2025-11-28 10:15:37 +01:00
konsti f02b459d04 Support required environments in packse (#16873)
Companion change for https://github.com/astral-sh/packse/pull/293,
motivated by
https://github.com/astral-sh/uv/pull/16824#discussion_r2556176057
2025-11-27 15:17:16 +01:00