
Lots of TODOs are directly written as comments in the source.

* more backends (not just ssh/rsh, what about telnet or other password
  authorizing tools? what about ftp and similar non-remote-shell
  environments?)
  
* user defineable functions used for hostlist sorting which enables
  users to select hosts from the hostlist based on parameters such as
  load, uptime etc. Could be done by means of a "conditional include"
  operator for the group member list, e.g.: (expr)hostname while expr
  must be true for the hostname to be included in the group.
  
* Maybe merge user config into site config

* Do format expansion on command strings as well! What kind of
  expressions could be useful?

* maintain open connection in RemoteObjects. This would raise
  issues like terminal handling, error reporting, keeping
  the connection alive (or re-open after a timeout).

* How should we react if a remote program requires input from the terminal?
  time out? ask the user? advise the user to not let this happen?
  Idea: collect all input requests (filehandles? Popen3 objects?) and step
  through all of them one after another to give the user the ability
  to interactively handle each request.

* accumulation_window_size parameter.
  This is the number of seconds tentakel should wait for other hosts with
  exactly the same output. The output of the hosts that fall into the same
  window of time is printed in one format string. When set to zero it's
  guaranteed that every host expands its own format string. Higher values
  (like, 5s or so) mean a greater chance for tight output but also mean
  that one has to wait that long for the output.

* do not only accept quoted strings in the configuration file. At least
  integer and float values should be allowed.

* locale forwarding: set locales on hosts to the same value. (probably
  taken from the environment and/or user-definable).

* Windows compatibility

* Write regression test for execwrapper

* Write regression test for dynamic host list generation

* From Derek Scherger:
	1. rename the "listgroups" command to simply "groups" to be consistent
	with "hosts" (good idea)
	2. change both groups and hosts to list in sorted order (sent patch)
	3. changed displayAll in remote.py to list output in sorted order (I'm
	not entirely sure about my "solution" here though. so have a closer
	look at this one.
	4. Better error handling (to not kill program) (very good idea)

* Color codes:
	* in format strings
	* depending on output from stderr

* All configuration parameters should be available from the command line.
  It should be possible to specify an on-the-fly group at the command line.
  An example would be:

    tentakel -G node1,node2,node3 -o method=ssh -o format="..."

  If you select a group from the config file the -o option would override
  the values of the group definition.


Resources:

  - http://www.onjava.com/pub/a/onjava/2003/11/19/exceptions.html
