fix(build): hold back packages the cran mirror has not picked up yet #188
Loading…
Reference in a new issue
No description provided.
Delete branch "fix/skip-unmirrored-recent-packages"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Motivation
A resolute build aborted on a single package:
This is not rate limiting — it is a 404.
check_for_binary()reads the published version from thecranGitHub mirror, and that mirror lags CRAN.AsyPeer 0.0.1was published today at 13:50 UTC and has no repository there yet.The 404 is permanent, but the call is wrapped in
purrr::insistentlywithmax_times = 10andpause_cap = 60, so it retries on a 1/2/4/8/16/32/60/60/60/60 second backoff — about five minutes — and then aborts the whole shard.Change
Hold back release versions published within
CRAN_MIRROR_LAG_DAYS(default 3).Deferring them costs nothing: the daily update pipeline builds new and updated packages anyway, and they arrive here on the next run once the mirror has caught up.
Measured against the live CRAN index
AsyPeeris among the 135 at three days.Worth doing separately
Retrying a 404 at all is wrong — it can never succeed, and any other permanent 404 (a package pulled from the mirror, say) will abort a shard the same way.
check_for_binary()should distinguish a permanent 404 from a transient failure and, when the mirror simply lacks the package, treat the version as unknown rather than fatal. That is a bincraft change and I have not made it here.