blob_development - Blob - The Developer's Guide
Welcome to the Blob project, written by Andreas Kupries.
For availability please read Blob - How To Get The Sources.
The audience of this document are anyone wishing to modify Blob in any way, shape, or form. This can be a maintainer fixing bugs, a developer adding functionality, or patching it to accommodate local cicumstances, etc.
Please read
first, if that was not done already. Here we assume that the sources are already available in a directory of your choice, that it is known how to build and install the project, and that all the necessary requisites are available.
Blob requires the following tools going beyond those needed for build and installation.
Processor for diagram-based figures. See package tklib.
Processor for doctools-based documentation files, i.e. the ".man" files under "doc/". See package tcllib.
This requirement is optional. If a Tcllib providing the package dtplite is installed then kettle will use the package in favor of the external application.
Blob (currently) does not have demonstrations, nor examples.
The directory structure of the sources is as explained below:
The main file of the kettle-based build-system.
Main directory for all documentation.
Based on the doctools package and tools provided by Tcllib.
Main directory for all diagrams and figures used by the documentation.
Based on the diagram package and tools provided by Tklib.
Compiled documentation (manpages and HTML). Part of the repository for
easy access from the repository's web interface (embedded documentation), and
quicker installation (no need to compile during the installation process itself).
Main directory for the test-suite.
Based on the tcltest package distributed with the Tcl core.
Package blob.
Package blob::fs.
Package blob::memory.
Package blob::sqlite.
Our build-system is based on kettle, as already explained in the Blob - The Installer's Guide. Beyond the targets useful for installation it also provides targets aiding developers and maintainers. These are:
% /path/to/blob/build.tcl validate-doc
% /path/to/blob/build.tcl doc
% /path/to/blob/build.tcl figures
The most basic execution of the test-suite is done with
% /path/to/blob/build.tcl test
When the test-suite reports issues with the framework use of the more extended form below is indicated, with a <stem> of your choice. This will generate a number of files whose name starts with the prefix "<stem>.". These will contain extended test logs, details about errors and failures, etc.
% /path/to/blob/build.tcl test --log <stem>
All packages to one of two layers, as shown below:
Note that:
Packages marked with a dashed border are private.
Packages marked with an unbroken blue border are fully public.
The topmost layer contains the various public storage backends.
The other, supporting, layer contains only a single package, blob, the base class for all others.
The dependencies between the packages are very straight-forward:
Blob - The Developer's Guide
Both the package(s) and this documentation will undoubtedly contain bugs and other problems. Please report such at Blob Tickets.
Please also report any ideas you may have for enhancements of either package(s) and/or documentation.
Copyright © 2013-2016 Andreas Kupries
Copyright © 2013-2016 Documentation, Andreas Kupries