diff options
Diffstat (limited to 'docs/HowToReleaseLLVM.html')
-rw-r--r-- | docs/HowToReleaseLLVM.html | 147 |
1 files changed, 73 insertions, 74 deletions
diff --git a/docs/HowToReleaseLLVM.html b/docs/HowToReleaseLLVM.html index 2ea8b43..8a7d7f4 100644 --- a/docs/HowToReleaseLLVM.html +++ b/docs/HowToReleaseLLVM.html @@ -7,7 +7,7 @@ </head> <body> -<div class="doc_title">How To Release LLVM To The Public</div> +<h1>How To Release LLVM To The Public</h1> <ol> <li><a href="#introduction">Introduction</a></li> <li><a href="#criteria">Qualification Criteria</a></li> @@ -23,10 +23,10 @@ </div> <!-- *********************************************************************** --> -<div class="doc_section"><a name="introduction">Introduction</a></div> +<h2><a name="introduction">Introduction</a></h2> <!-- *********************************************************************** --> -<div class="doc_text"> +<div> <p>This document contains information about successfully releasing LLVM — including subprojects: e.g., <tt>llvm-gcc</tt> and <tt>clang</tt> — to @@ -36,9 +36,9 @@ </div> <!-- *********************************************************************** --> -<div class="doc_section"><a name="process">Release Timeline</a></div> +<h2><a name="process">Release Timeline</a></h2> <!-- *********************************************************************** --> -<div class="doc_text"> +<div> <p>LLVM is released on a time based schedule — roughly every 6 months. We do not normally have dot releases because of the nature of LLVM's incremental @@ -76,18 +76,19 @@ </div> <!-- *********************************************************************** --> -<div class="doc_section"><a name="process">Release Process</a></div> +<h2><a name="process">Release Process</a></h2> <!-- *********************************************************************** --> -<div class="doc_text"> +<div> <ol> - <li><a href="#release-admin">Release Administrative Tasks</a></li> + <li><a href="#release-admin">Release Administrative Tasks</a> <ol> <li><a href="#branch">Create Release Branch</a></li> <li><a href="#verchanges">Update Version Numbers</a></li> </ol> - <li><a href="#release-build">Building the Release</a></li> + </li> + <li><a href="#release-build">Building the Release</a> <ol> <li><a href="#dist">Build the LLVM Source Distributions</a></li> <li><a href="#build">Build LLVM</a></li> @@ -95,18 +96,19 @@ <li><a href="#clangbin">Build the Clang Binary Distribution</a></li> <li><a href="#target-build">Target Specific Build Details</a></li> </ol> - <li><a href="#release-qualify">Release Qualification Criteria</a></li> + </li> + <li><a href="#release-qualify">Release Qualification Criteria</a> <ol> <li><a href="#llvm-qualify">Qualify LLVM</a></li> <li><a href="#llvmgcc-qualify">Qualify LLVM-GCC</a></li> <li><a href="#clang-qualify">Qualify Clang</a></li> <li><a href="#targets">Specific Target Qualification Details</a></li> </ol> + </li> <li><a href="#commTest">Community Testing</a></li> <li><a href="#release-patch">Release Patch Rules</a></li> - <li><a href="#release-final">Release final tasks</a></li> - + <li><a href="#release-final">Release final tasks</a> <ol> <li><a href="#updocs">Update Documentation</a></li> <li><a href="#tag">Tag the LLVM Final Release</a></li> @@ -114,14 +116,13 @@ <li><a href="#webupdates">Update the LLVM Website</a></li> <li><a href="#announce">Announce the Release</a></li> </ol> + </li> </ol> -</div> - <!-- ======================================================================= --> -<div class="doc_subsection"><a name="release-admin">Release Administrative Tasks</a></div> +<h3><a name="release-admin">Release Administrative Tasks</a></h3> -<div class="doc_text"> +<div> <p>This section describes a few administrative tasks that need to be done for the release process to begin. Specifically, it involves:</p> @@ -132,12 +133,10 @@ <li>Tagging release candidates for the release team to begin testing</li> </ul> -</div> - <!-- ======================================================================= --> -<div class="doc_subsubsection"><a name="branch">Create Release Branch</a></div> +<h4><a name="branch">Create Release Branch</a></h4> -<div class="doc_text"> +<div> <p>Branch the Subversion trunk using the following procedure:</p> @@ -195,9 +194,9 @@ $ svn co https://llvm.org/svn/llvm-project/cfe/branches/release_<i>XY</i> clang- </div> <!-- ======================================================================= --> -<div class="doc_subsubsection"><a name="verchanges">Update LLVM Version</a></div> +<h4><a name="verchanges">Update LLVM Version</a></h4> -<div class="doc_text"> +<div> <p>After creating the LLVM release branch, update the release branches' <tt>autoconf</tt> and <tt>configure.ac</tt> versions from '<tt>X.Ysvn</tt>' @@ -211,9 +210,9 @@ $ svn co https://llvm.org/svn/llvm-project/cfe/branches/release_<i>XY</i> clang- </div> <!-- ======================================================================= --> -<div class="doc_subsubsection"><a name="dist">Build the LLVM Release Candidates</a></div> +<h4><a name="dist">Build the LLVM Release Candidates</a></h4> -<div class="doc_text"> +<div> <p>Create release candidates for <tt>llvm</tt>, <tt>llvm-gcc</tt>, <tt>clang</tt>, and the LLVM <tt>test-suite</tt> by tagging the branch with @@ -265,10 +264,12 @@ $ tar -cvf - clang-<i>X.Y</i>rc1 | gzip > clang-<i>X.Y</i>rc1.src.tar.g </div> +</div> + <!-- ======================================================================= --> -<div class="doc_subsection"><a name="release-build">Building the Release</a></div> +<h3><a name="release-build">Building the Release</a></h3> -<div class="doc_text"> +<div> <p>The builds of <tt>llvm</tt>, <tt>llvm-gcc</tt>, and <tt>clang</tt> <em>must</em> be free of errors and warnings in Debug, Release+Asserts, and @@ -284,24 +285,22 @@ $ tar -cvf - clang-<i>X.Y</i>rc1 | gzip > clang-<i>X.Y</i>rc1.src.tar.g <tr align="left"><td>Release</td><td><tt>ENABLE_OPTIMIZED=1 DISABLE_ASSERTIONS=1</tt></td></tr> </table> -</div> - <!-- ======================================================================= --> -<div class="doc_subsubsection"><a name="build">Build LLVM</a></div> +<h4><a name="build">Build LLVM</a></h4> -<div class="doc_text"> +<div> <p>Build <tt>Debug</tt>, <tt>Release+Asserts</tt>, and <tt>Release</tt> versions of <tt>llvm</tt> on all supported platforms. Directions to build <tt>llvm</tt> are - <a href="http://llvm.org/docs/GettingStarted.html#quickstart">here</a>.</p> + <a href="GettingStarted.html#quickstart">here</a>.</p> </div> <!-- ======================================================================= --> -<div class="doc_subsubsection"><a name="llvmgccbin">Build the LLVM GCC Binary Distribution</a></div> +<h4><a name="llvmgccbin">Build the LLVM GCC Binary Distribution</a></h4> -<div class="doc_text"> +<div> <p>Creating the <tt>llvm-gcc</tt> binary distribution (Release/Optimized) requires performing the following steps for each supported platform:</p> @@ -326,9 +325,9 @@ $ tar -cvf - clang-<i>X.Y</i>rc1 | gzip > clang-<i>X.Y</i>rc1.src.tar.g </div> <!-- ======================================================================= --> -<div class="doc_subsubsection"><a name="clangbin">Build Clang Binary Distribution</a></div> +<h4><a name="clangbin">Build Clang Binary Distribution</a></h4> -<div class="doc_text"> +<div> <p>Creating the <tt>clang</tt> binary distribution (Debug/Release+Asserts/Release) requires performing the following steps for @@ -347,9 +346,9 @@ $ tar -cvf - clang-<i>X.Y</i>rc1 | gzip > clang-<i>X.Y</i>rc1.src.tar.g </div> <!-- ======================================================================= --> -<div class="doc_subsubsection"><a name="target-build">Target Specific Build Details</a></div> +<h4><a name="target-build">Target Specific Build Details</a></h4> -<div class="doc_text"> +<div> <p>The table below specifies which compilers are used for each Arch/OS combination when qualifying the build of <tt>llvm</tt>, <tt>llvm-gcc</tt>, @@ -368,11 +367,12 @@ $ tar -cvf - clang-<i>X.Y</i>rc1 | gzip > clang-<i>X.Y</i>rc1.src.tar.g </div> +</div> + <!-- ======================================================================= --> -<div class="doc_subsection"><a name="release-qualify"> -Building the Release</a></div> +<h3><a name="release-qualify">Building the Release</a></h3> -<div class="doc_text"> +<div> <p>A release is qualified when it has no regressions from the previous release (or baseline). Regressions are related to correctness first and performance @@ -388,12 +388,10 @@ Building the Release</a></div> criteria, but these are the criteria which we found to be most important and which must be satisfied before a release can go out</b></p> -</div> - <!-- ======================================================================= --> -<div class="doc_subsubsection"><a name="llvm-qualify">Qualify LLVM</a></div> +<h4><a name="llvm-qualify">Qualify LLVM</a></h4> -<div class="doc_text"> +<div> <p>LLVM is qualified when it has a clean test run without a front-end. And it has no regressions when using either <tt>llvm-gcc</tt> or <tt>clang</tt> with @@ -402,9 +400,9 @@ Building the Release</a></div> </div> <!-- ======================================================================= --> -<div class="doc_subsubsection"><a name="llvmgcc-qualify">Qualify LLVM-GCC</a></div> +<h4><a name="llvmgcc-qualify">Qualify LLVM-GCC</a></h4> -<div class="doc_text"> +<div> <p><tt>LLVM-GCC</tt> is qualified when front-end specific tests in the <tt>llvm</tt> regression test suite all pass and there are no regressions in @@ -415,9 +413,9 @@ Building the Release</a></div> </div> <!-- ======================================================================= --> -<div class="doc_subsubsection"><a name="clang-qualify">Qualify Clang</a></div> +<h4><a name="clang-qualify">Qualify Clang</a></h4> -<div class="doc_text"> +<div> <p><tt>Clang</tt> is qualified when front-end specific tests in the <tt>llvm</tt> dejagnu test suite all pass, clang's own test suite passes @@ -426,10 +424,9 @@ Building the Release</a></div> </div> <!-- ======================================================================= --> -<div class="doc_subsubsection"><a name="targets">Specific Target -Qualification Details</a></div> +<h4><a name="targets">Specific Target Qualification Details</a></h4> -<div class="doc_text"> +<div> <table> <tr><th>Architecture</th><th>OS</th><th>llvm-gcc baseline</th><th>clang baseline</th><th>tests</th></tr> @@ -443,9 +440,11 @@ Qualification Details</a></div> </div> +</div> + <!-- ======================================================================= --> -<div class="doc_subsection"><a name="commTest">Community Testing</a></div> -<div class="doc_text"> +<h3><a name="commTest">Community Testing</a></h3> +<div> <p>Once all testing has been completed and appropriate bugs filed, the release candidate tarballs are put on the website and the LLVM community is @@ -481,9 +480,9 @@ Qualification Details</a></div> </div> <!-- ======================================================================= --> -<div class="doc_subsection"><a name="release-patch">Release Patch Rules</a></div> +<h3><a name="release-patch">Release Patch Rules</a></h3> -<div class="doc_text"> +<div> <p>Below are the rules regarding patching the release branch:</p> @@ -505,22 +504,18 @@ Qualification Details</a></div> </div> <!-- ======================================================================= --> -<div class="doc_subsection"><a name="release-final">Release Final Tasks -</a></div> +<h3><a name="release-final">Release Final Tasks</a></h3> -<div class="doc_text"> +<div> <p>The final stages of the release process involves tagging the "final" release branch, updating documentation that refers to the release, and updating the demo page.</p> -</div> - - <!-- ======================================================================= --> -<div class="doc_subsubsection"><a name="updocs">Update Documentation</a></div> +<h4><a name="updocs">Update Documentation</a></h4> -<div class="doc_text"> +<div> <p>Review the documentation and ensure that it is up to date. The "Release Notes" must be updated to reflect new features, bug fixes, new known issues, @@ -532,9 +527,9 @@ Qualification Details</a></div> </div> <!-- ======================================================================= --> -<div class="doc_subsubsection"><a name="tag">Tag the LLVM Final Release</a></div> +<h4><a name="tag">Tag the LLVM Final Release</a></h4> -<div class="doc_text"> +<div> <p>Tag the final release sources using the following procedure:</p> @@ -556,20 +551,20 @@ $ svn copy https://llvm.org/svn/llvm-project/cfe/branches/release_XY \ </div> +</div> + <!-- ======================================================================= --> -<div class="doc_subsection"><a name="updemo">Update the LLVM Demo Page</a></div> +<h3><a name="updemo">Update the LLVM Demo Page</a></h3> -<div class="doc_text"> +<div> <p>The LLVM demo page must be updated to use the new release. This consists of using the new <tt>llvm-gcc</tt> binary and building LLVM.</p> -</div> - <!-- ======================================================================= --> -<div class="doc_subsubsection"><a name="webupdates">Update the LLVM Website</a></div> +<h4><a name="webupdates">Update the LLVM Website</a></h4> -<div class="doc_text"> +<div> <p>The website must be updated before the release announcement is sent out. Here is what to do:</p> @@ -603,14 +598,18 @@ $ svn copy https://llvm.org/svn/llvm-project/cfe/branches/release_XY \ </div> <!-- ======================================================================= --> -<div class="doc_subsubsection"><a name="announce">Announce the Release</a></div> +<h4><a name="announce">Announce the Release</a></h4> -<div class="doc_text"> +<div> <p>Have Chris send out the release announcement when everything is finished.</p> </div> +</div> + +</div> + <!-- *********************************************************************** --> <hr> <address> @@ -618,7 +617,7 @@ $ svn copy https://llvm.org/svn/llvm-project/cfe/branches/release_XY \ src="http://jigsaw.w3.org/css-validator/images/vcss-blue" alt="Valid CSS"></a> <a href="http://validator.w3.org/check/referer"><img src="http://www.w3.org/Icons/valid-html401-blue" alt="Valid HTML 4.01"></a> - <a href="http://llvm.cs.uiuc.edu">The LLVM Compiler Infrastructure</a> + <a href="http://llvm.org/">The LLVM Compiler Infrastructure</a> <br> Last modified: $Date$ </address> |