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>