Osh Release History

Version Date Description
0.1 October 2004 Each osh command ran as a separate process. Pickling was used to transmit objects between commands.
0.2 December 2004 Complete rewrite. Introduced piping of objects internal to python process, denoted by '^'. Everything after "osh" on the command line is concatenated into a single string which is then parsed. Introduced tpg parser to parse command line.
0.3 May 2005 Added remote execution syntax and commands (@, [...], install, installosh, copyfrom, copyto).
0.4 September 8, 2005 Lots of polishing and bug-fixing based on day-to-day usage in helping to develop the Archivas cluster, ArC.
0.5 October 25, 2005 Cleanup for first public release. Added timer command, process objects and the processes function.
0.6.0 October 31, 2005 Cleaner integration with Python functions. Previously, functions in f, select, etc. received a single argument, typically a tuple or list, and elements were obtained by subscripting. Now, the elements of an incoming tuple or list are assigned to arguments. (If you want to use a tuple argument, then prefix the argument declaration with '*', just as in ordinary Python.) Also deleted spread command, replacing it with expand, which is more general.
0.6.1 November 15, 2005 Bugfix release. sql command no longer hides error messages from database system.
0.6.2 December 15, 2005 Bugfix release. Fixed a number of bugs in the squish command.
0.6.3 February 15, 2006 Bugfix and minor feature release. Fixed error handler to not propagate errors downstream. Added -t option to out. Much improved ctrl-c handling.
0.7.0 April 26, 2006 Major upgrade:
  • Added an API: osh can now be used from within Python.
  • Nodes of cluster can be configured as a list of addresses as before; or as a map in which the key is a logical name and the value is the address.
  • Generalized expand command.
  • Modified options of window command.
0.7.1 October 5, 2006
  • oshtestssh is now much faster. It checks all nodes in parallel.
  • Fixed bugs and error reporting in the sql command.
  • Cluster configuration can now specify a default database for each node of the cluster, (see documentation for sql command).
0.8.0 January 8, 2007
  • Restructured so that top-level modules are in the osh package.
  • Osh configuration file now supports slice notation, (e.g. osh.remote['cluster-123'].user = 'root').
  • Added version command.
  • Added imp command.
  • Added py command.
  • oshapi errors are now reported as exceptions, not output on e stream. Better fit for a python script. This also enables osh() to return o stream output in a list.
  • New oshapi command, return_list() to return o stream output in a list. Most uses of oshapi no longer need to handle o and e stream outputs via handlers.
0.8.1 April 15, 2007
  • Added cat command.
  • Improvements in error handling, especially remote errors.