Revision history for Perl module TaskForest

1.14 Thu Jan 22 2009

A new config option (and command line argument) was added.  The
ignore_regex option instructs the system to ignore any Family files whose
names match the regular expressions specified by this option.  It's
primarily used to ignore .bak and ~ files left by text editors.  Also
fixed a bug so that invalid file names are excluded.

1.13 Mon Jun 02 2008

The behavior of recurring jobs that are scheduled in a foreign time zone
was not well defined.  Now, the 'start' and 'until' of recurring jobs are
always based on the most specific timezone of the job. 

1.12 Sun Jun 01 2008

A border-condition bug dealing with foreign timezones crossing a date
boundary was fixed. 

1.11 Wed May 28 2008

Minor errors in the documentation and logging
were fixed. A test case that was returing
false negatives was made more robust. 

1.10 Mon May 26 2008

Syntax error checking was added to the Family
file parser.  Optional logging of STDOUT and
STDERR is now possible.  The mark and rerun
commands can now act on just the job specified,
or on all its dependents or on both - the job and
its dependents.  Finally, a config file can now
be used in lieu of command-line options or
environment variables. 

New options are:

--log

--config_file

--chained

--log_threshold

--log_file

--err_file

A sample config file can be found in the main
directory as well as in the pod for TaskForest.

Please see the TaskForest pod for more details:
perldoc TaskForest
OR
man TaskForest

Because of these changes, there are two new
dependencies:

Log::Log4perl version 1.16 or higher
Config::General version 2.38 or higher

1.09 Sun Apr 27 2008

    Summary:
     
    Two new scripts were added: 'rerun' schedules
    A job to be rerun, and 'mark' marks a
    previously job as Success or Failure.  A new
    'chained' option was added to the definition
    of repeat jobs, and a '--collapsed' option was
    added to the status script.
    
    Details:
    
    1) The 'rerun' script makes a job available to be
       rerun, regardless of whether or not it ran
       successfuly.  It does this by renaming the
       job's log files from FF.JJ.* to
       FF.JJ--Orig_n--.* where n is an integer that
       starts at 1 for the first rerun, and is
       incremented by one at every rerun.
    
    2) The 'mark' job marks a job as 'Success' or
       'Failure', regardless of whether or not it ran
       successfully.  It does this by renaming the job
       rc file from FF.JJ.x to FF.JJ.0 (in the case of
       Success) or FF.JJ.1 (in the case of Failure).
       If the job's status is already as requested, a
       warning is printed, and nothing is done.
    
    3) By default, repeat jobs (those that have the
       'every' and 'until' options) have only one
       dependency - their time dependency.  They are
       not dependent on each other.  In retrospect,
       the correct behavior should have been to make
       the jobs also dependent on each other.
       Consider the case where a job is to run every
       hour, but for whatever reason, taskforest does
       not run until half-way through the day.  This
       would cause half of the jobs to run at the same
       time at the first opportunity.  The new
       'chained' option makes the repeat jobs
       dependent on each other.
    
    4) Also related to repeat jobs: the new
       --collapsed option to the status command
       prevents repeat jobs that are in the 'Waiting'
       state from being displayed.  This is especially
       useful when you have a job scheduled to be run
       once every minute, and it's only 8:00 a.m.  You
       probably wouldn't want to see 960 entries when
       one would suffice.
    
1.08 Mon Apr 07 20:52:00 2008
     A couple of the files required for the most recent test case was
     missing from the distribution.  Added those files to the
     distribution.  No code changes are present in this distribution.
     
1.07 Sun Apr 06 20:50:00 2008
     A major bug was fixed in this release. Long-running jobs (that ran for
     longer than the wait time, or longer than the time between two
     invocations of taskforest) were not recognized as such.  This caused
     the jobs to be marked as 'Ready' and not 'Running', causing them to
     be run again.  All users are urged to upgrade to this release and
     make sure to use the current version of the 'run' wrapper.
     
1.06 Fri Apr 04 22:00:00 2008
    - fixed a bunch of minor bugs
      - implement --help functionality
      - added $VERSIONS and pod to every .pm file
      - got rid of extra call to localtime
      - removed the default_timezone command line option
      - got rid of redundant regex match for parens in job name
      - removed unused variable $forest from Family::readFromFile
      - renamed $this_jobs_dependencies to $this_jobs_time_dependencies
    - enhancements
      - refactored Family::readFromFile into smaller functions
      - use croak instead of die
      - Added more detailed info into the pid file
      - Added more test cases
      - Made the Family->display() output prettier
      - Added the StringHandle and StringHandleTier class to
        make testing easier.
    
1.05 Fri Mar 28 22:00:00 2008
    - added more test cases
    - fixed all known bugs
       Family::readFromFile makes a Family no longer current        
       Family::readFromFile now accepts both single and double quotes.  
       getLogDir throws an exception if the mkdir fails            
    - Added a DESIGN document
    
1.04 Sun Mar 23 20:56:00 2008
    - added a lot more documentation to the man page and the code
    - gave files svn:keyword properties for Date and Revision
    
1.03 Sat Mar 22 08:29:00 2008
    - allow '-' within the job_dir, log_dir and family_dir

1.02 Sat Mar 22 07:22:00 2008
    - fixed bug where options weren't being read from the command line properly

1.01 Sat Mar 22 01:05:00 2008
    - added bin files to MANIFEST and fixed test

1.00 Thu Mar 20 20:39:24 2008
    - original version; created by ExtUtils::ModuleMaker 0.51