Skip to content

wheels: fetch bison from a mirror, not only ftp.gnu.org - #130

Merged
revarbat merged 2 commits into
mainfrom
fix-wheels-bison-mirror
Aug 28, 2026
Merged

wheels: fetch bison from a mirror, not only ftp.gnu.org#130
revarbat merged 2 commits into
mainfrom
fix-wheels-bison-mirror

Conversation

@revarbat

Copy link
Copy Markdown
Member

Problem

Both Linux wheel jobs failed the v0.51.3 release twice in a row, on x86_64 and aarch64 alike:

curl: (7) Failed to connect to ftp.gnu.org port 443: Connection timed out

ftp.gnu.org is unreachable (confirmed from a dev machine too, not just the runners), and it was the sole source for the bison 3.8.2 tarball every Linux wheel needs — manylinux_2_28's AppStream only ships 3.0.4, and the parser's grammar requires %require "3.8".

macOS, Windows and sdist all passed; they get bison from brew/msys2.

Fix

Try mirrors in order, ftp.gnu.org last:

  1. ftpmirror.gnu.org — GNU's own redirector to a nearby mirror
  2. mirrors.kernel.org
  3. ftp.gnu.org

Each gets --retry 3 --retry-all-errors and --connect-timeout 20, so a slow or dead mirror fails over rather than hanging.

The YAML trap

In a >- folded scalar, a line indented more than the first keeps its newline instead of folding to a space — which would split a URL from its curl. Every line therefore stays at one indent, with a comment saying why.

Verified rather than assumed:

  • parsed value contains 0 newlines
  • ran the resulting one-liner end to end — downloads and extracts cleanly

Version

No bump: 0.51.3 has not shipped, so this is part of it.

🤖 Generated with Claude Code

revarbat and others added 2 commits August 27, 2026 19:39
Both Linux wheel jobs failed the v0.51.3 release twice in a row with
`curl: (7) Failed to connect to ftp.gnu.org port 443: Connection timed
out`, on x86_64 and aarch64 alike. ftp.gnu.org is unreachable, and it was
the sole source for the bison 3.8.2 tarball every Linux wheel needs
(manylinux_2_28's AppStream only has 3.0.4; the grammar wants 3.8).

Try ftpmirror.gnu.org (GNU's own redirector to a nearby mirror), then
mirrors.kernel.org, then ftp.gnu.org last. Each gets --retry 3
--retry-all-errors and a 20s connect timeout so a slow mirror fails over
instead of hanging.

The folded `>-` scalar needs every line at one indent: a more-indented
line keeps its newline instead of folding to a space, which would split a
URL from its curl. Verified the parsed value contains zero newlines, and
ran the resulting one-liner end to end (downloads and extracts).

No version bump: 0.51.3 has not shipped, so this is part of it.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
CLAUDE.md requires uv.lock's own self-version to track pyproject.toml on
every bump. It had drifted 14 releases behind, unnoticed because nothing
reads it during a wheel build. Noticed when a `uv run` re-locked it.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@revarbat
revarbat merged commit d666594 into main Aug 28, 2026
3 checks passed
@revarbat
revarbat deleted the fix-wheels-bison-mirror branch August 28, 2026 02: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