-
Notifications
You must be signed in to change notification settings - Fork 111
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
Change version numbering scheme #259
Comments
This came out of the discussion in #150 (comment) |
adding a date to our version in FAH has worked well for us (gives a lot of context). Maybe something we should consider |
So that could look something like Kinda looks long for a version string, but I do like the context it provides. |
I'm fine with using dates like shown above, but I'm not a big fan of the secondary |
What about |
LGTM.. bonus points if you could put a date in there somewhere |
Glancing at the semver spec, it seems like the date would fall in to the 'build metadata' category. So we would probably want to choose either the build ID or the date. I guess we could combine the build ID + date, but that would get rather verbose, i.e |
I'm 👍 with either of date after or before. I like it a little slightly more after but 👍 😄. |
if getting too verbose we could go with the year/month model other distros are using: |
I prefer the date before because incrementally it makes more sense:
|
I like the full date as well. I'm fine with it coming before. |
As a general note, even if we want to adopt the three-dotted format, we are not semver-sioning here. Semver guarantees apply to a clear and precise API:
An OS image is an aggregate of multiple projects' API and ABI which are mostly outside of our control and we don't clearly define as a whole. |
That's fine, I think. I was just referencing the spec as guidelines for creating a reasonable version string.
Yup, we should definitely communicate this clearly. |
👍. True we would not be strict semver but I agree with @miabbott that's it's a good guideline. If we don't have any strong disenters to this proposal by this Friday noon EDT let's accept the version pattern. |
It is a good guideline, counterpoint is that if you have something that quacks like a semver then people assume it indeed is semver and get very angry about breakages (see docker 1.x series and yy.mm renumbering). |
@lucab fair point. Do you have a counter proposal or do you think we should specifically avoid semver? |
What's the 4.0 bit about? Do we have different RHCOS channels targeting different OpenShift channels? If not, can we just tag 2018-09-19.1234? |
No, not today. I guess the 4.0 is perhaps redundant. One thing that is critical though is whether the host is maipo or ootpa. But...that will hopefully soon be reflected in the custom origin from the oscontainer. |
@ashcrow I didn't want to bikeshed or unilaterally drag this. If people are ok with the semver-like approach go for it, I was only detailing the psychological effect (with real-word past cases). Not actively proposing any of those, but looking at other projects, confusion can be avoided by using a serial counter (systemd), a date based approach (ostree), always bumping the most-significant field (CL), or just using different separators other than dots. |
@lucab understood. Thanks! |
How about |
I'm not a big fan of
|
Can you elaborate on that? Releases of...OpenShift? My instinct now says that...let's try not to encode specific details in our version number of the kubelet/cri-o that we maintain. The whole cluster state is also a function of the versions of the containers.
Ok yeah I definitely lean that way too. (And not having |
Not to add more wood to the bikeshed bonfire 🔥, but
Then I like the idea of CL where we keep bumping major. So e.g., something like |
Let's continue and try to finish this off. If we do not have a consensus by Oct 5th noon EDT we will run with the version scheme with the most acceptance |
/assign @ashcrow |
my vote is still for something like @ashcrow do you want to summarize the different options and maybe we could vote ? |
Sure! Semver like
Alternative
edited by @dustymabe to include numbers so they can be referenced in future coments. |
My concern is if there is a |
There are also quite a lot of projects with a leading major that's been the same for years; Linux kernel to name one prominent one. And, for users going from |
Folks: Please respond to this issue with your favorite scheme as proposed. Reminder: If we do not have a consensus by Oct 5th noon EDT we will run with the version scheme with the most acceptance |
Top choice |
I don't understand under what operations the Not to mention that AFAICS Those questions are why I am proposing (and voting for) |
I also prefer 1 and 2. I think noting maipo versus ootpa is a nice to have, but since ootpa is where we are going I don't see a hard requirement to call it out. |
@cgwalters proposal 2 does separate maipo/oopta through |
OK but for the people including |
(Or if the answer is "I didn't consider maipo vs ootpa", please do and edit your vote) |
I think this is where my thinking was. But if @cgwalters feels that the maipo/oopta distinction is worth calling out, I'll edit my response to be |
A lot of the discussion that we had about this was before we (I?) even considered $RHELMAJOR much at all. So I think it was a combination of hadn't considered it much and it's not that important. My thinking was that we could easily derive $RHELMAJOR from the OCP version since there should be a single clear OCP version where we cut over. i.e. there would never be a 4.0.1 based on maipo AND a 4.0.1 based on ootpa. That being said, |
I would like to offer some customers the option of trying out newer content. I can't say for sure whether or not that would really happen. But even if it didn't - during development I am doubtful there's going to be some sort of hard cutover, and we want it to be immediately obvious which OS major version people are testing. And even all of that aside, it still feels extremely weird to me to have the idea that the whole OS could change in a huge way from |
Based on the conversation it looks like the best consensus we have is to go with option 2:
I'll create a new issue to implement this. |
We are currently generating the version number using the next major OpenShift release (
4.0
) and the build ID from Jenkins. This works well as long as we never have to restart the pipeline from scratch.A proposed way of making the version number more resilient is to retrieve the version number from the previous build (by way of metadata, hopefully) and increment the version.
We can still maintain the
4.0.XXXX
format using this method.The text was updated successfully, but these errors were encountered: