0.71 - added support for subgroup (collection of stages that can be used
       in dependency relationships
	 - made Super, Sub and SuperSub roles to contains attributes and methods
	   common to two or more of Group, Subgroup, and Stage
	 - stage names now contain the parent subgroup names, so there can be
	   stages in different subgroups that have the same name.  This makes
	   is possible to easily create a subgroup for a pipeline without
	   having to give unique names to all of the stages that might be
	   created in any other pipeline (or multiple copies of the same pipeline)
	   that might be in the same job
	 - added pre_req and dep handlers to stage and subgroup methods
	   this usually makes it unnecessary to use a separate add_deps call
	 - renamed the skipstage file directive to skip (since it can be used
	   to skip subgroups as well)

0.70 - fixed bug in handling multiple out-req files from the same stage

0.69 - converted rename files directive to use new HPCI::File methods

0.68 - ouch Path::Class::File method resolve throws an exception if the file
       file does not exists, instead of just resolving any synlinks, etc.

0.67 - bug in 0.65 for delete files, fully tested now

0.66 - bug in 0.65 fix

0.65 - allow files arguments to be Path::Class::File or similar objects that
       stringify to the pathname

0.64 - initial code for unshared file support (not yet working but causes no bugs)
     - skipstage testing was losing the per-test pre list, only using the
	   global list
	 - cleaned up some grammar and text in diagnostics

0.63 - added code stage checking to skipstage.t
     - fixed timestamp checking in skipstage test

0.62 - finished group->add_file_params support: added test, fixed uncovered bugs
     - removed some debug code from checksum test

0.61 - added initial checksum support
     - handles in and out files
	 - delete and rename still to come
	 - need to add tests to ensure that relative and absolute files are
	   resolved smoothly
	 - copy files structure to internal _use_files structure
	   - turn pathnames into HPCI::File objects
	   - clean up all the alternative structure layout options
	 - squashed a Heisenbug in t/20-skipstage.t

0.60 - added HPCI::File class for managing file info
     - reworked stage->files attribute to use file class info
	 - added storage_class and storage_classes to group and stage to select
	   class for files
	 - added ENV HPCI_LOG_NO_STDOUT and HPCI_LOG_NO_FILE to suppress logging
	   to stdout or to the log file

0.59 - added test for the various files attributes (skipstage, delete, rename)
     - fixed some bugs in the handling of skipstage and rename

0.58 - made HPCI::ScriptSource always be included - doesn't hurt if not used
         and it allows users to explicitly add wrapping to their stage
         execution scripts
     - changed logic around out file testing to add a separate acceptance
         method, so that special copying actions can be handled after validity
         checking has finished

0.57 - removed duplicate code for timestamp testing, fixed retain copy
     - partial support for post stage actions in generated script

0.56 - finished adding rename to files attribute handling

0.55 - check in->req files
     - added skipstage files attribute, and use it to allow skipping stage
         execution
     - added delete and rename files attribute, applied after stage succeeds
     - coded the file actions (exists, timestamp, delete, rename) with names
         that identified where they are being done, allowing drivers to
         over-ride the actions in different ways in different contexts

0.54 - added group optional attributes - connect, login, password - to be
       available for clusters that require accessing with a network connection
       or require authorization.

0.53 - added file_system_delay attribute to allow shared file system to have a
       delay before a change made on another node is sure to be visible
     - use this delay when checking that required output files have been
       update

0.52 - script file was being generated before all of the stage roles had been
       loaded
     - fixed some tests

0.51 - Added code attribute to stage as atternative to command
     - fixed creation of script_file to not occur until it is requested
         - would fail if anyone was using the command creation methods to
           build the command after the stage was created
         - was creating the script_file even if code was provided instead of
           command

0.50 - Documentation for regexp add_deps
     - fixed some add_dep -> add_deps typos

0.49 - Added regex support for add_deps method
     - Added documentation for log_no_stdout/log_no_stderr from 0.48

0.48 - Added log_no_stdout and log_no_file attributes to suppress writing
       the log either to stdout or to a file.  The default is to continue
       writing both.
     - Fixed a message that was going explicitly to stdout instend of being
       logged.
     - Removed a test from t/19-env_key.t which would break if the BoutrosLab
       local config is being used. That config setting is a reasonable one
       for other locations to set (making max_concurrent have a non-zero
       default), so the test is no worth keeping around.

0.47 - Improved docs for verify_completion_state
       - added state argument to verify_completion_state callback
       - allows callback to only test when the run passed or failed
       - clarified that undef return would leave state unchanged
     - Added env_keys list of named keys, and env_key_specific hashes of
       attributes.  The env_key_specific contains hashes of attribute values
       to be merged into the new object attribute list (like cluster_specific)
       if the key is in the env_keys list.

0.46 - SystemLogger - moved the commentary from STDERR to log
     - changed log status of some messages from info to warn/debug
     - converted some STDERR messages to use log
     - added some missing build_requires for testing

0.45 - SystemLogger - moved the commentary from STDERR to log
     - added files attribute to Stage
     - added checking files attribute to ensure that required output files
       were generated before accepting a stage as passed

0.44 - SystemLogger was not in MANIFEST
     - added .perlcriticrc to quiet BoutrosLab local settings

0.43 - added SystemLogger.pm module
       - not used by default
       - available by request (esp. by LocalConfig)
       - logs return status in a global location
         - can be used to check for recurring problems like failing node
           hardware
       - initialization of default_attributes was broken

0.42 - added verify_completion_state callback to allow user code to decide
       whether a stage finished successfully, should be retried, or failed
       independently of the stage's exit status
     - added final_job_state to stats to record pass/fail/retry decision
     - removed modules_to_load from tests - they are BoutrosLab specific
     - renamed t/01-templating-role.t to t/01-templating_role.t for consistency
     - fixed a test title
     - added test for forced_retries and fixed it (was broken)
     - removed unused line of code from ScriptSource - would fail if local
       config did not invoke HPCI::ModuleLoad

0.41 - made stage_dir the normal name for the stage creation attribute
     - added stage_dir_name to have the created stage_dir be created under
     group_dir

0.40 - rearranged retry logic
       - added should_choose_retry and choose_retries attributes
         - allows user-provided function to decide whether a retry
           should be attempted after a stage fails (with a limit to
           the maximum number of retries, default 1)

0.39 - Doc updates

0.38 - cleanup of HPCI.pm pod
     - minor typo bugfixes noticed in pod cleanup, no-body had actually
       tripped over them yet

0.37 - add force_retries attribute to stage objects to force a specified
         number of retries before deciding that a stage has really failed
     - some cleanup of pod, more yet to come

0.36 - tighten timeout processing to reduce critical section holes
     - protect against $? being over-written
     - added 'stage_defaults' attribute to group - a hash that will be used as
         attributes for every stage that gets created
     - added 'cluster_specific' attribute to both group and stage creation
         - a hash indexed by cluster type
             - if there is an entry for the actual cluster type
                 - that subhash will be used as attributes
             - other non-matching cluster types will be ignored
         - allows same code to be used for multipe cluster types more easily
     - added a default_attrs hash to HPCI for config over-rides to use

0.35 - added HPCI::LocalConfig support code to allow local configuration
     - cleaned up module dependencies, removed some use statements that are no
     longer used
     - refactored _register_status and _collect_job_stats to support drmaa in
     SGE
     - cleaner (non-Dumper) output for stage status
     - added required modules to Build.PL

0.34 - made dump of job status info more readble

0.33 -
     - use 'method' instead of 'sub' in parameterized roles - the doc says
         that this is required, although it seemed to be working before
     - added support for abort for cases when the driver can identify a
         situation in which the job was not attempted to be run
     - added direct support for kill, killsignal rather than leaving them
         tangled in exit_status and subject to local interpretation
     - rearranged a number of methods and modifiers so that they could be
         overridden in drivers smoothly
     - removed default from HPCI::ModuleLoad, made it an empty array that can
         be loaded by a config wrapper module
     - added support for extra roles to be provided for local environments
         and/or specific cluster types.  (e.g. ModuleLoad might be selected
         for labs that use it for all cluster types)
     - added ScriptSource extra role to allow a local environment to request
         adding a line at the beginning of the generated script for each run
         to source necessary config stuff
         It defaults to an empty array that can be provided by a config
         wrapper module
     - reordered stuff relating to running, needed to provide alternate
         control for different run styles in drivers (in particular, using DRMAA
         to manage SGE)
0.32 - major cleanup of existing tests
     - more tests added
     - bug fixes
       - mkdir initialization handling
       - timeout termination handling
       - failure handling choices all work (skip_deps, skip_all, ignore)
     - enhancements
       - made dep/deps and pre_req/pre_reqs be synonyms for add_deps method
         - both accept a scalar or list
       - added ChangeLog and README

0.31 - initial CPAN release
0.30 - separate SGE into an independent module preparing for CPAN release
0.01 .. 0.25 - BoutrosLab internal releases
