Lunch RoadMap

Odd minor version numbers (such as 0.1.x, 0.3.x, ...) are unstable development branches. The even ones (0.4, 0.6, ...) are stable and should be well supported.

Todo =
For Version 0.4

Important =
Accessory ===
  • add buttons: "add command" (plus its dialog) and "remove command".
  • improve automatic names for commands
  • move logging to the right directory - not in /var/tmp
  • accessory: Use twisted.python.reflect.prefixedMethods for on_* methods.
  • Deprecate title, and use identifier.
  • Write a better documentation for add_command. Put in on the wiki, with versions as titles.

Done

  • DONE: add/remove commands live
  • DONE: get the return value of the command once done
  • DONE: Update GUI to allow it to detect if there are new processes added
    • DONE: Do not copy commands in the GUI App class
    • DONE: Poll commands, or better, use a command_added signal
    • DONE: Remove slot for state_change signal when a slave has been removed.
  • DONE: add the DONE, FAILED and GAVE UP states
  • DONE: improve reports on the state of processes
  • DONE: flush more often stdout/stderr to files
  • DONE: respawn after a little while instead of giving up
  • DONE: Do not ask confirmation to exit when no process is running.

For Version 0.6

  • Multiple process per Slave.
  • Killing order.
  • Post-Killing commands. (teardown)

Done =
Version 0.2 ==
  • DONE: Use Trac with Mercurial
  • DONE: Split lunch in 4 files.
  • DONE: Port to Twisted. Drop multiprocessing. See http://twistedmatrix.com/trac/browser/tags/releases/twisted-9.0.0/twisted/runner/procmon.py
  • DONE: Get rid of the former lunch 0.1. Split the Master. Keep the slave in one file, for easier installation.
  • DONE: Use key=value pairs for env, drop JSON.
  • DONE: Drop sig.Signal in slave.
  • DONE: Split messages, use the first word as key, and the leftover as a line to pass to the right on_* method.
  • DONE: Use bash -c exec to run commands.
  • DONE: Remove a need for the lunch/constants file.
  • DONE: Re-implement starting order, with weight filtering from lowest to highest.
  • DONE: master: Make that master does not kill Slave when its child is dead. (configurable)
  • DONE: master: Simplify master states to 4: STOPPED, STARTING, RUNNING, STOPPING.
  • DONE: master: Use on_* callbacks style for the Slave Process Manager as well.
  • DONE: master: Use send_* methods style for the senders on both side.
  • DONE: master: The order of commands should be automatically ordered with calling order.
  • DONE: master: Depenmdencies: when one slave dies, kill all slaves who depend on it, restart them all again - if needed.
  • DONE: master: Wait for the greetings message, not the connection to the process stdin.
  • DONE: slave: Make sure each process is dead. Poll with a timer and use signals if needed.
  • DONE: slave: use a kill_delay option, with a default of 1.0 second.
  • DONE: master: Separate log for each slave on the master's side.
  • DONE: GTK+ GUI for the Master Lunch.

lunch_0-2_classes_v2.png - Classes diagram for version 0.2 - version 2 (125 kB) Alexandre Quessy, 2010-01-05 16:44