 Test-AutoBuild Coding Standards
 ===============================

The following outlines some rules (compulsory) & guidelines (recommended)
for code in Test-AutoBuild.

Rules
-----

The following points are mandatory for all new code:

 * 'use warnings' in every file

 * 'use strict' in every file

 * Debugging & logging goes to Log::Log4perl with a category
   matching the module name

    my $log = Log::Log4perl->get_logger();
    $log->debug("Some thing");

 * 100% POD coverage of methods defined in modules

 * At least 50% code coverage by Devel::Cover

 * Use 'die' instead of 'confess' - auto-build.pl hooks confess
   into the die handler automatically.

 * All code must be OS portable - ie use File::Spec::Functions rather
   than hardcoding '/'

 * The end user should not be aware of the fact that Test-AutoBuild is
   written in Perl. ie
     - Don't display Perl stack traces
     - Don't have print / warn strings containing raw hash refs
     - Don't require knowledge of perl to configure the system

Guidelines
----------

The following points are recommended best practice for all code:

 * Use Class::MethodMaker for creating 'new' method

    use Class::MethodMaker
      new_with_init => 'new';

 * Use Class::MethodMaker for creating simple getters & setters

    use Class::MethodMaker
      get_set => [qw( name label start_time end_time )];

 * 85% code coverage by Devel::Cover (assuming its feasible)

-- End

