fix(ffmpeg): pin a month-final BtbN build and notice the next expiry - #525
Closed
mulkakhileshmj wants to merge 1 commit into
Closed
mulkakhileshmj wants to merge 1 commit into
mulkakhileshmj wants to merge 1 commit into
Conversation
The pinned Linux build was the mid-month daily autobuild-2026-08-16, and BtbN retains only the last fourteen or so dailies plus each month's final build, kept two years. The pin therefore 404ed about a fortnight after it was chosen, and every fresh Linux install failed before its first video operation while CI, which installs the distro binary, saw nothing (Hebbian-Robotics#521). The pin moves to autobuild-2026-08-31-13-27, the month-final closest to the old pin, with both architecture checksums computed from downloads performed for this change and the x86_64 binary executed to confirm the version label. The comment above the pin now states the retention rule next to the immutability one, since immutable was true and was not the property that failed. Month-final is enforced, not remembered: a new offline test refuses any pin whose tag date is not the last calendar day of its month. Every surviving month-final on the release list, February included, falls on the last calendar day, and if BtbN ever skips a month-end build the deliberate false refusal forces the pin updater to re-verify retention. Expiry is noticed before a user finds it: a HEAD reachability test over both pinned URLs joins the HFLOW_NETWORK_TESTS gate, and a weekly scheduled workflow runs it with the month-final check. Weekly matters because dailies live fourteen days, so a wrong pin is caught while the asset is still downloadable. Closes Hebbian-Robotics#521 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Contributor
|
Resolved in #526. It bumped |
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.
Closes #521.
Problem
The pinned Linux build was
autobuild-2026-08-16-13-00, a mid-month daily. BtbN retains the last ~14 dailies plus each month's final build (kept two years), so the pin 404ed about a fortnight after it was chosen, and every fresh Linux install failed before its first video operation. CI installs the distro binary, so nothing we watch saw it.The pin
Moved to
autobuild-2026-08-31-13-27, the month-final closest to the expired pin, version labeln8.1.2-50-g1a748fe2cd. Both checksums were computed from downloads performed for this change, not taken from a release page:The extracted x86_64 binary reports
ffmpeg version n8.1.2-50-g1a748fe2cd-20260831, so the existingPINNED_VERSION_LABEL in version_lineassertions hold. The comment above the pin now states the retention rule alongside the immutability one, since immutable was true and was not the property that failed.The two decisions, answered
Enforced, not remembered.
test_pinned_release_tag_is_a_month_final_buildis an offline test refusing any pin whose tag date is not the last calendar day of its month. The evidence for that exact rule: every surviving month-final on the release list (2026-02 through 2026-08, February's 28th included) falls on the last calendar day. The honest edge: BtbN's real rule is "last build of the month", so if a month-end build is ever skipped, the true month-final lands a day early and the test refuses a correct pin. That false refusal is deliberate and the docstring says so: it forces whoever updates the pin to re-verify retention rather than trust the tag's shape, which is the failure direction an availability property wants.Noticed before a user finds it. Two parts.
test_pinned_urls_are_reachableHEADs every pinned URL on the existingHFLOW_NETWORK_TESTS=1gate, cheap enough to run anywhere. And a new scheduled workflow (.github/workflows/pinned-assets.yml, weekly plus manual dispatch) runs exactly that test and the month-final check, so an expiry becomes a red run instead of a fresh install's 404. Weekly is load-bearing: dailies live fourteen days, so a wrongly pinned daily is caught while the asset is still downloadable and the fix is a calm re-pin rather than an archaeology exercise. The workflow reuses ci.yml's pinned action SHAs; it is the "needs someone to actually run it" trade-off resolved by having the schedule be the someone.Validation
Run on WSL2 Ubuntu, Python 3.12:
The network run performed the real end-to-end proof against a cleared cache: both HEADs return 200, the full download verifies against the new checksums, extracts, and the installed ffmpeg and ffprobe both report the pinned label. Mutation: re-pinning to the current daily
autobuild-2026-09-12-13-12turns the month-final test red with the message explaining the retention trap; restored, green.🤖 Generated with Claude Code