[GNC-dev] Bye-bye Unstable
geert.gnucash at kobaltwit.be
Wed Apr 18 04:29:23 EDT 2018
Op woensdag 18 april 2018 09:58:24 CEST schreef Wm via gnucash-devel:
> On 16/04/2018 17:40, Geert Janssens wrote:
> > Op maandag 16 april 2018 12:33:53 CEST schreef Robert Fewell:
> >> Just trying to get myself straight for going forward.
> >> maint is now for bug fixes on version 3.0
> >> master is for new stuff that would go into 4.0 but may be backported to
> >> 3.x
> >> if appropriate
> > Mostly. We normally don't "backport". If something is wanted on maint, it
> > should be committed to maint first and merged into master afterwards.
> > A real backport should only happen if that was forgotten, but that should
> > really be an exception.
> Bob probably didn't *really* mean "backport". My guess is he's just
> trying to work out what master | maint | 3.0 | 3.x | something else mean
> now in ordinary terms.
> I can't figure it out either.
maint and master are git *branches*, so things you can check out, build, use
to make changes and submit new commits.
3.0 is a release number which in git will be represented with a *tag*. You can
also check these out, but you can't start development from there (strictly
speaking you can, but that would be much more complicated and off topic here).
The only reason to check out a version number is to build a release version of
gnucash. And even then, most releases are built from a tarball, for which you
find a link in each release announcement.
3.x is not really a thing in git. It's mostly a term we use to represent all
releases that will ever be generated starting with 3.
Then there is a distinction between stable and unstable (development)
releases. The big difference git-wise is that stable releases always start
from a commit on the maint branch while unstable releases will not. In the 2.7
development cycle we experimented with an extra "unstable" *branch* to do the
unstable releases from. For future unstable releases we will probably just do
them from the master branch instead and forget an unstable branch ever
We also use a specific versioning scheme for unstable *releases* which has
changed with the release of 3.0.
Before 3.0 release numbers had 3 components. Unstable releases would have an
odd middle component. 2.4.5 must be a stable release because the middle
component (4) is even. 2.7.6 must be an unstable release because the middle
component (7) is odd.
As of 3.0 release numbers will only have two components. Unstable releases
will be marked by a second component being 900 or more. So 3.1, 3.15 and even
3.899 will be stable releases if we ever get that far in the numbering (don't
expect this to be like that). 3.900, 3.915 and so on will be unstable releases
leading up to the 4.0 new stable release somewhere in the future.
> >> Is master version 3.99, it appears to be 3.0 still and does show the
> >> build
> >> warning ?
> > Not 3.99. With the new numbering scheme it should become 3.900, leaving us
> > with 99 beta release numbers before 4.0.
> I'd like to join Bob and say I'm also not understanding this.
> I think what I am asking is:
> could you please relate the git commands to versions people understand.
Compared to before the 3.0 release the only thing that has changed is what
releases will happen from which branch. has changed really, except for the
version numbers those branches are linked to. "maint" and "master" are
abstract concepts that are not tied to the same version all the time.
I'm not sure how I can make that clearer. Do you have a specific question you
want to see answered ?
More information about the gnucash-devel