gnu-arch-users
[Top][All Lists]
Advanced

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

Re: [Gnu-arch-users] What are version numbers?


From: Tom Lord
Subject: Re: [Gnu-arch-users] What are version numbers?
Date: Wed, 10 Sep 2003 13:35:12 -0700 (PDT)



    > From: Zack Brown <address@hidden>

    > I think I have a workable understanding of archives, categories, and
    > branches, but version numbers are still confusing me. Maybe someone can
    > explain.

    > My understanding so far is that tla version numbers are not related to the
    > version number of the actual project (so Linux 2.6.0-test1 has a project
    > version number of 2.6.0-test1, which is independent of the tla version 
number
    > appearing in the fully qualified tla project name).

I would probably map that to the namespace as:

        linux--test1--2.6

You can think of the structure of the namespace this way:

        category --
                Just a general, overarching name for the project
                in question -- a name that makes sense for all 
                forks, branches, versions, etc.

        branch --
                An _unordered division of the project into sets of
                development lines.

        version --
                A lexically, numerically _ordered_ division of the
                project into sets of development lines.

When I made up the namespace, I looked at many projects and how they
named and numbered things, and all of them mapped into this namespace 
reasonably well.

It may be helpful not to think of a category as being divided first
into branches, then into versions, but instead as a category as being
the name of a two dimensional space:  BRANCH x VERSION

It can be interesting to look at slices of that space defined by
holding BRANCH constant and slices defined by holding VERSION
constant.  (And when you have that down, we can throw in the ARCHIVE
component of the namespace and call it a three dimensional space.)

It's just a convention - one of two possible - that branch labels are
written to the left of version ids.


    > I'm guessing that the tla version number is essentially chosen for
    > organizational reasons during development. So just as a developer might
    > start a new branch in order to work on a particular new feature, 

Usually, that would be a reason for a new branch label, not a new
version.   Features aren't ordered (though separately released sets of
features may be).


    > there are similar reasons for selecting a version number. But
    > what those reasons might be, or how it would fit into the
    > organization of a project, I don't know.

Why do GCC releases and development lines have version numbers?  Or
Mozilla, or the linux kernel, or bash, or tla, or (etc.)?   It
reflects how software is developed and deployed.


    > Using 'tla abrowse address@hidden' I've looked over Tom's tree, and I
    > see things like this:
    > 
    >     tla--devo
    >       tla--devo--1.0
    >         base-0 .. patch-89
    > 
    >       tla--devo--1.1
    >         base-0 .. patch-155

    > So it seems version numbers are used somewhere...

Well, although at the moment the 1.0 series is stable and doesn't
happen to be published at ftp.gnu.org, I have two concurrent release
tracks for tla:  the 1.0 series and the 1.1 series.   This is very
similar to the use of version numbers in GCC or linux kernel and many,
many, many, many, many other projects besides.


    > Here's a guess: tla--devo--1.0 and tla--devo--1.1 are both regular tla
    > branches. But they are so close to each other in purpose that it doesn't
    > make sense to call the branch something other than devo. And so 1.0 and
    > 1.1 are just a numbering scheme used to organize the devo branches.

In this case, 1.0 is in feature-freeze.   1.1 is where new feature
work is going on.   Note that there are several tla--X--1.1 branches,
where separable features are added to the various branches.   Those
various feature branches are then in a "hub and spokes" arrangement
with tla--devo--1.1, wherein the various feature branches are merged.


    > So in that case, does it make sense to consider 'devo--1.0' the real
    > branch name, and the version number just a part of that name?

    > I'm just making stabs. Maybe someone could really explain it.


The version ids correspond to relesases or, equivalently, development
paths.  Releases called tla-1.0preX.tar.gz or tla-1.0.X.tar.gz use
tla--devo--1.0.  Releases called tla-1.1preX.tar.gz or (eventually)
tla-1.1.X.tar.gz use tla--devo--1.1.

I'm not to clear why you would find this mysterious.

-t





reply via email to

[Prev in Thread] Current Thread [Next in Thread]