[SVN r41565]
This commit is contained in:
Rene Rivera 2007-12-02 04:06:28 +00:00
parent 1574cd9b30
commit e623c920e9
2 changed files with 0 additions and 489 deletions

View File

@ -1,276 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Language" content="en-us">
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Release Manager's Checklist</title>
</head>
<body bgcolor="#FFFFFF">
<table border="1" bgcolor="#007F7F" cellpadding="2">
<tr>
<td bgcolor="#FFFFFF">
<img src="../boost.png" alt="boost.png (6897 bytes)" width="277" height="86"></td>
<td><a href="../index.htm"><font face="Arial,Helvetica" color="#FFFFFF"><big>Home</big></font></a></td>
<td><a href="../libs/libraries.htm"><font face="Arial,Helvetica" color="#FFFFFF"><big>Libraries</big></font></a></td>
<td><a href="../people/people.htm"><font face="Arial,Helvetica" color="#FFFFFF"><big>People</big></font></a></td>
<td><a href="../more/faq.htm"><font face="Arial,Helvetica" color="#FFFFFF"><big>FAQ</big></font></a></td>
<td><a href="../more/index.htm"><font face="Arial,Helvetica" color="#FFFFFF"><big>More</big></font></a></td>
</tr>
</table>
<h1>Release Manager's Checklist</h1>
<p><a href="#Introduction">Introduction</a><br>
<a href="#Pre-release">Pre-release activities</a><br>
<a href="#Branch-for-release">CVS Branch for release</a><br>
<a href="#CVS-release">CVS Release</a><br>
<a href="#Distribution">Distribution</a></p>
<h2><a name="Introduction">Introduction</a></h2>
<p>Historically, items on this checklist were accomplished by scripts written
in Perl, Python, Bash, C++, and as Windows command files, or by point-and-click
on a FrontPage or other GUI based program. Long term the plan is to move as much
as possible of these to C++, as
the one language all Boost developers are comfortable with. </p>
<h2><a name="Pre-release">Pre-release</a> activities</h2>
<ul>
<li>After discussion on the main list, post the release schedule.<br>
&nbsp;</li>
<li>Verify the <i><b>root/index.htm</b></i>, <i><b>root/boost/version.hpp</b></i>, <i><b>root/Jamfile.v2</b></i> and
<i><b>root/Jamrules</b></i>
release numbers are correct and agree. <br>
&nbsp;</li>
<li>Verify via <a href="mailto:jamboost@yahoogroups.com">jamboost@yahoogroups.com</a>
that bjam pre-built executables up-to-date.<br>
&nbsp;</li>
<li>Remove the oldest &quot;Latest News&quot; from root/index.htm.<br>
&nbsp;</li>
<li>For each new library added this release:</li>
</ul>
<blockquote>
<ul>
<li>Verify root/index.htm Latest News entry has been made and reads well.<br>
&nbsp;</li>
<li>Verify root/libs/libraries.htm entry has been made, both in the
alphabetic list and in the category lists.<br>
&nbsp;</li>
<li>Verify the root/libs/xxx directory contains an index.htm or index.html
file; either the main docs or a redirection to the main docs. <b><i>To do:
automate this.</i></b><br>
&nbsp;</li>
<li>Skim read the primary docs pages to make sure they meet Boost
requirements and guidelines. <b><i>Don't leave this until too late; it has
turned up lots of issues in the past.<br>
&nbsp;</i></b></li>
<li>Generate the header dependency table and update the CVS.<b><i> To do:
coordinate with John Maddock's new dependency tools.</i></b></li>
</ul>
</blockquote>
<ul>
<li>Monitor
<a href="http://boost.sourceforge.net/regression-logs/inspection_report.html">
http://boost.sourceforge.net/regression-logs/inspection_report.html</a> to
verify problems are actively being reduced. Make sure none of the problems are
in files the release manager is responsible for.<br>
&nbsp;</li>
<li>Monitor regression tests (<a href="http://boost.sourceforge.net/regression-logs/inspection_report.html">http://boost.sourceforge.net/regression-logs</a>)
to verify that errors are actively being reduced or accounted for on key
platforms and compilers.<br>
&nbsp;<ul>
<li>Boost errors are being actively worked on by library maintainers.</li>
<li>Compiler or standard library errors are at least identified, and
preferably reported to the supplier.</li>
<li>No errors remain uninvestigated or unclassified.<br>
&nbsp;</li>
</ul>
</li>
<li>Monitor the developer and user mailing lists to verify that all posted
patches are being applied, rejected, or otherwise dealt with.<br>
&nbsp;</li>
<li>Monitor the developer and user mailing lists, and the SourceForge bug
tracker, to verify that all posted bug reports are being investigated, fixed,
rejected, or otherwise dealt with.<br>
&nbsp;</li>
<li>Monitor CVS commits to verify that all the expected and/or promised
content actually gets committed. Try to get developers to avoid last minute
commits of major changes.</li>
</ul>
<h2><a name="Branch-for-release">CVS Branch for release</a></h2>
<ul>
<li>Pre-release activities complete enough to justify branch-for-release?<br>
&nbsp;</li>
<li>Everybody happy?<br>
&nbsp;</li>
<li>Branch for release:<ul>
<li>Tag the main trunk&nbsp; <code>merged_to_RC_n_n_n</code>.</li>
<li>Branch the main trunk with the tag <code>RC_n_n_n</code>.<br>
&nbsp;</li>
</ul>
</li>
<li>Post notice on main list.&nbsp;Remind developers that fixes which apply
to both Main Trunk and Branch have to be committed separately to both.</li>
</ul>
<h2><a name="CVS-release">CVS Release</a></h2>
<ul>
<li>Pre-release activities all complete?<br>
&nbsp;</li>
<li>Post notice to make sure all developers ready.<br>
&nbsp;</li>
<li>Tag: WinCVS: Select site, then tag (Modify|Create tag..., toolbar T on doc). New
tag name: Version_1_21_2 (or whatever). If prior release failed, select
&quot;overwrite existing tags with the same name&quot;.</li>
</ul>
<h2><a name="Distribution">Distribution</a></h2>
<p>These procedures are given for a particular release manager's machine. The
plan is to replace them with more generic procedures over time.</p>
<ul>
<li>Create folders for export:<br>
<br>
&nbsp;&nbsp;&nbsp; c:\boost\boost_1_28_0<br>
&nbsp;&nbsp;&nbsp; c:\boost\temp\boost_1_28_0<br>
<br>
Note that several batch files assume these locations and naming schemes.<br>
&nbsp;</li>
<li>Export Win32 distribution: WinCVS | Remote | Checkout Module<br>
<br>
Checkout settings: module name and path on the server: boost, local folder to
checkout to: c:\boost\boost_1_28_0<br>
<b><i>[for 1.29.0 export, put everything in a boost_1_29_0/boost subdirectory.&nbsp;
Experiments with 1.30.0 tried boost/boost as the path on server, but that just
resulted in getting the boost header subdirectory only.]</i></b><br>
<br>
Checkout options: (check) By revision/tab/branch: Version_1_28_0, (check) Do
not create CVS directories (export)<br>
<br>
This results in the follow command: cvs -z9 export -r Version_1_28_0 boost (in
directory C:\boost\boost_1_28_0)<br>
<br>
(takes about ten minutes)<br>
<br>
(rename boost-root if needed !!!!!!!!!!!!!!!!!!!)<br>
&nbsp;</li>
<li>Export Unix distribution: similar to above, except target is c:\boost\temp\boost_1_28_0
and set global for UNIX nl.<br>
&nbsp;</li>
<li>!!!!!! VERY IMPORTANT: WinCVS | Set Preferences | Global back to non-UNIX nl.
!!!!!!!!!!!!!!!<br>
&nbsp;</li>
<li>Add regression results web pages into package (new in 1.33 so this is just a shot at the process - jeff)<br>
download all the regression results from website (may need meta-comm help on this)<br>
unpack the regression results into tools/regression/latest_release<br>
<br>
</li>
<li>General ZIP and TAR.GZ files<br>
<br>
n_n_n is 1_28_0 or whatever<br>
<br>
cd \boost<br>
boost_zip 1_21_2 (creates zip.log) <br>
boost_tar_gz 1_21_2<br>
bash<br>
&nbsp;&nbsp;&nbsp;
gunzip -c boost_1_21_2.tar.gz | bzip2 &gt; boost_1_21_2.tar.bz2<br>
&nbsp;&nbsp;&nbsp; exit<br>
&nbsp;</li>
<li>Upload and unpack the .zip release candidate to a SourceForge web services
sub-directory. Post a message to the main list asking developers to check
contents. (Daniel Frey has volunteered to help check).<br>
&nbsp;</li>
<li>Upload files for SourceForge release incoming directory using <b>WS_FTP Pro</b><ul>
<li>Start keep_isdn_awake</li>
<li>Connection: SourceForge Release Upload | connect</li>
<li>Select Local system: c:\boost</li>
<li>Select Remote system: /incoming</li>
<li>Drag-and-drop the three release files from Local system to Remote system</li>
<li>Disconnect</li>
<li>Stop keep_isdn_awake<br>
&nbsp;</li>
</ul>
</li>
<li>Complete the SourceForge
<a href="http://sourceforge.net/docman/display_doc.php?docid=6445&amp;group_id=1#createrelease">
release procedure</a>.<ul>
<li>Admin | File Releases | Add Release for package name boost</li>
<li>New release name: 1.21.2 | create this release</li>
<li>Step 1: paste in release notes (in HTML). <b>Be sure to note difference
between .zip and .gz/bz2 files.</b> Submit/Refresh</li>
<li>Step 2: Check appropriate files. Add Files and/or Refresh View</li>
<li>Step 3: For each file, select Processor and File Type, Update/Refresh</li>
<li>Setp 4: Email Release Notice: I'm sure. Send Notice.</li>
<li>Wait up to 30 minutes.</li>
<li>Check SourceForge release page and release notes with web browser.<br>
&nbsp;</li>
</ul>
</li>
<li><i><b>Consider putting up a temporary &quot;Update in progress&quot; root/index.html
during site update<br>
&nbsp;</b></i></li>
<li>Update the web site:<pre>cd ...\boost_1_28_0
tar -cf site.tar *
bzip2 -k site.tar
dir site.tar.bz2
pscp site.tar.bz2 beman_dawes@shell1.sourceforge.net:/home/groups/b/bo/boost/htdocs/
keep_idsn_awake in another window.
c:\bgd\util\putty\plink.exe beman_dawes@shell.sourceforge.net
cd /home/groups/b/bo/boost/htdocs
pwd
ls -l site.tar.bz2
rm -fr boost
rm -fr doc
rm -fr libs
rm -fr more
rm -fr people
rm -fr status
rm -fr tools
bunzip2 -kc site.tar.bz2 | tar -x
ls
exit
stop keep_isdn_awake</pre>
</li>
<li>Check actual <a href="http://www.boost.org">www.boost.org</a> site with
browser. Look at a bunch of files that should have been updated to make sure
the updates actually &quot;took&quot;.<br>
&nbsp;</li>
<li>Post a message announcing the release and recapping &quot;Latest News&quot;.&nbsp;
Post as separate messages to: boost, boost-announce, boost-users,
comp.lang.c++.moderated,
<a href="mailto:c++std-news@research.att.com">c++std-news@research.att.com</a><br>
&nbsp;</li>
<li>Using the SourceForge shell services (sf_shell_svc.bat), cd /home/groups/b/bo/boost/htdocs,
and rename regression tests as necessary.<br>
&nbsp;</li>
<li>Burn &quot;Key Directories&quot; CD for off-site backup.<br>
&nbsp;</li>
<li>Make sure CVS working copy is updated to main branch!<br>
&nbsp;</li>
<li>Ready <i><b>root/index.htm</b></i>, <i><b>root/boost/version.hpp</b></i>, <b>root/Jamfile.v2</b> and
<i><b>root/Jamrules</b></i> for the
next release and commit to CVS so developers have a place to add &quot;Latest news&quot;
blurbs.<br>
&nbsp;</li>
<li>Delete obsolete files from yahoogroups files section.</li>
</ul>
<hr>
<p>Revised:
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->21 November, 2005<!--webbot bot="Timestamp" endspan i-checksum="40405" --></p>
<p>© Copyright Beman Dawes 2001</p>
<p>Distributed under the Boost Software License, Version 1.0. (See accompanying
file <a href="../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or copy at
<a href="http://www.boost.org/LICENSE_1_0.txt">http://www.boost.org/LICENSE_1_0.txt</a>)</p>
</body>
</html>

View File

@ -1,213 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Language" content="en-us">
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Release Procedures</title>
</head>
<body bgcolor="#FFFFFF">
<table border="1" bgcolor="#007F7F" cellpadding="2">
<tr>
<td bgcolor="#FFFFFF">
<img src="../boost.png" alt="boost.png (6897 bytes)" width="277" height="86"></td>
<td><a href="../index.htm"><font face="Arial,Helvetica" color="#FFFFFF"><big>Home</big></font></a></td>
<td><a href="../libs/libraries.htm"><font face="Arial,Helvetica" color="#FFFFFF"><big>Libraries</big></font></a></td>
<td><a href="../people/people.htm"><font face="Arial,Helvetica" color="#FFFFFF"><big>People</big></font></a></td>
<td><a href="../more/faq.htm"><font face="Arial,Helvetica" color="#FFFFFF"><big>FAQ</big></font></a></td>
<td><a href="../more/index.htm"><font face="Arial,Helvetica" color="#FFFFFF"><big>More</big></font></a></td>
</tr>
</table>
<h1>Boost Release Procedures</h1>
<p><a href="#Introduction">Introduction</a><br>
<a href="#Overview">Procedure Overview</a><br>
<a href="#Developers">Procedures for Developers</a><br>
<a href="#Manager">Procedures for the Release Manager</a><br>
<a href="#FAQ">FAQ</a><br>
<a href="#Acknowledgements">Acknowledgements</a></p>
<h2><a name="Introduction">Introduction</a></h2>
<p>Each release of Boost software is overseen by a release manager, who
coordinates release activities via the Boost mailing list, as well as performing
the detailed procedures for the release.</p>
<p>Boost developers assist the release manager by reviewing regression test
logs, and committing fixes to CVS.</p>
<h2>Release Procedure <a name="Overview">Overview</a></h2>
<ul>
<li>Discussion on the main Boost mailing list to determine the target date for
release candidate branch and tag of the CVS main trunk.<br>
&nbsp;</li>
<li>Release manager performs release candidate branch, and also tags the
branch point in main trunk.<br>
&nbsp;</li>
<li>Regression tests run on release candidate branch.<br>
&nbsp;</li>
<li>Developers fix problems, test, and commit fixes. See below for details.<br>
&nbsp;</li>
<li>Repeat previous two steps until release manager is satisfied.<br>
&nbsp;</li>
<li>Release manager rolls out the actual release.</li>
</ul>
<h2>Release Procedures for <a name="Developers">Developers</a></h2>
<ul>
<li>As the release candidate branch date approaches (as announced on the main
mailing list), bring the main trunk CVS files you are responsible for into a
stable state.<br>
&nbsp;</li>
<li>If you know of changes in either your code or its dependencies, start
checking regression test results to ensure your tests still pass.&nbsp; Don't
necessarily wait for the initial release tagging.<br>
&nbsp;</li>
<li>After the release manager announces that the release candidate branch has
occurred, check the latest regression test results to be sure
your tests haven't broken.<br>
&nbsp;</li>
<li>Developers can continue working on main trunk code changes after
the release candidate branch has occurred. There is no need to wait until the release
itself.&nbsp;
Modified files committed to CVS on the main trunk will not be included in the release unless the
developer explicitly commits the changes to the release candidate branch.<br>
&nbsp;</li>
<li>If specific to the release candidate only, the fixes should be committed
directly to the release candidate branch. In the more common case of fixes
which apply to both the main trunk and the release branch, the fixes are best
made to the main trunk, and then merged into the release candidate branch. See
FAQ for <a href="#merged_to_RC_n_n_n">tag rationale</a>.<br>
<br>
After a fix has been committed to the main trunk, here is a
typical procedure (assuming the release candidate branch is named RC_1_26_2)
to merge the fixed main trunk into the release candidate branch:</li>
</ul>
<blockquote>
<ul>
<li>Command Line CVS:</li>
</ul>
<blockquote>
<ul>
<li>Fixed code is committed to main branch <br>
&nbsp;</li>
<li>Switch to the release candidate branch
<blockquote>
<code>cvs update -r RC_1_26_2</code></blockquote>
</li>
<li>Merge changes in a trunk since previous merge to branch
<blockquote>
<pre>cvs update -j<a href="#merged_to_RC_n_n_n">merged_to_RC_1_26_2</a> -jHEAD buggycode.hpp
--&gt; RCS file: /cvsroot/boost/.../buggycode.hpp,v
--&gt; retrieving revision 1.4
--&gt; retrieving revision 1.6
--&gt; Merging differences between 1.4 and 1.6 into buggycode.hpp</pre>
</blockquote>
</li>
<li>Commit merged branch
<blockquote>
<pre>cvs commit -m &quot;Merged fix for problem xyz from trunk to branch&quot; buggycode.hpp</pre>
</blockquote>
</li>
<li>Go back to main trunk
<blockquote>
<pre>cvs update -A</pre>
</blockquote>
</li>
<li>Move tag to a new merged point
<blockquote>
<pre>cvs tag -F -c merged_to_RC_1_28_2 buggycode.hpp</pre>
</blockquote>
</li>
<li>Repeat as needed
</li>
</ul>
</blockquote>
<ul>
<li>WinCVS:</li>
</ul>
<blockquote>
<ul>
<li>After fixed code is committed to main branch, switch to the release
candidate branch:</li>
</ul>
<blockquote>
<blockquote>
<p>Select file(s) if not already selected.</p>
<p>Modify | Update selection... |
Update settings | Sticky options | Retrieve rev/tag/branch: <code>RC_1_26_2</code> | OK</p>
</blockquote>
</blockquote>
<ul>
<li>Merge changes from main trunk into the release candidate branch:</li>
</ul>
<blockquote>
<blockquote>
<p>Modify | Update selection... |
Update settings | Merge options | Only this rev/tag: <code>
<a href="#merged_to_RC_n_n_n">merged_to_RC_1_26_2</a></code>
| Plus with this rev/tag: <code>HEAD</code> | OK</p>
</blockquote>
</blockquote>
<ul>
<li>Commit merge results:</li>
</ul>
<blockquote>
<blockquote>
<p>Modify | Commit... | Enter log message: ... | OK</p>
</blockquote>
</blockquote>
<ul>
<li>Go back to main trunk:</li>
</ul>
<blockquote>
<blockquote>
<p>Modify | Update selection... | Update settings | Reset any sticky
date/tag/-k options | OK</p>
</blockquote>
</blockquote>
<ul>
<li>Tag as new merge point:</li>
</ul>
<blockquote>
<blockquote>
<p>Modify | Create tag on selection... | Create tag settings | Enter the tag
name to create: <code>merged_to_RC_1_26_2</code>, Overwrite existing tags
with same name | OK.</p>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
<h2>Release Procedures for the Release <a name="Manager">Manager</a></h2>
<p>At time of branch-for-release:</p>
<ul>
<li>Tag the main trunk&nbsp; <code>merged_to_RC_n_n_n</code>.</li>
<li>Branch the main trunk with the tag <code>RC_n_n_n</code>.</li>
</ul>
<p>See <a href="release_mgr_checklist.html">Release Manager's Checklist</a> for
full details.</p>
<h2><a name="FAQ">FAQ</a></h2>
<p><b>What is the purpose of the <i><a name="merged_to_RC_n_n_n">
merged_to_RC_n_n_n</a></i> tag?</b> This tag allows multiple merges from the
main trunk to the release candidate branch. Without it, merging an initial main
trunk fix&nbsp; into the release candidate branch would work, but merging a
second fix from main trunk to release candidate branch would result in a merge
conflict. Although this procedure seems convoluted, it works much better in
practice than several prior procedures we tried.</p>
<h2><a name="Acknowledgements">Acknowledgements</a></h2>
<p>This web page was written by Beman Dawes, with helpful suggestions from Dave
Abrahams and Steve Robbins. Jim Hyslop contributed the original CVS procedures.
Updated by Jeff Garland after 1.29 release based on list discussions.</p>
<hr>
<p>Revised:
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->02 October, 2003<!--webbot bot="Timestamp" i-checksum="38549" endspan --></p>
<p>© Copyright Beman Dawes 2002</p>
<p>Distributed under the Boost Software License, Version 1.0. (See
accompanying file <a href="../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or copy
at <a href="http://www.boost.org/LICENSE_1_0.txt">http://www.boost.org/LICENSE_1_0.txt</a>)</p>
</body>
</html>