From 03d68a9511649136810cdc5390aba6bf1bc356ac Mon Sep 17 00:00:00 2001
From: Murray Stokely <murray@FreeBSD.org>
Date: Fri, 30 Nov 2001 19:08:53 +0000
Subject: [PATCH] Add a page about the Release Engineering process to the
 internal section of the FreeBSD website (www.freebsd.org/internal).

This page documents the administrative aspects of FreeBSD releases,
including the CVS operations required, a list of files that must be
updated for each release, information about the contents of each disc
on the 4 disc set, and so on ..

Comments and additions are welcome.

Reviewed by:	phk, bmah, and others.
---
 en/gifs/Makefile          |   3 +-
 en/gifs/branches.png      | Bin 0 -> 8110 bytes
 en/internal/Makefile      |   3 +-
 en/internal/internal.sgml |   5 +-
 en/internal/releng.sgml   | 341 ++++++++++++++++++++++++++++++++++++++
 5 files changed, 349 insertions(+), 3 deletions(-)
 create mode 100644 en/gifs/branches.png
 create mode 100644 en/internal/releng.sgml

diff --git a/en/gifs/Makefile b/en/gifs/Makefile
index 1ed2b29940..6e137d768a 100644
--- a/en/gifs/Makefile
+++ b/en/gifs/Makefile
@@ -1,4 +1,4 @@
-# $FreeBSD: www/en/gifs/Makefile,v 1.36 2000/12/31 17:03:51 wosch Exp $
+# $FreeBSD: www/en/gifs/Makefile,v 1.37 2001/06/20 17:05:23 obrien Exp $
 
 .if exists(../Makefile.conf)
 .include "../Makefile.conf"
@@ -53,5 +53,6 @@ DATA+=	bsdcomp-4.2.gif
 DATA+=	lob-freebsd-4.2.gif
 DATA+= daemon_hammer.jpg
 DATA+= daemon_hammer-tn15.jpg daemon_hammer-tn20.jpg daemon_hammer-tn25.jpg
+DATA+= branches.png
 
 .include "${WEB_PREFIX}/share/mk/web.site.mk"
diff --git a/en/gifs/branches.png b/en/gifs/branches.png
new file mode 100644
index 0000000000000000000000000000000000000000..926bf830ce132ad4d3fa5a7e630ea44f797cf6cb
GIT binary patch
literal 8110
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
KSYvYY{{I3)&e5v?

literal 0
HcmV?d00001

diff --git a/en/internal/Makefile b/en/internal/Makefile
index f9e70448b3..09dcdba7ed 100644
--- a/en/internal/Makefile
+++ b/en/internal/Makefile
@@ -1,4 +1,4 @@
-# $FreeBSD: www/en/internal/Makefile,v 1.25 2001/04/27 09:15:00 wosch Exp $
+# $FreeBSD: www/en/internal/Makefile,v 1.26 2001/11/16 19:50:58 jhb Exp $
 
 .if exists(../Makefile.conf)
 .include "../Makefile.conf"
@@ -15,6 +15,7 @@ DOCS+= 	mirror.sgml
 DOCS+=	statistic.sgml
 DOCS+= 	developer.sgml
 DOCS+=	bylaws.sgml
+DOCS+=  releng.sgml
 
 INDEXLINK=	internal.html
 
diff --git a/en/internal/internal.sgml b/en/internal/internal.sgml
index c85fa07d7e..ef1aeaeb70 100644
--- a/en/internal/internal.sgml
+++ b/en/internal/internal.sgml
@@ -1,6 +1,6 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN" [
 <!ENTITY base CDATA "..">
-<!ENTITY date "$FreeBSD: www/en/internal/internal.sgml,v 1.15 2001/07/13 12:52:14 dd Exp $">
+<!ENTITY date "$FreeBSD: www/en/internal/internal.sgml,v 1.16 2001/11/02 14:39:25 keramida Exp $">
 <!ENTITY title "FreeBSD Internal">
 <!ENTITY % includes SYSTEM "../includes.sgml"> %includes;
 ]>
