2018-08-01  Mahlon E. Smith  <mahlon@martini.nu>

	* lib/arborist/manager.rb:
	Add debug log for checkpoint timing.
	[734e01730be6] [tip]

2018-07-27  Mahlon E. Smith  <mahlon@martini.nu>

	* lib/arborist/node.rb, spec/arborist/node_spec.rb:
	Fix behavior for child nodes whose parent transitions from 'down' to
	'warn'.
	[b882060af0b3]

2018-07-17  Mahlon E. Smith  <mahlon@martini.nu>

	* lib/arborist/cli.rb, lib/arborist/command/summary.rb:
	Explicitly require tty* packages.

	(Avoid this garbage: https://github.com/piotrmurach/tty/issues/44)
	[a2d9e1f2152b]

2018-06-13  Mahlon E. Smith  <mahlon@martini.nu>

	* lib/arborist/command/tree.rb:
	Implicitly return the path array.
	[fbcb8bf9ddfe]

2018-06-27  Michael Granger  <ged@FaerieMUD.org>

	* lib/arborist/node.rb, spec/arborist/node_spec.rb:
	Add acknowledgement changes to delta events.
	[f6b57c73929e] [github/master]

	* Manifest.txt, lib/arborist/monitor/connection_batching.rb,
	lib/arborist/monitor/socket.rb:
	Add batching to the socket monitor
	[1f4e91e437b5]

2018-06-13  Mahlon E. Smith  <mahlon@martini.nu>

	* lib/arborist/node.rb, spec/arborist/node_spec.rb:
	Allow the user config hash to be altered from the modify API call.
	[035793721d25]

2018-06-12  Mahlon E. Smith  <mahlon@martini.nu>

	* lib/arborist/command/tree.rb:
	Add a --path argument to the 'tree' command, that displays parents
	to the root when specified.
	[f671d5b77b8f]

2018-06-04  Mahlon E. Smith  <mahlon@martini.nu>

	* .gems, lib/arborist/node/root.rb:
	Match the #update prototype with the parent class.
	[4113973f3fac]

2018-05-23  Mahlon E. Smith  <mahlon@martini.nu>

	* lib/arborist/client.rb, lib/arborist/observer.rb,
	spec/arborist/client_spec.rb:
	Add a DSL method for returning a Client singleton.
	[e3e41bef9b6b]

	* TODO.md, lib/arborist/manager.rb, spec/arborist/manager_spec.rb:
	Don't let #add_node automatically replace nodes with the same
	identifier, instead leaving the remove step to the caller.

	Clean up the TODO a little.
	[91ca8e3d3b42]

2018-05-16  Mahlon E. Smith  <mahlon@martini.nu>

	* lib/arborist/cli.rb:
	Provide a way to disable colors for misbehaving terms.
	[a7c0524d382f]

	* lib/arborist/node/resource.rb, lib/arborist/node/service.rb:
	Add 'category' to operation properties, so it can be returned in a
	'properties' search.
	[a1358c86cfc4]

2018-05-02  Mahlon E. Smith  <mahlon@martini.nu>

	* Manifest.txt:
	Fix manifest. My bad.
	[e863ec889801]

	* TODO.md, lib/arborist/node.rb, lib/arborist/node/resource.rb,
	lib/arborist/node/service.rb, spec/arborist/node/resource_spec.rb,
	spec/arborist/node/service_spec.rb, spec/arborist/node_spec.rb:
	Add 'OR' matching to additional host/service/resource attributes.
	[402decc461f2]

2018-04-30  Mahlon E. Smith  <mahlon@martini.nu>

	* lib/arborist/client.rb:
	Remove what seems like copy pasta, these instance vars are unused.
	[63c59b1c9f79]

	* lib/arborist/manager.rb, spec/arborist/client_spec.rb,
	spec/arborist/manager_spec.rb,
	spec/arborist/observer_runner_spec.rb, spec/data/nodes/sidonie.rb,
	spec/data/nodes/vhosts.rb:
	Recurse into secondary dependencies for `deps`
	[77e9deb4ec42]

	* lib/arborist/node.rb, spec/arborist/node_spec.rb:
	Emit delta events when setting or clearing acknowledgements.
	[d05610bec8dd]

	* lib/arborist/cli.rb:
	Don't make loading config conditional, so loading config path from
	ENV works as intended.
	[b0531987a8b2]

	* Events.md:
	The Events.md file should have been removed along with others in
	changeset 2413f751677b.
	[36d0911fc157]

	* lib/arborist/node.rb:
	Remove extra 'is' in logging output.
	[ade846808c0b]

2018-04-27  Mahlon E. Smith  <mahlon@martini.nu>

	* lib/arborist/node.rb:
	Call out the 'unknown' state explcitly.
	[41a443946194]

2018-04-25  Mahlon E. Smith  <mahlon@martini.nu>

	* lib/arborist/client.rb, spec/arborist/client_spec.rb:
	Provide some helper methods on the client for performing some common
	Tree API tasks.
	[607e37bab20d]

2018-04-25  Mahlon E. Smith  <mahlon@laika.com>

	* lib/arborist/manager.rb, spec/arborist/manager_spec.rb:
	Include explicit children nodes in the list returned by the 'deps'
	API call.
	[506ff511c368]

2018-04-25  Mahlon E. Smith  <mahlon@martini.nu>

	* lib/arborist/node.rb:
	Add a specific log formatter for the 'warn' state, change
	nomenclature from 'unknown' to avoid confusion.
	[c4769cf739cb]

2018-04-18  Mahlon E. Smith  <mahlon@martini.nu>

	* lib/arborist/node.rb, spec/arborist/node_spec.rb:
	Add a transition from down -> warn.
	[a76b7e2c35b0]

2018-04-18  Michael Granger  <ged@FaerieMUD.org>

	* lib/arborist/client.rb, lib/arborist/manager.rb,
	lib/arborist/monitor_runner.rb, lib/arborist/node.rb,
	spec/arborist/client_spec.rb, spec/arborist/monitor_runner_spec.rb,
	spec/arborist/node_spec.rb:
	Set the monitor key via a header on update
	[5224888b1079]

2018-04-18  Mahlon E. Smith  <mahlon@martini.nu>

	* lib/arborist/node/root.rb, spec/arborist/node/root_spec.rb:
	Allow ack/unack on the root node to quiet and re-enable the tree.
	[81cc274e239b]

	* lib/arborist/manager.rb, spec/arborist/manager_spec.rb:
	Propagate ack and unack events to parent nodes.
	[e0e8af8deb94]

	* lib/arborist/monitor_runner.rb,
	spec/arborist/monitor_runner_spec.rb:
	The _monitor_key attribute is only necessary for error/warn
	tracking, not as part of the node properties.
	[2b28f8aaf7f0]

	* lib/arborist/node.rb, spec/arborist/node_spec.rb:
	Retain the previous time a node's status changed, for easy time
	deltas between state transitions.
	[7427b0e720da]

2018-04-17  Mahlon E. Smith  <mahlon@laika.com>

	* lib/arborist/observer/action.rb,
	spec/arborist/observer/action_spec.rb:
	Keep the observer daemon running if observer action blocks raise
	exceptions.
	[602afebedef0]

2018-04-12  Mahlon E. Smith  <mahlon@martini.nu>

	* Rakefile:
	Add pry as a dependency for the arborist client.
	[01b83470cd9c]

2018-04-11  Mahlon E. Smith  <mahlon@martini.nu>

	* lib/arborist/event/node.rb, spec/arborist/event/node_spec.rb:
	Add the node type as additional metadata to node events.
	[60a05edcfa1f]

	* lib/arborist/monitor/socket.rb,
	spec/arborist/monitor/socket_spec.rb:
	Remove redundant time attribute for socket monitoring.
	[9f8556ccf9aa]

	* lib/arborist/event.rb, lib/arborist/event/node.rb,
	spec/arborist/event/node_spec.rb, spec/arborist/event_spec.rb:
	Add node parent to the default node event class, stick to symbols
	for hash keys.
	[983042e447ab]

	* lib/arborist/node.rb, spec/arborist/node_spec.rb:
	Allow "OR-ing" of statuses/identifiers/types when matching.
	[fc9d607c2a07]

2018-04-09  Mahlon E. Smith  <mahlon@martini.nu>

	* lib/arborist/monitor.rb, spec/arborist/monitor_spec.rb:
	Bugfix: Logic inversion for the monitor matching with exclude_down.
	[69b6f08a561e]

2018-04-07  Mahlon E. Smith  <mahlon@martini.nu>

	* lib/arborist/monitor_runner.rb:
	Include the backtrace in logging if a monitor run fails.
	[bff4c7373561]

	* Manifest.txt:
	Fix manifest.
	[bc513d98d005]

2018-04-04  Mahlon E. Smith  <mahlon@martini.nu>

	* experiments/arborist.schema:
	Add an identifier override attribute to the Arborist LDAP schema.
	[f3644c8d9b0d]

	* Monitors.md, Nodes.md, Observers.md, Protocol.md, Tutorial.md,
	experiments/manager-sockets.rb:
	Remove some docs that have moved to arbori.st.
	[2413f751677b]

	* lib/arborist/dependency.rb, spec/arborist/dependency_spec.rb:
	Fix the description for subdependencies which are down
	[6ba7c94e9c1b]

	* lib/arborist/monitor.rb, spec/arborist/monitor_spec.rb:
	Make a best-effort attempt to serialize Arrays for the default
	monitor exec behavior.
	[d81c6f31ec25]

	* lib/arborist/cli.rb, lib/arborist/command/summary.rb,
	lib/arborist/command/tree.rb:
	Add the 'warn' state to the command line tools.
	[edecbb537d4f]

	* lib/arborist/monitor.rb:
	Explicitly cast exec() arguments to strings if the first argument
	doesn't respond to #run.

	This falls through to attempt to spawn the argument, instead of
	bailing with the more cryptic "no implcit conversion of X into
	string" exception.
	[7f30507eb90b]

2018-03-21  Michael Granger  <ged@FaerieMUD.org>

	* lib/arborist/manager.rb:
	Add Manager#inspect
	[3bd59ed3254e]

	* lib/arborist/cli.rb, lib/arborist/command/ack.rb,
	lib/arborist/command/reset.rb, lib/arborist/command/start.rb:
	Restore dry-run mode for the CLI
	[0c2126a1f09e]

	* experiments/run_monitors.rb, lib/arborist/client.rb,
	lib/arborist/manager.rb, lib/arborist/monitor.rb,
	lib/arborist/monitor_runner.rb, spec/arborist/client_spec.rb,
	spec/arborist/manager_spec.rb, spec/arborist/monitor_spec.rb,
	spec/data/monitors/pings.rb, spec/data/monitors/port_checks.rb:
	Make the default node search return all nodes

	All nodes in the tree are returned by default now. You can omit
	unreachable nodes with the `exclude_down` option/method.
	[7ba6fa72b1a3]

2018-03-12  Michael Granger  <ged@FaerieMUD.org>

	* README.md:
	Remove the broken CI build link.
	[07918fd4129a]

2018-03-07  Michael Granger  <ged@FaerieMUD.org>

	* Manifest.txt:
	Update the manifest.
	[d71a4cbde9a0]

	* spec/arborist/node_spec.rb:
	Add a spec for updates with both error and warning
	[4b68d786e868]

2018-03-03  Michael Granger  <ged@FaerieMUD.org>

	* experiments/yajl-vs-oj.rb:
	Add experimental json library benchmarks
	[df81401947b6]

	* .gems, Rakefile, arborist.gemspec, lib/arborist/client.rb,
	lib/arborist/event/node_warn.rb, lib/arborist/manager.rb,
	lib/arborist/node.rb, lib/arborist/tree_api.rb,
	spec/arborist/client_spec.rb, spec/arborist/manager_spec.rb,
	spec/arborist/node_spec.rb:
	Add a warning state to nodes
	[0ec9b57f875d]

2018-02-21  Mahlon E. Smith  <mahlon@martini.nu>

	* lib/arborist/node/host.rb, lib/arborist/node/resource.rb,
	lib/arborist/node/service.rb, spec/arborist/node/host_spec.rb:
	Add an optional 'hostname' label to the host node DSL.

	This is a convenience matcher for selecting by host, since
	identifiers are designed to be opaque, and description fields are
	more human readable.
	[ba379d048ec4]

	* lib/arborist/monitor.rb:
	Add a configurable default splay for all instantiated Monitors.
	[2e1e76442694]

	* .ruby-version, lib/arborist/monitor.rb,
	lib/arborist/monitor_runner.rb, spec/arborist/manager_spec.rb,
	spec/arborist/monitor_runner_spec.rb, spec/arborist/monitor_spec.rb:
	Allow separate monitors to run in parallel.
	[8a15f6ff2cc6]

2018-02-06  Mahlon E. Smith  <mahlon@laika.com>

	* lib/arborist/node.rb:
	Allow the 'config' directive to be called multiple times.
	[e19b588e2bed]

2018-02-01  Mahlon E. Smith  <mahlon@laika.com>

	* TODO.md:
	Add a few recent discoveries that should be attended to.
	[87797bb780d0]

2018-01-10  Mahlon E. Smith  <mahlon@laika.com>

	* lib/arborist/command/start.rb:
	Add a hint for the 'start' command if the daemon app is unknown.
	[1d535c655f9c]

	* lib/arborist/cli.rb:
	Remove the Highline require.
	[e1babdcf222a]

2017-12-28  Mahlon E. Smith  <mahlon@laika.com>

	* lib/arborist/command/summary.rb:
	Fix newline display in summary mode.
	[705ea112140d]

	* lib/arborist/monitor_runner.rb,
	spec/arborist/monitor_runner_spec.rb:
	Treat monitor runtime exceptions as errors.
	[d940a51a54a5]

2017-12-23  Mahlon E. Smith  <mahlon@laika.com>

	* lib/arborist/cli.rb:
	Simplify the command loading, remove unused code.
	[edb03b628896]

2017-12-11  Michael Granger  <ged@FaerieMUD.org>

	* lib/arborist/cli.rb:
	Fix the #success_string CLI DSL method
	[731cdb4916f7]

2017-11-23  Mahlon E. Smith  <mahlon@laika.com>

	* Manifest.txt:
	Update manifest.
	[bbfee3ed7fa3]

2017-11-22  Michael Granger  <ged@FaerieMUD.org>

	* lib/arborist/command/watch.rb:
	Make Enterprise[tm]
	[2ea4f0cb5d7f]

2017-11-22  Mahlon E. Smith  <mahlon@laika.com>

	* Rakefile, arborist.gemspec, lib/arborist/manager.rb,
	lib/arborist/node.rb, spec/arborist/manager_spec.rb,
	spec/arborist/node_spec.rb:
	Modifying a node's parent should reparent for a running manager.
	[80f24df26c58]

	* lib/arborist/cli.rb, lib/arborist/command/ack.rb:
	Make ack friendlier for batch updates, prompt for missing values.
	[abee1c3cd29a]

	* .gems, Rakefile, arborist.gemspec, lib/arborist/cli.rb,
	lib/arborist/command/summary.rb, lib/arborist/command/tree.rb,
	lib/arborist/command/watch.rb:
	Convert from highline to tty for the command line tools.
	[97be02393284]

	* lib/arborist/command/summary.rb:
	Add a 'summary' command, for quick display of existing problems.
	[835dbd57e243]

2017-11-20  Mahlon E. Smith  <mahlon@laika.com>

	* lib/arborist/command/ack.rb:
	Use the uid instead of gecos for default ack sender.
	[6cdfa1e00068]

2017-11-18  Mahlon E. Smith  <mahlon@laika.com>

	* lib/arborist/command/ack.rb, lib/arborist/command/tree.rb:
	Fixes for recent changes in the client API.
	[1f3a100a456a]

2017-11-16  Michael Granger  <ged@FaerieMUD.org>

	* lib/arborist/client.rb:
	Fix some Client API docs
	[a94db37dc8ef]

2017-11-16  Mahlon E. Smith  <mahlon@martini.nu>

	* Events.md, lib/arborist/manager.rb, lib/arborist/node.rb,
	lib/arborist/tree_api.rb:
	Refactor event flow to fix publishing.
	[aeae43332bd0]

	* lib/arborist/command/reset.rb:
	Add a "reset" command to the client.
	[eed312fb6526]

2017-11-01  Michael Granger  <ged@FaerieMUD.org>

	* lib/arborist/event.rb:
	Add a simplified #inspect for node objects
	[3a5fdc6ee738]

	* Merged with 78f913c7bd4e
	[8da021024c05]

2017-11-01  Mahlon E. Smith  <mahlon@martini.nu>

	* lib/arborist/event.rb, spec/arborist/event_spec.rb:
	Backed out changeset ac8e70b46bf4.

	Upon further reflection: subscription calls ONLY match node events,
	not sys.* events. So if you want all node events, it has always been
	that you can simply omit your event type. Since sys events are
	unaffected, this is unnecessarily redundant. Revert.
	[78f913c7bd4e]

2017-11-01  Michael Granger  <ged@FaerieMUD.org>

	* lib/arborist/manager.rb, spec/arborist/manager_spec.rb:
	Collapse startup event into the heartbeat

	The startup event wasn't reliable because there was a race between
	sending it and clients who might be interested in it (re)connecting
	to the manager. We moved all the data from the startup event into
	the heartbeat event.
	[f1e034ac03bf]

2017-10-27  Michael Granger  <ged@FaerieMUD.org>

	* certs/ged.pem:
	Add my updated gem-signing cert
	[2025d127b06d]

2017-10-11  Mahlon E. Smith  <mahlon@laika.com>

	* lib/arborist/event.rb, spec/arborist/event_spec.rb:
	Add wildcard matching to node events.
	[ac8e70b46bf4]

	* Manifest.txt, lib/arborist/client.rb, lib/arborist/manager.rb,
	spec/arborist/client_spec.rb, spec/arborist/manager_spec.rb:
	Normalize and emit better error messages from client commands, at
	the expense of succinct method calls.

	Throw a client error if attempting to graft over a pre-existing
	node.
	[b683f02b91c1]

2017-09-15  Mahlon E. Smith  <mahlon@martini.nu>

	* lib/arborist/manager.rb, spec/arborist/client_spec.rb,
	spec/arborist/manager_spec.rb:
	With even more thinking: Specifying a non existent node constitutes
	an error.
	[74148a9c3770]

2017-09-15  Michael Granger  <ged@FaerieMUD.org>

	* lib/arborist/client.rb, lib/arborist/manager.rb,
	spec/arborist/client_spec.rb:
	merged with 7fea2fdfbb90
	[e4e2e2608c96]

2017-09-15  Mahlon E. Smith  <mahlon@martini.nu>

	* lib/arborist/manager.rb, spec/arborist/client_spec.rb:
	On second thought, fetch() should always return an array. Add a
	test.
	[7fea2fdfbb90]

	* lib/arborist/client.rb, lib/arborist/manager.rb,
	spec/arborist/client_spec.rb:
	Make high-level ack set/clear usage match other methods. Bail early
	on an invalid fetch() starting node.
	[12658e133803]

2017-09-13  Michael Granger  <ged@FaerieMUD.org>

	* TODO.md, lib/arborist.rb, lib/arborist/client.rb,
	lib/arborist/manager.rb, lib/arborist/node.rb,
	lib/arborist/node_subscription.rb, lib/arborist/subscription.rb,
	spec/arborist/client_spec.rb, spec/arborist/manager_spec.rb,
	spec/arborist/node_spec.rb, spec/arborist/node_subscription_spec.rb,
	spec/arborist/observer_runner_spec.rb, spec/data/nodes/yevaud.rb:
	Add introspection on secondary dependencies
	[dbe5ebcb13a4]

2017-08-30  Michael Granger  <ged@FaerieMUD.org>

	* Rakefile, arborist.gemspec:
	Specify RDoc 5.1 for development.
	[b5ce09164313]

	* lib/arborist/monitor/socket.rb:
	Socket monitors need the port, too.
	[badf0ec88ff3]

	* Manifest.txt, TODO.md, lib/arborist/monitor.rb,
	spec/arborist/monitor_spec.rb:
	Allow callbacks modules to set the fetched node properties, too.
	[c13f46c6c80e]

	* lib/arborist.rb, lib/arborist/client.rb,
	lib/arborist/command/tree.rb, lib/arborist/manager.rb,
	lib/arborist/monitor.rb, lib/arborist/monitor/socket.rb,
	lib/arborist/monitor_runner.rb, lib/arborist/node.rb,
	lib/arborist/node/ack.rb, lib/arborist/node/host.rb,
	lib/arborist/node/resource.rb, lib/arborist/node/service.rb,
	spec/arborist/monitor_spec.rb, spec/arborist/node_spec.rb,
	spec/spec_helper.rb:
	Add tree mode to the fetch treeapi action
	[62702b377627]

	* lib/arborist/command/ack.rb:
	Add an `ack` command
	[10f1c48593ca]

	* lib/arborist/node.rb:
	Stop nodes from flapping between acked and down
	[c950bb562104]

	* Merged with upstream
	[8016d54c5dc0]

2017-08-30  Mahlon E. Smith  <mahlon@martini.nu>

	* .ruby-version, README.md:
	Bump ruby rvm version and copyright year.
	[569e2d8626fc]

2017-08-29  Michael Granger  <ged@FaerieMUD.org>

	* lib/arborist/mixins.rb, spec/arborist/mixins_spec.rb:
	Add a DSLish accessor constructor to the MethodUtilities mixin
	[55586256bf71]

2017-08-23  Michael Granger  <ged@FaerieMUD.org>

	* Protocol.md, lib/arborist/client.rb, lib/arborist/manager.rb,
	lib/arborist/monitor_runner.rb, spec/arborist/client_spec.rb,
	spec/arborist/manager_spec.rb, spec/arborist/monitor_runner_spec.rb:
	Rename some actions in the Tree API for clarity

	- Rename `list` to `fetch`
	- Rename `fetch` to `search`
	[58b49a735dce]

	* lib/arborist/manager.rb, spec/arborist/manager_spec.rb:
	Make the list of Tree API actions more explicit.
	[be1d7adde321]

	* TODO.md:
	Add a 0.3 feature to the TODO doc
	[5d64adac0770]

	* lib/arborist/node.rb, lib/arborist/node/resource.rb,
	spec/arborist/node_spec.rb:
	Add a block to Node.parent_type to allow for more-expressive
	declarations
	[3aa0f2e0bb04]

	* .gems, Manifest.txt, Rakefile, TODO.md, arborist.gemspec,
	experiments/monitor-client.rb, experiments/monitor-service.rb,
	experiments/run_monitors.rb, experiments/yay-client.rb,
	lib/arborist.rb, lib/arborist/client.rb,
	lib/arborist/command/watch.rb, lib/arborist/event_api.rb,
	lib/arborist/exceptions.rb, lib/arborist/manager.rb,
	lib/arborist/manager/event_publisher.rb,
	lib/arborist/manager/tree_api.rb, lib/arborist/monitor_runner.rb,
	lib/arborist/node.rb, lib/arborist/observer/summarize.rb,
	lib/arborist/observer_runner.rb, lib/arborist/tree_api.rb,
	spec/arborist/client_spec.rb, spec/arborist/event_api_spec.rb,
	spec/arborist/manager/event_publisher_spec.rb,
	spec/arborist/manager/tree_api_spec.rb,
	spec/arborist/manager_spec.rb, spec/arborist/monitor_runner_spec.rb,
	spec/arborist/observer_runner_spec.rb,
	spec/arborist/tree_api_spec.rb, spec/arborist_spec.rb,
	spec/spec_helper.rb:
	Convert to CZTop for ZeroMQ
	[ba88a77e486e]

2017-05-10  Michael Granger  <ged@FaerieMUD.org>

	* Merged with dc93f075ae71
	[a8ed641362ad]

2017-03-09  Mahlon E. Smith  <mahlon@martini.nu>

	* lib/arborist/mixins.rb, lib/arborist/node.rb:
	Re-arrange constants to avoid Ruby 2.4 refinement warnings. Lower
	debug output when loading nodes.
	[dc93f075ae71]

2017-05-10  Michael Granger  <ged@FaerieMUD.org>

	* TODO.md:
	Add an idea to the README (thanks to Will at LAIKA)
	[ae1fceba4e10]

2017-03-01  Michael Granger  <ged@FaerieMUD.org>

	* .hoerc, arborist.gemspec, lib/arborist/client.rb,
	lib/arborist/command/client.rb:
	Fix the signature of Arborist::Client#fetch

	It was defaulting trailing-hash arguments to options, which made the
	typical case of fetching with only criteria awkward. This makes the
	atypical case (fetching with options but empty criteria) the awkward
	case instead.
	[c7e85586243e]

2017-02-19  Mahlon E. Smith  <mahlon@martini.nu>

	* .ruby-gemset, .ruby-version, .rvmrc, Rakefile:
	Convert to .ruby-* files. Bump msgpack dependency.
	[b0cead421802]

2017-01-02  Michael Granger  <ged@FaerieMUD.org>

	* .hgignore, Rakefile:
	Remove guard against public release, ignore pkg dir
	[4e6a4471c246]

	* .hgtags:
	Added tag v0.1.0 for changeset 859b70361b14
	[83809e3f33bc]

	* .hgsigs:
	Added signature for changeset 02a11882f53b
	[859b70361b14] [v0.1.0]

	* History.md, lib/arborist.rb:
	Set the minor version, update history file.
	[02a11882f53b]

	* TODO.md, lib/arborist/monitor.rb, lib/arborist/monitor_runner.rb,
	spec/arborist/monitor_runner_spec.rb, spec/arborist/monitor_spec.rb:
	Fix the DSL constructor, set the monitor key in the correct place in
	the node data.
	[e12d602bcf1a]

2016-12-28  Michael Granger  <ged@FaerieMUD.org>

	* Monitors.md, lib/arborist/monitor_runner.rb, lib/arborist/node.rb,
	spec/arborist/node_spec.rb:
	Add `key` to the monitor docs, use a prefixed key for monitor
	updates.
	[7119b40e002a]

	* arborist.gemspec, lib/arborist/command/watch.rb,
	lib/arborist/monitor.rb, lib/arborist/monitor_runner.rb,
	lib/arborist/node.rb, spec/arborist/event/node_down_spec.rb,
	spec/arborist/manager_spec.rb, spec/arborist/monitor_runner_spec.rb,
	spec/arborist/monitor_spec.rb, spec/arborist/node_spec.rb:
	Add a key attribute to monitors for error grouping.
	[aebc20335e43]

	* .gems, Rakefile:
	Update to latest *ability
	[09438b7a8aff]

2016-10-19  Michael Granger  <ged@FaerieMUD.org>

	* lib/arborist/client.rb:
	Use ** instead of * for client methods that take keyword args
	[73b6f150a8c1]

	* lib/arborist/mixins.rb, lib/arborist/node.rb,
	spec/arborist/client_spec.rb:
	Add specs for Client#ack and #unack
	[819556c743c6]

2016-10-17  Michael Granger  <ged@FaerieMUD.org>

	* TODO.md:
	Add a note to the TODO list
	[3de683ee0405]

2016-10-12  Michael Granger  <ged@FaerieMUD.org>

	* spec/arborist/node_spec.rb:
	Remove accidentally-commited focus
	[d2cac6a84aaa]

2016-10-12  Mahlon E. Smith  <mahlon@martini.nu>

	* lib/arborist/node.rb, spec/arborist/node_spec.rb:
	Add matching for 'parent' attribute data.
	[c50907900b60]

2016-10-06  Mahlon E. Smith  <mahlon@martini.nu>

	* lib/arborist/manager.rb, lib/arborist/monitor.rb,
	lib/arborist/node.rb, spec/arborist/monitor_spec.rb,
	spec/arborist/node_spec.rb:
	Make monitors automatically set #include_down if matching on an
	unreachable status type.

	 - Add reachable? and unreachable? predacates to node
	 - Whitespace fixes
	[3dcff4c89426]

2016-10-05  Mahlon E. Smith  <mahlon@martini.nu>

	* lib/arborist/node.rb:
	Reenable event publishing from handle_event().
	[1918cc1afa1a]

2016-10-05  Michael Granger  <ged@FaerieMUD.org>

	* lib/arborist/node.rb, spec/arborist/node_spec.rb:
	Fix event broadcasting for deep hierarchies.

	- Refactored event broadcasting so #update and #handle_event share
	broadcasting code.
	[9ab8636bb2c5]

	* Rakefile, arborist.gemspec:
	Update gemspec with Ruby requirements
	[8ea4314d4dc9]

2016-10-04  Mahlon E. Smith  <mahlon@martini.nu>

	* lib/arborist/node.rb:
	State transition cleanup: Only nodes in a 'down' state can
	transition to 'acked'.
	[eed40468bb5e]

2016-10-03  Mahlon E. Smith  <mahlon@laika.com>

	* lib/arborist/command/config.rb:
	Require the manager when generating a default configuration file.
	[d0c5ef20e6fd]

2016-09-28  Michael Granger  <ged@FaerieMUD.org>

	* TODO.md, lib/arborist/node.rb, spec/arborist/node_spec.rb:
	Fix the unknown => disabled transition when updating with an ACK
	[30d2548e1308]

	* lib/arborist/manager.rb, spec/arborist/manager_spec.rb:
	Flatten the config into one namespace

	This fixes the manager's defaults, which were never actually used.
	[ae18e761d06f]

2016-09-21  Michael Granger  <ged@FaerieMUD.org>

	* TODO.md, lib/arborist/manager.rb, lib/arborist/node.rb,
	spec/arborist/node_spec.rb:
	Fix consequential event propagation/publication
	[cdf3fb9d63c8]

	* lib/arborist/dependency.rb, spec/arborist/dependency_spec.rb:
	Clarify dependency "down reason" to not seem like a node state
	[1f8f703940cb]

	* lib/arborist/manager/tree_api.rb:
	Stripped spammier debugging
	[dc594799b7dc]

	* Events.md:
	Add description of event movement to Events.md
	[bfee2016aa79]

2016-09-21  Mahlon E. Smith  <mahlon@martini.nu>

	* .rvmrc, lib/arborist/node.rb:
	Add an event handler for disabled events, so nodes are properly
	quieted when their secondary dependencies are disabled.
	[d032e1820965]

2016-09-06  Michael Granger  <ged@FaerieMUD.org>

	* arborist.gemspec, lib/arborist/monitor/socket.rb,
	spec/arborist/monitor/socket_spec.rb:
	Fix up the specs for getpeername socket monitor change
	[f8c5bbc611b2]

	* lib/arborist/monitor/socket.rb:
	Make socket check use getpeername for testing non-blocking connect
	[9715a6d9903f]

2016-08-31  Michael Granger  <ged@FaerieMUD.org>

	* Protocol.md, TODO.md, lib/arborist/client.rb, lib/arborist/event.rb,
	lib/arborist/event/node.rb, lib/arborist/event/node_delta.rb,
	lib/arborist/manager.rb, lib/arborist/manager/tree_api.rb,
	lib/arborist/monitor.rb, lib/arborist/monitor/socket.rb,
	lib/arborist/node.rb, lib/arborist/observer.rb,
	lib/arborist/subscription.rb,
	spec/arborist/event/node_delta_spec.rb,
	spec/arborist/event/node_spec.rb,
	spec/arborist/manager/tree_api_spec.rb,
	spec/arborist/observer_spec.rb, spec/arborist/subscription_spec.rb:
	Add exclusion to subscriptions
	[23b84af1ebb4]

	* arborist.gemspec, lib/arborist/manager/tree_api.rb,
	lib/arborist/monitor/socket.rb, lib/arborist/node.rb,
	spec/arborist/manager/tree_api_spec.rb:
	Include all operational values in fetched nodes.

	Also error more gracefully about non-eachable updates.
	[a72fc8d43adc]

	* lib/arborist/client.rb:
	Rearrange some methods in the client
	[106b17e27a3a]

2016-08-29  Michael Granger  <ged@FaerieMUD.org>

	* Rakefile, arborist.gemspec, certs/ged.pem:
	Add public cert
	[a7c6232586ad]

	* Manifest.txt, arborist.gemspec:
	Update the manifest with spec changes, rebuild gemspec.
	[aec9f5ec88de]

	* spec/data/nodes/duir.rb:
	Merge with a5a6e5092024
	[c961355d10c8]

2016-08-29  Mahlon E. Smith  <mahlon@martini.nu>

	* lib/arborist/loader/file.rb, spec/data/nodes/duir.rb,
	spec/data/nodes/sub/duir.rb:
	Fix the file loader so it correctly crawls subdirectories.
	[a5a6e5092024]

2016-08-03  Michael Granger  <ged@FaerieMUD.org>

	* lib/arborist/event/sys_node_added.rb,
	lib/arborist/event/sys_node_removed.rb,
	lib/arborist/event/sys_reloaded.rb,
	lib/arborist/event/sys_shutdown.rb:
	Remove system event node classes
	[a34a23ef095e]

2016-08-02  Michael Granger  <ged@FaerieMUD.org>

	* Manifest.txt, TODO.md, lib/arborist/mixins.rb,
	lib/arborist/monitor.rb, lib/arborist/monitor_runner.rb,
	lib/arborist/node.rb, lib/arborist/node/host.rb,
	lib/arborist/node/service.rb, spec/arborist/node/service_spec.rb,
	spec/arborist/node_spec.rb, spec/arborist/subscription_spec.rb:
	- Update the TO-DO list
	- Factor out some network functions into a common mixin
	- Add Arborist::Monitor#inspect
	- Restore ack+status of serialized nodes
	- Allow services to set their own address when not bound to INADDR_ANY
	- Finish separating node events from system events
	[f853508dba8c]

	* lib/arborist/monitor/socket.rb:
	Fix race to calculate select timeout in socket monitor
	[56a6dd2a8e40]

2016-07-20  Michael Granger  <ged@FaerieMUD.org>

	* TODO.md:
	Update the To-Do file
	[53ca09b4d50e]

2016-07-20  Mahlon E. Smith  <mahlon@martini.nu>

	* lib/arborist/node/resource.rb, spec/arborist/node/resource_spec.rb:
	Add a `category` attribute to the resource node type.
	[ae3aa8435e15]

2016-07-20  Michael Granger  <ged@FaerieMUD.org>

	* .gems, .tm_properties, Events.md, TODO.md, arborist.gemspec,
	lib/arborist.rb, lib/arborist/command/watch.rb,
	lib/arborist/event/sys_shutdown.rb, lib/arborist/manager.rb,
	lib/arborist/manager/event_publisher.rb,
	lib/arborist/manager/tree_api.rb, lib/arborist/node.rb,
	lib/arborist/observer_runner.rb, spec/arborist/client_spec.rb,
	spec/arborist/manager/event_publisher_spec.rb,
	spec/arborist/manager/tree_api_spec.rb,
	spec/arborist/manager_spec.rb,
	spec/arborist/observer_runner_spec.rb, spec/spec_helper.rb:
	Send system events from the manager for status changes
	[4cc9924e6b0c]

2016-06-15  Michael Granger  <ged@FaerieMUD.org>

	* spec/arborist/observer_spec.rb, spec/data/observers/auditor.rb:
	Fix signature of observer actions in specs
	[196443e52d87]

	* lib/arborist/node.rb, lib/arborist/node/host.rb,
	spec/arborist/node_spec.rb:
	Add a config hash to node operational metadata
	[196223da8ba4]

2016-05-19  Mahlon E. Smith  <mahlon@martini.nu>

	* lib/arborist/node/resource.rb, spec/arborist/node/resource_spec.rb:
	Resource nodes should also inherit addressing from their parent
	hosts (as service nodes do).

	This gives resource monitors a path to gathering information -- an
	obvious example being load or disk checks over SNMP. Something that
	isn't a service with a protocol and port, but a necessary piece of
	information for overall host and service health, that should be
	monitored (and potentially ack'ed/disabled) independently.
	[b4324ab8853e]

2016-05-18  Mahlon E. Smith  <mahlon@laika.com>

	* lib/arborist/cli.rb:
	Remove the default log level from the arborist command line client.
	[39338420aaa0]

2016-05-04  Michael Granger  <ged@FaerieMUD.org>

	* Protocol.md, README.md, lib/arborist/dependency.rb,
	lib/arborist/node.rb, spec/arborist/dependency_spec.rb,
	spec/arborist/node_spec.rb:
	Fix the way nodes' dependency state is restored
	[325443abe6df]

2016-04-27  Michael Granger  <ged@FaerieMUD.org>

	* README.md:
	Remove the link to the "tutorial" until there is one
	[650c1e0a0628]

	* lib/arborist/client.rb, spec/arborist/client_spec.rb:
	Add fetch with depth to the client
	[96b36155fad0]

2016-04-20  Michael Granger  <ged@FaerieMUD.org>

	* arborist.gemspec:
	Update the gemspec
	[1cd5199203f9]

	* lib/arborist/command/start.rb:
	Don't default to profiling the start command
	[8f480f46c441]

	* Manifest.txt, lib/arborist/node/resource.rb,
	spec/arborist/node/resource_spec.rb,
	spec/arborist/node/service_spec.rb:
	Add a `resource` host subnode type.
	[880c4d370508]

	* Protocol.md, TODO.md, lib/arborist/manager.rb,
	lib/arborist/manager/tree_api.rb,
	spec/arborist/manager/tree_api_spec.rb,
	spec/arborist/manager_spec.rb:
	Add a depth argument to the tree API "list" command.
	[e319210e26cb]

	* lib/arborist/monitor/socket.rb:
	Use an empty string for the send in the UDP socket monitor
	[4a43736bba05]

	* Manifest.txt:
	Update the manifest
	[15f5c789b17c]

	* spec/arborist/event/node_spec.rb:
	Add specs for the node event base class
	[d9b8715427c3]

	* spec/data/observers/webservices.rb:
	Fix the observer setup in spec data
	[a990ba28f0a8]

	* lib/arborist/monitor/socket.rb:
	Add a to-do comment for a race condition
	[7aab38ffd06a]

2016-04-18  Michael Granger  <ged@FaerieMUD.org>

	* lib/arborist/cli.rb, lib/arborist/command/start.rb:
	Add profiling to the `start` command, clean up cli code a bit
	[7117040136c4]

2016-04-18  Mahlon E. Smith  <mahlon@martini.nu>

	* TODO.md:
	Update TODO with some additional ideas.
	[f81ee9253773]

2016-04-14  Mahlon E. Smith  <mahlon@martini.nu>

	* lib/arborist/monitor/socket.rb, lib/arborist/node.rb:
	Checkpoint commit.

	 - Add UDP checking, based on the TCP checker.
	 - Fix logging for quieted nodes.
	 - Start updating the status_changed node attribute on status
	transitions.
	[527fafd7c668]

	* TODO.md:
	Add a quick blurb to the TODO.
	[6f93cc30a5e1]

2016-04-14  Michael Granger  <ged@FaerieMUD.org>

	* .hgignore, .hoerc, lib/arborist/monitor_runner.rb,
	spec/arborist/manager_spec.rb:
	Fix the monitor running after adding negative criteria.
	[46d6c436174c]

2016-04-13  Michael Granger  <ged@FaerieMUD.org>

	* lib/arborist/client.rb, lib/arborist/event/node.rb,
	lib/arborist/manager.rb, lib/arborist/manager/tree_api.rb,
	lib/arborist/monitor_runner.rb, spec/arborist/client_spec.rb,
	spec/arborist/manager/tree_api_spec.rb,
	spec/arborist/manager_spec.rb:
	Implement exclude for node matching/monitors
	[99d5e31791a3]

	* lib/arborist/monitor.rb, spec/arborist/monitor_spec.rb:
	Handle system call errors while running the monitor command
	[b4ca615e0b32]

	* lib/arborist/node.rb, lib/arborist/node/ack.rb,
	spec/arborist/node/ack_spec.rb:
	Fix the status description during state changes with ack set.
	[40c91d7c3131]

	* Manifest.txt, TODO.md, arborist.gemspec, lib/arborist/node.rb,
	lib/arborist/node/ack.rb, spec/arborist/node/ack_spec.rb:
	Break node acks out into a class, fix serialization issues
	[d9d01450a189]

	* lib/arborist/node.rb, spec/arborist/node_spec.rb:
	Fix node ack-clearing
	[b6694a5b8368]

2016-04-12  Mahlon E. Smith  <mahlon@martini.nu>

	* lib/arborist/client.rb:
	Add acknowledgement helpers for Arborist::Client.
	[98dae44fa322]

2016-04-11  Michael Granger  <ged@FaerieMUD.org>

	* Manifest.txt, lib/arborist/event/node_delta.rb,
	lib/arborist/node/host.rb, spec/arborist/node_spec.rb:
	Add an override to node.delta events

	The change to include node attributes in all `node.*` events broke
	the delta event, and changed what the `node.ack` events look like.

	This fixes `node.delta` events to look like they did before (only
	including the diff in their payload), and updates the specs for the
	`node.ack` event to expect the new-style payload.
	[af21efce26e3]

	* .tm_properties, lib/arborist/event/node.rb,
	lib/arborist/event/node_update.rb,
	spec/arborist/event/node_down_spec.rb,
	spec/arborist/event/node_update_spec.rb:
	Include node payload in all node events
	[8257c7337a2b]

	* TODO.md:
	Update TODO
	[fca1215eee50]

	* lib/arborist/manager/tree_api.rb:
	Log client api commands at debug instead of info
	[a497308b8723]

2016-04-06  Michael Granger  <ged@FaerieMUD.org>

	* TODO.md, lib/arborist/manager.rb, lib/arborist/node.rb,
	spec/arborist/manager_spec.rb:
	Don't cross quieted nodes in default traversal
	[92756b2da807]

	* TODO.md:
	Update TO DO list
	[7a24db395228]

	* lib/arborist/node.rb:
	Don't log dependency state on every node.up event
	[8585c6dd3240]

	* lib/arborist/node/service.rb:
	Don't restore addresses for marshalled services
	[1665d36ffadd]

	* lib/arborist/cli.rb:
	Fix logging in the cli
	[25e09c2f43a9]

	* Manifest.txt, Nodes.md, TODO.md, arborist.gemspec, lib/arborist.rb,
	lib/arborist/cli.rb, lib/arborist/command/client.rb,
	lib/arborist/command/start.rb, lib/arborist/dependency.rb,
	lib/arborist/event.rb, lib/arborist/event/node.rb,
	lib/arborist/event/node_acked.rb, lib/arborist/event/node_delta.rb,
	lib/arborist/event/node_disabled.rb,
	lib/arborist/event/node_down.rb,
	lib/arborist/event/node_matching.rb,
	lib/arborist/event/node_quieted.rb,
	lib/arborist/event/node_unknown.rb, lib/arborist/event/node_up.rb,
	lib/arborist/event/node_update.rb,
	lib/arborist/event/sys_node_added.rb,
	lib/arborist/event/sys_node_removed.rb, lib/arborist/exceptions.rb,
	lib/arborist/manager.rb, lib/arborist/manager/event_publisher.rb,
	lib/arborist/manager/tree_api.rb, lib/arborist/node.rb,
	lib/arborist/node/host.rb, lib/arborist/node/service.rb,
	lib/arborist/subscription.rb, spec/arborist/dependency_spec.rb,
	spec/arborist/event/node_delta_spec.rb,
	spec/arborist/event/node_update_spec.rb,
	spec/arborist/event_spec.rb, spec/arborist/manager_spec.rb,
	spec/arborist/monitor_spec.rb, spec/arborist/node/host_spec.rb,
	spec/arborist/node/service_spec.rb, spec/arborist/node_spec.rb,
	spec/arborist/subscription_spec.rb:
	Add ability to express secondary dependencies
	* * * Experimental sexps using a Struct
	[ed4f0655b4b6]

2016-03-02  Michael Granger  <ged@FaerieMUD.org>

	* TODO.md:
	Update the to-do list
	[5ff19d1aefbd]

	* arborist.gemspec, lib/arborist/cli.rb, lib/arborist/event.rb,
	lib/arborist/event/node_delta.rb, lib/arborist/mixins.rb,
	lib/arborist/node.rb, spec/arborist/event/node_delta_spec.rb:
	Fix matching for node delta events
	[c3ad32bd54a2]

	* lib/arborist/manager.rb:
	Remove unused Manager constant
	[8079f5cdaecb]

	* .hoerc:
	Don't include state files in the manifest
	[72aa5a4204b5]

	* .hgignore, lib/arborist.rb, lib/arborist/manager.rb,
	lib/arborist/node.rb, lib/arborist/node/root.rb,
	spec/arborist/manager_spec.rb, spec/arborist/node_spec.rb:
	Save and restore tree state across restarts
	* * * fold this
	[f002d3b7cb8b]

2016-02-24  Michael Granger  <ged@FaerieMUD.org>

	* TODO.md:
	Update the TODO list
	[47ef6bc4fe24]

2016-02-22  Michael Granger  <ged@FaerieMUD.org>

	* TODO.md, lib/arborist/client.rb, lib/arborist/manager/tree_api.rb,
	spec/arborist/client_spec.rb,
	spec/arborist/manager/tree_api_spec.rb:
	Add MODIFY to the tree api/client.
	[6cfcaabc4a68]

	* lib/arborist/node.rb, spec/arborist/node_spec.rb:
	Fix Node tags modification
	[7ede931a8214]

2016-02-10  Michael Granger  <ged@FaerieMUD.org>

	* TODO.md, lib/arborist/client.rb, lib/arborist/exceptions.rb,
	lib/arborist/manager.rb, lib/arborist/manager/tree_api.rb,
	lib/arborist/node.rb, lib/arborist/node/host.rb,
	lib/arborist/node/service.rb, spec/arborist/client_spec.rb,
	spec/arborist/manager/tree_api_spec.rb,
	spec/arborist/manager_spec.rb, spec/arborist/node/service_spec.rb,
	spec/arborist_spec.rb, spec/spec_helper.rb:
	Added GRAFT to the tree API
	[9c41353696cb]

	* Protocol.md, TODO.md, lib/arborist/client.rb,
	lib/arborist/manager/tree_api.rb, spec/arborist/client_spec.rb,
	spec/arborist/manager/tree_api_spec.rb:
	Added PRUNE to the tree API.
	[43af5daf67a7]

	* TODO.md:
	Updated the TODO list
	[b30a77db11dd]

	* LICENSE, Manifest.txt, Rakefile, arborist.gemspec:
	Build system cleanup
	[5fe75989da8e]

2016-02-08  Michael Granger  <ged@FaerieMUD.org>

	* lib/arborist.rb, lib/arborist/monitor.rb, lib/arborist/node.rb,
	lib/arborist/node/host.rb, lib/arborist/node/service.rb,
	lib/arborist/observer.rb, spec/arborist/node/host_spec.rb,
	spec/arborist/node_spec.rb, spec/spec_helper.rb:
	Add subnode declarations and add the infrastructure for graft/modify
	[bfcbe35fc82f]

2016-02-03  Michael Granger  <ged@FaerieMUD.org>

	* TODO.md:
	Add some more stuff to the TODO doc
	[593114f4d409]

	* Protocol.md:
	Add the node operations to the Protocol doc
	[250d32bc3eb6]

	* Merge with 84af7642624c
	[d795d8884afa]

2016-02-02  Mahlon E. Smith  <mahlon@martini.nu>

	* .gems, Rakefile, arborist.gemspec:
	oop, highline also needs to be a dependency.
	[84af7642624c]

	* .gems, Rakefile:
	Add GLI dependency.
	[d73277230ec2]

2016-02-03  Michael Granger  <ged@FaerieMUD.org>

	* lib/arborist/node.rb:
	Add API docs for the state_machines generated methods
	[00d6b23ff90a]

2016-01-28  Michael Granger  <ged@FaerieMUD.org>

	* README.md, Rakefile, arborist.gemspec:
	Fix the link list in the README, 'docs' rake target.
	[6479be826ccc]

	* Manifest.txt, README.md, Tutorial.md:
	Update the README and add a stub for the Tutorial mentioned in it.
	[f020438be6d9]

	* spec/arborist/client_spec.rb, spec/spec_helper.rb:
	Skip the spec that requires the ZMQ workaround under CI

	- The ZMQ registration bug workaround never works in Semaphore's
	environment, so just skip that spec there.
	[3ec418f69498]

	* Manifest.txt, lib/arborist/cli.rb, spec/arborist_spec.rb:
	Fix leaking the root node singleton between specs.

	- Also silences some noisy logging from the config specs.
	[570a00a9311d]

	* lib/arborist.rb, lib/arborist/node.rb,
	spec/arborist/manager/tree_api_spec.rb,
	spec/arborist/monitor_spec.rb, spec/arborist_spec.rb,
	spec/spec_helper.rb:
	Fix some specs; still an order-dependent failure for seed 46570
	[e23d2b9f8f31]

	* bin/amanagerd, bin/amonitord, bin/aobserverd, bin/arborist,
	lib/arborist/cli.rb, lib/arborist/client.rb,
	lib/arborist/command/client.rb, lib/arborist/command/config.rb,
	lib/arborist/command/start.rb, lib/arborist/command/watch.rb,
	lib/arborist/event/node_matching.rb, lib/arborist/observer.rb,
	spec/data/monitors/pings.rb:
	Add a CLI and consolidate daemons into a "start" command
	[8180949a5e2c]

	* lib/arborist.rb, lib/arborist/loader.rb,
	lib/arborist/loader/file.rb, lib/arborist/manager.rb,
	lib/arborist/monitor.rb, lib/arborist/node.rb,
	lib/arborist/observer.rb:
	Add a loader-plugin system instead of assuming files
	[6871a50affeb]

2016-01-20  Michael Granger  <ged@FaerieMUD.org>

	* lib/arborist/node.rb:
	Whitespace fix
	[4ad9a2f6dd09]

	* spec/arborist/node_spec.rb, spec/data/monitors/port_checks.rb:
	Remove a note from the port checks example after discussion
	[e41ae3591da2]

	* TODO.md:
	Add some more TODO stuff
	[cf1ef68d637d]

	* Rakefile:
	Fix license copypasta in the Rakefile
	[83ab92cd92b1]

	* TODO.md, arborist.gemspec, lib/arborist/manager.rb,
	lib/arborist/node.rb, spec/arborist/manager_spec.rb,
	spec/arborist/node_spec.rb:
	Add 'disabled' node state.
	[747e81edf7e4]

	* .hgignore, Rakefile, arborist.gemspec, lib/arborist/node/service.rb:
	Updates for the gem build.
	[de06b562b8bd]

2015-12-31  Michael Granger  <ged@FaerieMUD.org>

	* alerts/host_down.rb, images/Leaf.sketch, monitoring_featureset.txt:
	Removing some miscellanous files
	[a2f8b47a4b2a]

2015-12-30  Michael Granger  <ged@FaerieMUD.org>

	* .gems, .hoerc, Manifest.txt, Observers.md, Rakefile,
	arborist.gemspec, lib/arborist/observer/action.rb,
	lib/arborist/observer/summarize.rb,
	spec/arborist/observer/summarize_spec.rb:
	Add scheduling to observers.
	[55599200bf56]

2015-12-16  Michael Granger  <ged@FaerieMUD.org>

	* Observers.md, bin/amonitord, bin/aobserverd,
	lib/arborist/observer.rb, lib/arborist/observer/action.rb,
	lib/arborist/observer/summarize.rb, lib/arborist/observer_runner.rb,
	spec/arborist/observer/action_spec.rb,
	spec/arborist/observer/summarize_spec.rb,
	spec/arborist/observer_spec.rb, spec/data/observers/auditor.rb:
	Add Observer#summarize actions
	* * * Hook Action and Summary into Observers
	[335823f98550]

2015-12-14  Michael Granger  <ged@FaerieMUD.org>

	* lib/arborist/manager/event_publisher.rb:
	Break the #register retry loop
	[d784b06e615d]

2015-12-11  Michael Granger  <ged@FaerieMUD.org>

	* .hgignore, Observers.md, Protocol.md, TODO.md,
	lib/arborist/manager.rb, lib/arborist/observer.rb,
	lib/arborist/observer/action.rb, lib/arborist/observer_runner.rb,
	spec/arborist/observer/action_spec.rb:
	Implement count and time thresholds on Observer actions
	[88e5b037232f]

2015-12-09  Michael Granger  <ged@FaerieMUD.org>

	* Observers.md, bin/aobserverd, lib/arborist.rb,
	lib/arborist/client.rb, lib/arborist/event.rb,
	lib/arborist/event/node_acked.rb, lib/arborist/event/node_delta.rb,
	lib/arborist/event/node_matching.rb,
	lib/arborist/event/node_update.rb, lib/arborist/manager.rb,
	lib/arborist/manager/event_publisher.rb,
	lib/arborist/monitor/socket.rb, lib/arborist/node.rb,
	lib/arborist/node/service.rb, lib/arborist/observer.rb,
	lib/arborist/observer_runner.rb, lib/arborist/subscription.rb,
	spec/arborist/client_spec.rb,
	spec/arborist/event/node_update_spec.rb,
	spec/arborist/event_spec.rb,
	spec/arborist/manager/event_publisher_spec.rb,
	spec/arborist/manager/tree_api_spec.rb,
	spec/arborist/manager_spec.rb, spec/arborist/observer_spec.rb,
	spec/arborist/subscription_spec.rb, spec/data/nodes/localhost.rb,
	spec/data/observers/auditor.rb, spec/data/observers/webservices.rb,
	spec/spec_helper.rb:
	Add Observer class
	* * * Refactor publication responsibility into Subscription
	[fddcbace9b6d]

2015-12-07  Michael Granger  <ged@FaerieMUD.org>

	* lib/arborist/node.rb:
	Allow single filename arguments to Node.each_in as with Monitor et.
	al.
	[b675468ea2d3]

	* lib/arborist/monitor.rb:
	Fix a constant name in monitor.rb.
	[3fc70d8200e5]

	* lib/arborist/monitor/socket.rb,
	spec/arborist/monitor/socket_spec.rb:
	Fix the update data and error handling in the socket monitor
	[a552217db04b]

2015-12-05  Michael Granger  <ged@FaerieMUD.org>

	* lib/arborist/monitor/socket.rb,
	spec/arborist/monitor/socket_spec.rb,
	spec/data/monitors/port_checks.rb:
	Add initial TCP socket monitor logic class
	[a93e4f9cc81c]

2015-12-03  Michael Granger  <ged@FaerieMUD.org>

	* lib/arborist/node.rb, lib/arborist/node/host.rb,
	lib/arborist/node/service.rb, spec/arborist/node/host_spec.rb,
	spec/arborist/node/service_spec.rb, spec/arborist/node_spec.rb,
	spec/spec_helper.rb:
	Fix some node filtering issues and improve Node#inspect
	[9f03e5ab6b67]

	* lib/arborist/mixins.rb, spec/arborist/mixins_spec.rb:
	Add future? and past? to TimeRefinements
	[5395744f5005]

2015-12-02  Michael Granger  <ged@FaerieMUD.org>

	* Monitors.md, lib/arborist/monitor.rb, spec/arborist/monitor_spec.rb:
	Make Monitor#exec accept any object that implements #run
	[38cf9a76d080]

	* .hgignore, Monitors.md, lib/arborist/monitor.rb,
	spec/arborist/monitor_spec.rb:
	Allow monitor exec to take a Module too
	[f9b1e2534a0b]

2015-11-16  Michael Granger  <ged@FaerieMUD.org>

	* .gems, .tm_properties, Monitors.md, Protocol.md, bin/amonitord,
	experiments/modcontext-instance-eval.rb, experiments/pipe-cat.rb,
	lib/arborist/client.rb, lib/arborist/monitor.rb,
	spec/arborist/manager_spec.rb, spec/arborist/monitor_spec.rb,
	spec/data/monitors/pings.rb, spec/data/monitors/web_services.rb,
	spec/spec_helper.rb:
	Rewrote monitor strategy
	[1c67662ec4f3]

2015-10-14  Michael Granger  <ged@FaerieMUD.org>

	* .gems, Monitors.md, Protocol.md, lib/arborist/manager.rb,
	lib/arborist/monitor.rb, spec/data/monitors/pings.rb,
	spec/data/observers/webservices.rb:
	Change the execution strategy used for monitors/observers.

	Update docs/examples with the new mechanism
	[979179fac69a]

2015-10-07  Mahlon E. Smith  <mahlon@martini.nu>

	* .gems, Rakefile, experiments/arborist.schema, experiments/nodes-
	from-ldap.rb, lib/arborist/manager.rb:
	Checkpoint a LDAP sourced node builder.
	[0bdf779138c4]

2015-09-10  Michael Granger  <ged@FaerieMUD.org>

	* lib/arborist/node.rb, spec/arborist_spec.rb, spec/spec_helper.rb:
	Only use the `spec/data/nodes` directory for loading test nodes
	[43882cef9f1f]

2015-09-09  Michael Granger  <ged@FaerieMUD.org>

	* Observers.md, lib/arborist/client.rb, lib/arborist/event.rb,
	lib/arborist/event/sys_reloaded.rb, lib/arborist/manager.rb,
	lib/arborist/manager/tree_api.rb, lib/arborist/node.rb,
	lib/arborist/subscription.rb, spec/arborist/client_spec.rb,
	spec/arborist/event_spec.rb, spec/arborist/manager/tree_api_spec.rb,
	spec/arborist/manager_spec.rb, spec/arborist/node_spec.rb,
	spec/arborist/subscription_spec.rb, spec/data/nodes/sidonie.rb,
	spec/data/observers/webservices.rb:
	Checkpoint commit
	[2e629096ee55]

2015-08-20  Michael Granger  <ged@FaerieMUD.org>

	* Rakefile, arborist.gemspec:
	Add missing author to the gemspec.
	[013f9be18f9f]

	* Events.md, Manifest.txt, Observers.md, Rakefile, arborist.gemspec,
	lib/arborist.rb, lib/arborist/event.rb,
	lib/arborist/event/node_acked.rb, lib/arborist/event/node_delta.rb,
	lib/arborist/event/node_update.rb, lib/arborist/manager.rb,
	lib/arborist/manager/event_publisher.rb,
	lib/arborist/manager/tree_api.rb, lib/arborist/node.rb,
	lib/arborist/node/root.rb, lib/arborist/subscription.rb,
	spec/arborist/event/node_update_spec.rb,
	spec/arborist/event_spec.rb,
	spec/arborist/manager/event_publisher_spec.rb,
	spec/arborist/manager/tree_api_spec.rb,
	spec/arborist/manager_spec.rb, spec/arborist/node/root_spec.rb,
	spec/arborist/node_spec.rb, spec/arborist/subscription_spec.rb,
	spec/spec_helper.rb:
	Add basic subscriptions, flesh out events.
	[6c8636097d37]

2015-07-20  Michael Granger  <ged@FaerieMUD.org>

	* Events.md, Manifest.txt, Observers.md, lib/arborist.rb,
	lib/arborist/event.rb, lib/arborist/manager.rb,
	lib/arborist/manager/tree_api.rb, lib/arborist/node.rb,
	spec/arborist/client_spec.rb,
	spec/arborist/manager/event_publisher_spec.rb,
	spec/arborist/manager/tree_api_spec.rb,
	spec/arborist/manager_spec.rb, spec/arborist/node_spec.rb:
	Start work on adding node update events

	- Simplify event class (no need for pluggability yet)
	- Refactor some of the tree API code with too much intimate knowledge
	of the manager and nodes up into the manager. This is also how the
	manager will be able to do event propagation from Tree API calls.
	- Add event-generation to Node#update.
	- Make the Tree API fetch always return Hash values for consistency
	[af63d56deafa]

2015-07-15  Michael Granger  <ged@FaerieMUD.org>

	* lib/arborist.rb, lib/arborist/manager.rb,
	spec/arborist/client_spec.rb,
	spec/arborist/manager/tree_api_spec.rb,
	spec/arborist/manager_spec.rb, spec/arborist/monitor_runner_spec.rb,
	spec/arborist_spec.rb:
	Fix a spec problem with trying to use two ZMQ contexts
	[ee2875d38797]

2015-07-08  Michael Granger  <ged@FaerieMUD.org>

	* Manifest.txt, bin/amonitord, lib/arborist.rb,
	lib/arborist/monitor_runner.rb, monitors/pings.rb,
	monitors/system_resources.rb, monitors/web_services.rb,
	spec/arborist/manager_spec.rb, spec/arborist/monitor_runner_spec.rb,
	spec/arborist_spec.rb, spec/data/monitors/pings.rb,
	spec/data/monitors/system_resources.rb,
	spec/data/monitors/web_services.rb:
	Add a monitor runner.
	[cd9a1a9cb61a]

2015-07-06  Michael Granger  <ged@FaerieMUD.org>

	* monitors/pings.rb:
	Only ping "down" nodes from the downed host pinger
	[874a2816d0d5]

2015-07-03  Michael Granger  <ged@FaerieMUD.org>

	* spec/data/nodes/duir.rb:
	Make the testing data work on hosts with no 'nat-pmp' /etc/services
	entry.
	[25bdee773318]

	* Rakefile, arborist.gemspec, bin/amanagerd:
	Add timecop developer dep
	[682cf0904237]

	* Rakefile, arborist.gemspec:
	Fix rbczmq version.
	[337d4ddc2c41]

	* Rakefile, arborist.gemspec:
	Fix deps: add rbczmq, remove rgl.
	[00aed09c231c]

	* Manifest.txt, Nodes.md, arborist.gemspec:
	Update manifest, gemspec.
	[905f639ef8c2]

	* Rakefile:
	Rebuild the gemspec before checkin
	[6ac865dc47c1]

2015-07-02  Michael Granger  <ged@FaerieMUD.org>

	* experiments/run_monitors.rb, lib/arborist.rb,
	lib/arborist/client.rb, lib/arborist/node.rb,
	lib/arborist/node/host.rb, lib/arborist/node/root.rb,
	spec/arborist/client_spec.rb:
	Add a spike of a ZMQ::Loop-based monitor runner.
	[c32fc2af7e33]

	* lib/arborist/manager.rb, lib/arborist/manager/event_publisher.rb,
	spec/arborist/manager/event_publisher_spec.rb:
	Add registration/deregistration for event publisher to avoid
	spinning.
	[fd304df012d4]

	* Monitors.md, lib/arborist/monitor.rb, monitors/pings.rb,
	monitors/system_resources.rb, monitors/web_services.rb,
	spec/arborist/monitor_spec.rb:
	Add initial implementation of the monitor class.
	[9fe5a028d82a]

2015-07-01  Michael Granger  <ged@FaerieMUD.org>

	* experiments/fping_wrapper.sh, experiments/fping_wrapper_data.txt:
	Adding experimental fping shell wrapper
	[97321e2a97fd]

2015-06-19  Michael Granger  <ged@FaerieMUD.org>

	* README.md:
	Fix spelling of the project in the README.
	[f0ffaa9a81b8]

2015-06-18  Michael Granger  <ged@FaerieMUD.org>

	* Monitors.md, Protocol.md:
	Renamed Monitors.md to Protocol.md
	[05ab00e422c5]

2015-06-17  Michael Granger  <ged@FaerieMUD.org>

	* bin/amanagerd, experiments/make_dot.rb, lib/arborist.rb,
	lib/arborist/client.rb, lib/arborist/manager.rb,
	lib/arborist/manager/tree_api.rb, lib/arborist/mixins.rb,
	lib/arborist/node.rb, lib/arborist/node/host.rb,
	lib/arborist/node/service.rb, spec/arborist/client_spec.rb,
	spec/arborist/manager/tree_api_spec.rb,
	spec/arborist/manager_spec.rb, spec/arborist/node_spec.rb,
	spec/spec_helper.rb:
	Finish up work on the Tree API, add a simple client class
	[6e4b8b2e9692]

	* Monitors.md, lib/arborist/manager.rb,
	lib/arborist/manager/event_publisher.rb,
	lib/arborist/manager/tree_api.rb, lib/arborist/mixins.rb,
	lib/arborist/node.rb, lib/arborist/node/host.rb,
	lib/arborist/node/service.rb,
	spec/arborist/manager/tree_api_spec.rb,
	spec/arborist/manager_spec.rb, spec/arborist/node/service_spec.rb,
	spec/arborist/node_spec.rb, spec/data/nodes/sidonie.rb,
	spec/data/nodes/yevaud.rb:
	Checkpoint commit
	[53f8c46273b7]

2015-05-28  Michael Granger  <ged@FaerieMUD.org>

	* .tm_properties, lib/arborist/manager.rb,
	lib/arborist/manager/tree_api.rb, lib/arborist/node.rb,
	spec/arborist/manager/tree_api_spec.rb,
	spec/arborist/manager_spec.rb:
	Checkpoint of work from Wednesday
	[c17020a7fb2a]

2015-05-27  Mahlon E. Smith  <mahlon@martini.nu>

	* .gems, experiments/make_dot.rb:
	Add some dependencies to the .gems file. Add a simplistic .dot
	generator.
	[3e66ce756411]

2015-05-25  Michael Granger  <ged@FaerieMUD.org>

	* .gems, .hgignore, Manifest.txt, Monitors.md, Observers.md, Rakefile,
	experiments/manager-sockets.rb, experiments/yay-client.rb,
	lib/arborist.rb, lib/arborist/exceptions.rb,
	lib/arborist/manager.rb, lib/arborist/manager/event_publisher.rb,
	lib/arborist/manager/tree_api.rb, lib/arborist/node/host.rb,
	lib/arborist/node/service.rb, lib/arborist/node/webservice.rb,
	spec/arborist/manager/event_publisher_spec.rb,
	spec/arborist/manager/tree_api_spec.rb,
	spec/arborist/manager_spec.rb, spec/arborist/node/service_spec.rb,
	spec/arborist_spec.rb, spec/data/nodes/duir.rb,
	spec/data/nodes/sidonie.rb, spec/data/nodes/test1.rb,
	spec/data/nodes/yevaud.rb, spec/spec_helper.rb, tree/duir.rb,
	tree/sidonie.rb, tree/yevaud.rb:
	Start implementing the Tree API

	- Document the protocol
	- Start specs for the API handler.
	- Add MessagePack lib dependency
	- Add manager server stuff (startup, shutdown, signal-handling, etc.)
	- Resolve some problems with the Service node type.
	[c6fb156530cc]

2015-05-06  Michael Granger  <ged@FaerieMUD.org>

	* ChangeLog, Manifest.txt, Monitors.md, experiments/monitor-client.rb,
	experiments/monitor-service.rb, lib/arborist.rb,
	lib/arborist/mixins.rb, lib/arborist/node.rb,
	lib/arborist/node/host.rb, lib/arborist/node/service.rb,
	monitors/pings.rb, spec/arborist/node/host_spec.rb,
	spec/arborist/node/root_spec.rb, spec/arborist/node/service_spec.rb,
	spec/arborist/node_spec.rb, spec/arborist_spec.rb:
	Checkpoint of work from today and last week.

	- Added acknowlegements to Arborist::Node
	- Fixed address code for host nodes, port code for service nodes.
	- Better spec coverage all around.
	[c94494647182]

2015-04-22  Michael Granger  <ged@FaerieMUD.org>

	* .pryrc:
	Load all node types in .pryrc
	[7366a03c490e]

	* lib/arborist.rb:
	Fix a bug in `Arborist.manager_for`
	[4c9abee5b344]

	* lib/arborist/node.rb, lib/arborist/node/webservice.rb,
	spec/arborist/node_spec.rb:
	Add properties/status API to Arborist::Node.
	[98f3f332b5a3]

	* experiments/monitor-client.rb, experiments/monitor-service.rb:
	Add spike of REQ/REP socket use
	[0126d248b0f6]

2015-04-15  Michael Granger  <ged@FaerieMUD.org>

	* .tm_properties, Monitors.md, Rakefile, experiments/hash-add.rb,
	lib/arborist.rb, lib/arborist/manager.rb, lib/arborist/node.rb,
	lib/arborist/node/host.rb, lib/arborist/node/root.rb,
	spec/arborist/manager_spec.rb, spec/arborist/node_spec.rb,
	spec/data/nodes/test1.rb, spec/spec_helper.rb:
	Add basic node graph functionality
	[e653b1bafeb7]

2015-03-22  Michael Granger  <ged@FaerieMUD.org>

	* .gems, .pryrc, .rvm.gems, README.md, images/Leaf.sketch,
	lib/arborist.rb, lib/arborist/collector.rb, lib/arborist/manager.rb,
	lib/arborist/node.rb, lib/arborist/node/host.rb,
	spec/arborist/collector_spec.rb, spec/arborist/manager_spec.rb,
	tree/duir.rb, tree/sidonie.rb, tree/yevaud.rb:
	Snapshot of today's spike work
	[203aed65712a]

2015-03-18  Michael Granger  <ged@FaerieMUD.org>

	* .document, .hgignore, .pryrc, .rvm.gems, .rvmrc, .simplecov,
	ChangeLog, Gemfile, History.md, LICENSE, Manifest.txt, Observers.md,
	README.md, Rakefile, alerts/host_down.rb, arborist.gemspec,
	lib/arborist.rb, lib/arborist/collector.rb, lib/arborist/event.rb,
	lib/arborist/mixins.rb, lib/arborist/node.rb,
	lib/arborist/node/host.rb, lib/arborist/node/root.rb,
	lib/arborist/node/service.rb, monitoring_featureset.txt,
	monitors/pings.rb, monitors/system_resources.rb,
	monitors/web_services.rb, spec/arborist/collector_spec.rb,
	spec/arborist/mixins_spec.rb, spec/arborist_spec.rb,
	spec/spec_helper.rb, tree/duir.rb, tree/sidonie.rb, tree/yevaud.rb:
	Spikes and notes
	[0999d72c1a9f]