All significant changes are mentioned in the "changes" log of the documentation.
New code complies with style guidelines.
New code complies with design rules.
Comments have been updated to reflect code changes.
Verify that the azProhibitedFunctions list in the safeModeAuth() function of the CLI is complete and up-to-date.
Variables and functions have been renamed to reflect changes in their use.
Check all calls to sqlite3OsRead() and sqlite3OsWrite() to ensure that offset computations are 64-bit clean.
Check all calls to memory allocation routines to ensure that size computations are 64-bit clean. Suggested regular expression for search: /(Re|M)alloc[FORZa-z]*(/
Verify that source code contains no tabs and that surplus whitespace has been removed.
Verify that the list of APIs exposed via the extension header is up-to-date (sqlite3ext.h).
Significant compile-time options are recognized by the sqlite3_compileoption_used() interface.
Compare sqlite3.c and sqlite3.h against the previous release.
Documentation review:
Latest release on the "index.html" page.
Release announcement in "changes.in".
Release accouncement in "news.html".
No unresolved hyperlinks in the documentation build.
The compile-time options are all up-to-date (compile.html).
Database footprint is up-to-date (features.html).
Test metrics are up-to-date (testing.html).
Check new/changed documentation for spelling and gramatical mistakes.
Compiler warning checks.
Linux GCC -Wall -Wextra (the "tool/warnings.sh" script)
Mac OS X GCC -Wall -Wextra (the "tool/warnings.sh" script)
Clang-6.0.0: CFLAGS='-O0' ./configure --enable-debug --enable-all && scan-build make sqlite3
Clang-10.0.0: CFLAGS='-O0' ./configure --enable-debug --enable-all && scan-build make sqlite3
OMIT, ENABLE, and DISABLE options:
Recent compile-time options have been added to the omittest.tcl and omittest-msvc.tcl scripts and checked in.
tclsh ../tool/omittest.tcl -skip_run -target libsqlite3.a ← on Linux
tclsh tool/omittest-msvc.tcl ← on Windows
Tests for platform Linux x86_64:
tclsh multitest.tcl
tclsh multitest.tcl --scenario coverage
tclsh multitest.tcl --scenario obscure
tclsh multitest.tcl --scenario failures - all failures detected
./configure && make releasetest
sh tool/symbols.sh - no incorrect exports or dependencies
./configure --enable-debug --enable-all && make parse.c && CC=clang CFLAGS='-fsanitize=address,undefined' make -e test
Test the reuse-schema branch with ./configure --enable-all && make "OPTS=-DSQLITE_ENABLE_SHARED_SCHEMA" test.
CC=clang CFLAGS='-fsanitize=thread' ./configure && make threadtest5 && ./threadtest5
Run auxiliary test script in the /usr subdirectory of the TH3 repository
Verify that the SQLITE_HAVE_SQLITE3R is needed when building the CLI using sqlite3r.c: ./configure --enable-all && make sqlite3r.c shell.c && gcc -DSQLITE_ENABLE_DBPAGE_VTAB -DSQLITE_HAVE_SQLITE3R sqlite3r.c shell.c -ldl -lpthread && ./a.out '' .recover
Tests for platform Linux ARM (BeagleBoard or RaspberryPI)
tclsh th3make min.rc -DTH3_LOWMEM --unobfuscated
Recompile and test Fossil.
Tests for platform MacOS x64:
./configure && make releasetest
tclsh multitest.tcl --quick
tclsh multitest.tcl --scenario failures - all failures detected
Tests for platform MacOS ARM:
./configure && make releasetest
tclsh multitest.tcl --quick
Tests for platform MacOS (PPC):
.selftest checks (see below)
Recompile and test Fossil.
Verify that Fossil repositories are cross-platform with x86/x64.
sh tool/symbols-mingw.sh - no incorrect exports or dependencies
Verify that EXEs and DLLs generated using MSVC contain the correct version number, product name, description, and copyright as resources.
Tests for platform OpenBSD (x86):
make test
th3make quick.rc
WASM
Build and install Fiddle according to website maintenance instructions. Run simple tests.
(On Linux) ./configure --enable-all && cd ext/wasm && make
althttpd --enable-sab --page index.html
Click on the test links - confirm correct results.
On an F2FS filesystem with the F2FS_FEATURE_ATOMIC_WRITE feature, test with: $(TOP)/configure && make test OPTS="-DSQLITE_ENABLE_BATCH_ATOMIC_WRITE -DSQLITE_DEBUG -DSQLITE_NO_SYNC"
Trunk changes merged and verified on active branches:
begin-concurrent (from trunk)
wal2 (from trunk)
bedrock (from wal2)
reuse-schema (from trunk)
see (in the see-base repository)
client-see (in the see-base repository)
reuse-schema-see (in the see-base repository)
Dbsqlfuzz tests
Develop a new CORPUS database by running dbsqlfuzz for 10 billion iterations
Check-in CORPUS as an unversioned file in the dbsqlfuzz repository
Compare performance to the previous release using kvtest.
Linux
Mac
Windows
Check JSON parse performance using test/json/json-speed-check.sh
Use the ".selftest" command of the shell to verify that legacy database files are readable and cross-platform
iBook PPC
Linux x64
Linux ARM
Mac x64
Mac ARM
Windows 32-bit
Windows 64-bit
Verify that the performance and size measurement spreadsheet in the documentation (misc/speed-size-graph.ods) is up-to-date.
Verify that the amalgamation builds are byte-for-byte identical on all workstation platforms.
Linux (x64)
Linux (ARM)
Mac OS X
Mac OS X (PPC)
Mac OS X (ARM)
Windows using native MinGW.
Windows using NMAKE.
Verify that databases (including FTS3 and RTREE databases), rollback journals, and WAL files created by the release candidate are readable and writeable by historical versions of SQLite (as long as no unsupported features are used) and vice versa.
Build and verify correct operation of sqlite3_analyzer on:
Linux
Mac OS X
Windows
Build and verify sqldiff
Linux
Mac
Windows
Build the "atrc" test program and run "./atrc $DB | ./sqlite3 $DB" against multiple databases, visually verify the result
Run the rbu/run_rbu_tests.tcl script in the test-dbs project on Linux.
Verify that the "sqlite3-all.c" build target works and that the resulting "sqlite3-all.c" file and its include files ("sqlite3-?.c") compile and run the same as the single-file amalgamation.
Website built procedures
Compile-time options in builds/products_build.sh in the supportdb repository has been updated to align with any changes to the default makefiles.
tools/mkmsvcmin.tcl has been run to update the MSVC makefiles in autoconf
Compile-time options for build products have been updated as necessary