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.