GnuCash release numbering

Eric Siegerman pub08-gnc at davor.org
Mon Nov 27 22:59:16 EST 2017


On Tue, Nov 21, 2017 at 02:14:31PM -0500, davelist at mac.com wrote:
> Yes, 2.6.18 is newer. Each number between the periods is a
> separate number and 18 is greater than 3. 

To expand on that:  software version numbers don't work like
decimal fractions, even though they use "." as a separator.
Think of "2.6.18" as a series of (multi-digit) integers, and
compare each integer in turn until you find one that differs:
     2 = 2
     6 = 6
    18 > 3    <--- Bingo!

To put it another way: unlike in mathematics, "2.6.3" and
"2.6.30" are *not* equal.  (GnuCash 2.6.30 doesn't exist -- nor,
I imagine, will it ever exist, because the whole 2.6.x series
will reach end-of-life long before it gets twelve more releases.)

It gets weirder; I oversimplified, above.  The individual
components of a version number are not always integers.  There
can be other characters as well, usually letters.  Worse, what
those letters mean depends on the project.

In some projects, "3a" comes before "3".  To invent an example,
"4.7.3a1" might be the first "alpha testing" pre-release.  Then
"beta" releases like 4.7.3b1; then "release candidates" like
4.7.3rc1; and finally the *real* release, 4.7.3 itself.

In other projects, it's the other way around -- something like
"3a" comes *after* "3".

GnuCash works the second way.  It had 2.6.17a and 2.6.17b as
*very* minor post-release corrections to 2.6.17.  Typically
one tries to avoid needing these post-release fixups, and in
fact GnuCash 2.6.18 hasn't needed any ... but sometimes stuff
happens...

One wants the world of computers to be as logical as Mr. Spock,
but alas, we humans seem able to make a confusing mess out of
anything :-/

> In general, do not download the 2.7.x versions as those are
> beta releases for the next version unless you are testing those
> with other data (i.e., don't run a 2.7 with the only copy of
> your actual data file).

The way GnuCash distinguishes testing prereleases is with odd vs.
even numbers for the second component.  The 2.6.x series are
"stable", i.e. intended for production use.  There are already
several 2.7.x releases, but those are "unstable"; they're only
for testing, *not* production use.  Once the 2.7.x series
stabilizes, they'll release 2.8.0, which will be the first stable
release of the new series.  So:

    2.6.3     <--- Several years old now
    ...
    2.6.16
    2.6.17
    2.6.17a
    2.6.17b
    2.6.18    <--- The current stable release.  INSTALL THIS ONE.

    2.7.0     \    These already exist ...
    2.7.1     |    ... but they're for testing only.
    2.7.2     /    DO NOT USE them for real work!

------------  <--- (2017-11-27.  Below here is in the future.)

    2.6.19    <--- The next stable release in the 2.6.x series
    2.7.3     <--- The next testing release
    2.6.x     <--- Repeat as necessary ...
    2.7.y     <--- ... until ...

    2.8.0     <--- The first stable release of the new series
    2.8.1     <--- And so on
    ...
    2.9.0     <--- First of the testing prereleases leading up to
                   2.10.0


  - Eric


More information about the gnucash-user mailing list