njn | af66ea6 | 2005-07-24 23:47:01 +0000 | [diff] [blame] | 1 | ----------------------------------------------------------------------------- |
| 2 | TODO list when doing a Valgrind release (with release number "X.Y.Z") |
| 3 | ----------------------------------------------------------------------------- |
| 4 | |
njn | 7a2db47 | 2005-11-08 20:03:08 +0000 | [diff] [blame] | 5 | There are two kinds of releases: |
| 6 | |
| 7 | - Feature releases: X.Y.0, which can include new features. |
| 8 | |
| 9 | - Bug-fix releases: X.Y.[12...], which only include bug fixes. |
| 10 | |
| 11 | |
njn | af66ea6 | 2005-07-24 23:47:01 +0000 | [diff] [blame] | 12 | First of all: |
| 13 | |
| 14 | - Tell valgrind-developers you want to do a release. Give a timeframe for |
| 15 | everyone to check in any final features/bug-fixes they want in the |
njn | 376e871 | 2005-11-15 15:27:06 +0000 | [diff] [blame] | 16 | release. (Especially Josef Weidendorfer for Callgrind.) |
njn | af66ea6 | 2005-07-24 23:47:01 +0000 | [diff] [blame] | 17 | |
| 18 | - Go over the docs, make sure they're up to date. |
| 19 | |
| 20 | - Update version number and date in docs/xml/vg-entities.xml. (Exact |
| 21 | release date probably won't be known yet, updating it is in the list below |
| 22 | of tasks for the official release.) |
| 23 | |
| 24 | - Write release notes, add to NEWS. Include a list of fixed bugs from |
sewardj | 9a91951 | 2005-08-03 17:01:51 +0000 | [diff] [blame] | 25 | Bugzilla. It's unclear how to do this consistently. The approach |
| 26 | taken for 3.0.0 was to go to this page in KDE's bugzilla: |
| 27 | http://bugs.kde.org/query.cgi |
| 28 | and to create a search where |
| 29 | "Status and severity" / Status field is set to RESOLVED |
| 30 | and |
| 31 | "Involved People" / Email, bug-owner contains "jseward" |
| 32 | since I believe jseward@acm.org is the owner of all bugs. |
| 33 | This creates a long list of bugs which does not conveniently stop |
| 34 | at the previous release. Work backwards through this list until |
| 35 | either (1) you run out of patience, or (2) most of the bugs seem |
| 36 | to pertain to previous releases and are now irrelevant. In short |
| 37 | this is not a very scientific or robust way to collect up all |
| 38 | bugs fixed since last time. |
njn | af66ea6 | 2005-07-24 23:47:01 +0000 | [diff] [blame] | 39 | |
njn | a920d8a | 2005-07-26 22:17:14 +0000 | [diff] [blame] | 40 | - Other files that might need updating: README, README_DEVELOPERS, |
| 41 | README_PACKAGERS. |
| 42 | |
njn | af66ea6 | 2005-07-24 23:47:01 +0000 | [diff] [blame] | 43 | - Add X.Y.Z and X.Y.Z.SVN versions to Bugzilla (ask Dirk to do it) |
| 44 | |
njn | 12c9095 | 2005-07-25 12:49:39 +0000 | [diff] [blame] | 45 | - If there are any binary incompatible tool API changes against the last |
| 46 | stable release, ensure that VG_CORE_INTERFACE_VERSION in |
| 47 | include/pub_tool_tooliface.h has been increased since the last release. |
njn | af66ea6 | 2005-07-24 23:47:01 +0000 | [diff] [blame] | 48 | |
njn | 85773ee | 2005-07-25 23:30:06 +0000 | [diff] [blame] | 49 | |
njn | 7a2db47 | 2005-11-08 20:03:08 +0000 | [diff] [blame] | 50 | For each release candidate (should do release candidates for feature |
| 51 | releases, bug-fix-only releases might not need one): |
njn | af66ea6 | 2005-07-24 23:47:01 +0000 | [diff] [blame] | 52 | |
njn | f5e4c88 | 2007-01-27 02:05:38 +0000 | [diff] [blame] | 53 | - Build. Don't forget to rebuild the Vex header file that specifies which |
| 54 | version of Vex is being used (so that it matches that mentioned in the final |
| 55 | release notes). [This was forgotten for 3.2.2.] |
| 56 | |
njn | af66ea6 | 2005-07-24 23:47:01 +0000 | [diff] [blame] | 57 | - Do pre-release testing: |
njn | 376e871 | 2005-11-15 15:27:06 +0000 | [diff] [blame] | 58 | |
| 59 | * Check it builds and regtests on a vanilla gcc-2.96 / RedHat 7.3 distro. |
njn | 376e871 | 2005-11-15 15:27:06 +0000 | [diff] [blame] | 60 | |
| 61 | * Check standard build and regtest on the following cpus: |
| 62 | x86, sse2 (P4) |
| 63 | x86, sse1 (PIII) |
| 64 | x86, no sse (eg older VIA C3s, or perhaps even Pentium-MMX) |
| 65 | amd64 |
| 66 | ppc32, altivec |
| 67 | ppc32, no altivec (eg old iMac G3s) |
| 68 | |
| 69 | * Check that the regression tests work with --sanity-level=4 on all |
| 70 | platforms. |
| 71 | |
| 72 | * Check valgrind-listener works on all archs, also connecting to it |
| 73 | from all archs. |
| 74 | |
| 75 | * Check memcheck can run all the insn-set tests. The testsuite |
| 76 | only runs those on 'none', but memcheck looks at all primops, and I've |
| 77 | been caught out by this before. Basically all the programs in |
| 78 | none/tests/{x86,amd64,ppc32}. |
| 79 | |
| 80 | * Check XML output is still readable by Valkyrie and vk_logmerge tools |
| 81 | |
| 82 | * Test with large applications (firefox and OOo 2.0) on all platforms. |
| 83 | |
| 84 | * Run regression tests from gsl-1.6 on all platforms. This is a good, |
| 85 | thorough test of FP. Easy, using the scripts auxprogs/gsl16test. |
| 86 | |
| 87 | * Check that a tarball build of callgrind is buildable/installable |
| 88 | against a from-tarball build of valgrind. |
njn | af66ea6 | 2005-07-24 23:47:01 +0000 | [diff] [blame] | 89 | |
| 90 | - Change release number in AC_INIT() in configure.in to "X.Y.Z-rcN", where |
| 91 | 'N' is the release candidate number. |
| 92 | |
| 93 | - Make the tarball ("make dist") and put it on the web somewhere (it doesn't |
| 94 | have to be on valgrind.org if another site is easier). |
| 95 | |
sewardj | 61ff456 | 2005-07-25 23:50:22 +0000 | [diff] [blame] | 96 | - Ensure the tarball builds, runs, regtests on the platforms of interest. |
| 97 | However redundant this seems, sometimes it can be that a from-the-repo |
| 98 | build works whereas a from-the-tarball one doesn't, usually due to some |
| 99 | trivial installation problem. |
| 100 | |
njn | af66ea6 | 2005-07-24 23:47:01 +0000 | [diff] [blame] | 101 | - Announce the release: |
| 102 | - Email valgrind-users and valgrind-developers (but not valgrind-announce). |
| 103 | - Make clear it's a release candidate. |
| 104 | - Make sure you tell everyone where to download from. |
| 105 | - Include the release notes in the email (maybe not necessary for release |
| 106 | candidates 2+). |
| 107 | |
| 108 | - Wait 2--3 days for feedback. If bugs appear: |
| 109 | - Fix them. |
| 110 | - Update the bug-fix list in NEWS if necessary. |
| 111 | - Do another release candidate. |
| 112 | |
| 113 | |
| 114 | For the official release: |
| 115 | |
| 116 | - Again, update date in docs/xml/vg-entities.xml for the official release |
| 117 | date. |
| 118 | |
| 119 | - Do pre-release testing: |
| 120 | - Make sure regtests run ok on all platforms of interest. |
| 121 | - Make sure Mozilla and OpenOffice run ok on all platforms of interest. |
| 122 | |
| 123 | - Change release number in AC_INIT() in configure.in to "X.Y.Z". |
| 124 | |
njn | af66ea6 | 2005-07-24 23:47:01 +0000 | [diff] [blame] | 125 | - Make the tarball ("make dist"). |
sewardj | 61ff456 | 2005-07-25 23:50:22 +0000 | [diff] [blame] | 126 | |
| 127 | - Check tarball builds, installs, regtests on platforms of interest. |
| 128 | If not, fix and repeat until success. |
| 129 | |
njn | c3bbb1e | 2005-08-30 02:38:01 +0000 | [diff] [blame] | 130 | - Tag the repositories ("VALGRIND_X_Y_Z" and "VEX_X_Y_Z"). Point the Vex |
| 131 | external for VALGRIND_X_Y_Z to VEX_X_Y_Z. |
| 132 | |
njn | f5507ad | 2005-08-30 02:33:22 +0000 | [diff] [blame] | 133 | If it's a X.Y.0 release, make "VALGRIND_X_Y_BRANCH" and "VEX_X_Y_BRANCH" |
sewardj | 5d75045 | 2005-11-26 16:27:42 +0000 | [diff] [blame] | 134 | branches too. Useful examples: |
| 135 | |
| 136 | cd valgrind |
sewardj | f56bdf2 | 2007-12-11 00:49:33 +0000 | [diff] [blame] | 137 | svn copy trunk tags/VALGRIND_3_3_0 |
| 138 | svn copy trunk branches/VALGRIND_3_3_BRANCH |
sewardj | 5d75045 | 2005-11-26 16:27:42 +0000 | [diff] [blame] | 139 | |
| 140 | cd vex |
sewardj | f56bdf2 | 2007-12-11 00:49:33 +0000 | [diff] [blame] | 141 | svn copy trunk tags/VEX_3_3_0 |
| 142 | svn copy trunk branches/VEX_3_3_BRANCH |
sewardj | 5d75045 | 2005-11-26 16:27:42 +0000 | [diff] [blame] | 143 | |
| 144 | cd valgrind |
sewardj | f56bdf2 | 2007-12-11 00:49:33 +0000 | [diff] [blame] | 145 | cd tags/VALGRIND_3_3_0 |
sewardj | 5d75045 | 2005-11-26 16:27:42 +0000 | [diff] [blame] | 146 | svn propset svn:externals \ |
sewardj | f56bdf2 | 2007-12-11 00:49:33 +0000 | [diff] [blame] | 147 | "VEX svn://svn.valgrind.org/vex/tags/VEX_3_3_0" . |
| 148 | cd branches/VALGRIND_3_3_BRANCH |
sewardj | 5d75045 | 2005-11-26 16:27:42 +0000 | [diff] [blame] | 149 | svn propset svn:externals \ |
sewardj | f56bdf2 | 2007-12-11 00:49:33 +0000 | [diff] [blame] | 150 | "VEX svn://svn.valgrind.org/vex/branches/VEX_3_3_BRANCH" . |
sewardj | 5d75045 | 2005-11-26 16:27:42 +0000 | [diff] [blame] | 151 | |
njn | af66ea6 | 2005-07-24 23:47:01 +0000 | [diff] [blame] | 152 | - Update website: |
| 153 | - Put the tarball up. |
njn | a920d8a | 2005-07-26 22:17:14 +0000 | [diff] [blame] | 154 | - Update the docs -- both the tarball'd docs, and the online-readable docs. |
njn | 43713d7 | 2005-11-10 02:43:25 +0000 | [diff] [blame] | 155 | - Update www.valgrind.org/downloads/current.html. |
| 156 | - Update www.valgrind.org/downloads/old.html. |
njn | af66ea6 | 2005-07-24 23:47:01 +0000 | [diff] [blame] | 157 | - Add a news item to the front page and also to valgrind.org/info/news.html. |
njn | df2b4f8 | 2006-07-14 06:17:44 +0000 | [diff] [blame] | 158 | Include a link to the release notes. Possibly remove any old release |
| 159 | notices form the front page. |
njn | bdbcacd | 2005-08-01 15:18:16 +0000 | [diff] [blame] | 160 | - Update the "release-date" and "release-version" in php/.htconfx. |
njn | 43713d7 | 2005-11-10 02:43:25 +0000 | [diff] [blame] | 161 | - Other pages that might need updating: downloads/repository.html. |
njn | af66ea6 | 2005-07-24 23:47:01 +0000 | [diff] [blame] | 162 | |
| 163 | - Change release number in AC_INIT() in configure.in to "X.Y.Z.SVN", where |
| 164 | X.Y.Z is one more than the release just done. |
| 165 | |
njn | 926e973 | 2005-12-01 23:13:57 +0000 | [diff] [blame] | 166 | - Add a new section to docs/internals/X_Y_BUGSTATUS.txt (or a new file if |
| 167 | it's a feature release). |
njn | 32ac364 | 2005-08-29 22:24:20 +0000 | [diff] [blame] | 168 | |
njn | 2525617 | 2005-11-28 16:44:14 +0000 | [diff] [blame] | 169 | - Add new entries to docs/internals/roadmap.txt for the next release(s). |
njn | 7a2db47 | 2005-11-08 20:03:08 +0000 | [diff] [blame] | 170 | |
njn | f69e057 | 2007-01-23 05:34:38 +0000 | [diff] [blame] | 171 | - Copy the release notes into the trunk's NEWS file. |
| 172 | |
njn | af66ea6 | 2005-07-24 23:47:01 +0000 | [diff] [blame] | 173 | - Announce the release: |
sewardj | 61ff456 | 2005-07-25 23:50:22 +0000 | [diff] [blame] | 174 | - Email valgrind-users, valgrind-developers, and valgrind-announce. |
| 175 | - Email Linux Weekly News. |
njn | af66ea6 | 2005-07-24 23:47:01 +0000 | [diff] [blame] | 176 | - Include the release notes in the email. |
| 177 | |
sewardj | 61ff456 | 2005-07-25 23:50:22 +0000 | [diff] [blame] | 178 | - Go on holiday. |