The changes in this release are summarised below:
1. Simplification of the whole Longbow library. This means lots of changes have
been made to the source code and thus developers making use of Longbow in
their code might be affected, those that simply wrap the executable will be
largely unaffected by this, but may be affected by the below changes. The
main change as part of the API re-write is that the hosts and jobs
structures have simply been merged into a single structure called jobs, the
library is now much more simple to use since all parameters are passed
around in this single structure, so no more checking which data structure a
parameter belongs to.
2. Extend informative error messages to all schedulers. This is issue is all
about trying to get information from the scheduler as to why a job
submission has failed.
Error messages from PBS/Torque now passed to the Longbow logging system.
Error messages from LSF now passed to the Longbow logging system.
Error messages from SGE now passed to the Longbow logging system.
Error messages from slurm now passed to the Longbow logging system.
Error messages from SoGE now passed to the Longbow logging system.
Fixed vague error that occurs during staging if bad path is used.
3. Longbow can now detect queue size limits dynamically. Machines such as
ARCHER that only allow a certain number of jobs in the queued state at any
one time would mean users have to use multiple Longbow sessions to do larger
numbers of jobs. This improvement now means that a single Longbow instance
can now submit a number of jobs larger than this limit and Longbow will hold
back any that cannot get onto the queue in the first submit instance, as
jobs complete, further jobs will be submitted.
4. A new recovery mode has been introduced that can recover a Longbow session
if for some reason it gets disconnected. See documentation for more details
on this.
5. Removal of the logging module and explicit error handling configuration
within the top level of the library, this issue has ramifications mainly for
developers using Longbow within their applications, users of Longbow won't
be affected much.
The console output messages have been aligned to 80 character widths for
portability (users might notice this).
Removal of the internal logging module from within Longbow (affects
developers).
Logging for Longbow is now configured and instantiated at the entry point
of the application (affects developers).
For developers using Longbow as a library now have the ability to specify
how logging happens themselves each Longbow module logs to its own log,
these can then be controlled by the developer allowing for deeper
integration (affects developers).
The top level longbow method main() has had all unnecessary code and
parameters stripped out, this has all been moved to the application entry
point. This now provides developers with a very high level integration point
for simple integrations (affects developers).
6. Bad comment on the configuration method fixed (developers only).
7. API comments have been updated to be more accurate with latest changes.
8. Fix for unicode/byte string problem between Python2.x and Python3.x which
would garble outputs from subprocess.
9. Rename the scheduler plugin "sge_arc2" to "soge" (Son of Grid Engine).
10. All Longbow command-line arguments now support both GNU standard and non
standard forms for convenience (eg. --version and -version would be valid),
although future versions might phase out the non-standard -param in favour
of --param but keeping the single letter -h, -V etc as these are part of
the standard.