Skip to content

fix(release): bump crates.io verify polling 12→30 attempts (3min→7.5min)#37

Merged
saurabhjain1592 merged 1 commit into
mainfrom
fix/release-yml-extend-verify-timeout
May 9, 2026
Merged

fix(release): bump crates.io verify polling 12→30 attempts (3min→7.5min)#37
saurabhjain1592 merged 1 commit into
mainfrom
fix/release-yml-extend-verify-timeout

Conversation

@saurabhjain1592
Copy link
Copy Markdown
Member

Summary

The `Verify version is live on crates.io` step in release.yml false-failed during the v0.2.0 release (workflow run 25604826136). `cargo publish` succeeded; the version was created in the crates.io DB at 15:34:21Z (verified via `created_at` field on `/api/v1/crates/axonflow-sdk-rust/0.2.0` checked manually 30 seconds after the polling window closed), but the public API endpoint served a cached 404 for the entire 3-minute polling window (15:34:23Z → 15:37:24Z).

Change

Bump the polling loop from `12 × 15s = 3min` to `30 × 15s = 7.5min`. Polling-instead-of-sleeping preserves the fast-exit on typical fast-propagation cases (30-60s).

DoD (dryrun)

Ran the new polling logic locally against the live v0.2.0 entry — returns success on first attempt:

```
$ for i in $(seq 1 30); do
if curl -sf "https://crates.io/api/v1/crates/axonflow-sdk-rust/0.2.0" > /dev/null; then
echo "✅ axonflow-sdk-rust@0.2.0 is live on crates.io (after ${i} attempt(s))"
break
fi
sleep 15
done
✅ axonflow-sdk-rust@0.2.0 is live on crates.io (after 1 attempt(s))
```

Self-review

  • All 4 references to the old timing (comment, loop bound, success message, error message) updated consistently — `grep -nE "12|3 minutes" .github/workflows/release.yml` returns nothing matching the old values.
  • YAML still parses (`python3 -c 'yaml.safe_load(...)'`).
  • Bash block in the `run:` step has valid syntax (`bash -n`).

CHANGELOG.md / Cargo.toml / source code unchanged.

v0.1.0 needed >30s for crates.io API propagation after `cargo publish`
returned. v0.2.0 (workflow run 25604826136 on tag push 2026-05-09 15:31Z)
hit the same race at the longer end — `cargo publish` succeeded at
15:34:21Z, the version row was immediately created in the crates.io
DB (visible via `created_at` on the version metadata when queried 30s
after the verify-step's final attempt), but the public API endpoint
served a cached 404 for the entire 3-minute polling window. Workflow
red-flagged a successful publish.

Bump to 30 × 15s = 7.5min covers the observed envelope with headroom.
The polling-instead-of-sleeping pattern means the workflow still exits
quickly when propagation is fast (typical case: 30-60s).

Verified locally that the new polling logic returns success on first
attempt against the live v0.2.0 entry.

Signed-off-by: Saurabh Jain <dev@getaxonflow.com>
@saurabhjain1592 saurabhjain1592 merged commit fe35350 into main May 9, 2026
9 checks passed
@saurabhjain1592 saurabhjain1592 deleted the fix/release-yml-extend-verify-timeout branch May 9, 2026 16:35
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