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 | 76b4a80 | 2009-08-07 07:31:15 +0000 | [diff] [blame] | 16 | release. |
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 | |
sewardj | 0fe1d4c | 2010-04-19 08:43:26 +0000 | [diff] [blame] | 24 | - Make sure __VALGRIND_MAJOR__ and __VALGRIND_MINOR__ are correct |
| 25 | for the release. (include/valgrind.h) |
| 26 | |
njn | af66ea6 | 2005-07-24 23:47:01 +0000 | [diff] [blame] | 27 | - Write release notes, add to NEWS. Include a list of fixed bugs from |
sewardj | 9a91951 | 2005-08-03 17:01:51 +0000 | [diff] [blame] | 28 | Bugzilla. It's unclear how to do this consistently. The approach |
| 29 | taken for 3.0.0 was to go to this page in KDE's bugzilla: |
| 30 | http://bugs.kde.org/query.cgi |
| 31 | and to create a search where |
| 32 | "Status and severity" / Status field is set to RESOLVED |
| 33 | and |
| 34 | "Involved People" / Email, bug-owner contains "jseward" |
| 35 | since I believe jseward@acm.org is the owner of all bugs. |
| 36 | This creates a long list of bugs which does not conveniently stop |
| 37 | at the previous release. Work backwards through this list until |
| 38 | either (1) you run out of patience, or (2) most of the bugs seem |
| 39 | to pertain to previous releases and are now irrelevant. In short |
| 40 | this is not a very scientific or robust way to collect up all |
| 41 | bugs fixed since last time. |
njn | af66ea6 | 2005-07-24 23:47:01 +0000 | [diff] [blame] | 42 | |
philippe | 8eacbc4 | 2012-08-02 21:01:13 +0000 | [diff] [blame] | 43 | Suggestion for next release: when a bug is fixed, update NEWS |
| 44 | directly => less chance to forget, and NEWS always up to date |
| 45 | in SVN. |
| 46 | |
njn | a920d8a | 2005-07-26 22:17:14 +0000 | [diff] [blame] | 47 | - Other files that might need updating: README, README_DEVELOPERS, |
| 48 | README_PACKAGERS. |
| 49 | |
njn | 76b4a80 | 2009-08-07 07:31:15 +0000 | [diff] [blame] | 50 | - Add X.Y.Z and X.Y+1.Z.SVN versions to Bugzilla. |
njn | af66ea6 | 2005-07-24 23:47:01 +0000 | [diff] [blame] | 51 | |
njn | 76b4a80 | 2009-08-07 07:31:15 +0000 | [diff] [blame] | 52 | - Add "wantedX.Y.Z+1" and "wantedX.Y+1.Z" milestones to Bugzilla. |
njn | af66ea6 | 2005-07-24 23:47:01 +0000 | [diff] [blame] | 53 | |
florian | c5927a6 | 2014-09-04 18:37:02 +0000 | [diff] [blame] | 54 | - Check whether copyright years need updating. |
| 55 | If so, run auxprogs/change-copyright-year in the top of the tree. |
| 56 | |
| 57 | - Consider upgrading the C++ demangler. |
| 58 | auxprogs/update-demangler helps with that |
| 59 | |
florian | f8ff41e | 2015-03-10 21:31:06 +0000 | [diff] [blame] | 60 | - Contact Gregory Czajkowski ( gregczajkowski@yahoo.com ) and ask him |
| 61 | to build (make && make check) valgrind with ICC. |
njn | 85773ee | 2005-07-25 23:30:06 +0000 | [diff] [blame] | 62 | |
njn | 7a2db47 | 2005-11-08 20:03:08 +0000 | [diff] [blame] | 63 | For each release candidate (should do release candidates for feature |
| 64 | releases, bug-fix-only releases might not need one): |
njn | af66ea6 | 2005-07-24 23:47:01 +0000 | [diff] [blame] | 65 | |
njn | 76b4a80 | 2009-08-07 07:31:15 +0000 | [diff] [blame] | 66 | - Build. |
njn | f5e4c88 | 2007-01-27 02:05:38 +0000 | [diff] [blame] | 67 | |
njn | af66ea6 | 2005-07-24 23:47:01 +0000 | [diff] [blame] | 68 | - Do pre-release testing: |
njn | 376e871 | 2005-11-15 15:27:06 +0000 | [diff] [blame] | 69 | |
| 70 | * Check it builds and regtests on a vanilla gcc-2.96 / RedHat 7.3 distro. |
philippe | 8eacbc4 | 2012-08-02 21:01:13 +0000 | [diff] [blame] | 71 | ??? is this really still up to date ??? |
njn | 376e871 | 2005-11-15 15:27:06 +0000 | [diff] [blame] | 72 | |
| 73 | * Check standard build and regtest on the following cpus: |
| 74 | x86, sse2 (P4) |
| 75 | x86, sse1 (PIII) |
| 76 | x86, no sse (eg older VIA C3s, or perhaps even Pentium-MMX) |
| 77 | amd64 |
| 78 | ppc32, altivec |
| 79 | ppc32, no altivec (eg old iMac G3s) |
| 80 | |
philippe | 8eacbc4 | 2012-08-02 21:01:13 +0000 | [diff] [blame] | 81 | * Check that the regression tests work on all platforms with more self checks: |
| 82 | export EXTRA_REGTEST_OPTS="--sanity-level=4 --helgrind:hg-sanity-flags=011111" |
| 83 | make regtest |
| 84 | |
| 85 | * check there are no memleaks or similar bugs by running all regtests |
| 86 | in an outer/inner setup (see README_DEVELOPERS). |
njn | 376e871 | 2005-11-15 15:27:06 +0000 | [diff] [blame] | 87 | |
| 88 | * Check valgrind-listener works on all archs, also connecting to it |
| 89 | from all archs. |
| 90 | |
| 91 | * Check memcheck can run all the insn-set tests. The testsuite |
| 92 | only runs those on 'none', but memcheck looks at all primops, and I've |
| 93 | been caught out by this before. Basically all the programs in |
| 94 | none/tests/{x86,amd64,ppc32}. |
| 95 | |
| 96 | * Check XML output is still readable by Valkyrie and vk_logmerge tools |
| 97 | |
| 98 | * Test with large applications (firefox and OOo 2.0) on all platforms. |
| 99 | |
| 100 | * Run regression tests from gsl-1.6 on all platforms. This is a good, |
| 101 | thorough test of FP. Easy, using the scripts auxprogs/gsl16test. |
| 102 | |
florian | cc1b253 | 2012-07-28 22:10:41 +0000 | [diff] [blame] | 103 | * s390x: Run regression tests on a z900 machine. That is the oldest |
| 104 | supported model and there is no nightly build for it. |
| 105 | |
| 106 | * s390x: Ensure README.s390 is up-to-date and URLs therein are not stale. |
| 107 | |
njn | af66ea6 | 2005-07-24 23:47:01 +0000 | [diff] [blame] | 108 | - Change release number in AC_INIT() in configure.in to "X.Y.Z-rcN", where |
| 109 | 'N' is the release candidate number. |
| 110 | |
| 111 | - Make the tarball ("make dist") and put it on the web somewhere (it doesn't |
| 112 | have to be on valgrind.org if another site is easier). |
| 113 | |
sewardj | 61ff456 | 2005-07-25 23:50:22 +0000 | [diff] [blame] | 114 | - Ensure the tarball builds, runs, regtests on the platforms of interest. |
| 115 | However redundant this seems, sometimes it can be that a from-the-repo |
| 116 | build works whereas a from-the-tarball one doesn't, usually due to some |
| 117 | trivial installation problem. |
| 118 | |
njn | 13bf98c | 2009-08-15 21:50:44 +0000 | [diff] [blame] | 119 | - Also check the HTML and print docs look sane (eg. links work). And the |
| 120 | man pages, esp. that there are no broken references (look for "???"). |
| 121 | |
njn | af66ea6 | 2005-07-24 23:47:01 +0000 | [diff] [blame] | 122 | - Announce the release: |
| 123 | - Email valgrind-users and valgrind-developers (but not valgrind-announce). |
| 124 | - Make clear it's a release candidate. |
| 125 | - Make sure you tell everyone where to download from. |
| 126 | - Include the release notes in the email (maybe not necessary for release |
| 127 | candidates 2+). |
| 128 | |
| 129 | - Wait 2--3 days for feedback. If bugs appear: |
| 130 | - Fix them. |
| 131 | - Update the bug-fix list in NEWS if necessary. |
| 132 | - Do another release candidate. |
| 133 | |
| 134 | |
| 135 | For the official release: |
| 136 | |
| 137 | - Again, update date in docs/xml/vg-entities.xml for the official release |
| 138 | date. |
| 139 | |
| 140 | - Do pre-release testing: |
| 141 | - Make sure regtests run ok on all platforms of interest. |
| 142 | - Make sure Mozilla and OpenOffice run ok on all platforms of interest. |
| 143 | |
| 144 | - Change release number in AC_INIT() in configure.in to "X.Y.Z". |
| 145 | |
njn | af66ea6 | 2005-07-24 23:47:01 +0000 | [diff] [blame] | 146 | - Make the tarball ("make dist"). |
sewardj | 61ff456 | 2005-07-25 23:50:22 +0000 | [diff] [blame] | 147 | |
| 148 | - Check tarball builds, installs, regtests on platforms of interest. |
| 149 | If not, fix and repeat until success. |
| 150 | |
njn | c3bbb1e | 2005-08-30 02:38:01 +0000 | [diff] [blame] | 151 | - Tag the repositories ("VALGRIND_X_Y_Z" and "VEX_X_Y_Z"). Point the Vex |
| 152 | external for VALGRIND_X_Y_Z to VEX_X_Y_Z. |
| 153 | |
njn | f5507ad | 2005-08-30 02:33:22 +0000 | [diff] [blame] | 154 | If it's a X.Y.0 release, make "VALGRIND_X_Y_BRANCH" and "VEX_X_Y_BRANCH" |
sewardj | c3a4418 | 2011-02-17 12:20:59 +0000 | [diff] [blame] | 155 | branches too. Useful examples (X.Y.0 major release): |
sewardj | 5d75045 | 2005-11-26 16:27:42 +0000 | [diff] [blame] | 156 | |
| 157 | cd valgrind |
sewardj | f56bdf2 | 2007-12-11 00:49:33 +0000 | [diff] [blame] | 158 | svn copy trunk tags/VALGRIND_3_3_0 |
| 159 | svn copy trunk branches/VALGRIND_3_3_BRANCH |
sewardj | 5d75045 | 2005-11-26 16:27:42 +0000 | [diff] [blame] | 160 | |
| 161 | cd vex |
sewardj | f56bdf2 | 2007-12-11 00:49:33 +0000 | [diff] [blame] | 162 | svn copy trunk tags/VEX_3_3_0 |
| 163 | svn copy trunk branches/VEX_3_3_BRANCH |
sewardj | 5d75045 | 2005-11-26 16:27:42 +0000 | [diff] [blame] | 164 | |
| 165 | cd valgrind |
sewardj | f56bdf2 | 2007-12-11 00:49:33 +0000 | [diff] [blame] | 166 | cd tags/VALGRIND_3_3_0 |
sewardj | 5d75045 | 2005-11-26 16:27:42 +0000 | [diff] [blame] | 167 | svn propset svn:externals \ |
sewardj | f56bdf2 | 2007-12-11 00:49:33 +0000 | [diff] [blame] | 168 | "VEX svn://svn.valgrind.org/vex/tags/VEX_3_3_0" . |
| 169 | cd branches/VALGRIND_3_3_BRANCH |
sewardj | 5d75045 | 2005-11-26 16:27:42 +0000 | [diff] [blame] | 170 | svn propset svn:externals \ |
sewardj | f56bdf2 | 2007-12-11 00:49:33 +0000 | [diff] [blame] | 171 | "VEX svn://svn.valgrind.org/vex/branches/VEX_3_3_BRANCH" . |
sewardj | 5d75045 | 2005-11-26 16:27:42 +0000 | [diff] [blame] | 172 | |
sewardj | c3a4418 | 2011-02-17 12:20:59 +0000 | [diff] [blame] | 173 | (X.Y.Z minor release): |
| 174 | |
| 175 | cd vex |
| 176 | svn copy branches/VEX_3_6_BRANCH tags/VEX_3_6_1 |
| 177 | |
| 178 | cd valgrind |
| 179 | svn copy branches/VALGRIND_3_6_BRANCH tags/VALGRIND_3_6_1 |
| 180 | |
| 181 | cd tags/VALGRIND_3_6_1 |
| 182 | svn propset svn:externals \ |
| 183 | "VEX svn://svn.valgrind.org/vex/tags/VEX_3_6_1" . |
| 184 | |
| 185 | |
| 186 | |
njn | af66ea6 | 2005-07-24 23:47:01 +0000 | [diff] [blame] | 187 | - Update website: |
| 188 | - Put the tarball up. |
njn | a920d8a | 2005-07-26 22:17:14 +0000 | [diff] [blame] | 189 | - Update the docs -- both the tarball'd docs, and the online-readable docs. |
njn | 43713d7 | 2005-11-10 02:43:25 +0000 | [diff] [blame] | 190 | - Update www.valgrind.org/downloads/current.html. |
| 191 | - Update www.valgrind.org/downloads/old.html. |
njn | af66ea6 | 2005-07-24 23:47:01 +0000 | [diff] [blame] | 192 | - 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] | 193 | Include a link to the release notes. Possibly remove any old release |
| 194 | notices form the front page. |
njn | bdbcacd | 2005-08-01 15:18:16 +0000 | [diff] [blame] | 195 | - Update the "release-date" and "release-version" in php/.htconfx. |
njn | 43713d7 | 2005-11-10 02:43:25 +0000 | [diff] [blame] | 196 | - Other pages that might need updating: downloads/repository.html. |
njn | af66ea6 | 2005-07-24 23:47:01 +0000 | [diff] [blame] | 197 | |
| 198 | - Change release number in AC_INIT() in configure.in to "X.Y.Z.SVN", where |
| 199 | X.Y.Z is one more than the release just done. |
| 200 | |
njn | 76b4a80 | 2009-08-07 07:31:15 +0000 | [diff] [blame] | 201 | - Make sure the release notes are present in the NEWS file on the trunk and |
| 202 | the branch. |
njn | f69e057 | 2007-01-23 05:34:38 +0000 | [diff] [blame] | 203 | |
njn | af66ea6 | 2005-07-24 23:47:01 +0000 | [diff] [blame] | 204 | - Announce the release: |
sewardj | 61ff456 | 2005-07-25 23:50:22 +0000 | [diff] [blame] | 205 | - Email valgrind-users, valgrind-developers, and valgrind-announce. |
| 206 | - Email Linux Weekly News. |
njn | af66ea6 | 2005-07-24 23:47:01 +0000 | [diff] [blame] | 207 | - Include the release notes in the email. |
| 208 | |
sewardj | 61ff456 | 2005-07-25 23:50:22 +0000 | [diff] [blame] | 209 | - Go on holiday. |