Skip to content

Harden release listing with retries and smaller-page fallback - #2

Open
winter-08 wants to merge 1 commit into
mainfrom
fix/release-listing-retries
Open

winter-08 wants to merge 1 commit into
mainfrom
fix/release-listing-retries

Conversation

@winter-08

Copy link
Copy Markdown
Owner

Summary

  • Retry failed, malformed, and empty release-list responses up to three times with 1s/2s backoff.
  • If a 100-release page remains empty, continue at the same release offset with 10-release pages, retaining the original 500-release search window.
  • Explicitly propagate API and JSON-processing failures rather than letting Bash command substitution turn them into an empty list. Clean up listing temporary files on success and failure.
  • Preserve stable/nightly filtering, newest-complete-release selection, and stdout behavior.
  • Add 24 offline end-to-end regression tests, a separate read-only PR/push test workflow, and testing documentation.

Context

The October 22 scheduled update failed while resolving nightlies before any builds ran. The observed empty large-page response motivates the retries and smaller-page fallback; this change does not assume a confirmed upstream root cause. Later scheduled updates have recovered.

Validation

  • python3 -m unittest discover -s tests -v: 24 tests passed, covering gh/curl, transient errors, empty responses, malformed data, persistent errors, channel/asset selection, and mixed-size pagination through release 500.
  • bash -n scripts/update.sh: passed.
  • git diff --check: passed.
  • Read-only live smoke test in a temporary repository copy: both channels resolved successfully and were already current (stable 0.1.2; nightly 0.1.3-nightly.20261023.3566).

No changes to sources.json, package definitions, the existing update workflow, or repository settings. Nix package builds were not run because this only changes release discovery and no Nix installation is available in the test environment.

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