From 4ba62d7a500f4371f8acaf31e18bf256172d659c Mon Sep 17 00:00:00 2001 From: Zach Vorhies Date: Mon, 26 Oct 2026 01:13:49 -0700 Subject: [PATCH] release: send a User-Agent when checking crates.io for a published crate crates.io returns 403 to curl's bare request, so crate_visible() was always false. Harmless while every publish succeeded in one pass, but the 4.10.17 release hit index lag after uploading running-process-protocol, and every rerun then retried that upload and failed on 'already uploaded' instead of skipping it and carrying on. Local-Gate: v1 tree=b7f10623d7fa0f525f4abf5a9ff5ed1d03eedd27 secs=920 lanes=linux-quick:run Ci-Attestation: {"at":1793003350,"gate":"rust/all/fmt","host":"linux-x86_64","key":"9333f40c104b7ee571714f3cdb1178efb3dae84255b313d307648e7026efcd27","lane":"linux-quick","parents":["e5ca3ffab0956cac4149322868623345fd624860"],"secs":920,"stamp":"46e24b3e231e8ad77b8bdb3ba5b65dda","tree":"b7f10623d7fa0f525f4abf5a9ff5ed1d03eedd27","v":1,"via":"run"} Ci-Attestation: {"at":1793003350,"gate":"python/all/static","host":"linux-x86_64","key":"9333f40c104b7ee571714f3cdb1178efb3dae84255b313d307648e7026efcd27","lane":"linux-quick","parents":["e5ca3ffab0956cac4149322868623345fd624860"],"secs":920,"stamp":"b5fcf6da3c713e739b61ecdddf7db959","tree":"b7f10623d7fa0f525f4abf5a9ff5ed1d03eedd27","v":1,"via":"run"} Ci-Attestation: {"at":1793003350,"gate":"rust/x86_64-unknown-linux-gnu/check","host":"linux-x86_64","key":"9333f40c104b7ee571714f3cdb1178efb3dae84255b313d307648e7026efcd27","lane":"linux-quick","parents":["e5ca3ffab0956cac4149322868623345fd624860"],"secs":920,"stamp":"91ddf0ce6d884bc0bfcc52a3597de080","tree":"b7f10623d7fa0f525f4abf5a9ff5ed1d03eedd27","v":1,"via":"run"} Ci-Attestation: {"at":1793003350,"gate":"rust/x86_64-unknown-linux-gnu/dylint","host":"linux-x86_64","key":"9333f40c104b7ee571714f3cdb1178efb3dae84255b313d307648e7026efcd27","lane":"linux-quick","parents":["e5ca3ffab0956cac4149322868623345fd624860"],"secs":920,"stamp":"8a104bbc3a36866dcad73d66abd8ead2","tree":"b7f10623d7fa0f525f4abf5a9ff5ed1d03eedd27","v":1,"via":"run"} Ci-Attestation: {"at":1793003350,"gate":"rust/x86_64-unknown-linux-gnu/test","host":"linux-x86_64","key":"9333f40c104b7ee571714f3cdb1178efb3dae84255b313d307648e7026efcd27","lane":"linux-quick","parents":["e5ca3ffab0956cac4149322868623345fd624860"],"secs":920,"stamp":"44a33653a7648df973f7997278b8bc71","tree":"b7f10623d7fa0f525f4abf5a9ff5ed1d03eedd27","v":1,"via":"run"} Ci-Attestation: {"at":1793003350,"gate":"python/linux-x64/test","host":"linux-x86_64","key":"9333f40c104b7ee571714f3cdb1178efb3dae84255b313d307648e7026efcd27","lane":"linux-quick","parents":["e5ca3ffab0956cac4149322868623345fd624860"],"secs":920,"stamp":"71e2380b219edc0e7bfa974ab05396be","tree":"b7f10623d7fa0f525f4abf5a9ff5ed1d03eedd27","v":1,"via":"run"} Ci-Attestation: {"at":1793003350,"gate":"general/linux-x64/perf","host":"linux-x86_64","key":"9333f40c104b7ee571714f3cdb1178efb3dae84255b313d307648e7026efcd27","lane":"linux-quick","parents":["e5ca3ffab0956cac4149322868623345fd624860"],"secs":920,"stamp":"db0c18331a411d8c333033a696ed6993","tree":"b7f10623d7fa0f525f4abf5a9ff5ed1d03eedd27","v":1,"via":"run"} --- .github/workflows/auto-release.yml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.github/workflows/auto-release.yml b/.github/workflows/auto-release.yml index 05144563..1ed0f40f 100644 --- a/.github/workflows/auto-release.yml +++ b/.github/workflows/auto-release.yml @@ -775,7 +775,11 @@ jobs: # run 26152536023 with proto v3.2.1). crate_visible() { local name="$1" version="$2" - curl -sf "https://crates.io/api/v1/crates/$name/$version" >/dev/null + # crates.io answers 403 to a request without a User-Agent, which + # made every crate look unpublished, so a rerun after a partial + # publish died on "already uploaded" instead of skipping. + curl -sf -A "running-process-release (github.com/zackees/running-process)" \ + "https://crates.io/api/v1/crates/$name/$version" >/dev/null } for crate in "${PUBLISH_ORDER[@]}"; do