Skip to content

ci: install uv and maturin from PyPI when GitHub release downloads fail - #1372

Merged
kvlonge merged 1 commit into
mainfrom
ci/setup-without-release-downloads
Nov 8, 2026
Merged

kvlonge merged 1 commit into
mainfrom
ci/setup-without-release-downloads

Conversation

@kvlonge

@kvlonge kvlonge commented Nov 8, 2026

Copy link
Copy Markdown
Contributor

Why

Since about 09:00 UTC, CI jobs fail in setup because GitHub release downloads return 504 errors or error pages. astral-sh/setup-uv downloads uv from GitHub releases, and PyO3/maturin-action downloads maturin from them. No repository code runs in those jobs, so every pull request is blocked. PyPI is not affected.

Changes

  • A local setup-uv action replaces astral-sh/setup-uv in every workflow. It installs the same pinned uv (0.12.3) from PyPI using the runner's cached Python 3.12, leaves that Python off PATH, and keeps the uv cache keyed on the same dependency files. Unlike the old action, it doesn't prune the cache before saving.
  • Each maturin-action step in build-distributions.yml now tries once more if it fails. If the wheel builds on macOS and Windows and the source distributions fail twice, they build with maturin 1.16.0 from PyPI, the version the action resolves for this repository, using the same arguments and environment. Linux wheels need the action's manylinux container, so they only get the retry.
  • No job, check, version or argument is removed or changed.

Verification

  • make check-ci.
  • Locally: the action's install and cache-key steps install uv 0.12.3 from PyPI and put it on PATH, and scripts/maturin_from_pypi.sh sdist builds the sqb source distribution with maturin 1.16.0 from PyPI.
  • This pull request's own Verify run uses the new workflows during the outage.
  • DuckShop: not applicable, since this changes CI setup only.

A local setup-uv action installs the pinned uv from PyPI instead of GitHub
releases. Each maturin-action step retries once, and macOS, Windows and
source distribution builds then fall back to the same maturin from PyPI.
@kvlonge
kvlonge enabled auto-merge (squash) November 8, 2026 10:27
@kvlonge
kvlonge merged commit 131bdea into main Nov 8, 2026
96 of 98 checks passed
@kvlonge
kvlonge deleted the ci/setup-without-release-downloads branch November 8, 2026 12:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant