v1.10.4: Streaming tarball retries + 32-bit Linux build fix
·
262 commits
to main
since this release
Immutable
release. Only release title and notes can be modified.
Two targeted fixes: cold installs now retry transient registry failures on the streaming tarball path, and aube-store builds cleanly on 32-bit Linux again.
Fixed
- Streaming tarball fetch retries transient failures (#591 by @jdx) —
start_tarball_stream(the default install hot path for sha512-pinned lockfile entries) used to skip retry entirely to avoid unwinding partial CAS writes mid-stream. That reasoning is sound for mid-stream errors, but it also leaked into pre-response failures: a 503, 429, connection refused, or connection reset before any chunk had flowed would propagate straight back to the caller with no recovery, while the buffered path retried the same failures up tofetchRetriestimes. The initialsend().awaitnow retries onis_retriable_status(5xx + 429, honoringRetry-After) and on transport errors (bounded byTIMEOUT_RETRY_CAP), emitting the existingWARN_AUBE_HTTP_RETRY_TRANSIENT/_TRANSPORTlogs. Once headers passerror_for_statusand chunks start flowing, behavior is unchanged. Caught on a macOS PGO dry-run where Verdaccio / the throttle-proxy hiccupped and the install bailed without a single retry log line. aube-storebuilds on 32-bit Linux (#587 by @jdx) — Theposix_fallocatewrapper hard-codedlen: i64, which matcheslibc::off_ton every 64-bit target but breaks armhf, where the default (non-LFS)off_t = i32. The wrapper now takeslibc::off_tdirectly and the single call site castsbytes.len() as libc::off_t, unblocking Launchpad's Ubuntu Resolute armhf build of aube and any downstreamarmv7-unknown-linux-gnueabihfconsumer.
💚 Sponsor aube
aube is part of en.dev — an independent developer-tooling studio run by @jdx, also behind mise. Work on aube is funded entirely by sponsors.
If aube is saving your team install time or CI minutes, please consider sponsoring at en.dev. Individual and company sponsorships are what keep the project fast, free, and independent.