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