Revision history for Perl extension LSF.

0.1  Mon Feb 18 12:10:31 2002
	 First release.
     
0.2  Wed Apr 03 10:03:25 2002
     Second release. Includes LSF::JobManager
      
0.21 Thu Apr 04 10:40:57 2002
     Simplified the test suite. A couple of things have been superceeded by the
     addition of LSF::JobManager (and i still need to write a proper test suite)

0.3  Thu Apr 04 17:20:55
     Now checks the version of LSF at startup. If it is version 4 then the 
     stdout/stderr of the bsub command is swapped. Required module System2 has
     problems when called in a BEGIN block so i have switched to IPC::Run
     
0.4  Sun Apr 08 19:53:02
     Errors can now be thrown via the RaiseError directive / class method.
     The printing of the LSF command line stdout / stderr is separated out
     and controlled by the PrintOutput and PrintError directives / class methods

0.5  Fri Jul 19 11:05:17
     LSF::JobInfo is now defunct. The information obtained from the bjobs 
     command is expunged from the LSF logs far too quickly to be reliably
     available in a long running batch environment. Replacing it is
     LSF::JobHistory which calls and parses the bhist command.

     Removed the jobs_with_status method from the LSF::JobManager module since
     this didn't have a good rationale behind it and the exit status is now
     obtainable from the LSF::JobHistory object.

     Added a clear method to the LSF::JobManager class so that the jobs in a 
     job manager can be cleared and it can be reused.

     Added a history method to the LSF::Job class so that an LSF::JobHistory 
     object can be obtained for a job.
     
     Removed the info method from the LSF::Job class
     
     The LSF::JobManager->wait_all_children method now uses LSF::JobHistory to
     pre-cache the results of the bhist command for each job. There are hugely 
     significant performance benefits to calling a single bhist command line for
     all jobs as opposed to once for each job.     
     
0.6  Thu Aug 15 12:58:10
     Added a test for the presense of the LSF executables into Makefile.PL
     This way both naive users and the automatic testing service on cpan 
     won't try to 'make' the module without the executables being present.
    
0.7  Tues Oct 10 9:28:44

     Redesigned the LSF::JobManager::wait_all_children method. There was a flaw 
     in that you could move each job in the manager to the top of its queue 
     (via the LSF::Job::top method) but the pseudo-job that block waits for 
     these to finish could not also be moved to the top of the queue. Thus in a
     queue with a lot of non-dependant jobs also submitted the pseudo-job would
     have to wait for all of these to complete before it did.
     The workaround is a new method LSF::Job->submit_top that automatically 
     submits a job and then moves it to the top of its queue.

     Added a work around for another flaw. If you submit a LOT of jobs then the
     dependancy expression generated by LSF::JobManager->wait_all_children will
     be greater than the shell arg limit and the command line will fail.
     LSF::JobManager->wait_all_children now can accept a single argument which is
     a dependancy expression. This is used in place of the autogenerated expression
     Thus jobs can be submitted with a Job Name flag ( -J jobname ) and then a dependancy 
     provided that is for all jobs with that name e.g. "ended(/jobname*)" 

     Added a second syntax to LSF::JobHistory->new. If the first argument is an array ref
     then this is taken to be an array of parameters. All other arguments are taken to be
     job id's. The bhist command line then constructed is passed to xargs and the job id's
     are passed to it via stdin. This gets around the shell arg limit problem when 
     LSF::JobManager tries to query the exit status of its contained jobs.
     
     Removed a spurious 'use LSF::JobInfo' from LSF::Job that was causing it to fail in
     the 'make test' stage.
