v0.351.0 (unreleased): old -rc controller images and old infra images are deleted (decision 56 amended, decision 285)
gates / gates (push) Successful in 31s
gates / gates (push) Successful in 31s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0159rPz1ZhFKsS53msqPYxtS
This commit is contained in:
1 parent
64b99b74e3
commit
27360d6abe
10 files changed
+471
-31
No files matched your search
@@ -1,3 +1,30 @@
|
||||
## v0.351.0 (unreleased, 2026-11-09) — old test builds and old infrastructure images are deleted (decision 56 amended, decision 285)
|
||||
|
||||
### 2026-11-09
|
||||
|
||||
**MinAgent: 0.158.1** (unchanged).
|
||||
|
||||
**Why (measured 2026-11-09, demo-hp guest 9201, `docker system df -v`):** the whole-guest backup copies `/var/lib/docker` (mp0,
|
||||
`backup=1`), and demo-hp's local tier was refused for space again (felhom.eu R-548). Of 27.5 GB of images, 13.2 GB ran in
|
||||
containers, 9.8 GB were the apps' undo images (decision 53, kept on purpose), 2.2 GB were 28 old controller images and
|
||||
1.35 GB were old infrastructure and helper images. Nothing deleted the last two kinds.
|
||||
|
||||
**Controller images: a test build is a version (decision 56 amended).** `RetainControllerImages` left every `-rc` tag alone,
|
||||
so 25 test builds stayed. Tags, the running version and the previous now parse with `util.ParseVersionPre` (an rc orders
|
||||
below its release): an old rc goes like an old release; an rc above the running one or between the previous and the
|
||||
running one stays; `latest` stays. A box that RUNS a test build is judged (it was skipped). The fallback previous prefers
|
||||
a release over a newer test build. Tests `TestControllerRetention_OldTestBuildsGo`, `_BoxOnATestBuildIsJudged`; the
|
||||
existing test's rc expectation changed with the rule.
|
||||
|
||||
**Infrastructure images (decision 285, new).** `RetainInfraImages(infra.Images())`, 3 minutes after every start: per pinned
|
||||
repository the pin, newer versions, the previous pin and every in-use image stay; older and untagged ones go by exact
|
||||
name/ID; never forced, never pruned; not while an app pulls (R-863, retried every 2 minutes, 30 tries) or while the
|
||||
controller swaps itself. Tests `TestInfraRetention_*` (4). Customer boxes get a new traefik or cloudflared pin every few
|
||||
weeks (~65–195 MB each); this is the part a customer box needs.
|
||||
|
||||
Red-proofs: six code mutants, each test red (the previous-pin keep, the in-use check, the R-863 lock, the tag parser, the
|
||||
running-version parser, the release preference). Green gate: `go build`, `go vet`, `go test ./...` rc 0; `controller_gates.py --fast` OK.
|
||||
|
||||
## v0.350.0 (2026-11-03) — Traefik v3.7.17 (GHSA-xv5x-242w-7hf7); a restore forgets the update-held flag (R-1347); a failed put-back at start-up mails (R-1348); three false start-up lines (R-1339, R-1351, R-1323)
|
||||
|
||||
### 2026-11-03
|
||||
|
||||
Reference in new issue
Block a user