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>${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>
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201703282148.v2SLmm1R003978>