blob: dece1538e26a7dd5495a85b89d15235474647268 [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
njn376e8712005-11-15 15:27:06 +000016 release. (Especially Josef Weidendorfer for Callgrind.)
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
24- Write release notes, add to NEWS. Include a list of fixed bugs from
sewardj9a919512005-08-03 17:01:51 +000025 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.
njnaf66ea62005-07-24 23:47:01 +000039
njna920d8a2005-07-26 22:17:14 +000040- Other files that might need updating: README, README_DEVELOPERS,
41 README_PACKAGERS.
42
njnaf66ea62005-07-24 23:47:01 +000043- Add X.Y.Z and X.Y.Z.SVN versions to Bugzilla (ask Dirk to do it)
44
njn12c90952005-07-25 12:49:39 +000045- 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.
njnaf66ea62005-07-24 23:47:01 +000048
njn85773ee2005-07-25 23:30:06 +000049
njn7a2db472005-11-08 20:03:08 +000050For each release candidate (should do release candidates for feature
51releases, bug-fix-only releases might not need one):
njnaf66ea62005-07-24 23:47:01 +000052
njnf5e4c882007-01-27 02:05:38 +000053- 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
njnaf66ea62005-07-24 23:47:01 +000057- Do pre-release testing:
njn376e8712005-11-15 15:27:06 +000058
59 * Check it builds and regtests on a vanilla gcc-2.96 / RedHat 7.3 distro.
njn376e8712005-11-15 15:27:06 +000060
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.
njnaf66ea62005-07-24 23:47:01 +000089
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
sewardj61ff4562005-07-25 23:50:22 +000096- 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
njnaf66ea62005-07-24 23:47:01 +0000101- 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
114For 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
njnaf66ea62005-07-24 23:47:01 +0000125- Make the tarball ("make dist").
sewardj61ff4562005-07-25 23:50:22 +0000126
127- Check tarball builds, installs, regtests on platforms of interest.
128 If not, fix and repeat until success.
129
njnc3bbb1e2005-08-30 02:38:01 +0000130- 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
njnf5507ad2005-08-30 02:33:22 +0000133 If it's a X.Y.0 release, make "VALGRIND_X_Y_BRANCH" and "VEX_X_Y_BRANCH"
sewardj5d750452005-11-26 16:27:42 +0000134 branches too. Useful examples:
135
136 cd valgrind
sewardjf56bdf22007-12-11 00:49:33 +0000137 svn copy trunk tags/VALGRIND_3_3_0
138 svn copy trunk branches/VALGRIND_3_3_BRANCH
sewardj5d750452005-11-26 16:27:42 +0000139
140 cd vex
sewardjf56bdf22007-12-11 00:49:33 +0000141 svn copy trunk tags/VEX_3_3_0
142 svn copy trunk branches/VEX_3_3_BRANCH
sewardj5d750452005-11-26 16:27:42 +0000143
144 cd valgrind
sewardjf56bdf22007-12-11 00:49:33 +0000145 cd tags/VALGRIND_3_3_0
sewardj5d750452005-11-26 16:27:42 +0000146 svn propset svn:externals \
sewardjf56bdf22007-12-11 00:49:33 +0000147 "VEX svn://svn.valgrind.org/vex/tags/VEX_3_3_0" .
148 cd branches/VALGRIND_3_3_BRANCH
sewardj5d750452005-11-26 16:27:42 +0000149 svn propset svn:externals \
sewardjf56bdf22007-12-11 00:49:33 +0000150 "VEX svn://svn.valgrind.org/vex/branches/VEX_3_3_BRANCH" .
sewardj5d750452005-11-26 16:27:42 +0000151
njnaf66ea62005-07-24 23:47:01 +0000152- Update website:
153 - Put the tarball up.
njna920d8a2005-07-26 22:17:14 +0000154 - Update the docs -- both the tarball'd docs, and the online-readable docs.
njn43713d72005-11-10 02:43:25 +0000155 - Update www.valgrind.org/downloads/current.html.
156 - Update www.valgrind.org/downloads/old.html.
njnaf66ea62005-07-24 23:47:01 +0000157 - Add a news item to the front page and also to valgrind.org/info/news.html.
njndf2b4f82006-07-14 06:17:44 +0000158 Include a link to the release notes. Possibly remove any old release
159 notices form the front page.
njnbdbcacd2005-08-01 15:18:16 +0000160 - Update the "release-date" and "release-version" in php/.htconfx.
njn43713d72005-11-10 02:43:25 +0000161 - Other pages that might need updating: downloads/repository.html.
njnaf66ea62005-07-24 23:47:01 +0000162
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
njn926e9732005-12-01 23:13:57 +0000166- Add a new section to docs/internals/X_Y_BUGSTATUS.txt (or a new file if
167 it's a feature release).
njn32ac3642005-08-29 22:24:20 +0000168
njn25256172005-11-28 16:44:14 +0000169- Add new entries to docs/internals/roadmap.txt for the next release(s).
njn7a2db472005-11-08 20:03:08 +0000170
njnf69e0572007-01-23 05:34:38 +0000171- Copy the release notes into the trunk's NEWS file.
172
njnaf66ea62005-07-24 23:47:01 +0000173- Announce the release:
sewardj61ff4562005-07-25 23:50:22 +0000174 - Email valgrind-users, valgrind-developers, and valgrind-announce.
175 - Email Linux Weekly News.
njnaf66ea62005-07-24 23:47:01 +0000176 - Include the release notes in the email.
177
sewardj61ff4562005-07-25 23:50:22 +0000178- Go on holiday.