Skip to content

feat(release-image): refuse a release when every image is already released - #66

Merged
cshuttle merged 1 commit into
mainfrom
feat/release-image-refuse-already-released
Aug 30, 2026
Merged

feat(release-image): refuse a release when every image is already released#66
cshuttle merged 1 commit into
mainfrom
feat/release-image-refuse-already-released

Conversation

@cshuttle

Copy link
Copy Markdown
Owner

A failed or unfinished build leaves :latest on the previous release's digest, and verify-source-commit accepts that by construction — the parent commit is in branch history. VirtualWindow v1.19.0 and v1.19.1 both re-tagged the v1.18.1 image this way today (cshuttle/VirtualWindow#212).

New pre-pass in the promote step, before any crane tag: if every image's source digest already carries a vX.Y.Z tag, fail with the version still free. One unchanged image among several stays allowed — a path-filtered build may legitimately have had nothing to rebuild (VirtualWindow's SPA vs config images).

Checked locally with a fake crane: all-stale → exit 1, zero tags written; one-fresh → both images tagged. Minor bump (new behaviour, no input change) → v1.9.0.

🤖 Generated with Claude Code

https://claude.ai/code/session_01NWi7EZhJ5h4aNfBk3EoGDd

…eased

A failed or unfinished build leaves the source tag on the previous release's
digest, and the commit walk accepts that by construction (the parent commit is
in branch history) — VirtualWindow v1.19.0 and v1.19.1 both re-tagged v1.18.1
this way (VirtualWindow#212). Pre-pass every image before any tag is written:
if all of them already carry a release tag, stop with the version still free.
One unchanged image among several stays allowed for path-filtered builds.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NWi7EZhJ5h4aNfBk3EoGDd
@cshuttle
cshuttle merged commit 2cf9854 into main Aug 30, 2026
11 checks passed
@cshuttle
cshuttle deleted the feat/release-image-refuse-already-released branch August 30, 2026 13:41
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