| 1 | [[PageOutline]] |
| 2 | |
| 3 | = Release Manager's Checklist = |
| 4 | |
| 5 | ** This is a placeholder page in that the content needs to be rewritten to account for the new process. When that happens the page can move to the new web site. ** |
| 6 | |
| 7 | == Introduction == |
| 8 | |
| 9 | 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. |
| 10 | |
| 11 | == Pre-release activities == |
| 12 | |
| 13 | * After discussion on the main list, post the release schedule. |
| 14 | |
| 15 | * Verify the root/index.htm, root/boost/version.hpp, root/Jamfile.v2 and root/Jamrules release numbers are correct and agree. |
| 16 | |
| 17 | * Verify via jamboost@yahoogroups.com that bjam pre-built executables up-to-date. |
| 18 | |
| 19 | * Remove the oldest "Latest News" from root/index.htm. |
| 20 | |
| 21 | * For each new library added this release: |
| 22 | |
| 23 | * Verify root/index.htm Latest News entry has been made and reads well. |
| 24 | |
| 25 | * Verify root/libs/libraries.htm entry has been made, both in the alphabetic list and in the category lists. |
| 26 | |
| 27 | * 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. To do: automate this. |
| 28 | |
| 29 | * Skim read the primary docs pages to make sure they meet Boost requirements and guidelines. Don't leave this until too late; it has turned up lots of issues in the past. |
| 30 | |
| 31 | * Generate the header dependency table and update the CVS. To do: coordinate with John Maddock's new dependency tools. |
| 32 | |
| 33 | * Monitor http://boost.sourceforge.net/regression-logs/inspection_report.html to verify problems are actively being reduced. Make sure none of the problems are in files the release manager is responsible for. |
| 34 | |
| 35 | * Monitor regression tests (http://boost.sourceforge.net/regression-logs) to verify that errors are actively being reduced or accounted for on key platforms and compilers. |
| 36 | |
| 37 | * Boost errors are being actively worked on by library maintainers. |
| 38 | * Compiler or standard library errors are at least identified, and preferably reported to the supplier. |
| 39 | * No errors remain uninvestigated or unclassified. |
| 40 | |
| 41 | * Monitor the developer and user mailing lists to verify that all posted patches are being applied, rejected, or otherwise dealt with. |
| 42 | |
| 43 | * 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. |
| 44 | |
| 45 | * 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. |
| 46 | |
| 47 | == CVS Branch for release == |
| 48 | |
| 49 | * Pre-release activities complete enough to justify branch-for-release? |
| 50 | |
| 51 | * Everybody happy? |
| 52 | |
| 53 | * Branch for release: |
| 54 | * Tag the main trunk merged_to_RC_n_n_n. |
| 55 | * Branch the main trunk with the tag RC_n_n_n. |
| 56 | |
| 57 | * Post notice on main list. Remind developers that fixes which apply to both Main Trunk and Branch have to be committed separately to both. |
| 58 | |
| 59 | == CVS Release == |
| 60 | |
| 61 | * Pre-release activities all complete? |
| 62 | |
| 63 | * Post notice to make sure all developers ready. |
| 64 | |
| 65 | * 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 "overwrite existing tags with the same name". |
| 66 | |
| 67 | == Distribution == |
| 68 | |
| 69 | These procedures are given for a particular release manager's machine. The plan is to replace them with more generic procedures over time. |
| 70 | |
| 71 | * Create folders for export: |
| 72 | |
| 73 | c:\boost\boost_1_28_0 |
| 74 | c:\boost\temp\boost_1_28_0 |
| 75 | |
| 76 | Note that several batch files assume these locations and naming schemes. |
| 77 | |
| 78 | * Export Win32 distribution: WinCVS | Remote | Checkout Module |
| 79 | |
| 80 | Checkout settings: module name and path on the server: boost, local folder to checkout to: c:\boost\boost_1_28_0 |
| 81 | [for 1.29.0 export, put everything in a boost_1_29_0/boost subdirectory. Experiments with 1.30.0 tried boost/boost as the path on server, but that just resulted in getting the boost header subdirectory only.] |
| 82 | |
| 83 | Checkout options: (check) By revision/tab/branch: Version_1_28_0, (check) Do not create CVS directories (export) |
| 84 | |
| 85 | This results in the follow command: cvs -z9 export -r Version_1_28_0 boost (in directory C:\boost\boost_1_28_0) |
| 86 | |
| 87 | (takes about ten minutes) |
| 88 | |
| 89 | (rename boost-root if needed !!!!!!!!!!!!!!!!!!!) |
| 90 | |
| 91 | * Export Unix distribution: similar to above, except target is c:\boost\temp\boost_1_28_0 and set global for UNIX nl. |
| 92 | |
| 93 | * !!!!!! VERY IMPORTANT: WinCVS | Set Preferences | Global back to non-UNIX nl. !!!!!!!!!!!!!!! |
| 94 | |
| 95 | * Add regression results web pages into package (new in 1.33 so this is just a shot at the process - jeff) |
| 96 | download all the regression results from website (may need meta-comm help on this) |
| 97 | unpack the regression results into tools/regression/latest_release |
| 98 | |
| 99 | * General ZIP and TAR.GZ files |
| 100 | |
| 101 | n_n_n is 1_28_0 or whatever |
| 102 | |
| 103 | cd \boost |
| 104 | boost_zip 1_21_2 (creates zip.log) |
| 105 | boost_tar_gz 1_21_2 |
| 106 | bash |
| 107 | gunzip -c boost_1_21_2.tar.gz | bzip2 > boost_1_21_2.tar.bz2 |
| 108 | exit |
| 109 | |
| 110 | * 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). |
| 111 | |
| 112 | * Upload files for SourceForge release incoming directory using WS_FTP Pro |
| 113 | * Start keep_isdn_awake |
| 114 | * Connection: SourceForge Release Upload | connect |
| 115 | * Select Local system: c:\boost |
| 116 | * Select Remote system: /incoming |
| 117 | * Drag-and-drop the three release files from Local system to Remote system |
| 118 | * Disconnect |
| 119 | * Stop keep_isdn_awake |
| 120 | |
| 121 | * Complete the SourceForge release procedure. |
| 122 | * Admin | File Releases | Add Release for package name boost |
| 123 | * New release name: 1.21.2 | create this release |
| 124 | * Step 1: paste in release notes (in HTML). Be sure to note difference between .zip and .gz/bz2 files. Submit/Refresh |
| 125 | * Step 2: Check appropriate files. Add Files and/or Refresh View |
| 126 | * Step 3: For each file, select Processor and File Type, Update/Refresh |
| 127 | * Setp 4: Email Release Notice: I'm sure. Send Notice. |
| 128 | * Wait up to 30 minutes. |
| 129 | * Check SourceForge release page and release notes with web browser. |
| 130 | |
| 131 | * Consider putting up a temporary "Update in progress" root/index.html during site update |
| 132 | |
| 133 | * Update the web site: |
| 134 | |
| 135 | cd ...\boost_1_28_0 |
| 136 | tar -cf site.tar * |
| 137 | bzip2 -k site.tar |
| 138 | |
| 139 | dir site.tar.bz2 |
| 140 | pscp site.tar.bz2 beman_dawes@shell1.sourceforge.net:/home/groups/b/bo/boost/htdocs/ |
| 141 | |
| 142 | keep_idsn_awake in another window. |
| 143 | |
| 144 | c:\bgd\util\putty\plink.exe beman_dawes@shell.sourceforge.net |
| 145 | cd /home/groups/b/bo/boost/htdocs |
| 146 | pwd |
| 147 | ls -l site.tar.bz2 |
| 148 | |
| 149 | rm -fr boost |
| 150 | rm -fr doc |
| 151 | rm -fr libs |
| 152 | rm -fr more |
| 153 | rm -fr people |
| 154 | rm -fr status |
| 155 | rm -fr tools |
| 156 | bunzip2 -kc site.tar.bz2 | tar -x |
| 157 | ls |
| 158 | exit |
| 159 | |
| 160 | stop keep_isdn_awake |
| 161 | |
| 162 | * Check actual www.boost.org site with browser. Look at a bunch of files that should have been updated to make sure the updates actually "took". |
| 163 | |
| 164 | * Post a message announcing the release and recapping "Latest News". Post as separate messages to: boost, boost-announce, boost-users, comp.lang.c++.moderated, c++std-news@research.att.com |
| 165 | |
| 166 | * Using the SourceForge shell services (sf_shell_svc.bat), cd /home/groups/b/bo/boost/htdocs, and rename regression tests as necessary. |
| 167 | |
| 168 | * Burn "Key Directories" CD for off-site backup. |
| 169 | |
| 170 | * Make sure CVS working copy is updated to main branch! |
| 171 | |
| 172 | * Ready root/index.htm, root/boost/version.hpp, root/Jamfile.v2 and root/Jamrules for the next release and commit to CVS so developers have a place to add "Latest news" blurbs. |
| 173 | |
| 174 | * Delete obsolete files from yahoogroups files section. |
| 175 | |
| 176 | Copyright Beman Dawes 2001 |
| 177 | |
| 178 | Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) |