Re: ceph versions

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Can I also throw another option out there ?
Openstack uses a version scheme tied to the year of release [1].

Looking back at past releases [2], we can see that for example "Icehouse"
was the first release of 2014: "2014.1".
Icehouse eventually had stable releases which were versioned 2014.1.1,
2014.1.2 and 2014.1.3.
Later that year there was Openstack "Juno" that became 2014.2.

I like this scheme because:
- Solely by itself, it's a good indicator of when your software was last
updated and when the latest release was done
- You can tell how stable, proven or supported it is (2014.1.3 should be
pretty rock solid by the third release!)
- Flexible: If you want to do four releases in the year, there's no
problem going 2015.1, 2015.2, 2015.3, 2015.4 - each with their own dot
releases if necessary

[1] https://wiki.openstack.org/wiki/Release_Naming
[2] https://wiki.openstack.org/wiki/Releases
--
David Moreau Simard


On 2015-02-26, 6:12 PM, "Sage Weil" <sweil@xxxxxxxxxx> wrote:

>Hammer will most likely be v0.94[.x].  We're getting awfully close to
>0.99, though, which makes many people think 1.0 or 1.00 (isntead of
>0.100), and the current versioning is getting a bit silly.  So let's talk
>about alternatives!
>
>Here are a few of options:
>
>-- Option A -- "doubles and triples"
>
>X.Y[.Z]
>
> - Increment X at the start of each major dev cycle (hammer, infernalis)
> - Increment Y for each iteration during that cycle
> - Eventually decide it's good and start adding .Z for the stable fixes.
>
>For example,
>
> 1.0 first infernalis dev release
> 1.1 dev release
> ...
> 1.8 infernalis rc
> 1.9 infernalis final
> 1.9.1 stable update
> 1.9.2 stable update
> ...
> 2.0 first j (jewel?) dev release
> 2.1 next dev release
> ...
> 2.8 final j
> 2.8.x stable j releases
>
>Q: How do I tell if it's a stable release?
>A: It is a triple instead of a double.
>
>Q: How do I tell if this is the final release in the series?
>A: Nobody knows that until we start doing stable updates; see above.
>
>
>-- Option B -- "even/odd"
>
>X.Y.Z
>
> - if Y is even, this is a stable series
> - if Y is odd, this is a dev release
> - increment X when something major happens
>
> 1.0 hammer final
> 1.0.1 stable/bugfix
> 1.0.2 stable
> 1.0.3 stable
> ...
> 1.1.0 infernalis dev release
> 1.1.1 infernalis dev release
> 1.1.2 infernalis dev release
> ...
> 1.2.0 infernalis final
> 1.2.1 stable branch
> ...
> 1.3.0 j-release dev
> 1.3.1 j-release dev
> 1.3.2 j-release dev
> ...
> 1.4.0 j-release final
> 1.4.1 stable
> 1.4.1 stable
>
>Q: How do I tell if it's a stable release?
>A: Second item is even.
>
>
>-- Option C -- "semantic"
>
>major.minor.patch
>
>- MAJOR version when you make incompatible API changes,
>- MINOR version when you add functionality in a backwards-compatible
>manner, and
>- PATCH version when you make backwards-compatible bug fixes.
>
> 1.0.0 hammer final
> 1.0.1 bugfix
> 1.0.1 bugfix
> 1.0.1 bugfix
> 1.1 infernalis dev release
> 1.2 infernalis dev release
> 2.0 infernalis dev release
> 2.1 infernalis dev release
> 2.2 infernalis dev release
> 2.3 infernalis final
> 2.3.0 bugfix
> 2.3.1 bugfix
> 2.3.2 bugfix
> 2.4 j dev release
> ...
> 2.14 j final
> 2.14.0 bugfix
> 2.14.1 bugfix
> ...
> 2.15 k dev
> ..
> 3.3 k final
> 3.3.1 bugfix
> ...
> 
>Q: How do I tell what named release series this is?
>A: As with the others, you just have to know.
>
>Q: How do we distinguish between stable-series updates and dev updates?
>A: Stable series are triples.
>
>Q: How do I know if I can downgrade?
>A: The major hasn't changed.
>
>Q: Really?
>A: Well, maybe.  We haven't dealt with downgrades yet so this assumes we
>get it right (and test it).  We may not realize there is a
>backward-incompatible change right away and only discover it later during
>testing, at which point the versions are fixed; we'd probably bump the
>*next* release in response.
>
>
>-- Option D -- "labeled"
>
>X.Y-{dev,rc,release}Z
>
> - Increment Y on each major named release
> - Increment X if it's a major major named release (bigger change
>than usual)
> - Use dev, rc, or release prefix to clearly label what type of release
>this is
> - Increment Z for stable updates
>
> 1.0-dev1 first infernalis dev release
> 1.0-dev2 another dev release
> ...
> 1.0-rc1 first rc
> 1.0-rc2 next rc
> 1.0-release1 final release
> 1.0-release2 stable update
> 1.0-release3 stable update
> 1.1-dev1 first cut for j-release
> 1.1-dev2 ...
> ...
> 1.1-rc1
> 1.1-release1 stable
> 1.1-release2 stable
> 1.1-release3 stable
>
>Q: How do I tell what kind of release this is?
>A: Look at the string embedded in the version
>
>Q: Will these funny strings confuse things that sort by version?
>A: I don't think so.
>
>
>-- Option E -- "ubuntu"
>
>YY.MM[.Z]
>
> - YY is year, MM is month of release
> - Z for stable updates
>
> 15.03 hammer final
> 15.03.1 bugfix
> 15.03.2 bugfix
> ...
> 15.04 infernalis dev
> 15.05 infernalis dev
> ...
> 15.07 infernalis final
> 15.07.1 bugfix
> 15.07.2 bugfix
> ...
>
>Q: What if we have more than one dev release a month?  Like, on a 2 weeks
>schedule, as we have been.
>A: We move to monthly dev releases.  Or, we put an 'a' or 'b' suffix on
>there?  Meh.
>
>Q: How do I tell if it's a stable release?
>A: It's a triple.
>
>
>-- Option F -- "flat"
>
>X[.Y]
>
> - increment X on every release, regardless of whether it is a named
>release or not
> - add a .Y (or .0) if it is a stable release
>
> 1.0 hammer final
> 1.1 bugfix
> 1.2 bugfix
> ...
> 2 infernalis dev
> 3 infernalis dev
> ...
> 8 infernalis rc
> 9.0 infernalis final
> 9.1 bugfix
> ...
> 10 j dev
> 11 j dev
> 12 j dev
> ...
> 17.0 j final
> 17.1 j bugfix
> ...
>
>Q: What if the number gets big?
>A: Too late!
>
>Q: How do I tell if it's a stable release?
>A: double instead of single item
>--
>To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
>the body of a message to majordomo@xxxxxxxxxxxxxxx
>More majordomo info at  http://vger.kernel.org/majordomo-info.html

--
To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [CEPH Users]     [Ceph Large]     [Information on CEPH]     [Linux BTRFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]
  Powered by Linux