What happened
All releases and tags were deleted from this repository on 2026-08-24. scripts/release.sh derives the next tag by scanning existing v<year>.<month>.* tags and incrementing the highest match, falling back to .0 when it finds none:
release_tags=$(git tag --list "v${release_period}.*" --sort=-v:refname)
...
if [ -z "$release_last" ]; then
release_number=0
With no tags present it computes v2026.8.0, which cannot be created. GitHub's immutable releases permanently reserve a tag name once a release has been published under it, and the reservation outlives deleting both the release and the tag — recreating the ref returns 422 Reference update failed.
v2026.8.0 through v2026.8.10 are all burned for this repository. v2026.8.11 was tagged by hand to restart the series, so the script derives correctly again — but the fallback remains wrong for the next reset, and for the first release of any future month whose numbers were used before.
Suggested fix
Treat a 422 from the tag push as "this name is reserved" and retry with the next number, instead of aborting. Alternatively, when no local tags match the series, query the API for the highest tag the repository has ever published rather than assuming .0 is available.
One deviation in the v2026.8.11 tag
release.sh normally creates a chore(release): <tag> commit on top of main and pushes the commit and tag atomically. v2026.8.11 was tagged directly on the existing main commit instead, so there is no synthetic release commit for it. Nothing appeared to depend on that commit — the workflow triggers on v*.*.* tags, and neither release_workflow_test.go nor require_newest_release_test.go references it — but it is a difference from every earlier tag and worth confirming before the next release runs through the script.
What happened
All releases and tags were deleted from this repository on 2026-08-24.
scripts/release.shderives the next tag by scanning existingv<year>.<month>.*tags and incrementing the highest match, falling back to.0when it finds none:With no tags present it computes
v2026.8.0, which cannot be created. GitHub's immutable releases permanently reserve a tag name once a release has been published under it, and the reservation outlives deleting both the release and the tag — recreating the ref returns422 Reference update failed.v2026.8.0throughv2026.8.10are all burned for this repository.v2026.8.11was tagged by hand to restart the series, so the script derives correctly again — but the fallback remains wrong for the next reset, and for the first release of any future month whose numbers were used before.Suggested fix
Treat a
422from the tag push as "this name is reserved" and retry with the next number, instead of aborting. Alternatively, when no local tags match the series, query the API for the highest tag the repository has ever published rather than assuming.0is available.One deviation in the v2026.8.11 tag
release.shnormally creates achore(release): <tag>commit on top ofmainand pushes the commit and tag atomically.v2026.8.11was tagged directly on the existingmaincommit instead, so there is no synthetic release commit for it. Nothing appeared to depend on that commit — the workflow triggers onv*.*.*tags, and neitherrelease_workflow_test.gonorrequire_newest_release_test.goreferences it — but it is a difference from every earlier tag and worth confirming before the next release runs through the script.