TIP: 376 Title: Bundle sqlite3 and tdbc::sqlite3 Packages Version: $Revision: 1.5 $ Author: Don Porter Author: D. Richard Hipp Author: Kevin Kenny State: Final Type: Project Vote: Done Created: 14-Sep-2010 Tcl-Version: 8.6 Post-History: ~ Abstract This TIP proposes the packages '''sqlite3''' and '''tdbc::sqlite3''' be re-distributed as part of the Tcl source code distribution. ~ Background Starting with the 8.6.* releases of Tcl, a collection of third party packages are being redistributed as part of the Tcl source code distribution under the directory ''tcl/pkgs/''. This is partial fulfillment of the long-awaited ''batteries included'' vision for Tcl releases. The current collection of redistributed packages is Itcl [50], Thread [364], and tdbc [308]. The sqlite3 package is perhaps the most striking example of a Tcl extension that has grown to eclipse Tcl itself. Created and maintained by TCT emeritus D. Richard Hipp, it should require little explanation here. The tdbc::sqlite3 package provides the driver functionality to use the facilities provided by sqlite3 as the backend of tdbc operations. Created and maintained by Kevin Kenny of the TCT, it should also be familiar to Tcl insiders. ~ Proposal Adapt release operations as needed so that the latest releases of the '''sqlite3''' and '''tdbc::sqlite3''' packages are included in releases of Tcl 8.6.*. ~ Expected Benefits Distribution of the '''tdbc''' package without any backend drivers has quite limited utility. Adding these two packages to the distributed set provides at least one fully working backend with no third-party dependencies. This permits testing and demonstrating the capabilities of '''tdbc''' everywhere it goes. By including '''sqlite3''' in the Tcl source code distribution, Tcl can take a place alongside PHP and Python on the list of famous users of SQLite [http://www.sqlite.org/famous.html]. Since SQLite is now easily more broadly esteemed than Tcl itself, this can only help our public image. The package '''tdbc::sqlite3''' is itself written entirely in Tcl. Unlike the packages so far chosen for redistribution under ''tcl/pkgs/'', it contains no C code. The ''tcl/pkgs/'' harness and the TEA or tclconfig systems it descends from have so far not paid sufficient attention to this case. Including this package will force those systems over time to better support that common implementation case. This can only make package support tools better for more package authors. Also, as support for such packages under ''tcl/pkgs/'' matures, the large collection of packages that have been distributed with Tcl on a more ad hoc basis, including '''tcltest''', '''msgcat''', '''http''', '''platform''', and '''platform::shell''', may be able to migrate to new places under the ''tcl/pkgs/'' framework. This may eventually lead to the ability to selectively take packages from tcllib for redistribution with Tcl. ~ Copyright This document has been placed in the public domain.