Repository navigation
fix(release): Wait for a just-published Release to be listed - #190
Merged
Merged
Conversation
The docs job listed Releases eight seconds after v0.0.20 was published, GitHub's list didn't include it yet, and the run opened no blog PR for PR #188. The job now passes the PRs it released, and the backfill lists again, every 5s for up to a minute, until each has a Release. A release that never appears is logged as a warning; the next run writes its post. The posts and the tables use the same listing. Refs #144 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
There was a problem hiding this comment.
Copilot review overview
🟢 Approval recommended
The bounded retry behavior is correctly integrated and adequately tested without introducing unresolved issues.
Review effort: Balanced
Findings: None
What changed in this PR
Adds bounded polling so release documentation includes newly published GitHub Releases despite API listing delays.
Changes:
- Polls the Releases API for queued PRs for up to one minute.
- Reuses one release listing for posts and release tables.
- Adds coverage for polling, timeout, listing reuse, and CLI forwarding.
| File | Description |
|---|---|
.github/workflows/release.yml |
Passes queued PRs to the backfill script. |
.github/scripts/backfill_blog_posts.py |
Implements polling and consistent release snapshots. |
.github/scripts/tests/test_backfill_blog_posts.py |
Tests the new waiting behavior and CLI option. |
💡 Configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Contributor
mpaulosky
added a commit
that referenced
this pull request
Sep 30, 2026
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #190 +/- ##
=======================================
Coverage 85.40% 85.40%
=======================================
Files 77 77
Lines 1596 1596
Branches 150 150
=======================================
Hits 1363 1363
Misses 189 189
Partials 44 44 |
This was referenced Sep 30, 2026
Merged
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
PR #188 was released as v0.0.20, but its run opened no blog PR. The
docsjob started 8 seconds after the Release was published, GitHub's release list didn't include it yet, and the job logged "Every Release already has its post on main; no blog PR needed" and succeeded. Re-running thedocsjob later opened #189, which confirms the cause.backfill_blog_posts.py --wait-for-prs: lists Releases again, every 5 seconds for up to a minute, until each named PR has one. A Release that never appears (its release failed) is logged as a warning, the posts that can be written are, and the next run picks up the rest, as before.release.yml: thedocsjob passes the plan's queue (the PRs this run released) as--wait-for-prs. Manual runs ofbackfill-blog-posts.ymldon't wait, as before.Testing
--wait-for-prs, and the CLI passing the flag. Six of them, counting the updated inputs test, fail against the old script.yamllint,actionlintandzizmorare clean, and the pre-push gate passed.Refs #144
🤖 Generated with Claude Code