Skip to content

chore: retract the mistyped v0.20.0 tag via a v0.20.1 retraction release - #21

Merged
christiangda merged 1 commit into
mainfrom
chore/retract-v0.20.0
Sep 19, 2026
Merged

christiangda merged 1 commit into
mainfrom
chore/retract-v0.20.0

Conversation

@christiangda

Copy link
Copy Markdown
Contributor

Problem

A tag v0.20.0 (a typo for v0.2.0, same commit) was pushed and its release workflow ran. The GitHub release has since been deleted, but the Go module proxy and sum.golang.org already recorded v0.20.0, and that record is permanent:

$ go list -m -versions github.com/slashdevops/machineid
... v0.1.3 v0.2.0 v0.20.0
$ go list -m github.com/slashdevops/machineid@latest
github.com/slashdevops/machineid v0.20.0

So go install github.com/slashdevops/machineid/cmd/machineid@latest installs a binary calling itself v0.20.0, and machineid update -method go will keep doing so, because v0.20.0 sorts above every real 0.x release until v0.21.0.

Fix (the sanctioned Go mechanism)

Add retract for v0.20.0 and for the retraction release itself, then tag this commit as v0.20.1. Go reads retractions from the highest version, so the directive must ship in a version above v0.20.0; after that @latest resolves to the highest non-retracted version, i.e. v0.2.0 (or later).

After merging, by hand

  1. git tag -a v0.20.1 -m "retraction-only release, see go.mod" && git push origin v0.20.1
  2. The release workflow will run for v0.20.1 and create a GitHub release. Delete that release (keep the tag): gh release delete v0.20.1 --yes. GitHub orders "latest" by semver, so a v0.20.1 release would otherwise become what machineid update installs.
  3. Optionally delete the stray tag from GitHub (the proxy keeps its copy regardless): git push origin :refs/tags/v0.20.0.
  4. Verify: go list -m github.com/slashdevops/machineid@latest prints v0.2.0 (proxy caches for a few minutes).

No code change; go.mod only.

🤖 Generated with Claude Code

v0.20.0 was pushed by mistake for v0.2.0 and points at the same commit.
The Go module proxy and sum.golang.org have already recorded it, so it
cannot be removed, and as the highest 0.x version it makes
`go install ...@latest` resolve to v0.20.0 indefinitely.

A retract directive only takes effect from a version at or above the
highest published one, so v0.20.1 will be tagged from this commit to
carry it and retracts itself as well. After that, @latest skips both and
resolves to the highest real release.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@christiangda christiangda self-assigned this Sep 19, 2026
@christiangda
christiangda merged commit 286c962 into main Sep 19, 2026
7 checks passed
@christiangda
christiangda deleted the chore/retract-v0.20.0 branch September 19, 2026 18:52
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