Automate libkrun and libkrunfw update tracking#106
Merged
Conversation
Add Renovate custom regex managers that track LIBKRUN_VERSION and LIBKRUNFW_VERSION in versions.env and the builder Containerfile against the libkrun/libkrun and libkrun/libkrunfw GitHub release datasources. This closes the gap that left the versions pinned at v1.18.0/v5.4.0 while upstream shipped v1.19.4/v5.5.0. Add 'task update-libkrun-header' which fetches include/libkrun.h from the pinned LIBKRUN_VERSION and refreshes the vendored krun/libkrun.h, keeping the CGO compile-time contract in sync after a bump. Normalize all references from the moved containers/ org to the new libkrun/ org across the builder Containerfile git clones, README, Taskfile, TROUBLESHOOTING, the Windows HyperV plan, and the override_stat design note.
9d782c7 to
45b520d
Compare
This was referenced Jul 9, 2026
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.
What
libkrun and libkrunfw versions were stuck at v1.18.0 / v5.4.0 while upstream shipped v1.19.4 / v5.5.0 — the pins in
versions.envandimages/builder/Containerfilewere manual, and Renovate (viaconfig:recommended) only trackedgo.modand GitHub Actions versions, not these custom pins.This PR closes that gap with two pieces of automation.
Changes
1. Renovate custom managers (
renovate.json)Two regex custom managers map
LIBKRUN_VERSIONandLIBKRUNFW_VERSION(in bothversions.envandimages/builder/Containerfile) to thegithub-releasesdatasource forlibkrun/libkrunandlibkrun/libkrunfw. Renovate will now open PRs like "Update libkrun to v1.19.4" that bump both files atomically — same workflow as the existinggolang.org/x/sysupdates.2.
task update-libkrun-header(Taskfile.yaml)Fetches
include/libkrun.hfromlibkrun/libkrun@<LIBKRUN_VERSION>and refreshes the vendoredkrun/libkrun.h, keeping the CGO compile-time contract in sync after a version bump. Usage:Run after a Renovate bump merge (or before, to validate). The task prepends the SPDX/vendored comment with a sync marker line.
3. Org migration:
containers/→libkrun/Both repos moved under the
libkrunorg. Normalized references across:images/builder/Containerfile— the twogit clonelines (functional, not just docs)README.md— links + clone instructionsTaskfile.yaml— LICENSE-GPL blurbsdocs/TROUBLESHOOTING.md,docs/plans/WINDOWS_HYPERV_PLAN.md,libkrun-linux-override-stat.mdVerification
task update-libkrun-headerruns successfully against the pinned v1.18.0gcc -fsyntax-only) and contains all 25 CGO-bound symbols referenced inkrun/context.goCGO_ENABLED=0 go vetpasses cleantask test-nocgo— all tests passkrun/libkrun.hvendored copy grew from 201→1264 lines because the previous copy was hand-trimmed (docstrings stripped); the task now fetches the full upstream header. Extra declarations are harmless — only symbols referenced incontext.goare bound.What this does NOT automate
The workflow is now: Renovate bumps versions → reviewer runs
task update-libkrun-header→ merge. The header refresh is a manual step by design (it touches a vendored C header that may need review). If you want the header refresh to fire automatically on a Renovate merge, that is a follow-up GitHub Action.Note
The
krun/libkrun.hdiff is large (+1131 lines) because of the trim→full header reconciliation. The meaningful changes are inrenovate.json,Taskfile.yaml, andimages/builder/Containerfile.