Repository navigation
fix(deps): hold nv-codec-headers on SDK 13.0 (NVIDIA driver 570+); make dependency holds reviewable - #55
Closed
ryan-morris wants to merge 2 commits into
Closed
fix(deps): hold nv-codec-headers on SDK 13.0 (NVIDIA driver 570+); make dependency holds reviewable#55ryan-morris wants to merge 2 commits into
ryan-morris wants to merge 2 commits into
Conversation
…ndency holds reviewable nv-codec-headers SDK 13.1 raises the minimum NVIDIA driver to 610, and FFmpeg's NVENC refuses to open on anything older. NVIDIA's 580 branch is the last for Maxwell/Pascal/Volta, so 13.1 retired NVENC for those cards outright, and for any machine not yet on 610 (measured on an RTX 3080 with Windows driver 591.86). Pin n13.0.19.1 (570+) and cap Renovate to the 13.0 line; 13.0.x patch releases still flow. The nv-codec rule gets explicit four-component versioning: the default semver-coerced scheme drops the build number, so n13.0.19.2 would never be offered. Holds never expire on their own, which is how a pinned dependency stagnates. Each hold now carries a structured record in deps.json (.defaults.<dep>.hold: allowedVersions, issue, reviewAfter, liftWhen): - ledger-validate.sh checks its shape; - scripts/ci/holds-test.sh keeps it and the renovate.json rule in step (exactly one unconditional rule, identical cap, pin inside its own cap), with fixtures; - a review-holds job in the weekly check-updates.yml comments on the hold's issue once reviewAfter passes, labels it hold-review-due until a human lifts the hold or sets a new date, and reopens the issue if it was closed while the hold is live. It never lifts a hold or moves a date by itself. mbedTLS's existing hold (#18) gets the same record, and its rationale is corrected: its consumers here are SRT and librist, not FFmpeg's TLS layer. Refs #54, #18 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… from lifted holds Codex review of the hold reminder found two silent no-ops: - jq inside mapfile's process substitution hid a missing or malformed ledger, which then read as "no holds" and exited 0. Capture it in a checked substitution first. - the label was only cleared from issues a remaining hold points at, so lifting a hold (or all of them) left hold-review-due on its issue forever. Sweep every issue carrying the label, open or closed, and clear it wherever no hold is due -- including with zero holds. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Member
Author
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.
Why
Renovate bumped nv-codec-headers to SDK 13.1, which raises the minimum NVIDIA driver to 610. FFmpeg's NVENC refuses to open on anything older, so current main has no NVIDIA encoding for:
Holds also had no review mechanism: nothing ever prompted a revisit, so a pinned dependency could stagnate silently.
What
nv-codec held on the 13.0 line (driver 570+). Tracking issue: #54.
n13.0.19.1./^n13\.0\./, so 13.0.x patch releases still arrive.semver-coercedscheme drops the build number, son13.0.19.2would never have been offered.ffnvcodec >= 12.1.14.0. The 13.1-only paths are behind version guards with fallbacks, so 13.0 drops optional features, not builds.Holds are now reviewable.
deps.json:.defaults.<dep>.holdwithallowedVersions,issue,reviewAfterandliftWhen.ledger-validate.shchecks the record's shape. Holds are allowed only in.defaults, and the date must be a real calendar date.scripts/ci/holds-test.shkeepsdeps.jsonandrenovate.jsonin step: exactly one unconditional rule per hold, the same cap in both files, and the pin inside its own cap. It has fixtures for every failure mode.review-holdsjob in the weeklycheck-updates.ymlruns ongithub.tokenwithissues: write. OncereviewAfterpasses it:hold-review-dueuntil a human lifts the hold or sets a new date;Verification
Real hardware A/B: FFmpeg 9.0.2 cross-built for win-x64 (NVENC only), on an RTX 3080 with Windows driver 591.86:
Driver does not support the required nvenc API version. Required: 13.1 Found: 13.0/minimum required Nvidia driver for nvenc is 610.00Green CI alone does not prove this: the hardware probes record an old driver as a NOTE, not a failure.
Gates: all 11 ledger and Renovate gates pass, including
renovate-config-testagainst renovate@44.134.3. shellcheck is clean.review-holdsdry runs: checked before and after the review date, with a lifted hold, two holds sharing one issue, a moved date, and a missing or malformed ledger.Codex: approved the plan with changes; all were applied. Codex's code review returned "ship with fixes", and both findings are fixed in the second commit.
Touches
deps.json, so CI builds both FFmpeg lines (8.1.3, 9.0.2), and merging cuts a release.🤖 Generated with Claude Code