DragonFly BSD
DragonFly users List (threaded) for 2005-03
[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]

Re: Version numbering for release DECISION!


From: Garance A Drosihn <drosih@xxxxxxx>
Date: Mon, 28 Mar 2005 14:25:03 -0500

All of the following is just suggestions, mainly to provide a few
alternate ways to think about the naming of branches/tags.

At 8:08 AM -0800 3/28/05, Matthew Dillon wrote:
:>     -CURRENT	Will indicate a build based on the head of
:>                     the CVS tree.
:>
:>     -WORKING	Will indicate a build based on our current
:>                     stable tag
:>
:>		I am going to rename the tag from DragonFly_Stable to
:>		DragonFly_Working to avoid confusion, but not today.
:>		This tag has turned out to be quite important because
:>		it allows developers to stay reasonably up to date but
:>		take less risk then the people running CURRENT.
:>
:>     -RELEASE	Will indicate a build based on a release branch.
:>
:>     -STABLE		Will indicate a build based on a post-release
:>			branch.

A few years ago I got all excited about FreeBSD's naming scheme, and tried to come up with some alternatives. After watching that long thread on release-naming, I finally decided that you're never going to get any single set of simple words which will convey the "exactly correct" meaning to every user. It is particularly tough because many users will not have English as their native language, so their concept of some words will be slightly different than whatever you meant when you picked it.

I had some people praise my suggestions as being "much better", only
to realize that they had misunderstood which word I was attaching to
which branch.  When I sent them private email to see why they got it
"wrong", they always came back with a perfectly good explanation for
why they matched up the words to different branches.  English is
simply not a strict-enough language where words have one-and-only-one
meaning.  You'll never come up with a perfect-for-everyone scheme.

You might as well use nonsense names, where everyone *has* to ask
to find out what exactly each branch-name means.  Something like:
      A-GREEN  - "stable/production/bug-fixes-only"
      B-BLUE   - "release"
      C-ORANGE - "the moving tag for working/stable"
      D-RED    - "head/current"

Then say "Higher letters mean more risk -- and if you want to know
more than than, then read the 3-paragraph explanation of exactly what
we mean by each branch name".  NOTE:  The parts in double-quotes is
*not* meant to be that full explanation!!!

However, I can certainly generate as much paint as anyone else, so
here's a few comments for this shed:

    What I am calling WORKING right now is unique to DragonFly...
    FreeBSD doesn't have a slip tag in their HEAD branch to track
    good working points during development.

I still like RECENT-REST-STOP... :-)


When considering <word> for <branch>, you should try to pick a <word>
which clearly does NOT apply to the other branches (IMO).  Calling
this "WORKING" implies that other branches are "Not Working", IMO.
Maybe call this "SLIDING-STABLE".  I still think that this tag should
be named something that indicates "motion", if it is a sliding tag.

The suggestion of "PREVIEW" also seems pretty good.  That works for
the statements:
    "CURRENT is Not PREVIEW", "RELEASE is Not PREVIEW", etc

:>		I am going to rename the tag from DragonFly_Stable to
:>		DragonFly_Working to avoid confusion, but not today.

Whatever new name you pick, you don't need to rename it all at once. Just add a second tag with the new name and stop talking about the previous name. Drop the older tag after some short transition time. It shouldn't be much harder to move two tags than to move one.

:>     -STABLE		Will indicate a build based on a post-release
:>			branch.

I wish FreeBSD would make this change, but if we don't (and I doubt we will at this point), then I think it will only add more confusion if you use the same word to mean something quite different. PRODUCTION is probably adequate, but other words might also do.

--
Garance Alistair Drosehn            =   gad@xxxxxxxxxxxxxxxxxxxx
Senior Systems Programmer           or  gad@xxxxxxxxxxx
Rensselaer Polytechnic Institute    or  drosih@xxxxxxx



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