1<title>Release Checklist</title>
2
3This file describes the testing procedures for Fossil prior to an
4official release.
5
6<ol>
7<li><p>
8From within a checkout of the Fossil tree, display this file with
9the command "<b>fossil ui --page doc/ckout/test/release-checklist.wiki</b>".
10That is the only way the links below will work.
11
12<li><p>
13From a private directory (not the source tree) run
14"<b>tclsh $SRC/test/tester.tcl $FOSSIL</b>" where $FOSSIL is the
15name of the executable under test and $SRC is the source tree.
16Verify that there are no errors.
17
18<li><p>
19Click on each of the links in in the
20[./graph-test-1.wiki] document and verify that all graphs are
21rendered correctly.
22
23<li><p>
24Click on each of the links in in the
25[./graph-test-2.md] document and verify that all graphs are
26rendered correctly.
27<ol type="a">
28<li> Also view the same check-ins on a /timeline
29view by clicking on the date for each check-in in the /info
30view, as the graph rendering is slightly different.
31</ol>
32
33<li><p>
34Click on each of the links in in the
35[./diff-test-1.wiki] document and verify that all diffs are
36rendered correctly.
37
38<li><p>
39Click on the following link to verify that it works: [./test-page%2b%2b.wiki | ./test-page++.wiki]
40(NB:  Many web servers automatically block
41or rewrite URLs that contain "+" characters, even when those "+"
42characters are encoded as "%2B".  On such web servers, the URL
43above will not work.  This test is only guaranteed to work
44when running "fossil ui".)
45
46<li><p>
47Shift-click on each of the links in [./fileage-test-1.wiki] and verify
48correct operation of the file-age computation.
49
50<li><p>
51Verify correct name-change tracking behavior (no net changes) for:
52<blockquote><b>
53fossil test-name-changes --debug  b120bc8b262ac 374920b20944b
54</b></blockquote>
55
56<li><p>
57Compile for all of the following platforms:
58<ol type="a">
59<li> Linux x86
60<li> Linux x86_64
61<li> Mac x86
62<li> Mac x86_64
63<li> Windows (mingw)
64<li> Windows (vc++)
65<li> OpenBSD
66</ol>
67
68<li><p>
69Run at least one occurrence of the following commands on every
70platform:
71<ol type="a">
72<li> <b>fossil rebuild</b>
73<li> <b>fossil sync</b>
74<li> <b>fossil test-integrity</b>
75</ol>
76
77<li><p>
78Run the following commands on Linux and verify no major memory leaks
79and no run-time errors or warnings (except for the well-known jump on an
80uninitialized value that occurs within zlib).</p>
81<ol type="a">
82<li> <b>valgrind fossil rebuild</b>
83<li> <b>valgrind fossil sync</b>
84</ol>
85
86<p>Achtung: make sure to point valgrind to the proper fossil binary
87so that it does not pick up another from the PATH.</p>
88
89
90<li><p>
91
92Inspect [http://fossil-scm.org/home/vdiff?from=release&to=trunk&sbs=1|all code changes since the previous release], paying particular
93attention to the following details:
94<ol type="a">
95<li> Can a malicious HTTP request cause a buffer overrun.
96<li> Can a malicious HTTP request expose privileged information to
97     unauthorized users.
98</ol>
99
100
101<li><p>
102Use the release candidate version of fossil in production on the
103[http://fossil-scm.org/] website for at least 48 hours (without
104incident) prior to making the release official.
105
106<li><p>
107Verify that the minimum SQLite version requirement is up-to-date:
108<ol type="a">
109<li> Check the version number in the line starting "define MINIMUM_SQLITE_VERSION" near the top of [/file?name=auto.def&ci=tip | auto.def]
110<li> Check the output of <b>./configure --print-minimum-sqlite-version</b>
111</ol>
112
113<li><p>
114Verify that the [../www/changes.wiki | Change Log] is correct and
115up-to-date.
116</ol>
117
118<hr>
119
120Upon successful completion of all tests above, tag the release candidate
121with the "release" tag and set its background color to "#d0c0ff".  Update
122the www/changes.wiki file to show the date of the release.
123