Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 07 Sep 2003 18:44:08 -0700
From:      underway@comcast.net (Gary W. Swearingen)
To:        Michel Talon <talon@lpthe.jussieu.fr>
Cc:        freebsd-chat@freebsd.org
Subject:   Re: The Old Way Was Better
Message-ID:  <4k7k4kjbpz.k4k@mail.comcast.net>
In-Reply-To: <3F5B4AA9.1000003@lpthe.jussieu.fr> (Michel Talon's message of "Sun, 07 Sep 2003 17:11:37 %2B0200")
References:  <3F5B4AA9.1000003@lpthe.jussieu.fr>

next in thread | previous in thread | raw e-mail | index | archive | help
Michel Talon <talon@lpthe.jussieu.fr> writes:

> In my opinion, the 4.* series should not
> have been maintained so long (except for security fixes), it stresses
> too much the available developer workforce.

So when should non-security 4.* work have stopped?  When I started
using FreeBSD, the 5.0 target was Nov'2001, IIRC, and it was supposed
to have features than are not yet in 5-CURRENT.  How long should 4.*
users have to live with a moribund OS?  I don't know, but the shorter
the time, the less reason there is to stop MFCing.  IMO, it's more
important to protect FreeBSD's reputation for stability than to
advance 5.*-STABLE by a few months by abandoning 4.* users in any
obvious way.

I'm not prepared to say what developers "should" have done except that
they should have made better schedule estimates, something much easier
said than done.  I suspect that 5.0 & 5.1 should have had fewer new
features, but I couldn't make a convincing case for it.


I WILL give one confident "should":  They should heed Bill's comments
regarding the importance of marketing -- even marketing to existing
FreeBSD users.  If developers must, they could keep the current CVS
tag-naming scheme and use whatever terms they want in developer
forums, but elsewhere FreeBSD people should use more sensible terms
than CURRENT (other branches are current too) and RELEASE (other
branches are releases too) and STABLE (which might not even compile).

I'd extend Bill's suggestion for future branch naming to:

  ALPHA       -- Name of the HEAD branch (trunk?).
                  (Was: CURRENT.)
  #-ALPHA     -- Synonym of ALPHA.
                  (Was: #-CURRENT.)
                  (Non-existent after HEAD moves on to #+1.)
  BETA        -- Ambiguous synonym of #-BETA, but useful in context.
                  (Was: STABLE.)
  #-BETA      -- Name of the RELENG_# branch.
                  (Was: #-STABLE.)
                  (Non-existent until #.#-STABLE is created.)
                  (Example: 4-BETA = RELENG_4)
  #.#-BETA    -- Name of the RELENG_#_# branch, when beta quality.
                  (Uncommon. Example: 5.1-BETA = RELENG_5_1)
  #.#-STABLE  -- Name of the RELENG_#_# branch, when stable quality.
                  (Common. Example: 4.8-STABLE = RELENG_4_8)
  #.#.#-*     -- Name of the RELENG_#_#_#_RELEASE branch, where
                  "*" equals BETA or STABLE.
                  (This is more of a node than a branch, AFAIK; such
                  branches have only one snapshot which is normally
                  called a "release".  ALPHA might never be used.)
                  (Example: 5.1.0-BETA   = RELENG_5_1_0_RELEASE)
                  (Example: 4.6.2-STABLE = RELENG_4_6_2_RELEASE)

Releases and snapshots could be similarly named (though snapshots can
only be identified by branch name and a date+time, AFAIK).  It's
debatable whether the names of branches and releases should contain
something like "BRANCH" or "RELEASE" so they are not ambiguous.
Using, say "#.#-STABLE" as a synonym for "#.#.0-STABLE" should
probably be allowed for releases (only).

It might reduce transition confusion to use a term other than
"STABLE".  Maybe "TESTED".   Alternatives to mix and match:

  CURRENT   STABLE  sucurity-fix-only
  ALPHA     BETA    STABLE
  EXPER     DEVEL   TESTED


P.S. For an example of confusing names, one need go no further than
http://www.freebsd.org/doc/en_US.ISO8859-1/articles/5-roadmap/schedule.html
which suggests a series of branches like this:
  Sept  1, 2003: 5.2-BETA, general code freeze
  Sept 15, 2003: 5.2-RC1, RELENG_5 and RELENG_5_2 branched
  Sept 22, 2003: 5.2-RC2
  Sept 29, 2003: 5.2-RELEASE
So the -STABLE branch starts two weeks before there's a stable release.
And releases with "5.2" in the name come out before the first good
5.2 release and even before a 5.2 RELENG_ branch starts.  And releases
are called release "candidates", even though they are actual releases.
And when they are not candidates to be released for wide use.  Bedlam!

I'd use something like (ignoring the dates):
  Sept  1, 2003: 5.1.1-BETA (tag RELENG_5_1_1_RELENG), general code freeze
  Sept 15, 2003: 5.1.2-BETA (tag RELENG_5_1_2_RELENG)
  Sept 22, 2003: 5.1.3-BETA (tag RELENG_5_1_3_RELENG)
  Sept 29, 2003: 5.2-STABLE (tags RELENG_5_2_0_RELENG, RELENG_5_2, RELENG_5)
I see no need to designate release branches or releases as release
candidates.  If they are indead candidates to become other releases,
they can be designated so in words.  If such designations MUST be
encoded in the name, then add some token which is as non-misleading as
possible, as in
  Sept 22, 2003: 5.1.3-BETA-P2 (tag RELENG_5_1_3)
  Sept 29, 2003: 5.2-STABLE (tags RELENG_5_2_0_RELENG, RELENG_5_2, RELENG_5)
which has a beta-quality "Prerelease #2" becoming a stable release.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4k7k4kjbpz.k4k>