## Features to be implemented

Doubtful tasks:
 - Allow the 'only-tail' output, without any storage. The number of lines
   or bytes should be choosable.
   - No program should give that big amount of output, so it cannot be stored.
 - What happens if the output disk is full? Should be decide a good behaviour
   in that situation?
   - It's up to the running program; ts gives the descsriptor to it.

Future:
 - Use a better system than mkstemp() for finding output files, so we can add
   .gz to the gzipped outputs.
v1.0.3:
 - Fix crash using -E, buffer overrun
v1.0.2:
 - Fix race at server start
v1.0.1:
 - Fix possible buffer overflow (Alexander Inyukhin)
v1.0:
 - Respect TMPDIR for output files.
v0.7.6:
 - Add -k (send SIGTERM to process group). Replacement for "kill -- -`ts -p`".
v0.7.4:
 - Fixing a bug about dangling processes, in case of using "ts -r".
v0.7.3:
 - Add option '-N' to set the number of slots required for a job to run.
   Proposed by Sergey Litvinov.
v0.7.2:
 - Add option '-E', to keep stderr apart. It goes to "`ts -o`.e".
v0.7.1:
 - Implement check of ownership of the socket. Security bugfix.
v0.7.0:
 - Implement blocking of enqueuing still allowing other queue operations.
 - Add the -B parameter, that will not block in case of queue full
v0.6.6:
 - Fixed the feature TS_MAXCONN, which collided with the protocol version check.
v0.6.5:
 - Fixed a problem that -c and -t, if their pipe was broken, they remained.
 - Fixed a problem (maybe some copypaste once?) on -l, that created always an error msg.
 - Adding the possibility of limiting the amount of ts connections.
v0.6.4:
 - Fixed a bug breaking -c and -t.
v0.6.3:
 - Fixed a bug on -c and -t.
 - Adding first support for -D (run depending on any job)
 - Adding version control on the protocol.
 - Making the ts server chdir to the socket directory, so it doesn't annoy on umounting.
v0.6.2:
 - Fixed a bug on -w
 - Making -S return the number of slots
 - Fixed a bug on clients dying (making the queue not usable anymore)
 - Making an error file different for each socket ($TS_SOCKET.error)
 - Making ts not to log on the error log file constantly.
 - Adding information on the exit status in -i
v0.6.1:
 - Adding support for the TS_SLOTS env variable, to set the number of slots of
 a starting server.
 - Removing references to /usr for nix.
 - Bugfixing (fixed error handling, -m)
v0.6:
 - Adding multi-slot running capabilities. Big changes in the job management.
 - Bugfixing (-t, -c and -r, mostly)
v0.5.4.1:
 - Moving out 'debian', so the Debian packagers can use their systems
 comfortably when packaging ts.
v0.5.4:
 - Bug fixing (-t, actions to last job ids, -w, ...)
 - -c waits for the job end. Like -t, but it shows the whole output.
v0.5.3:
 - Fixed: Only one waiting ts process ('-w' and '-t') could be used for each
   jobid. Now, many.
v0.5.2:
 - Fixed the '-r' without jobid, which should remove the last added job.
 - Fixed some messages for '-t' without jobid (it said something about job -1).
v0.5.1:
 - Fixed the new '-t', which had several problems
v0.5:
 - Several bug fixes (related to -w, -r and -L)
 - ts creates sessions, so "kill -- -`ts -p`" can be used
 - New implementation for '-t', which exits when finished, similar to '-w'
v0.4.2:
 - Added labels with -L, in order to distingish commands better on queue list.
 - Added per-job information, readable through -i, configurable through TS_ENV
 - Added dependant enqueuing (-d). Conditional run based on last job result.
v0.4.1:
 -* Bugfix: removing a job now doesn't leave the job's ts client alive
 -* Bugfix: killing the running job's ts client now doesn't block the
 	queue forever
 -* Bugfix: now using setsid() in order to unlink ts from the bash session.
v0.4:
 -* Allow killing 'ts' in a nice way.
   - It's good, because a spawner of 'ts' may want to kill it.
 -* If the server is horribly killed (it may happen as this is software), store
   the task queue in a file, so it can be recovered.
 -* Store the 'times()' for the run tasks.
v0.3.2:
 -* Fixed the $POSIXLY_CORRECT bug finally
 -* Slightly better makefile and man page
 -* The server should never run out of handles - simply block the client
 -* Added an error reporting system (in ts(1) - BUGS)
 -* SIGPIPE is ignored in the ts processes
v0.3.1:
 -* Fixed a bug with $POSIXLY_CORRECT being passed to the jobs. This break the
   gentoo emerge jobs.
 -* Fixed a posix compatibility problem for BSD.
 -* Fixed - the fd 3 is no more opened for the task processes.
 -* Added a man page and fixed the makefile.
v0.3:
 -* Allow sending the output by mail, or passing it to a program if an
   env var defines it.
 -* Allow gzipping the output
 -* Add a flag for swapping two jobs in the queue (-U id-id)
 -* Limit the jobs in 'finished' state according to $TS_MAXFINISHED
 -* Output the jobid in stdout.
 -* Status check with -s. Return the state in stdout.
 -* An env var may define the socket path.
 -* bash is no more used for running commands. Commands are run as is.
v0.2.3:
 -* '-nf' doesn't leave the job in 'finished' state
 -* Fixed a bug in -r
 -* '-u' implemented. For altering the queue order.
 -* '-w' returns the waited errorlevel
 -* '-o' returns the output file of the last job
v0.2.1:
 -* Fixed a bug in the wait-notifications.
 -* Improved the compilation, including almost all the proper files.
v0.2:
 -* Add a '-h' for help
 -* Have a nice list output (correctly formatted)
 -* Allow killing the running job (Allowed with -p easily)
 -* Allow tailing any job
 -* Allow removing a job from the queue
 -* Allow waiting any job
v0.1:
 -* The clients should _always_ go into background. *
 -* Allow to receive more parameters in the command line, and them be joined
   with spaces for the command passed to bash.
 -* There should be no limit on command line parameters.
 -* There should be no limit on lines outputed by "-l".
 -* Get the list of finished jobs, with its errorlevel.
 -* The list of finished jobs should be clenead on demmand "-c".
 -* Output to a file should be possible. Use mkstemp().
 -* There should be no limit on output filename.
v0.0.1:
 -* add tasks, and they run one after another. Input closed. Output in stdout.
