update: refresh install.toml commit + built_at from new binary
After `banger update` swaps binaries, install.toml needs to reflect
the just-installed identity. The previous code passed
buildinfo.Current().{Commit,BuiltAt} into installmeta.UpdateBuildInfo
— but buildinfo.Current() in the running CLI is the OLD pre-swap
binary's identity (we're it), not the staged one. install.toml's
version field got refreshed to target.Version while commit and
built_at stayed pinned at the previous release. `banger doctor`
compares the running CLI's three fields against install.toml's
three fields and so raised a false-positive drift warning on
every update.
Fix: after the swap, exec /usr/local/bin/banger version, parse the
three-line output, and write all three fields to install.toml. If
the exec fails for any reason we fall back to the old behaviour
(version + stale commit/built_at) with a warning, since install.toml
drift is a doctor warning not a broken host — same posture as
before for the failure path.
The parser is split out (parseVersionOutput) and table-tested:
happy path, whitespace-tolerance, missing-field rejection, empty
input rejection, ignoring unrelated lines.
Caught by running v0.1.0 → v0.1.1 live as the first end-to-end
smoke test of the self-update flow, which was the whole point of
that exercise.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
a0b5c7fa3c
commit
d867d61eb3
3 changed files with 152 additions and 8 deletions
15
CHANGELOG.md
15
CHANGELOG.md
|
|
@ -10,6 +10,18 @@ changed between versions.
|
|||
|
||||
## [Unreleased]
|
||||
|
||||
## [v0.1.2] - 2026-04-29
|
||||
|
||||
### Fixed
|
||||
|
||||
- `banger update` now writes the freshly-installed binary's commit
|
||||
and built_at fields to `/etc/banger/install.toml`, not the running
|
||||
CLI's. Previously install.toml's `version` was correct after an
|
||||
update but `commit` + `built_at` still pointed at the pre-update
|
||||
binary's identity, which made `banger doctor` raise a false-positive
|
||||
"CLI/install drift" warning on every update. Caught by the v0.1.0
|
||||
→ v0.1.1 live update smoke-test.
|
||||
|
||||
## [v0.1.1] - 2026-04-29
|
||||
|
||||
### Added
|
||||
|
|
@ -125,6 +137,7 @@ root filesystem and network, and exits on demand.
|
|||
the swap rather than starting up against an incompatible store.
|
||||
- Linux only. amd64 only. KVM required.
|
||||
|
||||
[Unreleased]: https://git.thaloco.com/thaloco/banger/compare/v0.1.1...HEAD
|
||||
[Unreleased]: https://git.thaloco.com/thaloco/banger/compare/v0.1.2...HEAD
|
||||
[v0.1.2]: https://git.thaloco.com/thaloco/banger/releases/tag/v0.1.2
|
||||
[v0.1.1]: https://git.thaloco.com/thaloco/banger/releases/tag/v0.1.1
|
||||
[v0.1.0]: https://git.thaloco.com/thaloco/banger/releases/tag/v0.1.0
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue