[29] | 1 | <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> |
---|
| 2 | <html> |
---|
| 3 | |
---|
| 4 | <head> |
---|
| 5 | <meta http-equiv="Content-Language" content="en-us"> |
---|
| 6 | <meta name="GENERATOR" content="Microsoft FrontPage 5.0"> |
---|
| 7 | <meta name="ProgId" content="FrontPage.Editor.Document"> |
---|
| 8 | <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> |
---|
| 9 | <title>Release Procedures</title> |
---|
| 10 | </head> |
---|
| 11 | |
---|
| 12 | <body bgcolor="#FFFFFF"> |
---|
| 13 | |
---|
| 14 | <table border="1" bgcolor="#007F7F" cellpadding="2"> |
---|
| 15 | <tr> |
---|
| 16 | <td bgcolor="#FFFFFF"> |
---|
| 17 | <img src="../boost.png" alt="boost.png (6897 bytes)" width="277" height="86"></td> |
---|
| 18 | <td><a href="../index.htm"><font face="Arial,Helvetica" color="#FFFFFF"><big>Home</big></font></a></td> |
---|
| 19 | <td><a href="../libs/libraries.htm"><font face="Arial,Helvetica" color="#FFFFFF"><big>Libraries</big></font></a></td> |
---|
| 20 | <td><a href="../people/people.htm"><font face="Arial,Helvetica" color="#FFFFFF"><big>People</big></font></a></td> |
---|
| 21 | <td><a href="../more/faq.htm"><font face="Arial,Helvetica" color="#FFFFFF"><big>FAQ</big></font></a></td> |
---|
| 22 | <td><a href="../more/index.htm"><font face="Arial,Helvetica" color="#FFFFFF"><big>More</big></font></a></td> |
---|
| 23 | </tr> |
---|
| 24 | </table> |
---|
| 25 | |
---|
| 26 | |
---|
| 27 | <h1>Boost Release Procedures</h1> |
---|
| 28 | <p><a href="#Introduction">Introduction</a><br> |
---|
| 29 | <a href="#Overview">Procedure Overview</a><br> |
---|
| 30 | <a href="#Developers">Procedures for Developers</a><br> |
---|
| 31 | <a href="#Manager">Procedures for the Release Manager</a><br> |
---|
| 32 | <a href="#FAQ">FAQ</a><br> |
---|
| 33 | <a href="#Acknowledgements">Acknowledgements</a></p> |
---|
| 34 | <h2><a name="Introduction">Introduction</a></h2> |
---|
| 35 | <p>Each release of Boost software is overseen by a release manager, who |
---|
| 36 | coordinates release activities via the Boost mailing list, as well as performing |
---|
| 37 | the detailed procedures for the release.</p> |
---|
| 38 | <p>Boost developers assist the release manager by reviewing regression test |
---|
| 39 | logs, and committing fixes to CVS.</p> |
---|
| 40 | <h2>Release Procedure <a name="Overview">Overview</a></h2> |
---|
| 41 | <ul> |
---|
| 42 | <li>Discussion on the main Boost mailing list to determine the target date for |
---|
| 43 | release candidate branch and tag of the CVS main trunk.<br> |
---|
| 44 | </li> |
---|
| 45 | <li>Release manager performs release candidate branch, and also tags the |
---|
| 46 | branch point in main trunk.<br> |
---|
| 47 | </li> |
---|
| 48 | <li>Regression tests run on release candidate branch.<br> |
---|
| 49 | </li> |
---|
| 50 | <li>Developers fix problems, test, and commit fixes. See below for details.<br> |
---|
| 51 | </li> |
---|
| 52 | <li>Repeat previous two steps until release manager is satisfied.<br> |
---|
| 53 | </li> |
---|
| 54 | <li>Release manager rolls out the actual release.</li> |
---|
| 55 | </ul> |
---|
| 56 | <h2>Release Procedures for <a name="Developers">Developers</a></h2> |
---|
| 57 | <ul> |
---|
| 58 | <li>As the release candidate branch date approaches (as announced on the main |
---|
| 59 | mailing list), bring the main trunk CVS files you are responsible for into a |
---|
| 60 | stable state.<br> |
---|
| 61 | </li> |
---|
| 62 | <li>If you know of changes in either your code or its dependencies, start |
---|
| 63 | checking regression test results to ensure your tests still pass. Don't |
---|
| 64 | necessarily wait for the initial release tagging.<br> |
---|
| 65 | </li> |
---|
| 66 | <li>After the release manager announces that the release candidate branch has |
---|
| 67 | occurred, check the latest regression test results to be sure |
---|
| 68 | your tests haven't broken.<br> |
---|
| 69 | </li> |
---|
| 70 | <li>Developers can continue working on main trunk code changes after |
---|
| 71 | the release candidate branch has occurred. There is no need to wait until the release |
---|
| 72 | itself. |
---|
| 73 | Modified files committed to CVS on the main trunk will not be included in the release unless the |
---|
| 74 | developer explicitly commits the changes to the release candidate branch.<br> |
---|
| 75 | </li> |
---|
| 76 | <li>If specific to the release candidate only, the fixes should be committed |
---|
| 77 | directly to the release candidate branch. In the more common case of fixes |
---|
| 78 | which apply to both the main trunk and the release branch, the fixes are best |
---|
| 79 | made to the main trunk, and then merged into the release candidate branch. See |
---|
| 80 | FAQ for <a href="#merged_to_RC_n_n_n">tag rationale</a>.<br> |
---|
| 81 | <br> |
---|
| 82 | After a fix has been committed to the main trunk, here is a |
---|
| 83 | typical procedure (assuming the release candidate branch is named RC_1_26_2) |
---|
| 84 | to merge the fixed main trunk into the release candidate branch:</li> |
---|
| 85 | </ul> |
---|
| 86 | <blockquote> |
---|
| 87 | <ul> |
---|
| 88 | <li>Command Line CVS:</li> |
---|
| 89 | </ul> |
---|
| 90 | <blockquote> |
---|
| 91 | <ul> |
---|
| 92 | <li>Fixed code is committed to main branch <br> |
---|
| 93 | </li> |
---|
| 94 | <li>Switch to the release candidate branch |
---|
| 95 | <blockquote> |
---|
| 96 | <code>cvs update -r RC_1_26_2</code></blockquote> |
---|
| 97 | </li> |
---|
| 98 | <li>Merge changes in a trunk since previous merge to branch |
---|
| 99 | <blockquote> |
---|
| 100 | <pre>cvs update -j<a href="#merged_to_RC_n_n_n">merged_to_RC_1_26_2</a> -jHEAD buggycode.hpp |
---|
| 101 | --> RCS file: /cvsroot/boost/.../buggycode.hpp,v |
---|
| 102 | --> retrieving revision 1.4 |
---|
| 103 | --> retrieving revision 1.6 |
---|
| 104 | --> Merging differences between 1.4 and 1.6 into buggycode.hpp</pre> |
---|
| 105 | </blockquote> |
---|
| 106 | </li> |
---|
| 107 | <li>Commit merged branch |
---|
| 108 | <blockquote> |
---|
| 109 | <pre>cvs commit -m "Merged fix for problem xyz from trunk to branch" buggycode.hpp</pre> |
---|
| 110 | </blockquote> |
---|
| 111 | </li> |
---|
| 112 | <li>Go back to main trunk |
---|
| 113 | <blockquote> |
---|
| 114 | <pre>cvs update -A</pre> |
---|
| 115 | </blockquote> |
---|
| 116 | </li> |
---|
| 117 | <li>Move tag to a new merged point |
---|
| 118 | <blockquote> |
---|
| 119 | <pre>cvs tag -F -c merged_to_RC_1_28_2 buggycode.hpp</pre> |
---|
| 120 | </blockquote> |
---|
| 121 | </li> |
---|
| 122 | <li>Repeat as needed |
---|
| 123 | </li> |
---|
| 124 | </ul> |
---|
| 125 | </blockquote> |
---|
| 126 | <ul> |
---|
| 127 | <li>WinCVS:</li> |
---|
| 128 | </ul> |
---|
| 129 | <blockquote> |
---|
| 130 | <ul> |
---|
| 131 | <li>After fixed code is committed to main branch, switch to the release |
---|
| 132 | candidate branch:</li> |
---|
| 133 | </ul> |
---|
| 134 | <blockquote> |
---|
| 135 | <blockquote> |
---|
| 136 | <p>Select file(s) if not already selected.</p> |
---|
| 137 | <p>Modify | Update selection... | |
---|
| 138 | Update settings | Sticky options | Retrieve rev/tag/branch: <code>RC_1_26_2</code> | OK</p> |
---|
| 139 | </blockquote> |
---|
| 140 | </blockquote> |
---|
| 141 | <ul> |
---|
| 142 | <li>Merge changes from main trunk into the release candidate branch:</li> |
---|
| 143 | </ul> |
---|
| 144 | <blockquote> |
---|
| 145 | <blockquote> |
---|
| 146 | <p>Modify | Update selection... | |
---|
| 147 | Update settings | Merge options | Only this rev/tag: <code> |
---|
| 148 | <a href="#merged_to_RC_n_n_n">merged_to_RC_1_26_2</a></code> |
---|
| 149 | | Plus with this rev/tag: <code>HEAD</code> | OK</p> |
---|
| 150 | </blockquote> |
---|
| 151 | </blockquote> |
---|
| 152 | <ul> |
---|
| 153 | <li>Commit merge results:</li> |
---|
| 154 | </ul> |
---|
| 155 | <blockquote> |
---|
| 156 | <blockquote> |
---|
| 157 | <p>Modify | Commit... | Enter log message: ... | OK</p> |
---|
| 158 | </blockquote> |
---|
| 159 | </blockquote> |
---|
| 160 | <ul> |
---|
| 161 | <li>Go back to main trunk:</li> |
---|
| 162 | </ul> |
---|
| 163 | <blockquote> |
---|
| 164 | <blockquote> |
---|
| 165 | <p>Modify | Update selection... | Update settings | Reset any sticky |
---|
| 166 | date/tag/-k options | OK</p> |
---|
| 167 | </blockquote> |
---|
| 168 | </blockquote> |
---|
| 169 | <ul> |
---|
| 170 | <li>Tag as new merge point:</li> |
---|
| 171 | </ul> |
---|
| 172 | <blockquote> |
---|
| 173 | <blockquote> |
---|
| 174 | <p>Modify | Create tag on selection... | Create tag settings | Enter the tag |
---|
| 175 | name to create: <code>merged_to_RC_1_26_2</code>, Overwrite existing tags |
---|
| 176 | with same name | OK.</p> |
---|
| 177 | </blockquote> |
---|
| 178 | </blockquote> |
---|
| 179 | </blockquote> |
---|
| 180 | </blockquote> |
---|
| 181 | <h2>Release Procedures for the Release <a name="Manager">Manager</a></h2> |
---|
| 182 | <p>At time of branch-for-release:</p> |
---|
| 183 | <ul> |
---|
| 184 | <li>Tag the main trunk <code>merged_to_RC_n_n_n</code>.</li> |
---|
| 185 | <li>Branch the main trunk with the tag <code>RC_n_n_n</code>.</li> |
---|
| 186 | </ul> |
---|
| 187 | <p>See <a href="release_mgr_checklist.html">Release Manager's Checklist</a> for |
---|
| 188 | full details.</p> |
---|
| 189 | <h2><a name="FAQ">FAQ</a></h2> |
---|
| 190 | <p><b>What is the purpose of the <i><a name="merged_to_RC_n_n_n"> |
---|
| 191 | merged_to_RC_n_n_n</a></i> tag?</b> This tag allows multiple merges from the |
---|
| 192 | main trunk to the release candidate branch. Without it, merging an initial main |
---|
| 193 | trunk fix into the release candidate branch would work, but merging a |
---|
| 194 | second fix from main trunk to release candidate branch would result in a merge |
---|
| 195 | conflict. Although this procedure seems convoluted, it works much better in |
---|
| 196 | practice than several prior procedures we tried.</p> |
---|
| 197 | <h2><a name="Acknowledgements">Acknowledgements</a></h2> |
---|
| 198 | <p>This web page was written by Beman Dawes, with helpful suggestions from Dave |
---|
| 199 | Abrahams and Steve Robbins. Jim Hyslop contributed the original CVS procedures. |
---|
| 200 | Updated by Jeff Garland after 1.29 release based on list discussions.</p> |
---|
| 201 | <hr> |
---|
| 202 | <p>Revised: |
---|
| 203 | <!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->02 October, 2003<!--webbot bot="Timestamp" i-checksum="38549" endspan --></p> |
---|
| 204 | |
---|
| 205 | <p>© Copyright Beman Dawes 2002</p> |
---|
| 206 | |
---|
| 207 | <p>Distributed under the Boost Software License, Version 1.0. (See |
---|
| 208 | accompanying file <a href="../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or copy |
---|
| 209 | at <a href="http://www.boost.org/LICENSE_1_0.txt">http://www.boost.org/LICENSE_1_0.txt</a>)</p> |
---|
| 210 | |
---|
| 211 | </body> |
---|
| 212 | |
---|
| 213 | </html> |
---|