-
Notifications
You must be signed in to change notification settings - Fork 59
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
Version numbering for OS releases #81
Comments
I would not embed the full
A short marker for this in the version ID would be welcome, for various reasons I find myself doing such manual lookup almost daily for CL. Ref: streams definition is at https://github.com/coreos/fedora-coreos-tracker/blob/master/Design.md#release-streams |
So today for Fedora Atomic Host we do For your proposal 2 |
I like the fine grained time stamping, but compromise is key. If we compromise I'd prefer something like |
It seems important to distinguish between a release which is a new snapshot (and thus might break something) and a release which is a bugfix backport to an existing snapshot (and thus hopefully will not). Also, the age of the software in the release is fundamentally tied to the age of the snapshot, so the distinction seems even more relevant if a date is included in the version. |
I'm not sure if this discussion is still ongoing, but given how frequently FCOS will update, as a user I prefer something like Proposal 2, with the full date and the patch level. The less-fine-grained YYMM-CNTR approach seems to hide the date for reasons that are not clear. If the full YYYYMMDD is used, people will instantly recognize it for what it is, and given that FCOS is expected (at least for now) to update every two weeks, it means that, at a glance, you'll be able to tell exactly how old your OS is, how soon to expect an update, etc. From a troubleshooting point of view, that ability seems useful to me. The date in the UTC timezone would be best, or at least less prone to weirdness. |
Side note: whatever numbering format we pick, we must ensure that it satisfies the linear order property across all labeled releases. This is because the set of available updates we get from cincinnati is not implicitly ordered. Client will have to order them in some consistent way, in order to avoid flapping and staging multiple available updates back and forth. |
I don't think that's necessary. The client only has to identify their current release, and can then use the edges to traverse to the next version. The edges are ultimately defined in your release-metadata, and they're not treated and ordered as versions anywhere on the Cincinnati side. |
On this point, one thing we brought up in discussions today was that rpm-ostree/ostree itself has no qualms about having multiple version strings sitting on the same branch. Having non-stream-specific information somehow in the version string also means that the same version string could end up being re-used across the separate streams, which might lead to confusion. |
Related to the last comment: coreos/zincati#25 |
Now that we are closer to preview let's make some progress on this topic. In #81 (comment) I mentioned another option. I'll formalize it here: Proposal 3
We don't worry about conveying 'snapshot' information in the version number.
I'm not sure how valuable that information is to the user who is doing auto updates. It might be useful for us, but we also know which build had what fixes in it and why it was built. I guess you can make that same argument about dates in the version name. One thing to ask is when comparing proposal 2 to proposal 3, is the added complexity to generate the version based on the snapshot worth it? |
Any thoughts about #81 (comment)? Do we want to include stream information somehow in the version?
Note if we do this (proposal 3), we can end up in a situation where the stable version date is higher than the testing version. Which could be confusing for users when staring at the download page and choosing which stream to download. Proposal 2 has the property that |
It wouldn't bother me to add a
I'm not sure.. I would typically think we'd sync from testing to stable to do a release and then update testing with testing-devel (like water flowing down). Which would typically mean they be chronological or on the same day. They could get out of chronological order if we do a backport to stable and not testing, but I don't think it matters too much if they do. |
Right, that's the situation I'm talking about. :) I also like what @MureDanta said in #81 (comment); resetting the timestamp on respins drops some of those benefits.
Yeah, that's a good point. It's almost like if it'd have to be part of the config itself, so it naturally flows down the streams? Actually, we already know that for the multi-arch issue, we'll need something external driving versioning. I don't think it would be too hard for it to also figure out whether this is a patch release or a new build, based e.g. on a I like proposals 2 and 3 the most I think. And really since they're the same format, we could even start with 3 (which is easier to implement) and then move to 2 later on. |
yeah I mostly interpretted his statement as saying he likes the extra granularity in the date, but I see what you're saying.
Yeah I guess we could manually update it in the configs for testing and stable when we do the "merge" from testing-devel to testing and testing to stable
Sounds good. I guess let's go with |
Please vote via 👍 👎 Proposed: Initially implement |
For both P3 and P2, do we a point in the pipeline where we can pick the stream label and derive a short marker from it? I'm asking about something like |
@lucab we didn't quite flesh it all out but I did make this comment in #81 (comment)
Since we've got some resolution on initial formatting in this ticket and the stream indicator can be added, let's separate the discussion into a new ticket: #211 |
In coreos/fedora-coreos-tracker#81, we agreed on a versioning scheme for releases. This patch changes `automatic-version-prefix` to respect this. Note that it's not a perfect fit, since e.g. the first build doesn't have a `.0` prefix. In actuality, versioning in the pipeline will be driven by an external process, and thus the scheme embedded here will have no effect (unless we decide to use rpm-ostree itself as part of the external process... though it'll need some tweaking first). So really, this is more for the benefit of local developers so that versioning looks similar to release builds.
In coreos/fedora-coreos-tracker#81, we agreed on a versioning scheme for releases. This patch changes `automatic-version-prefix` to respect this. Note that it's not a perfect fit, since e.g. the first build doesn't have a `.0` prefix. In actuality, versioning in the pipeline will be driven by an external process, and thus the scheme embedded here will have no effect (unless we decide to use rpm-ostree itself as part of the external process... though it'll need some tweaking first). So really, this is more for the benefit of local developers so that versioning looks similar to release builds.
PR in #298. |
🚨 🚨 🚨 bikeshed alert 🚨 🚨 🚨
We should figure out FCOS version numbering.
Some properties that could be useful:
Proposal 1
<Fedora release>.<snapshot serial number>.<patch release>
next
snapshot of F31 would be31.0.0
.testing
snapshot of F31 might be31.4.0
.31.4.0
, it'd be31.4.1
.stable
snapshot of F31 would then be31.4.2
.testing
snapshot of F31 would be31.5.0
.Advantages
Disadvantages
Proposal 2
<Fedora release>.<snapshot YYYYMMDD>.<patch release>
next
snapshot of F31 would be e.g.31.20191015.0
.testing
snapshot of F31 would be e.g.31.20191216.0
.31.20191216.0
, it'd be31.20191216.1
.stable
snapshot of F31 would then be31.20191216.2
.testing
snapshot of F31 would be31.20191230.2
.Advantages
Disadvantages
Other thoughts
The text was updated successfully, but these errors were encountered: