Release Checklist for SQLite 3.46.0
- Review the "test/testrunner.tcl" script for completeness and accuracy.
- Review "multitest.tcl" and "alignment*.rc" scripts in TH3 for completeness.
- Review this checklist for completeness and accuracy.
- Review dev-ops procedures and make any needed updates and corrections.
- No stray changes.
- 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.
- 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.
- 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
- 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
- tclsh multitest.tcl
- tclsh multitest.tcl --scenario coverage
- tclsh multitest.tcl --scenario failures - all failures detected
- ./configure && make verify-source 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" sdevtest
- 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
- From a read-only source tree: $SRC/configure && make mdevtest
- tclsh th3make min.rc -DTH3_LOWMEM --unobfuscated
- Recompile and test Fossil.
- ./configure && make verify-source releasetest
- tclsh multitest.tcl --xdev
- tclsh multitest.tcl --scenario failures - all failures detected
- ./configure && make verify-source releasetest
- tclsh multitest.tcl --xdev
- .selftest checks (see below)
- Recompile and test Fossil.
- Verify that Fossil repositories are cross-platform with x86/x64.
- Review the "32-bit Builds" section of doc/compile-for-windows.md for accuracy and completeness and make sure the local build environment is set up accordingly, especially the TCLDIR and PATH variables.
- tclsh multitest.tcl --xdev
- tclsh multitest.tcl --msvc --scenario failures - verify failures detected
- nmake /f Makefile.msc verify-source releasetest
- Verify that EXEs and DLLs generated using MSVC contain the correct version number, product name, description, and copyright as resources.
- Review the first part of doc/compile-for-windows.md for correctness. Ensure that the local build environment is correct, especially the TCLDIR variable.
- tclsh multitest.tcl --xdev
- tclsh multitest.tcl --msvc --scenario failures - verify failures detected
- nmake /f Makefile.msc verify-source releasetest
- Verify that EXEs and DLLs generated using MSVC contain the correct version number, product name, description, and copyright as resources.
- After updating Fossil to use the latest SQLite, verify that it compiles without warnings and that it works
- Compile the CLI separately (on Win11) and move the 64-bit EXE to the Win7 platform.
- Verify that the --utf8 option does not work.
- Perform a .dump on a database that contains schema elements with Unicode characters
- Run selftest.txt from the dbs repository
- make test
- th3make quick.rc
- Build and install Fiddle according to website maintenance instructions at https://sqlite.org/devops/doc/trunk/build/website-build.md. 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.
- 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)
- Develop a new CORPUS database by running dbsqlfuzz for 10 billion iterations
- Check-in CORPUS as an unversioned file in the dbsqlfuzz repository
- Linux: FUZZDB=$CORPUS make run-fuzzcheck
- Mac: FUZZDB=$CORPUS make run-fuzzcheck
- Win10/MSVC: fuzzcheck $CORPUS -spinner
- Checked in latest SQLite amalgamation.
- No SQLite compiler warnings.
- tclsh run-all.tcl
- No SQLite compiler warnings.
- Used on active websites with no issues.
- fossil all test-integrity -d
- fossil all sync --all
- fossil all repack
- Do the above on Linux
- Do the above on Mac
- Do the above on RaspberryPi
- Do the above on Windows
- Used on active websites with no issues
- tclsh multitest.tcl --dev --srcdir ../see --see
- tclsh multitest.tcl --dev --srcdir ../see --see aes128-ofb
- tclsh multitest.tcl --dev --srcdir ../see --see aes256-ofb
- tclsh multitest.tcl --dev --srcdir ../see --see rc4
- tclsh multitest.tcl --dev --srcdir ../see --see aes128-ccm
- tclsh multitest.tcl --dev --srcdir ../see --see cccrypt (Mac)
- tclsh multitest.tcl --dev --srcdir ../see --see aes256-openssl
- tclsh multitest.tcl --dev --srcdir ../see --see aes256-cryptoapi.c (Windows)
- On one of the above, add ++UPDATE_DELETE_LIMIT
- At least one of the above on Linux.
- Verify that the configure script version number agrees with the SQLite version number
- testfixture test/testrunner.tcl --zipvfs <ZIPVFS-source-directory> zipvfs
- Linux: tclsh multitest.tcl --scenario zipvfs --extra --valgrind --omit 'quick[23]'
- Mac: tclsh multitest.tcl --scenario zipvfs
- Windows: tclsh multitest.tcl --scenario zipvfs
- Merge all trunk enhancements into the reuse-schema branch and use that branch to update the devkit.
- Test using: tclsh th3make debug.rc nds_devkit.rc
- Verify the "NDS DevKit" version number shown at the end of the test
- Builds.
- Works on Linux.
- Works on Mac OS X.
- Works on Windows MSVC
- Verify that the SQLite version number is correct in autoconf/tea/configure.ac
- Linux
- Mac OS X
- Windows MSVC
- Linux
- Linux with --testset rtree
- Mac
- Windows
- Windows with --testset rtree
- rm -f wc.db && ./wordcount wc.db $BIGTEXT --all
- rm -f wc.db && ./wordcount wc.db $BIGTEXT --all --cachesize 5 --nosync
- Linux
- Mac
- Windows
- Run the procedures described in test/json/README.md
- Verify JSON performance against the previous release
- iBook PPC
- Linux x64
- Linux ARM
- Mac x64
- Mac ARM
- Windows 32-bit
- Windows 64-bit
- Linux (x64)
- Linux (ARM)
- Mac OS X
- Mac OS X (PPC)
- Mac OS X (ARM)
- Windows using NMAKE.
- Linux
- Mac OS X
- Windows
- Linux
- Mac
- Windows
- tools/mkmsvcmin.tcl has been run to update the MSVC makefiles in autoconf
- Compile-time options for build products have been updated as necessary
- All build products work on their target platforms