Commit Graph

619 Commits

Author SHA1 Message Date
konsti af95677b9b
Update cargo shear (#17106)
Requires a companion PR that updates the GitHub Action.
2025-12-15 18:46:35 +01:00
Zanie Blue 5a55bbe883
Include Docker images with the alpine version, e.g., `python3.x-alpine3.23` (#17100)
Closes https://github.com/astral-sh/uv/issues/17095

This also stabilizes the Alpine version for users that do not choose to
pin it. We could add this to the build matrix separately to avoid that,
but I think that's okay?
2025-12-12 14:17:15 +00:00
konsti ebdffaf728
CI Perf: fast-build (#16780)
Co-authored-by: Zanie Blue <contact@zanie.dev>
2025-12-11 13:51:37 +00:00
Zanie Blue b931c6687c
Increase the size of binary build runners (#17016)
Summary from asking Claude to compare the runtime

```
  | Job                       | Before | After | Saved | Reduction |
  |---------------------------|--------|-------|-------|-----------|
  | macos-aarch64             | 19.1m  | 9.8m  | 9.2m  | 48%       |
  | macos-x86_64              | 15.1m  | 9.2m  | 5.9m  | 39%       |
  | linux-arm (aarch64)       | 18.6m  | 12.2m | 6.4m  | 34%       |
  | linux-arm (armv7)         | 17.4m  | 11.5m | 5.9m  | 34%       |
  | musllinux-cross (aarch64) | 19.3m  | 13.2m | 6.1m  | 32%       |
  | linux-arm (arm)           | 16.6m  | 11.4m | 5.2m  | 31%       |
  | musllinux-cross (armv7)   | 16.4m  | 10.8m | 5.6m  | 34%       |
```
The longest-running affected job went from 19.3m → 13.2m (saved 6.1
minutes, 32% faster).
2025-12-09 16:04:43 -06:00
William Woodruff 69910b4aab
Publish PyPI releases before crates.io artifacts (#16989)
## Summary

Closes #16987.

## Test Plan

We need a good way to dry-run this...

---------

Signed-off-by: William Woodruff <william@astral.sh>
2025-12-09 15:20:21 -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
renovate[bot] 1d8252599a
Update Swatinem/rust-cache action to v2.8.2 (#16128)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [Swatinem/rust-cache](https://redirect.github.com/Swatinem/rust-cache)
| action | patch | `v2.8.0` -> `v2.8.2` |

---

### Release Notes

<details>
<summary>Swatinem/rust-cache (Swatinem/rust-cache)</summary>

###
[`v2.8.2`](https://redirect.github.com/Swatinem/rust-cache/releases/tag/v2.8.2)

[Compare
Source](https://redirect.github.com/Swatinem/rust-cache/compare/v2.8.1...v2.8.2)

##### What's Changed

- ci: address lint findings, add zizmor workflow by
[@&#8203;woodruffw](https://redirect.github.com/woodruffw) in
[#&#8203;262](https://redirect.github.com/Swatinem/rust-cache/pull/262)
- feat: Implement ability to disable adding job ID + rust environment
hashes to cache names by
[@&#8203;Ryan-Brice](https://redirect.github.com/Ryan-Brice) in
[#&#8203;279](https://redirect.github.com/Swatinem/rust-cache/pull/279)
- Don't overwrite env for cargo-metadata call by
[@&#8203;MaeIsBad](https://redirect.github.com/MaeIsBad) in
[#&#8203;285](https://redirect.github.com/Swatinem/rust-cache/pull/285)

##### New Contributors

- [@&#8203;woodruffw](https://redirect.github.com/woodruffw) made their
first contribution in
[#&#8203;262](https://redirect.github.com/Swatinem/rust-cache/pull/262)
- [@&#8203;Ryan-Brice](https://redirect.github.com/Ryan-Brice) made
their first contribution in
[#&#8203;279](https://redirect.github.com/Swatinem/rust-cache/pull/279)
- [@&#8203;MaeIsBad](https://redirect.github.com/MaeIsBad) made their
first contribution in
[#&#8203;285](https://redirect.github.com/Swatinem/rust-cache/pull/285)

**Full Changelog**:
<https://github.com/Swatinem/rust-cache/compare/v2.8.1...v2.8.2>

###
[`v2.8.1`](https://redirect.github.com/Swatinem/rust-cache/releases/tag/v2.8.1)

[Compare
Source](https://redirect.github.com/Swatinem/rust-cache/compare/v2.8.0...v2.8.1)

##### What's Changed

- Set empty `CARGO_ENCODED_RUSTFLAGS` in workspace metadata retrieval by
[@&#8203;ark0f](https://redirect.github.com/ark0f) in
[#&#8203;249](https://redirect.github.com/Swatinem/rust-cache/pull/249)
- chore(deps): update dependencies by
[@&#8203;reneleonhardt](https://redirect.github.com/reneleonhardt) in
[#&#8203;251](https://redirect.github.com/Swatinem/rust-cache/pull/251)
- chore: fix dependabot groups by
[@&#8203;reneleonhardt](https://redirect.github.com/reneleonhardt) in
[#&#8203;253](https://redirect.github.com/Swatinem/rust-cache/pull/253)
- Bump the prd-patch group with 2 updates by
[@&#8203;dependabot](https://redirect.github.com/dependabot)\[bot] in
[#&#8203;254](https://redirect.github.com/Swatinem/rust-cache/pull/254)
- chore(dependabot): regenerate and commit dist/ by
[@&#8203;reneleonhardt](https://redirect.github.com/reneleonhardt) in
[#&#8203;257](https://redirect.github.com/Swatinem/rust-cache/pull/257)
- Bump [@&#8203;types/node](https://redirect.github.com/types/node) from
22.16.3 to 24.2.1 in the dev-major group by
[@&#8203;dependabot](https://redirect.github.com/dependabot)\[bot] in
[#&#8203;255](https://redirect.github.com/Swatinem/rust-cache/pull/255)
- Bump typescript from 5.8.3 to 5.9.2 in the dev-minor group by
[@&#8203;dependabot](https://redirect.github.com/dependabot)\[bot] in
[#&#8203;256](https://redirect.github.com/Swatinem/rust-cache/pull/256)
- Bump actions/setup-node from 4 to 5 in the actions group by
[@&#8203;dependabot](https://redirect.github.com/dependabot)\[bot] in
[#&#8203;259](https://redirect.github.com/Swatinem/rust-cache/pull/259)
- Update README.md by
[@&#8203;Propfend](https://redirect.github.com/Propfend) in
[#&#8203;234](https://redirect.github.com/Swatinem/rust-cache/pull/234)
- Bump [@&#8203;types/node](https://redirect.github.com/types/node) from
24.2.1 to 24.3.0 in the dev-minor group by
[@&#8203;dependabot](https://redirect.github.com/dependabot)\[bot] in
[#&#8203;258](https://redirect.github.com/Swatinem/rust-cache/pull/258)

##### New Contributors

- [@&#8203;ark0f](https://redirect.github.com/ark0f) made their first
contribution in
[#&#8203;249](https://redirect.github.com/Swatinem/rust-cache/pull/249)
- [@&#8203;reneleonhardt](https://redirect.github.com/reneleonhardt)
made their first contribution in
[#&#8203;251](https://redirect.github.com/Swatinem/rust-cache/pull/251)
- [@&#8203;dependabot](https://redirect.github.com/dependabot)\[bot]
made their first contribution in
[#&#8203;254](https://redirect.github.com/Swatinem/rust-cache/pull/254)
- [@&#8203;Propfend](https://redirect.github.com/Propfend) made their
first contribution in
[#&#8203;234](https://redirect.github.com/Swatinem/rust-cache/pull/234)

**Full Changelog**:
<https://github.com/Swatinem/rust-cache/compare/v2...v2.8.1>

</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:eyJjcmVhdGVkSW5WZXIiOiI0MS4xMzEuOSIsInVwZGF0ZWRJblZlciI6IjQyLjE5LjkiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbImludGVybmFsIl19-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-03 15:10:44 +01:00
Zanie Blue 7954b34989
Revert "Temporarily drop `crates-publish` from the release for 0.9.15 re-run (#16945)" (#16947)
This reverts commit 89c411f0ae /
https://github.com/astral-sh/uv/pull/16945 restoring crates publish.
2025-12-02 19:46:55 -06:00
Zanie Blue 89c411f0ae
Temporarily drop `crates-publish` from the release for 0.9.15 re-run (#16945)
See https://github.com/astral-sh/uv/pull/16944

The `crates.io` publish succeeded and is not idempotent (i.e., it'll
fail on another publish attempt) so we will skip it for a re-run of the
release workflow.
2025-12-02 18:57:47 -06:00
William Woodruff 18a36528ea
Disable PEP 740 attestations for PyPI publishing (#16944)
## Summary

This broke the release and I haven't figured out why yet.

## Test Plan

Blame my past self.

Signed-off-by: William Woodruff <william@astral.sh>
2025-12-02 18:50:20 -06:00
William Woodruff e38cab64ce
Use our org-wide Renovate preset (#16935) 2025-12-02 18:28:55 +00:00
Zanie Blue e4d193a5f8
Fix `uv-trampoline-builder` builds from crates.io by moving bundled executables (#16922)
Closes https://github.com/astral-sh/uv/issues/16836
2025-12-02 07:50:39 -06:00
samypr100 fee7f9d093
Support Git LFS with opt-in (#16143)
## Summary

Follow up to https://github.com/astral-sh/uv/pull/15563
Closes https://github.com/astral-sh/uv/issues/13485

This is a first-pass at adding support for conditional support for Git
LFS between git sources, initial feedback welcome.

e.g.
```
[tool.uv.sources]
test-lfs-repo = { git = "https://github.com/zanieb/test-lfs-repo.git", lfs = true }
```

For context previously a user had to set `UV_GIT_LFS` to have uv fetch
lfs objects on git sources. This env var was all or nothing, meaning you
must always have it set to get consistent behavior and it applied to all
git sources. If you fetched lfs objects at a revision and then turned
off lfs (or vice versa), the git db, corresponding checkout lfs
artifacts would not be updated properly. Similarly, when git source
distributions were built, there would be no distinction between sources
with lfs and without lfs. Hence, it could corrupt the git, sdist, and
archive caches.

In order to support some sources being LFS enabled and other not, this
PR adds a stateful layer roughly similar to how `subdirectory` works but
for `lfs` since the git database, the checkouts and the corresponding
caching layers needed to be LFS aware (requested vs installed). The
caches also had to isolated and treated entirely separate when handling
LFS sources.

Summary
* Adds `lfs = true` or `lfs = false` to git sources in pyproject.toml
* Added `lfs=true` query param / fragments to most relevant url structs
(not parsed as user input)
  * In the case of uv add / uv tool, `--lfs` is supported instead
* `UV_GIT_LFS` environment variable support is still functional for
non-project entrypoints (e.g. uv pip)
* `direct-url.json` now has an custom `git_lfs` entry under VcsInfo
(note, this is not in the spec currently -- see caveats).
* git database and checkouts have an different cache key as the sources
should be treated effectively different for the same rev.
* sdists cache also differ in the cache key of a built distribution if
it was built using LFS enabled revisions to distinguish between non-LFS
same revisions. This ensures the strong assumption for archive-v0 that
an unpacked revision "doesn't change sources" stays valid.

Caveats
* `pylock.toml` import support has not been added via git_lfs=true,
going through the spec it wasn't clear to me it's something we'd support
outside of the env var (for now).
* direct-url struct was modified by adding a non-standard `git_lfs`
field under VcsInfo which may be undersirable although the PEP 610 does
say `Additional fields that would be necessary to support such VCS
SHOULD be prefixed with the VCS command name` which could be interpret
this change as ok.
* There will be a slight lockfile and cache churn for users that use
`UV_GIT_LFS` as all git lockfile entries will get a `lfs=true` fragment.
The cache version does not need an update, but LFS sources will get
their own namespace under git-v0 and sdist-v9/git hence a cache-miss
will occur once but this can be sufficient to label this as breaking for
workflows always setting `UV_GIT_LFS`.

## Test Plan

Some initial tests were added. More tests likely to follow as we reach
consensus on a final approach.

For IT test, we may want to move to use a repo under astral namespace in
order to test lfs functionality.

Manual testing was done for common pathological cases like killing LFS
fetch mid-way, uninstalling LFS after installing an sdist with it and
reinstalling, fetching LFS artifacts in different commits, etc.

PSA: Please ignore the docker build failures as its related to depot
OIDC issues.

---------

Co-authored-by: Zanie Blue <contact@zanie.dev>
Co-authored-by: konstin <konstin@mailbox.org>
2025-12-02 12:23:51 +00:00
Zanie Blue 54f9932362
Bump timeout for macOS tests from 15m -> 20m (#16925)
This has been failing on main since
fbf925ee63
2025-12-02 05:01:43 -06:00
William Woodruff fbf925ee63
Enable PEP 740 attestations when publishing to PyPI (#16910) 2025-12-01 13:01:33 -05:00
renovate[bot] 0b70eba917
Update dependency astral-sh/uv to v0.9.13 (#16897) 2025-12-01 02:30:23 +00:00
Zanie Blue 76d769d7a0
Use `--no-verify` to skip builds during crates.io publish (#16863)
Otherwise, this is quite slow.
2025-11-26 16:34:30 +00:00
renovate[bot] fa6afd5a71
Update aws-actions/configure-aws-credentials action to v5.1.1 (#16573)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[aws-actions/configure-aws-credentials](https://redirect.github.com/aws-actions/configure-aws-credentials)
| action | minor | `v5.0.0` -> `v5.1.1` |

---

### Release Notes

<details>
<summary>aws-actions/configure-aws-credentials
(aws-actions/configure-aws-credentials)</summary>

###
[`v5.1.1`](https://redirect.github.com/aws-actions/configure-aws-credentials/releases/tag/v5.1.1)

[Compare
Source](https://redirect.github.com/aws-actions/configure-aws-credentials/compare/v5.1.0...v5.1.1)

##### Miscellaneous Chores

- release 5.1.1
([56d6a58](56d6a583f0))
- various dependency updates

###
[`v5.1.0`](https://redirect.github.com/aws-actions/configure-aws-credentials/releases/tag/v5.1.0)

[Compare
Source](https://redirect.github.com/aws-actions/configure-aws-credentials/compare/v5.0.0...v5.1.0)

##### Features

- Add global timeout support
([#&#8203;1487](https://redirect.github.com/aws-actions/configure-aws-credentials/issues/1487))
([1584b8b](1584b8b0e2))
- add no-proxy support
([#&#8203;1482](https://redirect.github.com/aws-actions/configure-aws-credentials/issues/1482))
([dde9b22](dde9b22a8e))
- Improve debug logging in retry logic
([#&#8203;1485](https://redirect.github.com/aws-actions/configure-aws-credentials/issues/1485))
([97ef425](97ef425d73))

##### Bug Fixes

- properly expose getProxyForUrl (introduced in
[#&#8203;1482](https://redirect.github.com/aws-actions/configure-aws-credentials/issues/1482))
([#&#8203;1486](https://redirect.github.com/aws-actions/configure-aws-credentials/issues/1486))
([cea4298](cea42985ac))

</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:eyJjcmVhdGVkSW5WZXIiOiI0MS4xNTkuNCIsInVwZGF0ZWRJblZlciI6IjQyLjE5LjUiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbImludGVybmFsIl19-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-26 16:54:21 +01:00
renovate[bot] 1fa6612c08
Update dependency astral-sh/uv to v0.9.11 (#16825)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [astral-sh/uv](https://redirect.github.com/astral-sh/uv) | uses-with |
patch | `0.9.10` -> `0.9.11` |

---

### Release Notes

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

###
[`v0.9.11`](https://redirect.github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#0911)

[Compare
Source](https://redirect.github.com/astral-sh/uv/compare/0.9.10...0.9.11)

Released on 2025-11-20.

##### Python

- Add CPython 3.15.0a2

See the [`python-build-standalone` release
notes](https://redirect.github.com/astral-sh/python-build-standalone/releases/tag/20251120)
for details.

##### Enhancements

- Add SBOM support to `uv export`
([#&#8203;16523](https://redirect.github.com/astral-sh/uv/pull/16523))
- Publish to `crates.io`
([#&#8203;16770](https://redirect.github.com/astral-sh/uv/pull/16770))

##### Preview features

- Add `uv workspace list --paths`
([#&#8203;16776](https://redirect.github.com/astral-sh/uv/pull/16776))
- Fix the preview warning on `uv workspace dir`
([#&#8203;16775](https://redirect.github.com/astral-sh/uv/pull/16775))

##### Bug fixes

- Fix `uv init` author serialization via `toml_edit` inline tables
([#&#8203;16778](https://redirect.github.com/astral-sh/uv/pull/16778))
- Fix status messages without TTY
([#&#8203;16785](https://redirect.github.com/astral-sh/uv/pull/16785))
- Preserve end-of-line comment whitespace when editing `pyproject.toml`
([#&#8203;16734](https://redirect.github.com/astral-sh/uv/pull/16734))
- Disable `always-authenticate` when running under Dependabot
([#&#8203;16773](https://redirect.github.com/astral-sh/uv/pull/16773))

##### Documentation

- Document the new behavior for free-threaded python versions
([#&#8203;16781](https://redirect.github.com/astral-sh/uv/pull/16781))
- Improve note about build system in publish guide
([#&#8203;16788](https://redirect.github.com/astral-sh/uv/pull/16788))
- Move do not upload publish note out of the guide into concepts
([#&#8203;16789](https://redirect.github.com/astral-sh/uv/pull/16789))

</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:eyJjcmVhdGVkSW5WZXIiOiI0Mi4xNi4xIiwidXBkYXRlZEluVmVyIjoiNDIuMTYuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiaW50ZXJuYWwiXX0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-24 10:10:22 +01:00
Zanie Blue 8d8aabb884
Add read permissions to `publish-crates` job (#16797) 2025-11-20 16:38:19 -06:00
Zanie Blue f2e92b4bfb
Increase walltime timeout by 5m (#16796)
It is failing while caching the dependencies
2025-11-20 22:36:38 +00:00
Zanie Blue dfe89047bb
Publish to `crates.io` (#16770) 2025-11-20 21:26:44 +00:00
renovate[bot] 0e88114882
Update dependency astral-sh/uv to v0.9.10 (#16753)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [astral-sh/uv](https://redirect.github.com/astral-sh/uv) | uses-with |
patch | `0.9.8` -> `0.9.10` |

---

### Release Notes

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

###
[`v0.9.10`](https://redirect.github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#0910)

[Compare
Source](https://redirect.github.com/astral-sh/uv/compare/0.9.9...0.9.10)

Released on 2025-11-17.

##### Enhancements

- Add support for `SSL_CERT_DIR`
([#&#8203;16473](https://redirect.github.com/astral-sh/uv/pull/16473))
- Enforce UTF‑8-encoded license files during `uv build`
([#&#8203;16699](https://redirect.github.com/astral-sh/uv/pull/16699))
- Error when a `project.license-files` glob matches nothing
([#&#8203;16697](https://redirect.github.com/astral-sh/uv/pull/16697))
- `pip install --target` (and `sync`) install Python if necessary
([#&#8203;16694](https://redirect.github.com/astral-sh/uv/pull/16694))
- Account for `python_downloads_json_url` in pre-release Python version
warnings
([#&#8203;16737](https://redirect.github.com/astral-sh/uv/pull/16737))
- Support HTTP/HTTPS URLs in `uv python --python-downloads-json-url`
([#&#8203;16542](https://redirect.github.com/astral-sh/uv/pull/16542))

##### Preview features

- Add support for `--upgrade` in `uv python install`
([#&#8203;16676](https://redirect.github.com/astral-sh/uv/pull/16676))
- Fix handling of `python install --default` for pre-release Python
versions
([#&#8203;16706](https://redirect.github.com/astral-sh/uv/pull/16706))
- Add `uv workspace list` to list workspace members
([#&#8203;16691](https://redirect.github.com/astral-sh/uv/pull/16691))

##### Bug fixes

- Don't check file URLs for ambiguously parsed credentials
([#&#8203;16759](https://redirect.github.com/astral-sh/uv/pull/16759))

##### Documentation

- Add a "storage" reference document
([#&#8203;15954](https://redirect.github.com/astral-sh/uv/pull/15954))

###
[`v0.9.9`](https://redirect.github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#099)

[Compare
Source](https://redirect.github.com/astral-sh/uv/compare/0.9.8...0.9.9)

Released on 2025-11-12.

##### Deprecations

- Deprecate use of `--project` in `uv init`
([#&#8203;16674](https://redirect.github.com/astral-sh/uv/pull/16674))

##### Enhancements

- Add iOS support to Python interpreter discovery
([#&#8203;16686](https://redirect.github.com/astral-sh/uv/pull/16686))
- Reject ambiguously parsed URLs
([#&#8203;16622](https://redirect.github.com/astral-sh/uv/pull/16622))
- Allow explicit values in `uv version --bump`
([#&#8203;16555](https://redirect.github.com/astral-sh/uv/pull/16555))
- Warn on use of managed pre-release Python versions when a stable
version is available
([#&#8203;16619](https://redirect.github.com/astral-sh/uv/pull/16619))
- Allow signing trampolines on Windows by using `.rcdata` to store
metadata
([#&#8203;15068](https://redirect.github.com/astral-sh/uv/pull/15068))
- Add `--only-emit-workspace` and similar variants to `uv export`
([#&#8203;16681](https://redirect.github.com/astral-sh/uv/pull/16681))

##### Preview features

- Add `uv workspace dir` command
([#&#8203;16678](https://redirect.github.com/astral-sh/uv/pull/16678))
- Add `uv workspace metadata` command
([#&#8203;16516](https://redirect.github.com/astral-sh/uv/pull/16516))

##### Configuration

- Add `UV_NO_DEFAULT_GROUPS` environment variable
([#&#8203;16645](https://redirect.github.com/astral-sh/uv/pull/16645))

##### Bug fixes

- Remove `torch-model-archiver` and `torch-tb-profiler` from PyTorch
backend
([#&#8203;16655](https://redirect.github.com/astral-sh/uv/pull/16655))
- Fix Pixi environment detection
([#&#8203;16585](https://redirect.github.com/astral-sh/uv/pull/16585))

##### Documentation

- Fix `CMD` path in FastAPI Dockerfile
([#&#8203;16701](https://redirect.github.com/astral-sh/uv/pull/16701))

</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:eyJjcmVhdGVkSW5WZXIiOiI0MS4xNzMuMSIsInVwZGF0ZWRJblZlciI6IjQxLjE3My4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJpbnRlcm5hbCJdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-18 18:46:15 +01:00
William Woodruff f78ddf05c4
Add an integration test for publishing to pyx (#16740) 2025-11-18 12:13:57 -05:00
William Woodruff 512c0ca5ed
Open PRs as drafts for sync-python-releases (#16763)
## Summary

This is a little goofy, but it saves us a click: when automation PRs are
opened as drafts, they don't need to be cycled through closed/opened to
force the CI to run. Instead, once undrafted the CI runs.

See #16505 for an example of the closed/opened cycle hack this avoids.

## Test Plan

No functional changes besides CI automation.

Signed-off-by: William Woodruff <william@astral.sh>
2025-11-17 15:04:10 -06:00
CatBraaain c167146f8c
refactor: update deprecated renovate schedule syntax (#16717)
<!--
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?
-->

Related issue: none
This is a minor change; no issue is associated. Please let me know if
one is required.

## Summary
Update deprecated renovate schedule syntax
```diff
- schedule: ["before 4am on Monday"],
+ schedule: ["* 0-3 * * 1"],
```

<!-- What's the purpose of the change? What does it do, and why? -->
## Rationale
- Deprecated: Renovate plans to remove the @breejs/later library, so
cron syntax is recommended.
- Time range: at least 3-4 hours recommended for any schedule.

References:
- [Deprecated later
syntax](https://docs.renovatebot.com/key-concepts/scheduling/#deprecated-breejslater-syntax)
- [Schedule
options](https://docs.renovatebot.com/configuration-options/#schedule)


## Test Plan
<!-- How was it tested? -->
- Cron syntax verified on
[crontab.guru](https://crontab.guru/#*_0-3_*_*_1)
- Behavior in Renovate not testable directly
2025-11-13 10:52:19 +01:00
renovate[bot] 4f6162f988
Update dependency astral-sh/uv to v0.9.8 (#16657)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [astral-sh/uv](https://redirect.github.com/astral-sh/uv) | uses-with |
patch | `0.9.7` -> `0.9.8` |

---

### Release Notes

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

###
[`v0.9.8`](https://redirect.github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#098)

[Compare
Source](https://redirect.github.com/astral-sh/uv/compare/0.9.7...0.9.8)

Released on 2025-11-07.

##### Enhancements

- Accept multiple packages in `uv export`
([#&#8203;16603](https://redirect.github.com/astral-sh/uv/pull/16603))
- Accept multiple packages in `uv sync`
([#&#8203;16543](https://redirect.github.com/astral-sh/uv/pull/16543))
- Add a `uv cache size` command
([#&#8203;16032](https://redirect.github.com/astral-sh/uv/pull/16032))
- Add prerelease guidance for build-system resolution failures
([#&#8203;16550](https://redirect.github.com/astral-sh/uv/pull/16550))
- Allow Python requests to include `+gil` to require a GIL-enabled
interpreter
([#&#8203;16537](https://redirect.github.com/astral-sh/uv/pull/16537))
- Avoid pluralizing 'retry' for single value
([#&#8203;16535](https://redirect.github.com/astral-sh/uv/pull/16535))
- Enable first-class dependency exclusions
([#&#8203;16528](https://redirect.github.com/astral-sh/uv/pull/16528))
- Fix inclusive constraints on available package versions in resolver
errors
([#&#8203;16629](https://redirect.github.com/astral-sh/uv/pull/16629))
- Improve `uv init` error for invalid directory names
([#&#8203;16554](https://redirect.github.com/astral-sh/uv/pull/16554))
- Show help on `uv build -h`
([#&#8203;16632](https://redirect.github.com/astral-sh/uv/pull/16632))
- Include the Python variant suffix in "Using Python ..." messages
([#&#8203;16536](https://redirect.github.com/astral-sh/uv/pull/16536))
- Log most recently modified file for cache-keys
([#&#8203;16338](https://redirect.github.com/astral-sh/uv/pull/16338))
- Update Docker builds to use nightly Rust toolchain with musl v1.2.5
([#&#8203;16584](https://redirect.github.com/astral-sh/uv/pull/16584))

##### Configuration

- Expose `UV_NO_GROUP` as an environment variable
([#&#8203;16529](https://redirect.github.com/astral-sh/uv/pull/16529))
- Add `UV_NO_SOURCES` as an environment variable
([#&#8203;15883](https://redirect.github.com/astral-sh/uv/pull/15883))

##### Bug fixes

- Allow `--check` and `--locked` to be used together in `uv lock`
([#&#8203;16538](https://redirect.github.com/astral-sh/uv/pull/16538))
- Allow for unnormalized names in the METADATA file
([#&#8203;16547](https://redirect.github.com/astral-sh/uv/issues/16547))
([#&#8203;16548](https://redirect.github.com/astral-sh/uv/pull/16548))
- Fix missing value\_type for `default-groups` in schema
([#&#8203;16575](https://redirect.github.com/astral-sh/uv/pull/16575))
- Respect multi-GPU outputs in `nvidia-smi`
([#&#8203;15460](https://redirect.github.com/astral-sh/uv/pull/15460))
- Fix DNS lookup errors in Docker containers
([#&#8203;8450](https://redirect.github.com/astral-sh/uv/issues/8450))

##### Documentation

- Fix typo in uv tool list doc
([#&#8203;16625](https://redirect.github.com/astral-sh/uv/pull/16625))
- Note `uv pip list` name normalization in docs
([#&#8203;13210](https://redirect.github.com/astral-sh/uv/pull/13210))

##### Other changes

- Update Rust toolchain to 1.91 and MSRV to 1.89
([#&#8203;16531](https://redirect.github.com/astral-sh/uv/pull/16531))

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "before 4am on Monday" (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:eyJjcmVhdGVkSW5WZXIiOiI0MS4xNTkuNCIsInVwZGF0ZWRJblZlciI6IjQxLjE1OS40IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJpbnRlcm5hbCJdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-10 12:23:14 +01:00
Zanie Blue 08229ca73b
Add expectation for externally managed marker in x86-64 macOS system test (#16628)
This is failing with

```
Run python3 scripts/check_system_python.py --uv ./uv
INFO: Checking that `pylint` isn't installed.
WARNING: Package(s) not found: pylint
INFO: Installing the package `pylint`.
DEBUG uv 0.9.7 (2cd1400fb 2025-11-06)
DEBUG Acquired shared lock for `/Users/runner/.cache/uv`
DEBUG Searching for default Python interpreter in search path or managed installations
DEBUG Found `cpython-3.14.0-macos-x86_64-none` at `/usr/local/bin/python3` (first executable in the search path)
Using Python 3.14.0 environment at: /usr/local/opt/python@3.14/Frameworks/Python.framework/Versions/3.14
DEBUG Released lock at `/Users/runner/.cache/uv/.lock`
error: The interpreter at /usr/local/opt/python@3.14/Frameworks/Python.framework/Versions/3.14 is externally managed, and indicates the following:

  To install Python packages system-wide, try brew install
  xyz, where xyz is the package you are trying to
  install.

  If you wish to install a Python library that isn't in Homebrew,
  use a virtual environment:

  python3 -m venv path/to/venv
  source path/to/venv/bin/activate
  python3 -m pip install xyz

  If you wish to install a Python application that isn't in Homebrew,
  it may be easiest to use 'pipx install xyz', which will manage a
  virtual environment for you. You can install pipx with

  brew install pipx

  You may restore the old behavior of pip by passing
  the '--break-system-packages' flag to pip, or by adding
  'break-system-packages = true' to your pip.conf file. The latter
  will permanently disable this error.

  If you disable this error, we STRONGLY recommend that you additionally
  pass the '--user' flag to pip, or set 'user = true' in your pip.conf
  file. Failure to do this can result in a broken Homebrew installation.

  Read more about this behavior here: <https://peps.python.org/pep-0668/>
```
2025-11-06 23:53:46 -06:00
renovate[bot] 8f4083a746
Update dependency astral-sh/uv to v0.9.7 (#16557) 2025-11-02 20:04:43 -05:00
Aria Desires d71ae61c0b
Fix github attestations of releases (#16530) 2025-10-30 22:31:19 -04:00
samypr100 f3d3203734
Add uv release artifact attestations (#11357)
## Summary

Similar to https://github.com/astral-sh/uv/pull/8685, this adds
attestations for uv release artifacts.

The changes on this PR would add attestations for
* `dist-manifest.json`
* `uv-installer.ps1`
* `uv-installer.sh`
* All `*.tar.gz` and `*.zip` uv binary files

## Test Plan

~(clarifying note: I'm aware this file is managed cargo dist and this
will not work without allow-dirty at this time)~

~Currently cargo dist targets generation in `build_local_artifacts`
which is not used here, plus we'd ideally want to attest the GH
downloads / artifacts.~ (edit: fixed by
https://github.com/axodotdev/cargo-dist/pull/2000)

At a glance, this release workflow seems to work successfully:

e.g. Example Run:
https://github.com/samypr100/uv/actions/runs/13229100555
e.g. Example Release:
https://github.com/samypr100/uv/releases/tag/0.5.29

---------

Co-authored-by: Aria Desires <aria.desires@gmail.com>
2025-10-29 20:33:37 -04:00
renovate[bot] e9b0478dab
Update dependency astral-sh/uv to v0.9.5 (#16456) 2025-10-26 22:26:15 -04:00
Zanie Blue 3ff3ae2062
Pin the maturin version in the release pipeline (#16439)
This should avoid hitting the GitHub API to determine the latest
release, and more generally we should not automatically fetch the latest
version of Maturin in our release pipeline as it opens us to
supply-chain attacks.
2025-10-24 13:16:30 -05:00
Zanie Blue 2baee75a94
Restore DockerHub images and annotations (#16441)
- **Revert "Drop publish of extended images to DockerHub temporarily
(#16355)"**
- **Revert "Drop annotations from DockerHub uv images (#16356)"**
2025-10-24 13:16:24 -05:00
William Woodruff 7df01bcbde
ci: re-enable zizmor (#16437)
## Summary

The latest version should fix our rate-limiting issues.

## Test Plan

See what happens in CI.

Signed-off-by: William Woodruff <william@astral.sh>
2025-10-24 10:31:45 -05:00
konsti 1a53701d1d
Deactivate zizmor due to GitHub ratelimiting (#16390) 2025-10-21 15:36:20 +00:00
renovate[bot] 2b0407e277
Update dependency astral-sh/uv to v0.9.4 (#16363)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [astral-sh/uv](https://redirect.github.com/astral-sh/uv) | uses-with |
patch | `0.9.2` -> `0.9.4` |

---

### Release Notes

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

###
[`v0.9.4`](https://redirect.github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#094)

[Compare
Source](https://redirect.github.com/astral-sh/uv/compare/0.9.3...0.9.4)

Released on 2025-10-17.

##### Enhancements

- Add CUDA 13.0 support
([#&#8203;16321](https://redirect.github.com/astral-sh/uv/pull/16321))
- Add auto-detection for Intel GPU on Windows
([#&#8203;16280](https://redirect.github.com/astral-sh/uv/pull/16280))
- Implement display of RFC 9457 HTTP error contexts
([#&#8203;16199](https://redirect.github.com/astral-sh/uv/pull/16199))

##### Bug fixes

- Avoid obfuscating pyx tokens in `uv auth token` output
([#&#8203;16345](https://redirect.github.com/astral-sh/uv/pull/16345))

###
[`v0.9.3`](https://redirect.github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#093)

[Compare
Source](https://redirect.github.com/astral-sh/uv/compare/0.9.2...0.9.3)

Released on 2025-10-14.

##### Python

- Add CPython 3.15.0a1
- Add CPython 3.13.9

##### Enhancements

- Obfuscate secret token values in logs
([#&#8203;16164](https://redirect.github.com/astral-sh/uv/pull/16164))

##### Bug fixes

- Fix workspace with relative pathing
([#&#8203;16296](https://redirect.github.com/astral-sh/uv/pull/16296))

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "before 4am on Monday" (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:eyJjcmVhdGVkSW5WZXIiOiI0MS4xNDMuMSIsInVwZGF0ZWRJblZlciI6IjQxLjE0My4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJpbnRlcm5hbCJdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-20 10:33:57 +02:00
Zanie Blue 88f519a3bf
Drop annotations from DockerHub uv images (#16356) 2025-10-18 14:58:06 -05:00
Zanie Blue 70cfc4020a
Drop publish of extended images to DockerHub temporarily (#16355)
To workaround https://github.com/astral-sh/uv/issues/16350
2025-10-18 14:47:48 -05:00
Zanie Blue 0a2b160400
Migrate from deprecated `macos-13` runner to `macos-15-intel` (#16316) 2025-10-16 09:07:18 -05:00
renovate[bot] d536d3f27d
Update dependency astral-sh/uv to v0.9.2 (#16259) 2025-10-13 01:13:59 +00: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
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 d3dc451ee9
Update pypa/gh-action-pypi-publish to release tag (#16176)
Renovate has been complaining.
2025-10-09 15:34:43 +02: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
konsti 0d11e52ea4
Use correct tag comment for Vampire/setup-wsl v6.0.0 (#16177)
Renovate complained that it was the wrong tag.

For the actual CI, it's a comment change only.
2025-10-08 06:56:03 +00:00
samypr100 593678055f
Publish Python 3.14 Docker Images (#16150)
## Summary

Tentative PR to drop the `-rc` suffix from the published images.

Do not merge this yet until the formal release
[upstream](https://hub.docker.com/_/python) :)
2025-10-07 18:10:07 -05:00