Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 10 Apr 2001 21:30:40 -0700
From:      Dima Dorfman <dima@unixfreak.org>
To:        "Rodney W. Grimes" <freebsd@gndrsh.dnsmgr.net>
Cc:        sjt@cisco.com (Steve Tremblett), freebsd-stable@FreeBSD.ORG
Subject:   Re: Releases 
Message-ID:  <20010411043041.07F373E09@bazooka.unixfreak.org>
In-Reply-To: <200104101534.IAA35432@gndrsh.dnsmgr.net>; from freebsd@gndrsh.dnsmgr.net on "Tue, 10 Apr 2001 08:34:25 -0700 (PDT)"

next in thread | previous in thread | raw e-mail | index | archive | help
"Rodney W. Grimes" <freebsd@gndrsh.dnsmgr.net> writes:
> The tag sequences could be better documented, or err, the newvers.sh
> changes that occuring during the phases could be better documented.

Attached is something that resembles a first attempt at this.
Essentially, it's the admin.html#RELEASE-CANDIDATE FAQ question but
with more detail.  It's not meant as an extensive guide, but rather a
summary of what happens and some appropriate rationale.  The FAQ entry
is great, but I think something with more detail is in order.

I'm not quite sure where this should go.  It seems redundant and too
long for the FAQ, but it's not quite an article, although I guess I
could add some more to it to make an article about "The FreeBSD
Release Cycle".  At the very least it's a summary of the majority of
the anti-BETA threads.

Comments and suggestions welcome.

Thanks,

					Dima Dorfman
					dima@unixfreak.org



How -STABLE becomes -RELEASE

Minor releases, i.e. releases where the minor version number is
greater than zero, are tags, or points, on the RELENG_X branch
corresponding to their major version number.  Before a release is
made, the branch its being cut from goes through a ``code freeze''.

A code freeze is the state in which all changes to the respective
branch must be approved by the release engineer before being committed
{XXX footnote explain 'commit'}.  During the code freeze, the branch
is renamed from ``-STABLE'' to ``-BETA''.  There are two reasons for
this seemingly unreasonable change:

  1.  Right before the code freeze (a few days), a lot of
changes--fixes and others--are merged from -CURRENT (``MFC'd'').  This
isn't an intentional part of the release cycle; it just so happens
that developers wait until the day before the freeze to merge the
changes they want in the release (and since this is a volunteer
project, we shouldn't ask them to do otherwise).  Thus, the quality of
the code right before the code freeze is slightly impaired.

  2.  Some ports break in mysterious ways when the version of the
system changes (e.g., 3.1 becomes 3.2).  It is desireable that the
ports as shipped with the release work properly, so they must be
tested on a system as similar to the one being release as possible;
bumping the version number is just another way to catch some rather
silly and easy-to-correct errors.  Also, since the ports collection is
collectively maintained by over 500 {XXX is this right?} people, it
would be unfair to ask them to manually change the version number
themselves simply for testing the ports.

The branch remains in the code freeze anywhere from a few weeks to a
month.  As the code freeze draws to a close, and the release to its
due date, the branch is renamed from ``-BETA'' to ``-RC''.  RC stands
for release candidate.  Anything marked as a release candidate may
eventually become the release without any changes (modulo the branch
name).  Depending on how many changes do occur in this state, there
may be multiple release candidates.  These are represented as ``-RCx''
where x is the number of the release candidate.


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-stable" in the body of the message




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