Files
Mozilla/mozilla/webtools/tinderbox2/src/lib
bear%code-bear.com 58bafbdc2e Patch by Laurence Darby to fix typos and other grammatical errors
r=timely
bug 346076


git-svn-id: svn://10.0.0.236/trunk@204931 18797224-902f-48f8-a5cc-f745e15eee43
2006-07-27 16:31:07 +00:00
..

The files in this directory follow several conventions:

  * Each .pm which has multiple implementations (optional features or
    alternate implementation) has a directory of the same name as the
    module.  The alternate/optional implementations are found in that
    directory.

  * Configuration of the system need only take place in the
    TinderConfig.pm file and by variable substitution at the time the
    Makefile is built.

  * Most users should be able to configure the system by editing only
    the files:

        TinderConfig.pm
        TreeData.pm

    and perhaps the file:

        FileStructure.pm

  * More advanced users will find that most of the changes they need to
    make are parameterized within the individual modules.  The constants
    coded in TinderConfig are also coded within the modules so that you
    need not use TinderConfig if you prefer not to.  However not using
    TinderConfig this will require you to perform a CVS merge to update
    your sources from the master CVS repository.

  * Lib files have the following structure:
      - A mode line telling emacs the language the code was written in.
      - A brief discription of what is found in this module
      - CVS keyword comments, for tracking after code is deployed
      - The Mozilla Public License
      - Any uses which will be required by the module, these are 
        split into two groups where the first group are the standard
        Perl modules the second group are Tinderbox2 specific modules
      - Configurable parameters
      - The actual code of the module

  * There is no code run at the time of loading except for the setting
    of static variables and the calling of main::require_modules(@IMPLS)
    to load implementation specific modules defined by a string.


The library files in this directory:

  MailProcess.pm
      All the functions which are used by more than one mail
      processing program.

  Persistence.pm
      An abstract interface to save the data structures to
      disk and load the data back.  An effort is made to ensure files are
      updated atomically.  This interface allows us to easily change the
      perl module we use to store the data (Data::Dumper, Storable, etc).
      You will have choices between Data::Dumper which is slow but text
      files allows great debugging capabilities and Storable (not yet
      implemented) which is much faster but binary format.

      Testing is ongoing into this function.

      Data::Dumper module has an implicit eval and should not be used
      for security sensitive issues.

  Utils.pm
      General purpose utility functions.  Every project needs a
      kludge bucket for common access.

  Summaries.pm
      Generate the summary pages which show the current
      state of the tree in various formats.  Few (if any) of these pages
      make use of the popup window because we want the largest audience
      possible to view them.

  TinderDB.pm
      The persistant storage for Tinderbox2.
      This package allows the user to define which features (columns of
      the status table) are available and provide a consistant interface
      to store/load the data and render the HTML to display the data.

      This interface controls the table columns values:
          - Time Column,
          - Version Control (VC) checkin lists, 
          - Notice board display,
          - build display (colored squares)

  TinderHeader.pm
      The persistant storage for Tinderbox2 administrative settings.
      This package allows the adminstrator to set and retrieve their values
      for the status pages.

      This interface controls the scalar values:
          - TreeState,
          - Build,
          - IgnoreBuilds,
          - MOTD,
          - Images

  VCDisplay.pm
      Describes how Tinderbox2 should prepeare URLS to show the source
      tree allow VC queries.  Currently there are two implementations
      one for users of the bonsai system (cvsquery, cvsguess, cvsblame)
      and one for users who have no web based access to their version
      control repository.  Future plans include a VCDisplay module for CVSWeb.

  PVCSGetData.pm
      Helper code to isolate the calls to oracle for PVCS