Release Procedures
Follow these steps to prepare a new release of System.Data.SQLite. Unless otherwise noted, all steps need to be done in the order specified.
Build Windows x86 & x64 Binaries
- The binaries for all supported architectures and platforms must be built using procedures very similar to those documented in the normal build procedures.
- Open a normal command prompt window with "cmd.exe".
- Change the current directory to "<root>\Setup".
-
Enter the following commands to build all the x86 and x64 binaries:
SET LOGDIR=%ROOT%\Setup\Output
IF NOT EXIST "%LOGDIR%" MKDIR "%LOGDIR%"
SET BUILD_FULL=1
SET BUILD_DEBUG=1
CALL build_all.bat
REM Copy 2015 core library interop assembly to .NET Standard 2.0...
REM Must be present for .NET Standard 2.0 release step, processor architecture is irrelevant.
XCOPY ..\bin\2015\Win32\DebugNativeOnlyStatic\SQLite.Interop.* ..\bin\NetStandard20\DebugNetStandard20\bin\netstandard2.0 /V /I /F /Y
XCOPY ..\bin\2015\Win32\ReleaseNativeOnlyStatic\SQLite.Interop.* ..\bin\NetStandard20\ReleaseNetStandard20\bin\netstandard2.0 /V /I /F /Y
REM Copy 2015 core library interop assembly to .NET Standard 2.1...
REM Must be present for .NET Standard 2.1 release step, processor architecture is irrelevant.
XCOPY ..\bin\2015\Win32\DebugNativeOnlyStatic\SQLite.Interop.* ..\bin\NetStandard21\DebugNetStandard21\bin\netstandard2.1 /V /I /F /Y
XCOPY ..\bin\2015\Win32\ReleaseNativeOnlyStatic\SQLite.Interop.* ..\bin\NetStandard21\ReleaseNetStandard21\bin\netstandard2.1 /V /I /F /Y - Make sure everything succeeds with no errors; the console output may be checked if any errors should occur.
Test Windows x86 & x64 Binaries
- The binaries for all supported architectures and platforms must be tested using procedures very similar to those documented in the normal test procedures.
- Open a normal command prompt window with "cmd.exe".
- Change the current directory to "<root>\Setup".
-
Enter the following commands to test all the x86 or x64 binaries, depending
on the processor architecture of the current machine:
SET TEST_DEBUG=1
CALL test_all.bat - Make sure everything succeeds with no errors; the console output may be checked if any errors should occur.
- Locate a machine with a processor architecture different from the one tested in the previous step and then repeat all the previous steps.
Build Windows CE Binaries
- Open a normal command prompt window with "cmd.exe".
- Change the current directory to "<root>\Setup".
-
Enter the following commands to build all the binaries available for Windows
CE:
SET BUILD_FULL=1
SET BUILD_DEBUG=1
CALL build_ce_200x.bat
This assumes that Visual Studio 2005 and/or Visual Studio 2008, "Professional" edition or "better" and the bundled Pocket PC 2003 SDK are installed. -
Enter the following commands to build all the binaries available for Windows
Embedded Compact 2013:
SET BUILD_FULL=1
SET BUILD_DEBUG=1
CALL build_ce_2013.bat
This assumes that Visual Studio 2012, "Professional" edition or "better" and the Windows Embedded Compact 2013 Toolkit are installed. - Make sure everything succeeds with no errors; the console output may be checked if any errors should occur.
Test Windows CE Binaries via Automation
- Instead of testing the Windows CE binaries manually as described in the next section, the following steps may be used.
- Open a normal command prompt window with "cmd.exe".
- Change the current directory to "<root>\Setup".
-
Enter the following commands to test all the binaries available for Windows
CE:
SET TEST_DEBUG=1
CALL test_ce_200x.bat - Make sure everything succeeds with no errors; the console output may be checked if any errors should occur.
Test Windows CE Binaries Manually
- If the Windows CE binaries were already tested using the automation described in the previous section, skip this section.
- Launch Visual Studio 2005, "Professional" edition or "better" with the bundled Pocket PC 2003 SDK. As of this writing, in January 2012, Visual Studio 2010 and later will not work as they do not include the necessary built-in support for Windows CE and the .NET Compact Framework.
- Open the "SQLite.NET.2008.sln" solution file in the "<root>" directory.
- Change the active solution configuration to "Debug".
- Change the active solution platform to "Pocket PC 2003 (ARMV4)".
- Right-click the "testce" project in the Solution Explorer window and select "Set as StartUp Project".
- Select "Start Debugging" from the "Debug" menu.
- If any rebuild prompts appear (e.g. "SQLite.Interop.CE.2008", "Would you like to build it?"), select "Yes".
- When prompted for the device type to deploy the application to, select the "Pocket PC 2003 SE Emulator" device.
- Make sure all that the tests pass (i.e. they emit "SUCCESS").
Build Mono Binaries
- Open a normal command prompt window with "cmd.exe".
- Change the current directory to "<root>\Setup".
-
Enter the following commands to build all the binaries available for Mono:
SET BUILD_FULL=
SET BUILD_DEBUG=1
CALL build_mono.bat - Make sure everything succeeds with no errors; the console output may be checked if any errors should occur.
Test .NET Standard 2.0 Binaries
- Open a normal command prompt window with "cmd.exe".
- Change the current directory to "<root>\Setup".
-
Enter the following commands to test all the binaries available for .NET
Standard 2.0:
SET TEST_DEBUG=1
CALL test_net_core_20.bat - Make sure everything succeeds with no errors; the console output may be checked if any errors should occur.
Test .NET Standard 2.1 Binaries
- Open a normal command prompt window with "cmd.exe".
- Change the current directory to "<root>\Setup".
-
Enter the following commands to test all the binaries available for .NET
Standard 2.1:
SET TEST_DEBUG=1
CALL test_net_core_30.bat - Make sure everything succeeds with no errors; the console output may be checked if any errors should occur.
Update Documentation
- Update the "<root>\readme.htm" file with information about all the major changes since the last released version.
- Copy those changes to the "<root>\Doc\Extra\Provider\version.html" and "<root>\www\news.wiki" files, reformatting as necessary to fit with the existing document conventions.
- Change the current directory to "<root>\Doc".
-
Enter the following command to update all documentation that is
included from upstream (e.g. from the SQLite core library, etc):
..\Externals\Eagle\bin\netFramework40\EagleShell.exe -file sync.eagle --verbose -
Enter the following command to update the embedded SQLite core library
virtual table documentation:
tclsh.exe vtab.tcl
This assumes that ActiveTcl version 8.4 or later has been installed using the default settings. - Make sure everything downloads with no errors; the console output may be checked if any errors should occur.
Build Documentation
- Open a normal command prompt window with "cmd.exe".
- Change the current directory to "<root>\Doc".
-
Enter the following command to build all the documentation in
CHM
format:
tclsh.exe buildChm.tcl
This assumes that ActiveTcl version 8.4 or later, the HTML Help Workshop, and NDoc3 have all been installed using the default settings. - Make sure everything succeeds with no errors; the console output may be checked if any errors should occur.
Build Setup Release Packages
- Open a normal command prompt window with "cmd.exe".
- Change the current directory to "<root>\Setup".
-
Enter the following commands to build all the setup packages for x86 and x64:
SET BAKE_DEBUG=1
CALL bake_all.bat - Make sure everything succeeds with no errors; the console output may be checked if any errors should occur.
Build Windows x86 & x64 Binary Release Packages
- Open a normal command prompt window with "cmd.exe".
- Change the current directory to "<root>\Setup".
-
Enter the following commands to build all the binary release packages for x86
and x64:
SET RELEASE_DEBUG=1
CALL release_all.bat - Make sure everything succeeds with no errors; the console output may be checked if any errors should occur.
Build Windows x86 & x64 Static Binary Release Packages
- Open a normal command prompt window with "cmd.exe".
- Change the current directory to "<root>\Setup".
-
Enter the following commands to build all the static binary release packages
for x86 and x64:
SET RELEASE_DEBUG=1
CALL release_static.bat - Make sure everything succeeds with no errors; the console output may be checked if any errors should occur.
Build Windows CE Binary Release Packages
- Open a normal command prompt window with "cmd.exe".
- Change the current directory to "<root>\Setup".
-
Enter the following commands to build all the binary release packages for
Windows CE:
SET RELEASE_DEBUG=1
CALL release_ce_200x.bat -
Enter the following commands to build all the binary release packages for
Windows Embedded Compact 2013:
SET RELEASE_DEBUG=1
CALL release_ce_2013.bat - Make sure everything succeeds with no errors; the console output may be checked if any errors should occur.
Build Mono Release Packages
- Open a normal command prompt window with "cmd.exe".
- Change the current directory to "<root>\Setup".
-
Enter the following commands to build all the Mono release packages:
SET RELEASE_DEBUG=1
CALL release_mono.bat - Make sure everything succeeds with no errors; the console output may be checked if any errors should occur.
Build .NET Standard 2.0 Release Packages
- Open a normal command prompt window with "cmd.exe".
- Change the current directory to "<root>\Setup".
-
Enter the following commands to build all the .NET Standard 2.0 release
packages:
SET RELEASE_DEBUG=1
CALL release_net_standard_20.bat - Make sure everything succeeds with no errors; the console output may be checked if any errors should occur.
Build .NET Standard 2.1 Release Packages
- Open a normal command prompt window with "cmd.exe".
- Change the current directory to "<root>\Setup".
-
Enter the following commands to build all the .NET Standard 2.1 release
packages:
SET RELEASE_DEBUG=1
CALL release_net_standard_21.bat - Make sure everything succeeds with no errors; the console output may be checked if any errors should occur.
Build Source Release Packages
- Open a normal command prompt window with "cmd.exe".
- Change the current directory to "<root>\Setup".
-
Enter the following commands to build the "standard" source
release package:
SET ARCHIVE_FULL=
CALL archive.bat -
Enter the following commands to build the "full" source
release package:
SET ARCHIVE_FULL=1
CALL archive.bat - Make sure everything succeeds with no errors; the console output may be checked if any errors should occur.
Build NuGet Packages
- Open a normal command prompt window with "cmd.exe".
- Change the current directory to "<root>\Setup".
-
Enter the following command to build all the NuGet packages:
SET NO_NUGET_XPLATFORM=1
SET NUGET_LEGACY_ONLY=1
CALL build_nuget.bat
This assumes that the NuGet binary is available somewhere along the PATH.
Please refer to NuGet Documentation for further details. - Make sure everything succeeds with no errors; the console output may be checked if any errors should occur.
Verify All Release Packages
- Open a normal command prompt window with "cmd.exe".
- Change the current directory to "<root>\Setup".
-
Enter the following command to build all the source release packages:
..\Externals\Eagle\bin\netFramework40\EagleShell.exe -file verify.eagle Output true
This assumes that the Fossil, Inno Setup Unpacker, UnRAR, and UnZip binaries are available in the locations specified via the "FossilTool", "InnoUnpackTool", "UnRARTool", and "UnZipTool" environment variables, respectively. -
Make sure everything succeeds with no errors; the console output may be
checked if any errors should occur.
If errors are generated, the file "<root>\Setup\data\verify.lst" may need to be updated to account for the files that have been added and/or removed from the release archives since the previous release.
Update Downloads Page
- Open a normal command prompt window with "cmd.exe".
- Change the current directory to "<root>\Setup".
- Replace the version numbers for the previous release in the local working copy of the downloads page with the new version numbers for System.Data.SQLite and the SQLite core.
-
Enter the following command to update the sizes and hashes on the downloads
page based on all the built release packages:
tclsh.exe updateFileInfo.tcl
This assumes that ActiveTcl version 8.4 or later has been installed using the default settings and that the Fossil binary is available somewhere along the PATH (i.e. for calculating the SHA1 hashes). - Make sure everything succeeds with no errors; the console output may be checked if any errors should occur.
Publish Release
- Upload all the release packages to the web site.
- Commit pending source code changes to the Fossil repository.
- Tag the release in the Fossil repository.
-
Push the NuGet packages.
Please refer to NuGet Documentation for further details. - Announce the release on the SQLite Forum.