-
Notifications
You must be signed in to change notification settings - Fork 2.1k
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
Tag upcoming release as v1.0.1-rc.1 to fix go modules / SemVer comparison #2399
Comments
🤦 🤦 🤦 🤦 🤦 🤦 🤦 🤦 While this is a correct implementation of SemVer, and it does match the behaviour described in the spec (though it is quite strange since I've never seen
I don't think doing a |
It won't help with
I'm not sure if it's a silly technicality at this point; projects getting an older version than expected looks like an actual problem to me. |
I agree @thaJeztah it will trip up people if they are not paying close attention and hard to deal with using go modules as well. |
My suggestion would be to just rename all of the releases -- since this only really affects go modules we just need to change the names of the tags (distributions don't care because they use I will also note that there are many projects (including Moby/Docker) which use
I wasn't trying to say it wasn't a problem, just that releasing a post- |
Moby/Docker uses CalVer, so it would not be compatible anyway (well, until you have a I know containerd follows the SemVer notation (https://github.com/containerd/containerd/releases/tag/v1.3.0-rc.0), although there's still the discrepancy between SemVer and "go" SemVer (which requires the
You mean removing the existing tags, and replacing them? That sounds scary (and would break anyone that's already using on of these tags) |
Ah, right. Well then there's always the nuclear option -- tag |
tbh, the diff between
That should work; assuming we're confident that we don't reach We're not alone in this, there's a reason Microsoft never released a Windows 9 😉 |
Yeah, this is something we've talked about before. Ultimately we've already broken SemVer more than a little -- but the only thing that is super critical is that
That's when we roll out |
@opencontainers/runc-maintainers Are there any objections to the above plan? I've already got an
I don't think we need a new vote for this since it's just an alias for an existing release, but I don't want to go push a tag without at least one other person saying it's not a bad idea. |
rc990 LOL!!! good one |
😕 Can we just switch away from "rc" to another string. e.g. |
Or just give up the v1.0.0 dream and release |
Or if we can release the |
|
The issue is our existing release ( |
|
But it is not really "RTM" ¯_(ツ)_/¯ |
I mean, let's just admit it and call it |
We can call it |
|
My vote is for |
Thanks @cyphar! (Just trying to keep a bit of "fun" in the situation) |
What's the conclusion? |
I propose that we cut one more rc after #2229 , let other projects soak it, fix bugs if any and then call it 1.0.0 after a couple of weeks. |
Right, but the issue is we need to switch to proper SemVer /somehow/ for our current releases because they're breaking downstream projects. My vote is still for |
Agree that |
I've pushed v1.0.0-rc90 as a tag for v1.0.0-rc10 (a reminder that the the issue is that rc10 already has triggered this problem). So v1.0.0-rc91 will be v1.0.0-rc11. |
@cyphar could you add release note (#2399 (comment)) ? |
Yup, I was editing them just as you posted your comment. 😉 https://github.com/opencontainers/runc/releases/tag/v1.0.0-rc90 |
It's a SameVer release |
Due to some versioning issues, the version that is currently use for `runc` has been rebuilt, which causes a new checksum. Info: > NOTE: For those who are confused by the massive version jump (rc10 > to rc91), this was done to avoid issues with SemVer and lexical > comparisons -- there haven't been 90 other release candidates. Please > also note that runc 1.0.0-rc90 is identical to 1.0.0-rc10. See #2399 > for more details. See more here: opencontainers/runc#2399
* Bump Kubernetes to v1.16.13 * Use Xenial image in Travis builds * Add `sudo` to centos containers * Update the incorrect checksum for `runc` Due to some versioning issues, the version that is currently use for `runc` has been rebuilt, which causes a new checksum. Info: > NOTE: For those who are confused by the massive version jump (rc10 > to rc91), this was done to avoid issues with SemVer and lexical > comparisons -- there haven't been 90 other release candidates. Please > also note that runc 1.0.0-rc90 is identical to 1.0.0-rc10. See #2399 > for more details. See more here: opencontainers/runc#2399 Co-authored-by: Amir Mofasser <[email protected]>
(Assuming we don't reach "GA" yet)
I was updating a dependency in a project using go modules, and noticed that the runc dependency was downgraded from
v1.0.0-rc10
tov1.0.0-rc6
(a version specified in another dependency). Scratching my head whyv1.0.0-rc9
"stuck", butv1.0.0-rc10
was "ignored" by go modules, I had a 🤦 moment, and recalled that the runc pre-release tags are missing a dot separator.This worked until
-rc9
, but broke when-rc10
was released;Due to the missing separator in the release candidates:
v
(prefix)1
(major)0
(minor)0
(patch)-
(it's a pre-release)rc10
(pre-release suffix)So for
v1.0.0-rc6
, the pre-release suffix (which is just anything you name it), isrc6
, and forv1.0.0-rc10
, the suffix isrc10
.These suffices are compared alphabetically, not numerically, only releases with the same pre-release suffix are comparable.
So, when sorted alphabetically;
If a dot separator was used, the situation would be:
v
(prefix)1
(major)0
(minor)0
(patch)-
(it's a pre-release)rc
(pre-release suffix)10
(pre-release version forrc
suffix)In which case, the order (oldest -> newest) would be:
You can see the behavior here;
I propose to skip v1.0.0, and tag the next -rc as
v1.0.1-rc.0
orv1.0.1-rc.1
, in which case version comparison works correct againThe text was updated successfully, but these errors were encountered: