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 | |
| 53 | - Do pre-release testing: |
njn | 376e871 | 2005-11-15 15:27:06 +0000 | [diff] [blame] | 54 | |
| 55 | * Check it builds and regtests on a vanilla gcc-2.96 / RedHat 7.3 distro. |
| 56 | Also check that callgrind builds/installs alongside it OK. |
| 57 | |
| 58 | * Check standard build and regtest on the following cpus: |
| 59 | x86, sse2 (P4) |
| 60 | x86, sse1 (PIII) |
| 61 | x86, no sse (eg older VIA C3s, or perhaps even Pentium-MMX) |
| 62 | amd64 |
| 63 | ppc32, altivec |
| 64 | ppc32, no altivec (eg old iMac G3s) |
| 65 | |
| 66 | * Check that the regression tests work with --sanity-level=4 on all |
| 67 | platforms. |
| 68 | |
| 69 | * Check valgrind-listener works on all archs, also connecting to it |
| 70 | from all archs. |
| 71 | |
| 72 | * Check memcheck can run all the insn-set tests. The testsuite |
| 73 | only runs those on 'none', but memcheck looks at all primops, and I've |
| 74 | been caught out by this before. Basically all the programs in |
| 75 | none/tests/{x86,amd64,ppc32}. |
| 76 | |
| 77 | * Check XML output is still readable by Valkyrie and vk_logmerge tools |
| 78 | |
| 79 | * Test with large applications (firefox and OOo 2.0) on all platforms. |
| 80 | |
| 81 | * Run regression tests from gsl-1.6 on all platforms. This is a good, |
| 82 | thorough test of FP. Easy, using the scripts auxprogs/gsl16test. |
| 83 | |
| 84 | * Check that a tarball build of callgrind is buildable/installable |
| 85 | against a from-tarball build of valgrind. |
njn | af66ea6 | 2005-07-24 23:47:01 +0000 | [diff] [blame] | 86 | |
| 87 | - Change release number in AC_INIT() in configure.in to "X.Y.Z-rcN", where |
| 88 | 'N' is the release candidate number. |
| 89 | |
| 90 | - Make the tarball ("make dist") and put it on the web somewhere (it doesn't |
| 91 | have to be on valgrind.org if another site is easier). |
| 92 | |
sewardj | 61ff456 | 2005-07-25 23:50:22 +0000 | [diff] [blame] | 93 | - Ensure the tarball builds, runs, regtests on the platforms of interest. |
| 94 | However redundant this seems, sometimes it can be that a from-the-repo |
| 95 | build works whereas a from-the-tarball one doesn't, usually due to some |
| 96 | trivial installation problem. |
| 97 | |
njn | af66ea6 | 2005-07-24 23:47:01 +0000 | [diff] [blame] | 98 | - Announce the release: |
| 99 | - Email valgrind-users and valgrind-developers (but not valgrind-announce). |
| 100 | - Make clear it's a release candidate. |
| 101 | - Make sure you tell everyone where to download from. |
| 102 | - Include the release notes in the email (maybe not necessary for release |
| 103 | candidates 2+). |
| 104 | |
| 105 | - Wait 2--3 days for feedback. If bugs appear: |
| 106 | - Fix them. |
| 107 | - Update the bug-fix list in NEWS if necessary. |
| 108 | - Do another release candidate. |
| 109 | |
| 110 | |
| 111 | For the official release: |
| 112 | |
| 113 | - Again, update date in docs/xml/vg-entities.xml for the official release |
| 114 | date. |
| 115 | |
| 116 | - Do pre-release testing: |
| 117 | - Make sure regtests run ok on all platforms of interest. |
| 118 | - Make sure Mozilla and OpenOffice run ok on all platforms of interest. |
| 119 | |
| 120 | - Change release number in AC_INIT() in configure.in to "X.Y.Z". |
| 121 | |
njn | af66ea6 | 2005-07-24 23:47:01 +0000 | [diff] [blame] | 122 | - Make the tarball ("make dist"). |
sewardj | 61ff456 | 2005-07-25 23:50:22 +0000 | [diff] [blame] | 123 | |
| 124 | - Check tarball builds, installs, regtests on platforms of interest. |
| 125 | If not, fix and repeat until success. |
| 126 | |
njn | c3bbb1e | 2005-08-30 02:38:01 +0000 | [diff] [blame] | 127 | - Tag the repositories ("VALGRIND_X_Y_Z" and "VEX_X_Y_Z"). Point the Vex |
| 128 | external for VALGRIND_X_Y_Z to VEX_X_Y_Z. |
| 129 | |
njn | f5507ad | 2005-08-30 02:33:22 +0000 | [diff] [blame] | 130 | 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] | 131 | branches too. Useful examples: |
| 132 | |
| 133 | cd valgrind |
| 134 | svn copy trunk tags/VALGRIND_3_1_0 |
| 135 | svn copy trunk branches/VALGRIND_3_1_BRANCH |
| 136 | |
| 137 | cd vex |
| 138 | svn copy trunk tags/VEX_3_1_0 |
| 139 | svn copy trunk branches/VEX_3_1_BRANCH |
| 140 | |
| 141 | cd valgrind |
| 142 | cd VALGRIND_3_1_0 |
| 143 | svn propset svn:externals \ |
| 144 | "VEX svn://svn.valgrind.org/vex/tags/VEX_3_1_0" . |
| 145 | cd VALGRIND_3_1_BRANCH |
| 146 | svn propset svn:externals \ |
| 147 | "VEX svn://svn.valgrind.org/vex/branches/VEX_3_1_BRANCH" . |
| 148 | |
njn | af66ea6 | 2005-07-24 23:47:01 +0000 | [diff] [blame] | 149 | - Update website: |
| 150 | - Put the tarball up. |
njn | a920d8a | 2005-07-26 22:17:14 +0000 | [diff] [blame] | 151 | - Update the docs -- both the tarball'd docs, and the online-readable docs. |
njn | 43713d7 | 2005-11-10 02:43:25 +0000 | [diff] [blame] | 152 | - Update www.valgrind.org/downloads/current.html. |
| 153 | - Update www.valgrind.org/downloads/old.html. |
njn | 4b42c22 | 2005-08-27 17:31:43 +0000 | [diff] [blame] | 154 | - Put the release notes at www.valgrind.org/info/release-notes-X.Y.Z.txt. |
njn | af66ea6 | 2005-07-24 23:47:01 +0000 | [diff] [blame] | 155 | - Add a news item to the front page and also to valgrind.org/info/news.html. |
njn | 4b42c22 | 2005-08-27 17:31:43 +0000 | [diff] [blame] | 156 | Include a link to the release notes. |
njn | bdbcacd | 2005-08-01 15:18:16 +0000 | [diff] [blame] | 157 | - Update the "release-date" and "release-version" in php/.htconfx. |
njn | 43713d7 | 2005-11-10 02:43:25 +0000 | [diff] [blame] | 158 | - Other pages that might need updating: downloads/repository.html. |
njn | af66ea6 | 2005-07-24 23:47:01 +0000 | [diff] [blame] | 159 | |
| 160 | - Change release number in AC_INIT() in configure.in to "X.Y.Z.SVN", where |
| 161 | X.Y.Z is one more than the release just done. |
| 162 | |
njn | 926e973 | 2005-12-01 23:13:57 +0000 | [diff] [blame^] | 163 | - Add a new section to docs/internals/X_Y_BUGSTATUS.txt (or a new file if |
| 164 | it's a feature release). |
njn | 32ac364 | 2005-08-29 22:24:20 +0000 | [diff] [blame] | 165 | |
njn | 2525617 | 2005-11-28 16:44:14 +0000 | [diff] [blame] | 166 | - Add new entries to docs/internals/roadmap.txt for the next release(s). |
njn | 7a2db47 | 2005-11-08 20:03:08 +0000 | [diff] [blame] | 167 | |
njn | af66ea6 | 2005-07-24 23:47:01 +0000 | [diff] [blame] | 168 | - Announce the release: |
sewardj | 61ff456 | 2005-07-25 23:50:22 +0000 | [diff] [blame] | 169 | - Email valgrind-users, valgrind-developers, and valgrind-announce. |
| 170 | - Email Linux Weekly News. |
njn | af66ea6 | 2005-07-24 23:47:01 +0000 | [diff] [blame] | 171 | - Include the release notes in the email. |
| 172 | |
sewardj | 61ff456 | 2005-07-25 23:50:22 +0000 | [diff] [blame] | 173 | - Go on holiday. |