svn commit: r50097 - user/gjb/releng-rewrite/en_US.ISO8859-1/articles/freebsd-releng
Glen Barber
gjb at FreeBSD.org
Tue Mar 28 21:48:50 UTC 2017
Author: gjb
Date: Tue Mar 28 21:48:48 2017
New Revision: 50097
URL: https://svnweb.freebsd.org/changeset/doc/50097
Log:
- Add a note about some considerations when writing the release
schedule.
- Replace a <literal> tag with <acronym>.
- Fix a path in a Subversion reference.
- Describe the scheme and rationale behind configuration files.
- Fix a BETA1 reference when branching head to stable/X.
- Add high-level notes about how the release.sh wrapper works.
Sponsored by: The FreeBSD Foundation
Modified:
user/gjb/releng-rewrite/en_US.ISO8859-1/articles/freebsd-releng/article.xml
user/gjb/releng-rewrite/en_US.ISO8859-1/articles/freebsd-releng/releng-building.xml
user/gjb/releng-rewrite/en_US.ISO8859-1/articles/freebsd-releng/releng-major-version.xml
Modified: user/gjb/releng-rewrite/en_US.ISO8859-1/articles/freebsd-releng/article.xml
==============================================================================
--- user/gjb/releng-rewrite/en_US.ISO8859-1/articles/freebsd-releng/article.xml Tue Mar 28 20:26:18 2017 (r50096)
+++ user/gjb/releng-rewrite/en_US.ISO8859-1/articles/freebsd-releng/article.xml Tue Mar 28 21:48:48 2017 (r50097)
@@ -308,6 +308,16 @@
&branch.stable; branches.</para>
</note>
+ <para>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 <acronym>RC</acronym>. 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
+ <literal>RELEASE</literal> build.</para>
+
<para>After general agreement on the schedule, the &team.re;
emails the schedule to the &os; Developers.</para>
@@ -322,7 +332,7 @@
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 <literal>RC</literal> builds.</para>
+ start of the <acronym>RC</acronym> builds.</para>
<para>Depending on the underlying set of code in question, and
the overall impact the set of code has on &os; as a whole, such
Modified: user/gjb/releng-rewrite/en_US.ISO8859-1/articles/freebsd-releng/releng-building.xml
==============================================================================
--- user/gjb/releng-rewrite/en_US.ISO8859-1/articles/freebsd-releng/releng-building.xml Tue Mar 28 20:26:18 2017 (r50096)
+++ user/gjb/releng-rewrite/en_US.ISO8859-1/articles/freebsd-releng/releng-building.xml Tue Mar 28 21:48:48 2017 (r50097)
@@ -79,7 +79,7 @@ KERNEL="GENERIC64"</programlisting>
<para>The wrapper script is called
<filename>thermite.sh</filename>, which is available in the
&os; Subversion repository at
- <literal>svn://svn.freebsd.org/user/gjb/thermite/</literal>,
+ <literal>svn://svn.freebsd.org/base/user/gjb/thermite/</literal>,
in addition to configuration files used to build
&branch.head; and &branch.stablex; development
snapshots.</para>
@@ -87,13 +87,79 @@ KERNEL="GENERIC64"</programlisting>
<para>Using <filename>thermite.sh</filename> is covered in <xref
linkend="releng-build-snapshot"/> and <xref
linkend="releng-build-release"/>.</para>
+
+ <para>Each architecture and individual kernel have their own
+ configuration file used by <filename>release.sh</filename>.
+ Each branch has its own <filename>defaults-X.conf</filename>
+ configuration which contains entries common throughout each
+ architecture, where overrides or special variables are set
+ and/or overridden in the per-build files.</para>
+
+ <para>The per-build configuration file naming scheme is in the
+ form of
+ <filename>${revision}-${TARGET_ARCH}-${KERNCONF}-${type}.conf</filename>,
+ 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.</para>
+
+ <para>Each branch also has its own
+ <filename>builds-X.conf</filename> configuration, which is
+ used by <filename>thermite.sh</filename>. The
+ <filename>thermite.sh</filename> 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.</para>
</sect3>
</sect2>
<sect2 xml:id="releng-build-snapshot">
<title>Building &os; Development Snapshots</title>
- <para> </para>
+ <para>The official release build machines have a specific
+ filesystem layout, which using <acronym>ZFS</acronym>,
+ <filename>thermite.sh</filename> takes heavy advantage of with
+ clones and snapshots, ensuring a pristine build
+ environment.</para>
+
+ <para>The build scripts reside in <filename
+ class="directory">/releng/scripts-snapshot/scripts</filename>
+ or <filename
+ class="directory">/releng/scripts-release/scripts</filename>
+ respectfully, to avoid collisions between an
+ <acronym>RC</acronym> build from a releng branch versus
+ a <literal>STABLE</literal> snapshot from the respective stable
+ branch.</para>
+
+ <para>A separate dataset exists for the final build images,
+ <filename class="directory">/snap/ftp</filename>. This
+ directory contains both snapshots and releases directories.
+ They are only used if the <literal>EVERYTHINGISFINE</literal>
+ variable is defined in <filename>main.conf</filename>.</para>
+
+ <note>
+ <para>The <literal>EVERYTHINGISFINE</literal> 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.</para>
+ </note>
+
+ <para>As <filename>thermite.sh</filename> iterates through the
+ master list of combinations and locates the per-build
+ configuration file, a <acronym>ZFS</acronym> dataset is created
+ under <filename class="directory">/releng</filename>, such as
+ <filename
+ class="directory">/releng/12-amd64-GENERIC-snap</filename>.
+ The <literal>src/</literal>, <literal>ports/</literal>, and
+ <literal>doc/</literal> trees are checked out to separate
+ <acronym>ZFS</acronym> datasets, such as <filename
+ class="directory">/releng/12-src-snap</filename>, which are
+ then cloned and mounted into the respective build datasets.
+ This is done to avoid checking out a given tree more than
+ once.</para>
</sect2>
<sect2 xml:id="releng-build-release">
Modified: user/gjb/releng-rewrite/en_US.ISO8859-1/articles/freebsd-releng/releng-major-version.xml
==============================================================================
--- user/gjb/releng-rewrite/en_US.ISO8859-1/articles/freebsd-releng/releng-major-version.xml Tue Mar 28 20:26:18 2017 (r50096)
+++ user/gjb/releng-rewrite/en_US.ISO8859-1/articles/freebsd-releng/releng-major-version.xml Tue Mar 28 21:48:48 2017 (r50097)
@@ -94,7 +94,7 @@
<row>
<entry><filename>stable/<replaceable>11</replaceable>/sys/conf/newvers.sh</filename></entry>
<entry>Update the <varname>BRANCH</varname> value to
- reflect <literal>PRERELEASE</literal></entry>
+ reflect <literal>BETA1</literal></entry>
</row>
</tbody>
</tgroup>
More information about the svn-doc-user
mailing list