up to 0.6.5
[god.git] / History.txt
blob650d34dad3b82295f255b805515544c83f428224
1 == 0.6.5 / 2008-01-04
2   * Bug Fixes
3     * Fix Timer descheduling deadlock issue
4     * Change HttpResponseCode to use GET instead of HEAD
6 == 0.6.4 / 2008-12-31
7   * Bug Fixes
8     * Refactor Hub to clarify mutexing
9     * Eliminate potential iteration problem in Timer
10     * Add caching PID accessor to process to solve event deregistration failure
12 == 0.6.3 / 2007-12-18
13   * Minor Enhancements
14     * Output ProcessExits registration/deregistration info
16 == 0.6.2 / 2007-12-17
17   * Minor Enhancements
18     * Output registered PID for ProcessExits
19   * Bug Fixes
20     * Fix `god remove <group>` not working for unmonitored watches
22 == 0.6.1 / 2007-12-14
24 * Minor Enhancement
25   * Log when state change is complete
27 == 0.6.0 / 2007-12-4
29 * Minor Enhancement
30   * Move Syslog calls into God::Logger and clean up all calling code
31   * Remove god's pid file on user requested termination
32   * Better handling and cleanup of DRb server's unix domain socket
33   * Allow shorthand for requesting a god log
34   * Add `god check` to make it easier to diagnose event problems
35   * Refactor god binary into class/method structure
36   * Implement `god remove` to remove a Task altogether
37 * New Conditions
38   * DiskUsage < PollCondition - trigger if disk usage is above limit on mount [Rudy Desjardins]
40 == 0.5.2 / 2007-10-10
42 * Minor Enhancement
43   * Allow extra args to pass through to config file
44   
45 == 0.5.1 / 2007-10-08
47 * Bug Fixes
48   * Rescue connection refused in http response code condition
50 == 0.5.0 / 2007-10-05
52 * Major Enhancements
53   * Implement lifecycle scoped metric to allow for cross-state conditions
54   * Add TriggerCondition for conditions that need info about state changes
55   * Implement notification system
56   * Add Tasks (a generalization of Watches) to do non-process related tasks
57   * Add example init.d file in GOD_INSTALL_DIR/init/god [scott becker]
58   * Add human readable info to conditions (and make low level log lines debug)
59   * Switch DRb to use a unix domain socket for security reasons
60 * Minor Enchancements
61   * Allow EventConditions to do transition overloading
62   * Report errors during god startup instead of failing silently
63   * Make transition block optional (default to Always condition returning true)
64   * Better usage info for `god --help`
65   * Explain what's going on when attempting to rebind to an in-use port
66   * Add -b option to god binary to auto-bind to an unused port
67   * Add `god quit` to stop god without stopping any tasks
68   * Make self-daemonized Watch commands synchronous (as they should be)
69   * Allow self-daemonized Watches to specify a log (could be useful)
70   * Check for existence of config file if specified
71   * Robustify `god load` and report errors back to the command issuer
72   * Warn when `god load` tries to set global options
73   * Add Configurable.clear method and make built-in conditions clear on entry
74 * New Conditions
75   * Flapping < TriggerCondition - trigger on state change
76   * HttpResponseCode < PollCondition - trigger on http response code or timeout (thx scott becker)
77 * New Contacts
78   * Email < Contact - notify via email (smtp)
79 * Bug Fixes
80   * Fix abort not aborting problem
81   * Fix -p option not working for god binary
82   * Fix God.init not accepting block (thx _eric)
83   * Fix SIGHUP ignore (thx _eric)
84   * Fix error reporting on `god --help` (don't error report a normal SystemExit)
86 == 0.4.3 / 2007-09-10
87 * Bug Fixes
88   * fix Process#alive? to not raise on no such file (affects `god terminate`)
90 == 0.4.2 / 2007-09-10
91 * Bug Fixes
92   * fix netlink buffer issue that prevented events on Linux from working consistently [dkresge]
94 == 0.4.1 / 2007-09-10
95 * Bug Fixes
96   * require 'stringio' for ruby 1.8.5
98 == 0.4.0 / 2007-09-10
100 * Major Enhancements
101   * Add the ability for conditions to override transition state (for exceptional cases)
102   * Implement dynamic load of config files while god is running (god load <filename>)
103   * Add ability to save auto-daemonized process output to a log file
104   * Add robust default stop lambda command for auto-daemonized processes (inspired by _eric)
105   * Add status command for god binary (shows status of each watch)
106   * Create proper logger with timestamps
107   * Add log command to god binary to get real time logs for a specific watch from a running god instance
108   * Add terminate command for god binary (stop god and all watches)
109 * Minor Enhancements
110   * Enforce validity of Watches
111   * Enforce that God.init is not called after a Watch
112   * Move pid_file_directory creation and validation to God.start
113   * Remove check for at least one Watch during startup (now that dynamic loading exists)
114 * New Conditions
115   * Tries < PollCondition - triggers after the specified number of tries
116   * Add :notify_when_flapping behavior to check for oscillation [kevinclark]
117   * Add :degrading_lambda condition. [kevinclark]
118     It uses a decaying interval (1/2 rate) for 3 cycles before failing.
119 * Bug Fixes
120   * Use exit!(0) instead of exit! in god binary to exit with code 0 (instead of default -1)
121   * Command line group control fixed
122   * Fix cross-thread return problem
124 == 0.3.0 / 2007-08-17
126 * Fix netlink header problem on Ubuntu Edgy [Dan Sully]
127 * Add uid/gid setting for processes [kevinclark]
128 * Add autostart flag for watches so they don't necessarily startup with god [kevinclark]
129 * Change command line call options for god binary to accommodate watch start/stop functionality
130 * Add individual start/stop/restart grace periods for finer grained control
131 * Change default DRb port to 17165 ('god'.to_i(32))
132 * Implement command line control to start/restart/stop/monitor/unmonitor watches/groups by name
133 * Watches can now belong to a group that can be controlled as a whole
134 * Allow god to be installed (sans events) on systems that don't support events
135 * Daemonize and handle PID files for non-daemonizing scripts [kevinclark]
136 * Fix simple mode lifecycle gap
137 * Remove necessity to specify pid_file for conditions
138 * Change config file to use God.init and God.watch directly instead of God.meddle block
139 * Move god binary command logic to main library
140 * Enhance god binary with better reporting
141 * Fix synchronization bug in Timer (reported by Srini Panguluri)
142 * Add Lambda condition for easy custom conditions [Mike Mintz]
143 * Add sugar for numerics (seconds, minutes, kilobytes, megabytes, percent, etc)
144 * Add optional PID and log file generation to god binary for daemon mode
145 * Add God.load to do glob enabled loading
146 * Add -V option to god binary for detailed version/build info
148 == 0.2.0 / 2007-07-18
150 * Rewrote innards to use a state and event based lifecycle
151 * Basic support for events via kqueue (bsd/darwin) and netlink/pec (linux) [kevinclark]
152 * Added advanced syntax (simple syntax calls advanced api underneath)
153 * Condition returns have changed meaning. With simple syntax, a true return activates block
154 * Updated http://god.rubyforge.org with updated simple config and new advanced config
156 == 0.1.0 / 2007-07-07
158 * 1 major enhancement
159   * Birthday!