@@ -38,6 +38,9 @@ for what.</p>
 developer groups are working on the cutting edge to expand FreeBSD's
 range of applications in new directions.</p>
 
+<h2><a href="releng.html">FreeBSD Release Engineering Process</a></h2>
+<p>This page documents the release engineering process for official
+FreeBSD releases.</p>
 
 <h2><a href="../mailto.html">Contacting FreeBSD</a></h2>
 
diff --git a/en/internal/releng.sgml b/en/internal/releng.sgml
new file mode 100644
index 0000000000..5bb97c33d1
--- /dev/null
+++ b/en/internal/releng.sgml
@@ -0,0 +1,341 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN" [
+<!ENTITY base CDATA "..">
+<!ENTITY email 'releng'>
+<!ENTITY date "$FreeBSD$">
+<!ENTITY title "FreeBSD Release Engineering">
+<!ENTITY % includes SYSTEM "../includes.sgml"> %includes;
+]>
+
+<html>
+&header;
+
+<p>This page documents the process used by the release engineering
+  team to produce official FreeBSD releases.  Comments, suggestions,
+  and additional material are welcome.  This is, as always, a work in
+  progress.</p>
+
+<h1>Release Process</h1>
+
+  <p>New releases of FreeBSD are released from the -STABLE branch at
+    approximately four month intervals.  The FreeBSD release process
+    begins to ramp up 45 days before the anticipated release date when
+    the release engineer sends an email to the development mailing
+    lists to remind developers that they only have 15 days to
+    integrate new changes before the code freeze.  During this time,
+    many developers perform what have become known as ``MFC sweeps''.
+    MFC stands for ``Merge From CURRENT'' and it describes the process
+    of merging a tested change from our -CURRENT development branch to
+    our -STABLE branch.</p>
+
+  <center><img src="../gifs/branches.png" alt="Release Branch
+  Diagram"></center>
+
+  <p>To service our most conservative users, individual release
+    branches were introduced with FreeBSD 4.3.  These release branches
+    are created shortly before a final release is made, and after the
+    release goes out only the most critical security fixes are merged
+    onto the release branch.  In addition to source updates via CVS,
+    binary patchkits are available to keep systems on the
+    <tt>RELENG_4_3</tt> and <tt>RELENG_4_4</tt> branches updated.</p>
+
+  <h2>Code Review</h2>
+
+  <p>Thirty days before the anticipated release, the source repository
+    enters a ``code slush''.  During this time, all commits to the
+    -STABLE branch must be approved by the release engineer (<a
+    href="mailto:re@FreeBSD.org">re@FreeBSD.org</a>).  The kinds of
+    changes that are allowed during this 15 day period include :</p>
+
+  <ul>
+    <li>Bug-fixes.</li>
+    <li>Documentation updates.</li>
+    <li>Security-related fixes of any kind.</li>
+    <li><em>Minor</em> changes to device drivers, such as adding new
+      device IDs.</li>
+
+    <li>Any additional change that the release engineering team feels
+      is justified given the potential risk.</li>
+  </ul>
+
+  <p>After the first 15 days of the code slush, a release candidate is
+    released for widespread testing and the code enters a ``code
+    freeze'' where it becomes much harder to justify new changes to
+    the system unless a serious bug-fix or security issue is involved.
+    During the code freeze, at least one release candidate is released
+    per week until the final release is ready.  During the days
+    leading up to the final release, the release engineering team is
+    in constant communication with the security-officer team, the
+    documentation maintainers, and the ports managers, to make sure
+    that all of the different components required for a successful
+    release are available.</p>
+
+  <h2>Final Release Checklist</h2>
+
+  <p>When several release candidates have been made available for
+    widespread testing and all major issues have been resolved, the
+    final release ``polishing'' can begin.</p>
+
+  <h3>Creating the Release Branch</h3>
+
+  <p>As described in the introduction, the <tt>RELENG_X_Y</tt> release
+    branch is a relatively new addition to our release engineering
+    methodology.  The first step in creating this branch is to ensure
+    that you are working with the newest version of the
+    <tt>RELENG_X</tt> sources that you want to branch
+    <em>from</em>.</p>
+
+  <tt>/usr/src# cvs up -rRELENG_4 -P -d</tt>
+
+  <p>The next step is to create a branch point tag.  A ``tag'' is CVS
+    vernacular for a label that identifies the source at a specific
+    point in time.  By tagging the tree, we ensure that future release
+    builders will always be able to use the same source we used to
+    create the official FreeBSD Project releases.  The branch point
+    tag makes it easier to produce diffs against the start of the
+    branch :</p>
+
+  <tt>/usr/src# cvs rtag -rRELENG_4 RELENG_4_4_BP src</tt>
+
+  <p>And then a new branch tag is created with :</p>
+
+  <tt>/usr/src# cvs rtag -b -rRELENG_4_4_BP RELENG_4_4 src</tt>
+
+  <p>Note: The <tt>RELENG_*</tt> tags are restricted for use by the
+    CVS-meisters and release engineers.</p>
+
+  <h3>Bumping up the Version Number</h3>
+
+  <p>Before the final release can be tagged, built, and released, the
+    following files need to be modified to reflect the correct version
+    of FreeBSD :</p>
+
+  <ul>
+    <li><tt>src/sys/conf/newvers.sh</tt></li>
+    <li><tt>src/sys/sys/param.h</tt></li>
+    <li><tt>src/release/doc/share/sgml/release.ent</tt></li>
+    <li><tt>src/gnu/usr.bin/groff/tmac/mdoc.local</tt></li>
+    <li><tt>doc/share/sgml/freebsd.ent</tt></li>
+    <li><tt>doc/en_US.ISO8859-1/books/handbook/mirrors/chapter.sgml</tt></li>
+    <li><tt>www/en/releases/*</tt></li>
+    <li><tt>src/UPDATING</tt></li>
+  </ul>
+
+  <h3>Creating the Release Tags</h3>
+
+  <p>When the final release is ready, the following command will create the
+    <tt>RELENG_4_4_0_RELEASE</tt> tag.</p>
+
+  <tt>/usr/src# cvs rtag -rRELENG_4_4 RELENG_4_4_0_RELEASE src</tt>
+
+  <p>The Documentation and Ports managers are responsible for tagging
+    the respective trees with the <tt>RELEASE_4_4_0</tt> tag.</p>
+
+  <p>Occasionally, a last minute fix may be required <em>after</em>
+    the final tags have been created.  In practice this isn't a
+    problem, since CVS allows tags to be manipulated with <tt>cvs tag
+    -d <em>tagname</em> <em>filename</em></tt>.  It is very important
+    that any last minute changes be tagged appropriately as part of
+    the release.  FreeBSD releases must always be reproduceable.
+    Local hacks in the release engineer's environment are not
+    acceptable.</p>
+
+<h1>Release Building</h1>
+
+  <p>FreeBSD releases can be built by anyone with a fast machine and
+    access to a source repository.  <em>(That should be everyone,
+    since we offer anonymous CVS!  See <a
+    href="http://www.FreeBSD.org/handbook">The Handbook</a> for
+    details.)</em>.  The only special requirement is that the
+    <tt>vn</tt> <em>(On -CURRENT, this device has been replaced by the
+    new <tt>md</tt> memory disk driver.)</em> device must be
+    available.  If the device is not loaded into your kernel, then the
+    kernel module should be automatically loaded when
+    <tt>vnconfig</tt> is executed during the boot media creation
+    phase.  All of the tools necessary to build a release are
+    available from the CVS repository in <tt>src/release</tt>.  These
+    tools aim to provide a consistent way to build FreeBSD releases.
+    A complete release can actually be built with only a single
+    command, including the creation of ISO images suitable for burning
+    to CDROM, installation floppies, and an FTP install directory.
+    This command is aptly named ``make release''.</p>
+
+  <h2>``make release''</h2>
+
+  <p>To successfully build a release, you must first populate
+    <tt>/usr/obj</tt> by running ``make world'' or simply ``make
+    buildworld''.  The release target requires several variables be
+    set properly to build a release :</p>
+
+  <ul>
+    <li><strong><tt>CHROOTDIR</tt></strong> - The directory to be used
+      as the chroot environment for the entire release build.</li>
+    <li><strong><tt>BUILDNAME</tt></strong> - The name of the release
+      to be built.</li>
+    <li><strong><tt>CVSROOT</tt></strong> - The location of a CVS
+      repository.</li>
+    <li><strong><tt>RELEASETAG</tt></strong> - The CVS tag
+      corresponding to the release you would like to build.</li>
+  </ul>
+
+  <p>There are many other variables available to customize the release
+    build.  Most of these variables are documented at the top of
+    <tt>src/release/Makefile</tt>.  The exact command used to build
+    the official FreeBSD 4.4 (x86) release was :</p>
+
+  <tt>make release CHROOTDIR=/local3/release BUILDNAME=4.4-RELEASE CVSROOT=/host/cvs/usr/home/ncvs RELEASETAG=RELENG_4_4_0_RELEASE</tt>
+
+  <p>The release Makefile can be broken down into several distinct
+  steps.</p>
+
+  <ul>
+    <li>Creation of a sanitized system environment in a separate
+      directory hierarchy with ``make installworld''.</li>
+    <li>Checkout from CVS of a clean version of the system source,
+      documentation, and ports into the release build hierarchy.</li>
+    <li>Population of <tt>/etc</tt> and <tt>/dev</tt> in the chrooted
+      environment.</li>
+    <li>chroot into the release build hierarchy, to make it harder for
+      the outside environment to taint this build.</li>
+    <li>``make world'' in the chrooted environment.</li>
+    <li>Build of Kerberos-related binaries.</li>
+    <li>Build 'GENERIC' kernel.</li>
+    <li>Creation of a staging directory tree where the binary
+      distributions will be built and packaged.</li>
+    <li>Build and installation of the documentation toolchain needed
+      to convert the documentation source (SGML) into HTML, and text
+      documents that will accompany the release.</li>
+    <li>Build and installation of the actual documentation (user
+      manuals, tutorials, release notes, hardware compatibility lists,
+      etc...)</li>
+    <li>Build of the ``crunched'' binaries used for installation
+      floppies.</li>
+    <li>Package up distribution tarballs of the binaries and
+      sources.</li>
+    <li>Create the boot media and a fixit floppy.</li>
+    <li>Create FTP installation hierarchy.</li>
+    <li>(optionally) Create ISO images for CDROM/DVD media.</li>
+  </ul>
+
+  <h2>Contributed Software (``ports'')</h2>
+
+  <p>The <a href="http://www.FreeBSD.org/ports">FreeBSD Ports
+    collection</a> is a collection of over 6,000 third-party software
+    packages available for FreeBSD.  The ports team (<a
+    href="mailto:portmgr@FreeBSD.org">portmgr@FreeBSD.org</a>)
+    responsible for maintaining a consistent ports tree that can be
+    used to create the binary packages that accompany a given FreeBSD
+    release.</p>
+
+  <h3>The Ports Cluster</h3>
+
+  <p>In order to provide a consistent set of third-party packages for
+    FreeBSD releases, every port is built in a separate chroot
+    environment, starting with an empty <tt>/usr/local</tt> and
+    <tt>/usr/X11R6</tt>.  The requisite dependencies are installed as
+    packages before the build proceeds.  This enforces <em>
+    consistency</em> in the package build process.  By starting the
+    package build in a pristine environment, we can assure that the
+    package metadata (such as required dependencies) is accurate, and
+    so we will never generate packages that might work on some systems
+    and not on others depending on what software was previously
+    installed.</p>
+
+  <p>The ``Ports Cluster'' for the x86 architecture currently consists
+    of a master node (Dual Pentium III 733Mhz) and 8 slave nodes
+    (Pentium III 800Mhz) to do the actual package builds.  With this
+    configuration, a complete package build takes over 24 hours.
+    These machines are co-located with the other FreeBSD Project
+    equipment at Yahoo's corner of Exodus in Santa Clara, CA.</p>
+
+  <p>The ``Ports Cluster'' for the Alpha architecture consists of 7
+    PWS 500A machines donated by Compaq and also co-located with
+    Yahoo's facilities.</p>
+
+  <h3>The Package Split</h3>
+
+  <p>For FreeBSD 4.4 over 4.1 gigabytes of packages were created.
+    This causes a problem for CDROM distributions because we would
+    like to ship as many packages as possible without making the user
+    insert another disc to satisfy dependencies.  The solution is to
+    create ``clusters'' of like packages with similar dependencies
+    onto specific discs.  The package split is performed by the <a
+    href="mailto:portmgr@FreeBSD.org">portmgr</a> team in coordination
+    with the wishes of the general user community with respect to
+    which packages get to appear on the first CD.</p>
+
+  <h2>Release ISOs</h2>
+
+  <p>Starting with FreeBSD 4.4, the FreeBSD Project decided to release
+    all four ISO images that were previously sold on the BSDi/Wind
+    River Systems ``official'' CDROM distributions.  Each of the four
+    discs must contain a <tt>README.TXT</tt> file that explains the
+    contents of the disc, a <tt>CDROM.INF</tt> file that provides
+    meta-data for the disc so that sysinstall can validate and use the
+    contents, and a <tt>filename.txt</tt> file that provides a
+    manifest for the disc.  This manifest can be created with a simple
+    command :</p>
+
+  <tt>/stage/cdrom#  find . -type f | sed -e 's/\^.\///' | sort > filename.txt</tt>
+
+  <p>The specific requirements of each CD is outlined below.</p>
+
+  <h3>Disc #1</h3>
+
+  <p>The first disc is almost completely created by ``make release''.
+    The only changes that should be made to the <tt>disc1</tt>
+    directory are the addition of a 'tools' directory, XFree86, and as
+    many popular third party software packages as will fit on the
+    disc.  The 'tools' directory contains software that allow users to
+    create installation floppies from other operating systems.  This
+    disc should be made bootable so that users of modern PCs do not
+    need to create installation floppy disks.</p>
+
+  <p>If an alternate version of XFree86 is to be provided, then
+    sysinstall must be updated to reflect the new location and
+    installation instructions.  The relevant code is contained in
+    <tt>src/release/sysinstall</tt> on -STABLE or
+    <tt>src/usr.sbin/sysinstall</tt> on -CURRENT.  Specifically, the
+    files <tt>dist.c</tt>, <tt>menus.c</tt>, and <tt>config.c</tt>
+    will need to be updated.</p>
+
+  <h3>Disc #2</h3>
+
+  <p>The second disc is also largely created by ``make release''.
+    This disc contains a ``live filesystem'' that can be used from
+    sysinstall to troubleshoot a FreeBSD installation.  This disc
+    should be bootable and should also contain a compressed copy of
+    the CVS repository in the <tt>CVSROOT</tt> directory and
+    commercial software demos in the <tt>commerce</tt> directory.</p>
+
+  <h3>Discs #3 and 4</h3>
+
+  <p>The remaining two discs contains additional software packages for
+    FreeBSD.  The packages should be clustered so that a package and
+    all of its dependencies are included on the same disc.</p>
+
+<h1>Further Reading</h1>
+
+  <ul>
+    <li><a
+    href="http://people.FreeBSD.org/~murray/papers/releng.pdf">The
+    Release Engineering of FreeBSD 4.4</a>, BSDCon Europe 2001
+    Proceedings.  [ <a
+    href="http://people.FreeBSD.org/~murray/papers/releng.pdf">PDF</a>
+    ] [ <a
+    href="http://people.FreeBSD.org/~murray/papers/releng.ps">PostScript</a>
+    ] [ <a
+    href="http://people.FreeBSD.org/~murray/#presentations">Slides</a>
+    ]</li>
+
+    <li><a
+      href="http://www.netbsd.org/developers/releng/index.html">NetBSD
+      Developer Documentation : Release Engineering</a></li>
+
+    <li><a href="http://people.FreeBSD.org/~jhb/docs/releng.txt">John
+    Baldwin's Release Engineering Proposal</a></li>
+  </ul>
+
+    &footer;
+
+  </body>
+</html>