diff --git a/en_US.ISO8859-1/articles/Makefile b/en_US.ISO8859-1/articles/Makefile
index 8c4987c6ff..0c46d65f0d 100644
--- a/en_US.ISO8859-1/articles/Makefile
+++ b/en_US.ISO8859-1/articles/Makefile
@@ -11,6 +11,7 @@ SUBDIR+= explaining-bsd
SUBDIR+= filtering-bridges
SUBDIR+= fonts
SUBDIR+= freebsd-questions
+SUBDIR+= freebsd-releng
SUBDIR+= freebsd-update-server
SUBDIR+= geom-class
SUBDIR+= gjournal-desktop
diff --git a/en_US.ISO8859-1/articles/freebsd-releng/Makefile b/en_US.ISO8859-1/articles/freebsd-releng/Makefile
new file mode 100644
index 0000000000..da93da4153
--- /dev/null
+++ b/en_US.ISO8859-1/articles/freebsd-releng/Makefile
@@ -0,0 +1,20 @@
+#
+# $FreeBSD$
+#
+# Article: FreeBSD Release Engineering
+
+DOC?= article
+
+FORMATS?= html html-split
+
+INSTALL_COMPRESSED?=gz
+INSTALL_ONLY_COMPRESSED?=
+
+SRCS= article.xml
+
+CSS_SHEET_ADDITIONS=extra.css
+
+URL_RELPREFIX?= ../../../..
+DOC_PREFIX?= ${.CURDIR}/../../..
+
+.include "${DOC_PREFIX}/share/mk/doc.project.mk"
diff --git a/en_US.ISO8859-1/articles/freebsd-releng/article.xml b/en_US.ISO8859-1/articles/freebsd-releng/article.xml
new file mode 100644
index 0000000000..f362cfbdeb
--- /dev/null
+++ b/en_US.ISO8859-1/articles/freebsd-releng/article.xml
@@ -0,0 +1,415 @@
+
+
+
+
+
+
+
+head/">
+stable/">
+stable/11/">
+releng/">
+releng/11.0/">
+release/11.0.0/">
+11.0">
+
+
+
+
+
+
+
+]>
+
+
+
+ &os; Release Engineering
+
+
+ &tm-attrib.freebsd;
+ &tm-attrib.intel;
+ &tm-attrib.general;
+
+
+ $FreeBSD$
+
+
+ This article describes the release engineering process of
+ the &os; Project.
+
+
+
+
+ Introduction to the &os; Release Engineering
+ Process
+
+ Development of &os; has a very specific workflow. In
+ general, all changes to the &os; base system are committed to
+ the &branch.head; branch, which reflects the top of the source
+ tree.
+
+ After a reasonable testing period, changes can then be
+ merged to the &branch.stable; branches. The default minimum
+ timeframe before merging to &branch.stable; branches is three
+ (3) days.
+
+ Although a general rule to wait a minimum of three days
+ before merging from &branch.head;, there are a few special
+ circumstances where an immediate merge may be necessary, such as
+ a critical security fix, or a bug fix that directly inhibits the
+ release build process.
+
+ After several months, and the number of changes in the
+ &branch.stable; branch have grown significantly, it is time to
+ release the next version of &os;. These releases have been
+ historically referred to as point
+ releases.
+
+ In between releases from the &branch.stable; branches,
+ approximately every two (2) years, a release will be cut
+ directly from &branch.head;. These releases have been
+ historically referred to as dot-zero
+ releases.
+
+ This article will highlight the workflow and
+ responsibilities of the &team.re; for both
+ dot-zero and point'
+ releases.
+
+ The following sections of this article describe:
+
+
+
+
+
+
+ General information and preparation before
+ starting the release cycle.
+
+
+
+
+
+
+
+ Terminology and general information, such as the
+ code slush and code
+ freeze, used throughout this document.
+
+
+
+
+
+
+
+ The Release Engineering process for a
+ dot-zero release.
+
+
+
+
+
+
+
+ The Release Engineering process for a
+ point release.
+
+
+
+
+
+
+
+ Information related to the specific procedures to
+ build installation medium.
+
+
+
+
+
+
+
+ Procedures to publish installation medium.
+
+
+
+
+
+
+
+ Wrapping up the release cycle.
+
+
+
+
+
+
+ General Information and Preparation
+
+ Approximately two months before the start of the release
+ cycle, the &team.re; decides on a schedule for the release.
+ The schedule includes the various milestone points of the
+ release cycle, such as freeze dates, branch dates, and build
+ dates. For example:
+
+
+
+
+
+ Milestone
+ Anticipated Date
+
+
+
+
+
+ &branch.head; slush:
+ May 27, 2016
+
+
+
+ &branch.head; freeze:
+ June 10, 2016
+
+
+
+ &branch.head; KBI freeze:
+ June 24, 2016
+
+
+
+ doc/ tree slush [1]:
+ June 24, 2016
+
+
+
+ Ports quarterly branch [2]:
+ July 1, 2016
+
+
+
+ &branch.stablex; branch:
+ July 8, 2016
+
+
+
+ doc/ tree tag [3]:
+ July 8, 2016
+
+
+
+ BETA1 build starts:
+ July 8, 2016
+
+
+
+ &branch.head; thaw:
+ July 9, 2016
+
+
+
+ BETA2 build starts:
+ July 15, 2016
+
+
+
+ BETA3 build starts [*]:
+ July 22, 2016
+
+
+
+ &branch.relengx; branch:
+ July 29, 2016
+
+
+
+ RC1 build starts:
+ July 29, 2016
+
+
+
+ &branch.stablex; thaw:
+ July 30, 2016
+
+
+
+ RC2 build starts:
+ August 5, 2016
+
+
+
+ Final Ports package builds [4]:
+ August 6, 2016
+
+
+
+ Ports release tag:
+ August 12, 2016
+
+
+
+ RC3 build starts [*]:
+ August 12, 2016
+
+
+
+ RELEASE build starts:
+ August 19, 2016
+
+
+
+ RELEASE announcement:
+ September 2, 2016
+
+
+
+
+
+
+ Items marked with "[*]" are "as
+ needed".
+
+
+
+
+ The doc/ tree slush is coordinated by
+ the &team.doceng;.
+
+
+
+ The Ports quarterly branch used is determined by when
+ the final RC build is planned. A new
+ quarterly branch is created on the first day of the quarter,
+ so this metric should be used when taking the release cycle
+ milestones into account. The quarterly branch is created by
+ the &team.portmgr;.
+
+
+
+ The doc/ tree is tagged by the
+ &team.doceng;.
+
+
+
+ The final Ports package build is done by the
+ &team.portmgr; after the final (or what is expected to be
+ final) RC build.
+
+
+
+
+ If the release is being created from an existing
+ &branch.stable; branch, the KBI
+ freeze date can be excluded, since the KBI
+ is already considered frozen on established
+ &branch.stable; branches.
+
+
+ When writing the release cycle schedule, a number of things
+ need to be taken into consideration, in particular milestones
+ where the target date depends on predefined milestones upon
+ which there is a dependency. For example, the Ports Collection
+ release tag originates from the active quarterly branch at the
+ time of the last RC. This in part defines
+ which quarterly branch is used, when the release tag can happen,
+ and what revision of the ports tree is used for the final
+ RELEASE build.
+
+ After general agreement on the schedule, the &team.re;
+ emails the schedule to the &os; Developers.
+
+ It is somewhat typical that many developers will inform
+ the &team.re; about various works-in-progress. In some cases,
+ an extension for the in-progress work will be requested, and
+ in other cases, a request for blanket approval
+ to a particular subset of the tree will be made.
+
+ When such requests are made, it is important to make sure
+ timelines (even if estimated) are discussed. For blanket
+ approvals, the length of time for the blanket approval should
+ be made clear. For example, a &os; developer may request
+ blanket approvals from the start of the code slush until the
+ start of the RC builds.
+
+ Depending on the underlying set of code in question, and
+ the overall impact the set of code has on &os; as a whole, such
+ requests may be approved or denied by the &team.re;.
+
+ The same applies to work-in-progress extensions. For
+ example, in-progress work for a new device driver that is
+ otherwise isolated from the rest of the tree may be granted
+ an extension. A new scheduler, however, may not be feasible,
+ especially if such dramatic changes do not exist in another
+ branch.
+
+ The schedule is also added to the Project website, in the
+ doc/ repository, in
+ head/en_US.ISO8859-1/htdocs/releases/&branch.revision;R/schedule.xml.
+ This file is continuously updated as the release cycle
+ progresses.
+
+
+ In most cases, the schedule.xml can
+ be copied from a prior release and updated accordingly.
+
+
+ The schedule is also linked from
+ head/en_US.ISO8859-1/htdocs/releng/index.xml.
+
+ Approximately one month prior to the scheduled code
+ slush, the &team.re; sends a reminder email to the
+ &os; Developers.
+
+ Once the first builds of the release cycle are available,
+ update the beta.local.where entity in
+ head/en_US.ISO8859-1/htdocs/releases/&branch.revision;R/schedule.xml.
+ replacing IGNORE with
+ INCLUDE.
+
+
+ If two parallel release cycles are happening at once, the
+ beta2.local.where entity may be used
+ instead.
+
+
+
+ &release.terminology;
+ &release.major.version;
+ &release.minor.version;
+ &release.building;
+ &release.mirrors;
+
+
+ Wrapping up the Release Cycle
+
+ This section describes general post-release tasks.
+
+
+ Post-Release Errata Notices
+
+ As the release cycle approaches conclusion, it is common
+ to have several EN (Errata Notice)
+ candidates to address issues that were discovered late in the
+ cycle. Following the release, the &team.re; and the
+ &team.secteam; revisit changes that were not approved prior to
+ the final release, and depending on the scope of the change in
+ question, may issue an EN.
+
+
+
+ Handoff to the &team.secteam;
+
+ Roughly two weeks following the release, the Release
+ Engineer updates svnadmin/conf/approvers
+ changing the approver column from re to
+ (so|security-officer) for the
+ &branch.relengx; branch.
+
+
+
+
diff --git a/en_US.ISO8859-1/articles/freebsd-releng/extra.css b/en_US.ISO8859-1/articles/freebsd-releng/extra.css
new file mode 100644
index 0000000000..043f620cce
--- /dev/null
+++ b/en_US.ISO8859-1/articles/freebsd-releng/extra.css
@@ -0,0 +1,7 @@
+/*
+ * $FreeBSD$
+ */
+
+DIV.TITLEPAGE {
+ text-align: center;
+}
diff --git a/en_US.ISO8859-1/articles/freebsd-releng/releng-building.xml b/en_US.ISO8859-1/articles/freebsd-releng/releng-building.xml
new file mode 100644
index 0000000000..0309db46f8
--- /dev/null
+++ b/en_US.ISO8859-1/articles/freebsd-releng/releng-building.xml
@@ -0,0 +1,247 @@
+
+
+
+ Building &os; Installation Media
+
+ This section describes the general procedures producing &os;
+ development snapshots and releases.
+
+
+ Release Build Scripts
+
+ This section describes the build scripts used by &team.re;
+ to produce development snapshots and releases.
+
+
+ The release.sh Script
+
+ Prior to &os; 9.0-RELEASE,
+ src/release/Makefile was updated to
+ support &man.bsdinstall.8;, and the
+ src/release/generate-release.sh script
+ was introduced as a wrapper to automate invoking the
+ &man.release.7; targets.
+
+ Prior to &os; 9.2-RELEASE,
+ src/release/release.sh was introduced,
+ which heavily based on
+ src/release/generate-release.sh included
+ support to specify configuration files to override various
+ options and environment variables. Support for configuration
+ files provided support for cross building each architecture
+ for a release by specifying a separate configuration file for
+ each invocation.
+
+ As a brief example of using
+ src/release/release.sh to build a single
+ release in /scratch:
+
+ &prompt.root; /bin/sh /usr/src/release/release.sh
+
+ As a brief example of using
+ src/release/release.sh to build a single,
+ cross-built release using a different target directory, create
+ a custom release.conf containing:
+
+ # release.sh configuration for powerpc/powerpc64
+CHROOTDIR="/scratch-powerpc64"
+TARGET="powerpc"
+TARGET_ARCH="powerpc64"
+KERNEL="GENERIC64"
+
+ Then invoke src/release/release.sh
+ as:
+
+ &prompt.root; /bin/sh /usr/src/release/release.sh -c $HOME/release.conf
+
+ See &man.release.7; and
+ src/release/release.conf.sample for more
+ details and example usage.
+
+
+
+ The thermite.sh Wrapper
+ Script
+
+ In order to make cross building the full set of
+ architectures supported on a given branch faster, easier, and
+ reduce human error factors, a wrapper script around
+ src/release/release.sh was written to
+ iterate through the various combinations of architectures and
+ invoke src/release/release.sh using
+ a configuration file specific to that architecture.
+
+ The wrapper script is called
+ thermite.sh, which is available in the
+ &os; Subversion repository at
+ svn://svn.freebsd.org/base/user/gjb/thermite/,
+ in addition to configuration files used to build
+ &branch.head; and &branch.stablex; development
+ snapshots.
+
+ Using thermite.sh is covered in and .
+
+ Each architecture and individual kernel have their own
+ configuration file used by release.sh.
+ Each branch has its own defaults-X.conf
+ configuration which contains entries common throughout each
+ architecture, where overrides or special variables are set
+ and/or overridden in the per-build files.
+
+ The per-build configuration file naming scheme is in the
+ form of
+ ${revision}-${TARGET_ARCH}-${KERNCONF}-${type}.conf,
+ where the uppercase variables are equivalent to what
+ &man.make.1; uses in the build system, and lowercase variables
+ are set within the configuration files, mapping to the major
+ version of the respective branch.
+
+ Each branch also has its own
+ builds-X.conf configuration, which is
+ used by thermite.sh. The
+ thermite.sh script iterates through each
+ ${revision}, ${TARGET_ARCH},
+ ${KERNCONF}, and ${type} value, creating
+ a master list of what to build. However, a given
+ combination from the list will only be built if the
+ respective configuration file exists, which is where the
+ naming scheme above is relevant.
+
+ There are two paths of file sourcing:
+
+
+
+ builds-11.conf
+ -> main.conf
+ This controls thermite.sh
+ behavior
+
+
+
+ 11-amd64-GENERIC-snap.conf
+ ->
+ defaults-11.conf
+ -> main.conf
+ This controls release/release.sh
+ behavior within the build &man.chroot.8;
+
+
+
+
+ The
+ builds-11.conf,
+ defaults-11.conf,
+ and main.conf configuration files exist
+ to reduce repetition between the various per-build
+ files.
+
+
+
+
+
+ Building &os; Development Snapshots
+
+ The official release build machines have a specific
+ filesystem layout, which using ZFS,
+ thermite.sh takes heavy advantage of with
+ clones and snapshots, ensuring a pristine build
+ environment.
+
+ The build scripts reside in /releng/scripts-snapshot/scripts
+ or /releng/scripts-release/scripts
+ respectfully, to avoid collisions between an
+ RC build from a releng branch versus
+ a STABLE snapshot from the respective stable
+ branch.
+
+ A separate dataset exists for the final build images,
+ /snap/ftp. This
+ directory contains both snapshots and releases directories.
+ They are only used if the EVERYTHINGISFINE
+ variable is defined in main.conf.
+
+
+ The EVERYTHINGISFINE variable name was
+ chosen to avoid colliding with a variable that might be
+ possibly set in the user environment, accidentally enabling
+ the behavior that depends on it being defined.
+
+
+ As thermite.sh iterates through the
+ master list of combinations and locates the per-build
+ configuration file, a ZFS dataset is created
+ under /releng, such as
+ /releng/12-amd64-GENERIC-snap.
+ The src/, ports/, and
+ doc/ trees are checked out to separate
+ ZFS datasets, such as /releng/12-src-snap, which are
+ then cloned and mounted into the respective build datasets.
+ This is done to avoid checking out a given tree more than
+ once.
+
+ Assuming these filesystem paths,
+ thermite.sh would be invoked as:
+
+ &prompt.root; cd /releng/scripts-snapshot/scripts
+&prompt.root; ./setrev.sh -b &branch.stablex;
+&prompt.root; ./zfs-setup.sh -c ./builds-11.conf
+&prompt.root; ./thermite.sh -c ./builds-11.conf
+
+
+
+ Building &os; Releases
+
+ Similar to building &os; development snapshots,
+ thermite.sh would be invoked the same way.
+ The difference between development snapshots and release builds,
+ BETA and RC, included, is
+ that the &man.chroot.8; configuration files must be named with
+ release instead of snap as
+ the "type", as mentioned above.
+
+ In addition, the BUILDTYPE and
+ types must be changed from
+ snap to release in
+ defaults-11.conf
+ and
+ builds-11.conf,
+ respectively.
+
+ When building BETA,
+ RC, and the final RELEASE,
+ also statically set BUILDSVNREV to the
+ revision on the branch reflecting the name change,
+ BUILDDATE to the date the builds are started
+ in YYYYMMDD format. If the
+ doc/ and ports/ trees have
+ been tagged, also set PORTBRANCH and
+ DOCBRANCH to the relevant tag path in the
+ Subversion repository, replacing HEAD with
+ the last changed revision. Also set
+ releasesrc in
+ builds-11.conf
+ to the relevant branch, such as &branch.stablex; or
+ &branch.relengx;.
+
+ After building the final RELEASE, the
+ &branch.relengx; branch is tagged as &branch.releasex; using the
+ revision from which the RELEASE was built.
+ Similar to creating the &branch.stablex; and &branch.relengx;
+ branches, this is done with svn cp. From the
+ repository root:
+
+ &prompt.user; svn cp ^/&branch.relengx;@r306420 &branch.releasex;
+&prompt.user; svn commit &branch.releasex;
+
+
diff --git a/en_US.ISO8859-1/articles/freebsd-releng/releng-major-version.xml b/en_US.ISO8859-1/articles/freebsd-releng/releng-major-version.xml
new file mode 100644
index 0000000000..52eca83ef6
--- /dev/null
+++ b/en_US.ISO8859-1/articles/freebsd-releng/releng-major-version.xml
@@ -0,0 +1,196 @@
+
+
+
+ Release from &branch.head;
+
+
+ This section describes the general procedures of the &os;
+ release cycle from the &branch.head; branch.
+
+
+ &os; ALPHA Builds
+
+ Starting with the &os; 10.0-RELEASE cycle, the notion
+ of ALPHA builds was
+ introduced. Unlike the BETA and
+ RC builds, ALPHA builds
+ are not included in the &os; Release schedule.
+
+ The idea behind ALPHA builds is to
+ provide regular &os;-provided builds before the creation of the
+ &branch.stable; branch.
+
+ &os; ALPHA snapshots should be built
+ approximately once a week.
+
+ For the first ALPHA build, the
+ BRANCH value in
+ sys/conf/newvers.sh needs to be changed
+ from CURRENT to ALPHA1.
+ For subsequent ALPHA builds, increment each
+ ALPHAN value by
+ one.
+
+ See for information on
+ building the ALPHA images.
+
+
+
+ Creating the &branch.stablex; Branch
+
+ When creating the &branch.stable; branch, several changes
+ are required in both the new &branch.stable; branch and the
+ &branch.head; branch. The files listed are relative to the
+ repository root. To create the new &branch.stablex; branch
+ in Subversion:
+
+ &prompt.user; svn cp head &branch.stablex;
+
+ Once the &branch.stablex; branch has been committed, make
+ the following edits:
+
+
+
+
+
+ File to Edit
+ What to Change
+
+
+
+
+
+ stable/11/UPDATING
+ Update the &os; version, and remove the notice
+ about WITNESS
+
+
+
+ stable/11/contrib/jemalloc/include/jemalloc/jemalloc_FreeBSD.h
+ #ifndef MALLOC_PRODUCTION
+#define MALLOC_PRODUCTION
+#endif
+
+
+
+ stable/11/sys/*/conf/GENERIC*
+ Remove debugging support
+
+
+
+ stable/11/release/release.conf.sample
+ Update SRCBRANCH
+
+
+
+ stable/11/sys/*/conf/GENERIC-NODEBUG
+ Remove these kernel configurations
+
+
+
+ stable/11/sys/conf/newvers.sh
+ Update the BRANCH value to
+ reflect BETA1
+
+
+
+
+
+ Then in the &branch.head; branch, which will now become
+ a new major version:
+
+
+
+
+
+ File to Edit
+ What to Change
+
+
+
+
+
+ head/UPDATING
+ Update the &os; version
+
+
+
+ head/gnu/usr.bin/groff/tmac/mdoc.local.in
+ Add the new &os; version
+
+
+
+ head/sys/conf/newvers.sh
+ Update the BRANCH value to
+ reflect CURRENT, and increment
+ REVISION
+
+
+
+ head/Makefile.inc1
+ Update TARGET_TRIPLE
+
+
+
+ head/sys/sys/param.h
+ Update __FreeBSD_version
+
+
+
+ head/contrib/llvm/tools/clang/lib/Basic/Targets.cpp
+ Update
+ __FreeBSD_cc_version
+
+
+
+ head/gnu/usr.bin/cc/cc_tools/freebsd-native.h
+ Update FBSD_MAJOR and
+ FBSD_CC_VER
+
+
+
+ head/contrib/gcc/config.gcc
+ Append the
+ freebsd<version>.h
+ section
+
+
+
+ head/release/Makefile
+ Remove the
+ debug.witness.trace entries
+
+
+
+ head/release/doc/en_US.ISO8859-1/readme/article.xml
+ Replace &a.current; with &a.stable;
+
+
+
+ head/release/doc/share/xml/release.ent
+
+
+
+ ?>
+
+
+ head/lib/clang/clang.build.mk
+ Uncomment -DNDEBUG
+
+
+
+ head/lib/clang/freebsd_cc_version.h
+ Update
+ FREEBSD_CC_VERSION
+
+
+
+
+
+
diff --git a/en_US.ISO8859-1/articles/freebsd-releng/releng-minor-version.xml b/en_US.ISO8859-1/articles/freebsd-releng/releng-minor-version.xml
new file mode 100644
index 0000000000..a8a940d1fc
--- /dev/null
+++ b/en_US.ISO8859-1/articles/freebsd-releng/releng-minor-version.xml
@@ -0,0 +1,174 @@
+
+
+
+ Release from &branch.stable;
+
+ This section describes the general procedures of the &os;
+ release cycle from an extablished &branch.stable; branch.
+
+
+ &os; stable Branch Code Slush
+
+ In preparation for the code freeze on
+ a stable branch, several files need to be
+ updated to reflect the release cycle is officially in
+ progress. These files are all relative to the top-most level of
+ the stable branch:
+
+
+
+
+
+ File to Edit
+ What to Change
+
+
+
+
+
+ gnu/usr.bin/groff/tmac/mdoc.local.in
+ Add the new &os; version
+
+
+
+ sys/conf/newvers.sh
+ Update the BRANCH value to
+ reflect PRERELEASE
+
+
+
+ Makefile.inc1
+ Update TARGET_TRIPLE
+
+
+
+
+
+
+
+ &os; BETA Builds
+
+ Following the code slush, the next phase of the release
+ cycle is the code freeze. This is the point at which all
+ commits to the stable branch require explicit approval from
+ the &team.re;. This is enforced by pre-commit hooks in the
+ Subversion repository by editing
+ base/svnadmin/conf/approvers to include
+ a regular expression matching the &branch.stablex; branch for
+ the release:
+
+ ^/&branch.stablex; re
+
+
+ There are two general exceptions to requiring commit
+ approval during the release cycle. The first is any change
+ that needs to be committed by the Release Engineer in order
+ to proceed with the day-to-day workflow of the release cycle,
+ the other is security fixes that may occur during the release
+ cycle.
+
+
+ Once the code freeze is in effect, the next build from the
+ branch is labeled BETA1. This is done by
+ updating the BRANCH value in
+ sys/conf/newvers.sh from
+ PRERELEASE to
+ BETA1.
+
+ Once this is done, the first set of BETA
+ builds are started. Subsequent BETA builds
+ do not require updates to any files other than
+ sys/conf/newvers.sh, incrementing the
+ BETA build number.
+
+
+
+ Creating the &branch.relengx; Branch
+
+ When the first RC (Release Candidate)
+ build is ready to begin, the &branch.releng; branch is created.
+ This is a multi-step process that must be done in a specific
+ order, in order to avoid anomalies such as overlaps with
+ __FreeBSD_version values, for example. The
+ paths listed below are relative to the repository root. The
+ order of commits and what to change are:
+
+ &prompt.user; svn cp &branch.stablex; &branch.relengx;
+
+
+
+
+
+ File to Edit
+ What to Change
+
+
+
+
+
+ releng/11.0/sys/conf/newvers.sh
+ Change
+ BETAX
+ to RC1
+
+
+
+ releng/11.0/sys/sys/param.h
+ Update __FreeBSD_version
+
+
+
+ releng/11.0/etc/pkg/FreeBSD.conf
+ Replace latest with
+ quarterly as the default package
+ repository location
+
+
+
+ releng/11.0/release/pkg_repos/release-dvd.conf
+ Replace latest with
+ quarterly as the default package
+ repository location
+
+
+
+ stable/11/sys/conf/newver.sh
+ Update
+ BETAX with
+ PRERELEASE
+
+
+
+ stable/11/sys/sys/param.h
+ Update __FreeBSD_version
+
+
+
+ svnadmin/conf/approvers
+ Add a new approvers line for the releng
+ branch as was done for the stable branch
+
+
+
+
+
+ &prompt.user; svn propdel -R svn:mergeinfo &branch.relengx;
+&prompt.user; svn commit &branch.relengx;
+&prompt.user; svn commit &branch.stablex;
+
+ Now that two new __FreeBSD_version values
+ exist, also update
+ head/en_US.ISO8859-1/books/porters-handbook/versions/chapter.xml
+ in the Documentation Project repository.
+
+ After the first RC build has completed
+ and tested, the &branch.stable; branch can be
+ thawed by removing (or commenting) the
+ ^/&branch.stablex; entry in
+ svnadmin/conf/approvers.
+
+
diff --git a/en_US.ISO8859-1/articles/freebsd-releng/releng-mirrors.xml b/en_US.ISO8859-1/articles/freebsd-releng/releng-mirrors.xml
new file mode 100644
index 0000000000..1087009d55
--- /dev/null
+++ b/en_US.ISO8859-1/articles/freebsd-releng/releng-mirrors.xml
@@ -0,0 +1,113 @@
+
+
+
+ Publishing &os; Installation Media to Project Mirrors
+
+ This section describes the procedure to publish &os;
+ development snapshots and releases to the Project mirrors.
+
+
+ Staging &os; Installation Media Images
+
+ Staging &os; snapshots and releases is a two part
+ process:
+
+
+
+ Creating the directory structure to match the hierarchy
+ on ftp-master
+
+ If EVERYTHINGISFINE is defined in the
+ build configuration files, main.conf in
+ the case of the build scripts referenced above, this happens
+ automatically in the &man.chroot.8; after the build is
+ complete, creating the directory structure in ${DESTDIR}/R/ftp-stage
+ with a path structure matching what is expected on
+ ftp-master. This is equivalent to
+ running the following in the &man.chroot.8; directly:
+
+ &prompt.root; make -C /usr/src/release -f Makefile.mirrors EVERYTHINGISFINE=1 ftp-stage
+
+ After each architecture is built,
+ thermite.sh will
+ rsync the ${DESTDIR}/R/ftp-stage
+ from the build &man.chroot.8; to /snap/ftp/snapshots or
+ /snap/ftp/releases on
+ the build host, respectively.
+
+
+
+ Copying the files to a staging directory on
+ ftp-master before moving the files
+ into pub/ to begin
+ propagation to the Project mirrors
+
+ Once all builds have finished, /snap/ftp/snapshots, or
+ /snap/ftp/releases
+ for a release, is polled by
+ ftp-master using
+ rsync to /archive/tmp/snapshots or
+ /snap/ftp/releases,
+ respectively.
+
+
+ On ftp-master in the &os;
+ Project infrastructure, this step requires
+ root level access, as this step must
+ be executed as the archive user.
+
+
+
+
+
+
+ Publishing &os; Installation Media
+
+ Once the images are staged in /archive/tmp/, they are ready to
+ be made public by putting them in /archive/pub/FreeBSD. In order
+ to reduce propagation time, &man.pax.1; is used to create hard
+ links from /archive/tmp
+ to /archive/pub/FreeBSD.
+
+
+ In order for this to be effective, both /archive/tmp and /archive/pub must reside on the
+ same logical filesystem.
+
+
+ There is a caveat, however, where
+ rsync must be used after &man.pax.1;
+ in order to correct the symbolic links in pub/FreeBSD/snapshots/ISO-IMAGES
+ which &man.pax.1; will replace with a hard link, increasing the
+ propagation time.
+
+
+ As with the staging steps, this requires
+ root level access, as this step must be
+ executed as the archive user.
+
+
+ As the archive user:
+
+ &prompt.user; cd /archive/tmp/snapshots
+&prompt.user; pax -r -w -l . /archive/pub/FreeBSD/snapshots
+&prompt.user; /usr/local/bin/rsync -avH /archive/tmp/snapshots/* /archive/pub/FreeBSD/snapshots/
+
+ Replace snapshots with
+ releases as appropriate.
+
+
diff --git a/en_US.ISO8859-1/articles/freebsd-releng/releng-terminology.xml b/en_US.ISO8859-1/articles/freebsd-releng/releng-terminology.xml
new file mode 100644
index 0000000000..56f718ccf5
--- /dev/null
+++ b/en_US.ISO8859-1/articles/freebsd-releng/releng-terminology.xml
@@ -0,0 +1,61 @@
+
+
+
+ Release Engineering Terminology
+
+ This section describes some of the terminology used throughout
+ the rest of this document.
+
+
+ The Code Slush
+
+ Although the code slush is not a hard freeze on the tree,
+ the &team.re; requests that bugs in the existing code base take
+ priority over new features.
+
+ The code slush does not enforce commit approvals to the
+ branch.
+
+
+
+ The Code Freeze
+
+ The code freeze marks the point in time where all commits to
+ the branch require explicit approval from the &team.re;.
+
+ The &os; Subversion repository
+ contains several hooks to perform sanity checks before any
+ commit is actually committed to the tree. One of these hooks
+ will evaluate if committing to a particular branch requires
+ specific approval.
+
+ To enforce commit approvals by the &team.re;, the Release
+ Engineer updates
+ base/svnadmin/conf/approvers, and commits
+ the change back to the repository. Once this is done, any
+ change to the branch must include an Approved by:
+ line in the commit message.
+
+ The Approved by: line must match the second
+ column in base/svnadmin/conf/approvers,
+ otherwise the commit will be rejected by the repository
+ hooks.
+
+
+
+ The KBI/KPI
+ Freeze
+
+ KBI/KPI stability
+ implies that the caller of a function across two different
+ releases of software that implement the function results in the
+ same end state. The caller, whether it is a process, thread, or
+ function, expects the function to operate in a certain way,
+ otherwise the KBI/KPI
+ stability on the branch is broken.
+
+
diff --git a/en_US.ISO8859-1/articles/releng/article.xml b/en_US.ISO8859-1/articles/releng/article.xml
index b97de4d55c..c84b34b35f 100644
--- a/en_US.ISO8859-1/articles/releng/article.xml
+++ b/en_US.ISO8859-1/articles/releng/article.xml
@@ -36,14 +36,15 @@
-
- 2013/02/26: This document is partially outdated and does not
- accurately describe the current release procedures of the
- &os; Release Engineering team. The &os; Release
- Engineering team is currently reviewing this document and
- will publish updated content soon.
-
-
+
+ This document is outdated and does not accurately
+ describe the current release procedures of the &os;
+ Release Engineering team. It is retained for historical
+ purposes. The current procedures used by the &os; Release
+ Engineering team are available in the &os;
+ Release Engineering article.
+ This paper describes the approach used by the &os;
release engineering team to make production quality releases
diff --git a/share/xml/urls.ent b/share/xml/urls.ent
index 3e170f3fc6..0b38fd0de2 100644
--- a/share/xml/urls.ent
+++ b/share/xml/urls.ent
@@ -65,6 +65,8 @@
+
+