refactor/current-version-tag #14

Merged
picklemustard merged 4 commits from refactor/current-version-tag into main 2026-09-20 21:50:03 +00:00
No description provided.
The version sort and the anchored ERE that exclude a stray v1.0.0-rc1 were
copied between next-version.sh and publish-toolchain-images.sh. A third caller
is about to need the same answer, and the three have to agree: the refresh
workflow decides from it whether a tag may move, and publish-toolchain-images.sh
decides from it whether to retag the previous release's toolchain images rather
than rebuild them. A copy that drifted would let a tag move across a toolchain
change that the retag path then carried forward under a new number.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
The three bumps fit a minor or a major. They do not fit a change too small to
be worth a number that still has to reach the cluster, and the only way to ship
one was to spend a number on it anyway.

Refresh release rebuilds the binaries and the two application images from
current main and puts them behind the existing vX.Y.Z: the tag moves onto the
refreshed commit, the attachments and the generic package files are replaced,
and the release note records what happened. The toolchain images are not
rebuilt, so the workflow refuses to run when build/docker differs from the tag
-- which is also what keeps publish-toolchain-images.sh's retag fast path
honest on the next bump.

The images also get a vX.Y.Z-<sha12> tag, and that is what the manifest pin
becomes. Every workload in deploy/k8s is imagePullPolicy: IfNotPresent, so
replacing the bytes behind :vX.Y.Z alone would publish correctly and change
nothing that is running.

refresh-release.sh moves the tag last, the reverse of release.sh. The tag move
is what publishes a refresh, and it is also what the "is there anything to do"
guard reads -- moving it first would leave a failed upload unretryable.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
After a refresh, kustomization.yaml reads vX.Y.Z-<sha12> while configmap.yaml's
build.image_tag and the distcc pool still read vX.Y.Z. Four existing comments
say all three move together, so without this the next reader closes the gap and
pins the cluster to application images that were never published.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
docs(ci): document Refresh release
All checks were successful
CI / Dedupe (push) Successful in 1s
CI / Go (push) Successful in 1m57s
CI / Frontend (push) Successful in 30s
CI / Badges (push) Has been skipped
CI / Publish images (push) Has been skipped
CI / Dedupe (pull_request) Successful in 1s
CI / Go (pull_request) Successful in 1m56s
CI / Frontend (pull_request) Successful in 20s
CI / Badges (pull_request) Has been skipped
CI / Publish images (pull_request) Has been skipped
8dd9473df7
Covers what it replaces and what it leaves alone, that vX.Y.Z becomes a moving
tag so a recorded checksum stops matching, why the images carry a
vX.Y.Z-<sha12> tag (everything in deploy/k8s is IfNotPresent), why the workflow
refuses a build/docker change, and how a half-failed run is retried.

Also corrects the toolchain list under "What a release produces": it named
three images, publish-toolchain-images.sh publishes five.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
StudioTeal/GodotBinaryBuilder!14
No description provided.