make self-daemonizing command synchronous
[god.git] / History.txt
blobbb577fa59e674755824ac2ecc2139af3d532d52b
1 == 0.5.0
3 * Major Enhancements
4   * Implement lifecycle scoped metric to allow for cross-state conditions
5   * Add TriggerCondition for conditions that need info about state changes
6   * Implement notification system
7   * Add Tasks (a generalization of Watches) to do non-process related tasks
8   * Add example init.d file in GOD_INSTALL_DIR/init/god
9   * Add human readable info to conditions (and make low level log lines debug)
10 * Minor Enchancements
11   * Allow EventConditions to do transition overloading
12   * Report errors during god startup instead of failing silently
13   * Make transition block optional (default to Always condition returning true)
14   * Better usage info for `god --help`
15   * Report usage when just `god` is run
16   * Explain what's going on when attempting to rebind to an in-use port
17   * Add -b option to god binary to auto-bind to an unused port
18   * Add `god quit` to stop god without stopping any tasks
19 * New Conditions
20   * Flapping < TriggerCondition - trigger on state change
21   * HttpResponseCode < PollCondition - trigger on http response code or timeout (thx scott becker)
22 * New Contacts
23   * Email < Contact - notify via email (smtp, sendmail)
24 * Bug Fixes
25   * Fix abort not aborting problem
26   * Fix -p option not working for god binary
27   * Fix God.init not accepting block (thx _eric)
28   * Fix SIGHUP ignore (thx _eric)
30 == 0.4.3 / 2007-09-10
31 * Bug Fixes
32   * fix Process#alive? to not raise on no such file (affects `god terminate`)
34 == 0.4.2 / 2007-09-10
35 * Bug Fixes
36   * fix netlink buffer issue that prevented events on Linux from working consistently [dkresge]
38 == 0.4.1 / 2007-09-10
39 * Bug Fixes
40   * require 'stringio' for ruby 1.8.5
42 == 0.4.0 / 2007-09-10
44 * Major Enhancements
45   * Add the ability for conditions to override transition state (for exceptional cases)
46   * Implement dynamic load of config files while god is running (god load <filename>)
47   * Add ability to save auto-daemonized process output to a log file
48   * Add robust default stop lambda command for auto-daemonized processes (inspired by _eric)
49   * Add status command for god binary (shows status of each watch)
50   * Create proper logger with timestamps
51   * Add log command to god binary to get real time logs for a specific watch from a running god instance
52   * Add terminate command for god binary (stop god and all watches)
53 * Minor Enhancements
54   * Enforce validity of Watches
55   * Enforce that God.init is not called after a Watch
56   * Move pid_file_directory creation and validation to God.start
57   * Remove check for at least one Watch during startup (now that dynamic loading exists)
58 * New Conditions
59   * Tries < PollCondition - triggers after the specified number of tries
60   * Add :notify_when_flapping behavior to check for oscillation [kevinclark]
61   * Add :degrading_lambda condition. [kevinclark]
62     It uses a decaying interval (1/2 rate) for 3 cycles before failing.
63 * Bug Fixes
64   * Use exit!(0) instead of exit! in god binary to exit with code 0 (instead of default -1)
65   * Command line group control fixed
66   * Fix cross-thread return problem
68 == 0.3.0 / 2007-08-17
70 * Fix netlink header problem on Ubuntu Edgy [Dan Sully]
71 * Add uid/gid setting for processes [kevinclark]
72 * Add autostart flag for watches so they don't necessarily startup with god [kevinclark]
73 * Change command line call options for god binary to accommodate watch start/stop functionality
74 * Add individual start/stop/restart grace periods for finer grained control
75 * Change default DRb port to 17165 ('god'.to_i(32))
76 * Implement command line control to start/restart/stop/monitor/unmonitor watches/groups by name
77 * Watches can now belong to a group that can be controlled as a whole
78 * Allow god to be installed (sans events) on systems that don't support events
79 * Daemonize and handle PID files for non-daemonizing scripts [kevinclark]
80 * Fix simple mode lifecycle gap
81 * Remove necessity to specify pid_file for conditions
82 * Change config file to use God.init and God.watch directly instead of God.meddle block
83 * Move god binary command logic to main library
84 * Enhance god binary with better reporting
85 * Fix synchronization bug in Timer (reported by Srini Panguluri)
86 * Add Lambda condition for easy custom conditions [Mike Mintz]
87 * Add sugar for numerics (seconds, minutes, kilobytes, megabytes, percent, etc)
88 * Add optional PID and log file generation to god binary for daemon mode
89 * Add God.load to do glob enabled loading
90 * Add -V option to god binary for detailed version/build info
92 == 0.2.0 / 2007-07-18
94 * Rewrote innards to use a state and event based lifecycle
95 * Basic support for events via kqueue (bsd/darwin) and netlink/pec (linux) [kevinclark]
96 * Added advanced syntax (simple syntax calls advanced api underneath)
97 * Condition returns have changed meaning. With simple syntax, a true return activates block
98 * Updated http://god.rubyforge.org with updated simple config and new advanced config
100 == 0.1.0 / 2007-07-07
102 * 1 major enhancement
103   * Birthday!