Version numbering for release DECISION!
Garance A Drosihn
drosih at rpi.edu
Mon Mar 28 11:26:04 PST 2005
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 at xxxxxxxxxxxxxxxxxxxx
Senior Systems Programmer or gad at xxxxxxxxxxx
Rensselaer Polytechnic Institute or drosih at xxxxxxx
More information about the Users
mailing list