From 2a48342419951c11c39babd170aa23eceee9060c Mon Sep 17 00:00:00 2001 From: Hiroshi Shinaoka Date: Sun, 9 Aug 2026 17:11:02 +0900 Subject: [PATCH] docs: fix release version existence check --- ai/contribution-workflows/release-publish.md | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/ai/contribution-workflows/release-publish.md b/ai/contribution-workflows/release-publish.md index c83979a..a27c60d 100644 --- a/ai/contribution-workflows/release-publish.md +++ b/ai/contribution-workflows/release-publish.md @@ -155,23 +155,28 @@ for crate in \ do test -z "$(git status --porcelain)" - registry_archive="$download_dir/${crate}-${version}.crate" - if ! http_status=$(curl --location --silent --show-error \ + metadata_response="$download_dir/${crate}-${version}.json" + if ! http_status=$(curl --silent --show-error \ --user-agent "strided-rs-release/$version" \ - --output "$registry_archive" --write-out '%{http_code}' \ - "https://crates.io/api/v1/crates/$crate/$version/download"); then + --output "$metadata_response" --write-out '%{http_code}' \ + "https://crates.io/api/v1/crates/$crate/$version"); then echo "failed to query crates.io for $crate@$version" >&2 exit 1 fi case "$http_status" in 200) + registry_archive="$download_dir/${crate}-${version}.crate" + curl --fail --location --silent --show-error \ + --user-agent "strided-rs-release/$version" \ + --output "$registry_archive" \ + "https://crates.io/api/v1/crates/$crate/$version/download" verify_archive "$crate" "$registry_archive" echo "$crate@$version already exists and matches tag; skipping" continue ;; 404) - rm -f "$registry_archive" + rm -f "$metadata_response" ;; *) echo "unexpected HTTP status $http_status for $crate@$version" >&2