Skip to content

Release 1.14.3 - #116

Merged
lpezet merged 3 commits into
mainfrom
release/1.14.3
Aug 17, 2026
Merged

lpezet merged 3 commits into
mainfrom
release/1.14.3

Conversation

@lpezet

@lpezet lpezet commented Aug 17, 2026

Copy link
Copy Markdown
Owner

Cuts v1.14.3 — the stacks tier stops leaking images. One test file, plus the
release commit.

Carries one merged fix:

  • Sweep the images the stacks tier builds #115 — tests/stacks/20-boundary.test.sh never removed the images compose
    built. 1.14.1 fixed containers, networks and volumes; images were the one
    resource left, and the tag list grew without bound (237 over 28 run ids).

Plus: CHANGELOG entry, and template/deployment/ repinned to v1.14.3.

Why this is a fix and not a trade

Keeping the images was never buying anything. The project name carries $$, so
compose tags what it builds sattest-<pid>-<shape>-<service> — unique per run,
and the next run cannot reuse the tag whatever we do. docker rmi drops the tag
and not the build cache, so the rebuild is free. Measured back to back, second
run starting with every image the first had built already deleted: 93s then
98s
.

Not a disk fix — the 1.14.1 entry's calibration still holds, deleting these
reclaims roughly nothing. It is the networks argument: a resource the suite
creates every run and never removes is a number that only goes up, and whoever
runs the suite next pays for finding the ceiling.

Expected skip

tests/stacks/20-boundary skips the template for the duration of this PR — the
repin names v1.14.3, which does not exist until this merges.

Upgrading

Nothing to do, nothing to rebuild. No image, template or bank entry changed.
Leftover sattest-* images from before are swept by the next tests/run.sh stacks.

🤖 Generated with Claude Code

https://claude.ai/code/session_01K7ZLAqx3456HP7BAY9gmqA

lpezet and others added 3 commits August 17, 2026 22:53
Containers, networks and volumes were all cleaned; the images compose built
were not, so the tag list grew without bound — 237 had accumulated over 28
run ids on one machine here.

Two places, mirroring what the other three resources already do. `teardown`
adds `--rmi local` to the `down`, and `sweep_stale` picks up anything a
`kill -9` left behind, last in the function because `docker rmi` refuses an
image a container still holds.

Keeping them was never buying anything. The project name carries $$, so the
tag `<project>-<service>` is unique per run and the next run cannot reuse it
whatever we do — and `docker rmi` drops the tag, not the build cache, so the
rebuild is free. Measured back to back: 93s then 98s, the second run starting
with every image the first one built already removed.

The sweep anchors on `^sattest-` and deliberately not `^sat-test-`. They are
one hyphen apart and opposite in kind: the stacks tier's are run-scoped and
unbounded, the integration tier's are fixed-name and reused across runs on
purpose, as a build cache. Widening the anchor would quietly turn every
stacks run into a full rebuild of the other tier.

Verified by planting stale `sattest-*` images and a volume before a run: both
were swept, the five real `sat-test-*` images were untouched, and the run
left nothing of its own behind.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01K7ZLAqx3456HP7BAY9gmqA
Sweep the images the stacks tier builds
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01K7ZLAqx3456HP7BAY9gmqA
@lpezet
lpezet merged commit a18ad3f into main Aug 17, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant