blob: dce8d98685cfb0a48eb018e2ca3dc0109424e193 [file] [log] [blame]
njnaf66ea62005-07-24 23:47:01 +00001-----------------------------------------------------------------------------
2TODO list when doing a Valgrind release (with release number "X.Y.Z")
3-----------------------------------------------------------------------------
4
njn7a2db472005-11-08 20:03:08 +00005There 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
njnaf66ea62005-07-24 23:47:01 +000012First 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
njn76b4a802009-08-07 07:31:15 +000016 release.
njnaf66ea62005-07-24 23:47:01 +000017
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
sewardj0fe1d4c2010-04-19 08:43:26 +000024- Make sure __VALGRIND_MAJOR__ and __VALGRIND_MINOR__ are correct
25 for the release. (include/valgrind.h)
26
njnaf66ea62005-07-24 23:47:01 +000027- Write release notes, add to NEWS. Include a list of fixed bugs from
sewardj9a919512005-08-03 17:01:51 +000028 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.
njnaf66ea62005-07-24 23:47:01 +000042
philippe8eacbc42012-08-02 21:01:13 +000043 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
njna920d8a2005-07-26 22:17:14 +000047- Other files that might need updating: README, README_DEVELOPERS,
48 README_PACKAGERS.
49
njn76b4a802009-08-07 07:31:15 +000050- Add X.Y.Z and X.Y+1.Z.SVN versions to Bugzilla.
njnaf66ea62005-07-24 23:47:01 +000051
njn76b4a802009-08-07 07:31:15 +000052- Add "wantedX.Y.Z+1" and "wantedX.Y+1.Z" milestones to Bugzilla.
njnaf66ea62005-07-24 23:47:01 +000053
florianc5927a62014-09-04 18:37:02 +000054- 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
florianf8ff41e2015-03-10 21:31:06 +000060- Contact Gregory Czajkowski ( gregczajkowski@yahoo.com ) and ask him
61 to build (make && make check) valgrind with ICC.
njn85773ee2005-07-25 23:30:06 +000062
njn7a2db472005-11-08 20:03:08 +000063For each release candidate (should do release candidates for feature
64releases, bug-fix-only releases might not need one):
njnaf66ea62005-07-24 23:47:01 +000065
njn76b4a802009-08-07 07:31:15 +000066- Build.
njnf5e4c882007-01-27 02:05:38 +000067
njnaf66ea62005-07-24 23:47:01 +000068- Do pre-release testing:
njn376e8712005-11-15 15:27:06 +000069
70 * Check it builds and regtests on a vanilla gcc-2.96 / RedHat 7.3 distro.
philippe8eacbc42012-08-02 21:01:13 +000071 ??? is this really still up to date ???
njn376e8712005-11-15 15:27:06 +000072
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
philippe8eacbc42012-08-02 21:01:13 +000081 * 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).
njn376e8712005-11-15 15:27:06 +000087
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
floriancc1b2532012-07-28 22:10:41 +0000103 * 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
njnaf66ea62005-07-24 23:47:01 +0000108- 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
sewardj61ff4562005-07-25 23:50:22 +0000114- 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
njn13bf98c2009-08-15 21:50:44 +0000119- 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
njnaf66ea62005-07-24 23:47:01 +0000122- 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
135For 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
njnaf66ea62005-07-24 23:47:01 +0000146- Make the tarball ("make dist").
sewardj61ff4562005-07-25 23:50:22 +0000147
148- Check tarball builds, installs, regtests on platforms of interest.
149 If not, fix and repeat until success.
150
njnc3bbb1e2005-08-30 02:38:01 +0000151- 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
njnf5507ad2005-08-30 02:33:22 +0000154 If it's a X.Y.0 release, make "VALGRIND_X_Y_BRANCH" and "VEX_X_Y_BRANCH"
sewardjc3a44182011-02-17 12:20:59 +0000155 branches too. Useful examples (X.Y.0 major release):
sewardj5d750452005-11-26 16:27:42 +0000156
157 cd valgrind
sewardjf56bdf22007-12-11 00:49:33 +0000158 svn copy trunk tags/VALGRIND_3_3_0
159 svn copy trunk branches/VALGRIND_3_3_BRANCH
sewardj5d750452005-11-26 16:27:42 +0000160
161 cd vex
sewardjf56bdf22007-12-11 00:49:33 +0000162 svn copy trunk tags/VEX_3_3_0
163 svn copy trunk branches/VEX_3_3_BRANCH
sewardj5d750452005-11-26 16:27:42 +0000164
165 cd valgrind
sewardjf56bdf22007-12-11 00:49:33 +0000166 cd tags/VALGRIND_3_3_0
sewardj5d750452005-11-26 16:27:42 +0000167 svn propset svn:externals \
sewardjf56bdf22007-12-11 00:49:33 +0000168 "VEX svn://svn.valgrind.org/vex/tags/VEX_3_3_0" .
169 cd branches/VALGRIND_3_3_BRANCH
sewardj5d750452005-11-26 16:27:42 +0000170 svn propset svn:externals \
sewardjf56bdf22007-12-11 00:49:33 +0000171 "VEX svn://svn.valgrind.org/vex/branches/VEX_3_3_BRANCH" .
sewardj5d750452005-11-26 16:27:42 +0000172
sewardjc3a44182011-02-17 12:20:59 +0000173 (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
njnaf66ea62005-07-24 23:47:01 +0000187- Update website:
188 - Put the tarball up.
njna920d8a2005-07-26 22:17:14 +0000189 - Update the docs -- both the tarball'd docs, and the online-readable docs.
njn43713d72005-11-10 02:43:25 +0000190 - Update www.valgrind.org/downloads/current.html.
191 - Update www.valgrind.org/downloads/old.html.
njnaf66ea62005-07-24 23:47:01 +0000192 - Add a news item to the front page and also to valgrind.org/info/news.html.
njndf2b4f82006-07-14 06:17:44 +0000193 Include a link to the release notes. Possibly remove any old release
194 notices form the front page.
njnbdbcacd2005-08-01 15:18:16 +0000195 - Update the "release-date" and "release-version" in php/.htconfx.
njn43713d72005-11-10 02:43:25 +0000196 - Other pages that might need updating: downloads/repository.html.
njnaf66ea62005-07-24 23:47:01 +0000197
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
njn76b4a802009-08-07 07:31:15 +0000201- Make sure the release notes are present in the NEWS file on the trunk and
202 the branch.
njnf69e0572007-01-23 05:34:38 +0000203
njnaf66ea62005-07-24 23:47:01 +0000204- Announce the release:
sewardj61ff4562005-07-25 23:50:22 +0000205 - Email valgrind-users, valgrind-developers, and valgrind-announce.
206 - Email Linux Weekly News.
njnaf66ea62005-07-24 23:47:01 +0000207 - Include the release notes in the email.
208
sewardj61ff4562005-07-25 23:50:22 +0000209- Go on holiday.