Friday, November 05, 2004

FreeBSD 5.3 RELEASE Looms

Judging from the activity in the freebsd-current mailing list, FreeBSD 5.3 is about to be released. First, Scott Long recommended that further discussion of the 5.x branch move from freebsd-current to freebsd-stable.

Wonder what these words CURRENT and STABLE mean? The handbook has this to say about the CURRENT branch:

"FreeBSD-CURRENT is the latest working sources for FreeBSD. This includes work in progress, experimental changes, and transitional mechanisms that might or might not be present in the next official release of the software. While many FreeBSD developers compile the FreeBSD-CURRENT source code daily, there are periods of time when the sources are not buildable. These problems are resolved as expeditiously as possible, but whether or not FreeBSD-CURRENT brings disaster or greatly desired functionality can be a matter of which exact moment you grabbed the source code in!"

In other words, CURRENT is where active, cutting-edge development is done. Nobody should really run CURRENT on production machines because there is no guarantee it will work, due to dynamic code developments.

Contrast CURRENT with STABLE:

"FreeBSD-STABLE is our development branch from which major releases are made. Changes go into this branch at a different pace, and with the general assumption that they have first gone into FreeBSD-CURRENT for testing. This is still a development branch, however, and this means that at any given time, the sources for FreeBSD-STABLE may or may not be suitable for any particular purpose. It is simply another engineering development track, not a resource for end-users."

STABLE is much more "settled" than CURRENT. Radical design changes don't appear in STABLE, but features developed in CURRENT might be merged from CURRENT (mfc'd) from time to time.

On production servers I prefer to track the so-called "security" branch, which is a RELEASE plus security fixes.

Finally, a RELEASE is what you can download in .iso form or buy on a CD. RELEASE is in some senses a version of STABLE judged to be ready for cutting to CD. RELEASE is what you install on a new system. You should then upgrade that RELEASE system to the "security" branch, which incorporates patches.

Another way to think about these different versions is to consider how to reference them via CVS tags:

HEAD is CURRENT, or the 6.x tree
RELENG_5 is now STABLE
RELENG_5_3 is the "security" branch for 5.3
RELENG_5_3_0 is the 5.3 RELEASE, just as you might get on CD

At some point I may write a comprehensive article on all the ways to keep FreeBSD up-to-date. Keep an eye here for that.

Scott Long also posted word of a new development cycle. Rather than develop features and time releases according to when those features are ready, FreeBSD will be more timeline-oriented. This is similar to the OpenBSD release process. OpenBSD releases a new version every 6 months. According to Scott:

"So the current plan is to branch RELENG_6 (aka 6-STABLE) sometime around
May or June 2005. That will begin a 1-3 month freeze and stabilization
process for the 6.0 release. After that is released, we will do 6.1,
6.2 and onwards at likely 4 month intervals. In May/June 2006 we'll
look at doing RELENG_7, or we might wait until Nov/Dec 2006 (12 months
vs 18 months). The 5.4 release will likely be in Feb/March 2005, with a
5.5 release possibly in June/July, depending on where 6.0 is. There may
be 5.x releases after 6.0 if 6.0 turns out to not be as stable as needed
(as is often the case with and .0 release)."

I have to think about whether I will reply to this. I like the idea of more regular releases but I initially think seeing 6.0 become STABLE in mid-2005 is too aggressive.

No comments: