svn commit: r50064 - user/gjb/releng-rewrite/en_US.ISO8859-1/articles/freebsd-releng
Glen Barber
gjb at FreeBSD.org
Wed Mar 15 21:43:38 UTC 2017
Author: gjb
Date: Wed Mar 15 21:43:37 2017
New Revision: 50064
URL: https://svnweb.freebsd.org/changeset/doc/50064
Log:
Add sections on creating stable and releng branches, and
what files to edit in head and new stable branches, as well
as the simplified workflow.
There is still quite a bit to be written, however.
Sponsored by: The FreeBSD Foundation
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-minor-version.xml
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 Wed Mar 15 09:41:25 2017 (r50063)
+++ user/gjb/releng-rewrite/en_US.ISO8859-1/articles/freebsd-releng/releng-major-version.xml Wed Mar 15 21:43:37 2017 (r50064)
@@ -44,9 +44,65 @@
<para>When creating the &branch.stable; branch, several changes
are required in both the new &branch.stable; branch and the
- &branch.head; branch.</para>
+ &branch.head; branch. The files listed are relative to the
+ repository root. To create the new &branch.stablex; branch
+ in Subversion:</para>
+
+ <screen>&prompt.user; <userinput>svn cp head &branch.stablex;</userinput></screen>
+
+ <para>Once the &branch.stablex; branch has been committed, make
+ the following edits:</para>
+
+ <informaltable frame="none" pgwide="0">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>File to Edit</entry>
+ <entry>What to Change</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry><filename>stable/<replaceable>11</replaceable>/UPDATING</filename></entry>
+ <entry>Update the &os; version, and remove the notice
+ about <literal>WITNESS</literal></entry>
+ </row>
+
+ <row>
+ <entry><filename>stable/<replaceable>11</replaceable>/contrib/jemalloc/include/jemalloc/jemalloc_FreeBSD.h</filename></entry>
+ <entry><screen>#ifndef MALLOC_PRODUCTION
+#define MALLOC_PRODUCTION
+#endif</screen></entry>
+ </row>
+
+ <row>
+ <entry><filename>stable/<replaceable>11</replaceable>/sys/*/conf/GENERIC*</filename></entry>
+ <entry>Remove debugging support</entry>
+ </row>
+
+ <row>
+ <entry><filename>stable/<replaceable>11</replaceable>/release/release.conf.sample</filename></entry>
+ <entry>Update <varname>SRCBRANCH</varname></entry>
+ </row>
+
+ <row>
+ <entry><filename>stable/<replaceable>11</replaceable>/sys/*/conf/GENERIC-NODEBUG</filename></entry>
+ <entry>Remove these kernel configurations</entry>
+ </row>
+
+ <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>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+
+ <para>Then in the &branch.head; branch, which will now become
+ a new major version:</para>
- <?ignore
<informaltable frame="none" pgwide="0">
<tgroup cols="2">
<thead>
@@ -58,13 +114,84 @@
<tbody>
<row>
- <entry> </entry>
- <entry> </entry>
+ <entry><filename>head/UPDATING</filename></entry>
+ <entry>Update the &os; version</entry>
+ </row>
+
+ <row>
+ <entry><filename>head/gnu/usr.bin/groff/tmac/mdoc.local.in</filename></entry>
+ <entry>Add the new &os; version</entry>
+ </row>
+
+ <row>
+ <entry><filename>head/sys/conf/newvers.sh</filename></entry>
+ <entry>Update the <varname>BRANCH</varname> value to
+ reflect <literal>CURRENT</literal>, and increment
+ <literal>REVISION</literal></entry>
+ </row>
+
+ <row>
+ <entry><filename>head/Makefile.inc1</filename></entry>
+ <entry>Update <varname>TARGET_TRIPLE</varname></entry>
+ </row>
+
+ <row>
+ <entry><filename>head/sys/sys/param.h</filename></entry>
+ <entry>Update <literal>__FreeBSD_version</literal></entry>
+ </row>
+
+ <row>
+ <entry><filename>head/contrib/llvm/tools/clang/lib/Basic/Targets.cpp</filename></entry>
+ <entry>Update
+ <literal>__FreeBSD_cc_version</literal></entry>
+ </row>
+
+ <row>
+ <entry><filename>head/gnu/usr.bin/cc/cc_tools/freebsd-native.h</filename></entry>
+ <entry>Update <literal>FBSD_MAJOR</literal> and
+ <literal>FBSD_CC_VER</literal></entry>
+ </row>
+
+ <row>
+ <entry><filename>head/contrib/gcc/config.gcc</filename></entry>
+ <entry>Append the
+ <literal>freebsd<version>.h</literal>
+ section</entry>
+ </row>
+
+ <row>
+ <entry><filename>head/release/Makefile</filename></entry>
+ <entry>Remove the
+ <literal>debug.witness.trace</literal> entries</entry>
+ </row>
+
+ <row>
+ <entry><filename>head/release/doc/en_US.ISO8859-1/readme/article.xml</filename></entry>
+ <entry>Replace &a.current; with &a.stable;</entry>
+ </row>
+
+ <?ignore
+
+ <row>
+ <entry><filename>head/release/doc/share/xml/release.ent</filename></entry>
+ <entry></entry>
+ </row>
+
+ ?>
+
+ <row>
+ <entry><filename>head/lib/clang/clang.build.mk</filename></entry>
+ <entry>Uncomment <literal>-DNDEBUG</literal></entry>
+ </row>
+
+ <row>
+ <entry><filename>head/lib/clang/freebsd_cc_version.h</filename></entry>
+ <entry>Update
+ <literal>FREEBSD_CC_VERSION</literal></entry>
</row>
</tbody>
</tgroup>
</informaltable>
- ?>
</sect2>
<sect2 xml:id="releng-head-thaw">
Modified: user/gjb/releng-rewrite/en_US.ISO8859-1/articles/freebsd-releng/releng-minor-version.xml
==============================================================================
--- user/gjb/releng-rewrite/en_US.ISO8859-1/articles/freebsd-releng/releng-minor-version.xml Wed Mar 15 09:41:25 2017 (r50063)
+++ user/gjb/releng-rewrite/en_US.ISO8859-1/articles/freebsd-releng/releng-minor-version.xml Wed Mar 15 21:43:37 2017 (r50064)
@@ -10,22 +10,164 @@
<para>This section describes the general procedures of the &os;
release cycle from an extablished &branch.stable; branch.</para>
+ <sect2 xml:id="releng-stable-slush">
+ <title>&os; <literal>stable</literal> Branch Code Slush</title>
+
+ <para>In preparation for the code freeze on
+ a <literal>stable</literal> 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:</para>
+
+ <informaltable frame="none" pgwide="0">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>File to Edit</entry>
+ <entry>What to Change</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry><filename>gnu/usr.bin/groff/tmac/mdoc.local.in</filename></entry>
+ <entry>Add the new &os; version</entry>
+ </row>
+
+ <row>
+ <entry><filename>sys/conf/newvers.sh</filename></entry>
+ <entry>Update the <varname>BRANCH</varname> value to
+ reflect <literal>PRERELEASE</literal></entry>
+ </row>
+
+ <row>
+ <entry><filename>Makefile.inc1</filename></entry>
+ <entry>Update <varname>TARGET_TRIPLE</varname></entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+ </sect2>
+
<sect2 xml:id="releng-stable-builds-beta">
<title>&os; <literal>BETA</literal> Builds</title>
- <para> </para>
+ <para>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
+ <filename>base/svnadmin/conf/approvers</filename> to include
+ a regular expression matching the &branch.stablex; branch for
+ the release:</para>
+
+ <programlisting>^/&branch.stablex; re</programlisting>
+
+ <note>
+ <para>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.</para>
+ </note>
+
+ <para>Once the code freeze is in effect, the next build from the
+ branch is labeled <literal>BETA1</literal>. This is done by
+ updating the <varname>BRANCH</varname> value in
+ <filename>sys/conf/newvers.sh</filename> from
+ <literal>PRERELEASE</literal> to
+ <literal>BETA1</literal>.</para>
+
+ <para>Once this is done, the first set of <literal>BETA</literal>
+ builds are started. Subsequent <literal>BETA</literal> builds
+ do not require updates to any files other than
+ <filename>sys/conf/newvers.sh</filename>, incrementing the
+ <literal>BETA</literal> build number.</para>
</sect2>
<sect2 xml:id="releng-stable-branching">
<title>Creating the &branch.relengx; Branch</title>
- <para> </para>
- </sect2>
-
- <sect2 xml:id="releng-stable-thaw">
- <title>Code Thaw in the &branch.stablex; Branch</title>
-
- <para> </para>
+ <para>When the first <acronym>RC</acronym> (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
+ <varname>__FreeBSD_version</varname> values, for example. The
+ paths listed below are relative to the repository root. The
+ order of commits and what to change are:</para>
+
+ <screen>&prompt.user; <userinput>svn cp &branch.stablex; &branch.relengx;</userinput></screen>
+
+ <informaltable frame="none" pgwide="0">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>File to Edit</entry>
+ <entry>What to Change</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry><filename>releng/<replaceable>11.0</replaceable>/sys/conf/newvers.sh</filename></entry>
+ <entry>Change <literal>BETA<replaceable>X</replaceable></literal>
+ to <literal>RC1</literal></entry>
+ </row>
+
+ <row>
+ <entry><filename>releng/<replaceable>11.0</replaceable>/sys/sys/param.h</filename></entry>
+ <entry>Update <varname>__FreeBSD_version</varname></entry>
+ </row>
+
+ <row>
+ <entry><filename>releng/<replaceable>11.0</replaceable>/etc/pkg/FreeBSD.conf</filename></entry>
+ <entry>Replace <literal>latest</literal> with
+ <literal>quarterly</literal> as the default package
+ repository location</entry>
+ </row>
+
+ <row>
+ <entry><filename>releng/<replaceable>11.0</replaceable>/release/pkg_repos/release-dvd.conf</filename></entry>
+ <entry>Replace <literal>latest</literal> with
+ <literal>quarterly</literal> as the default package
+ repository location</entry>
+ </row>
+
+ <row>
+ <entry><filename>stable/<replaceable>11</replaceable>/sys/conf/newver.sh</filename></entry>
+ <entry>Update <literal>BETA<replaceable>X</replaceable></literal>
+ with <literal>PRERELEASE</literal></entry>
+ </row>
+
+ <row>
+ <entry><filename>stable/<replaceable>11</replaceable>/sys/sys/param.h</filename></entry>
+ <entry>Update <varname>__FreeBSD_version</varname></entry>
+ </row>
+
+ <row>
+ <entry><filename>svnadmin/conf/approvers</filename></entry>
+ <entry>Add a new approvers line for the releng
+ branch as was done for the stable branch</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+
+ <screen>&prompt.user; <userinput>svn propdel -R svn:mergeinfo &branch.relengx;</userinput>
+&prompt.user; <userinput>svn commit &branch.relengx;</userinput>
+&prompt.user; <userinput>svn commit &branch.stablex;</userinput></screen>
+
+ <para>Now that two new <varname>__FreeBSD_version</varname> values
+ exist, also upate
+ <filename>head/en_US.ISO8859-1/books/porters-handbook/versions/chapter.xml</filename>
+ in the Documentation Project repository.</para>
+
+ <para>After the first <acronym>RC</acronym> build has completed
+ and tested, the &branch.stable; branch can be
+ <quote>thawed</quote> by removing (or commenting) the
+ ^/&branch.stablex; entry in
+ <filename>svnadmin/conf/approvers</filename>.</para>
</sect2>
<sect2 xml:id="releng-release-rc">
More information about the svn-doc-user
mailing list