-
Notifications
You must be signed in to change notification settings - Fork 615
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
RFC: archiving v1.12.0 tag as "old-v1.12.0" to prepare for becoming a go module #3057
Comments
Go's documentation advises against deleting tags.
The scope of disruption extends beyond the three public projects. There are non-public projects including Mirantis Container Runtime which would be impacted as well. Upgrading the problem away is not always an option, especially on long-term maintenance branches. There's a built-in solution to retracting unintended releases of Go modules: the
to it and tag it as Alternative: make a clean breakGo identifies a module by its module path, so giving the module a different identity will signal to the Go module tooling that it is unrelated to Since you're planning to move the repo, you could make a clean break by intentionally breaking redirections from docker/swarmkit to the new location:
Alternatively, you could bump the major version. 🔥 Hot take 🔥
The annotation message on the
Why not? Commits of this project have implicitly been released every time the requirement was bumped in docker/cli and moby/moby. Tagging the releases going forward would merely make it explicit, while solving all the problems caused by the presence of the |
The v1.12.0 tag was created pre go modules, and was never intended to be a "release".
Before go modules, tags were "opt-in", and could "optionally" be used as a
reference for a version to use, but when go modules were introduced, tags
got "meaning", and in this case "latest" is no longer "latest", but using
the last "released" version (v1.12.0 in this case).
While there are no plans to start tagging releases of this project, we do have
the intent to move this repository, and to make it a module (adding a go.mod).
To prevent users from getting an old version of this code, and to run into
problems where the old version uses the incorrect import path, this tag is
created from the v1.12.0 tag (commit 9d4c2f7),
with the intent to delete that tag.
The
old-v1.12.0
tag was created: https://github.com/docker/swarmkit/releases/tag/old-v1.12.0to discuss
As the v1.12.0 tag existed, go modules used it as reference to generate pseudo
versions, see https://grep.app/search?q=github.com/docker/swarmkit%20v1.12.
This means that some projects have pseudo-versions in their
go.mod
like theones below:
I suspect those references become invalid once The GOPROXY module cache expires,
which could be potentially disruptive.
That said, the scope (if
grep.app
is to be trusted) looks to be limited toonly a couple of repositories;
First two from that list we can deal with, for kaniko, it's an
// indirect
, which likely means the problem should go away if they upgrade to a more current version of Docker (see go.mod)The text was updated successfully, but these errors were encountered: