Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 28 Mar 2017 21:48:48 +0000 (UTC)
From:      Glen Barber <gjb@FreeBSD.org>
To:        doc-committers@freebsd.org, svn-doc-user@freebsd.org
Subject:   svn commit: r50097 - user/gjb/releng-rewrite/en_US.ISO8859-1/articles/freebsd-releng
Message-ID:  <201703282148.v2SLmm1R003978@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
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>&dollar;{revision}-&dollar;{TARGET_ARCH}-&dollar;{KERNCONF}-&dollar;{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
+	&dollar;{revision}, &dollar;{TARGET_ARCH},
+	&dollar;{KERNCONF}, and &dollar;{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>&nbsp;</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>



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201703282148.v2SLmm1R003978>