# Bot::Cobalt Changes * 0.008 (13 Jun 2012) Core configuration accessors no longer return cloned copies of config hashes. This behavior was intended to make it harder for plugins to break core config unintentionally, but it was also unintuitive enough to trip myself up from time to time ;-) Return actual references instead. Bot::Cobalt::Serializer: - Drop Logger/LogMethod, always carp/croak/confess - Throw proper exceptions on most errors - Support writefile() lock retries and timeout Bot::Cobalt::IRC refactor and fixes: - ircplug_connect & ircplug_disconnect handlers - '!server' command handler in IRC::Role::AdminCmds - Move outgoing-to-IRC handlers to IRC::Role::UserEvents - Improved disconnect cleanup - Improved warnings/logging Bot::Cobalt::Utils: - support list-style arguments in rplprintf() - build %C_* vars for rplprintf at load-time rather than when called Plugin::Master; required access levels should've come from PluginOpts (rather than Opts, as this plugin doesn't normally have an external cfg) Die with stack traces on most errors (confess rather than croak) Various syntax / POD / test cleanups. * 0.007 (06 Jun 2012) Fix usage help message in Plugin::Extras::CPAN. Push missing bin/cobalt2{-installer, -plugin-installcf} portable path fixes. (Uh, oops?) Add missing test for Frontend::RC. * 0.006 (05 Jun 2012) Fix instance rc files: - Kill old-style rcfiles, use YAML like other confs - Allow absolute 'BASE' path to be passed in - Default to cwd() if not absolute and home directory not available - Create portable paths (File::Spec) This is an incompatible change; issue an informative error and suggest running `cobalt2-installer` on failure. Add Plugin::Extras::CPAN, a simplistic MetaCPAN and Module::CoreList querying plugin. Add debug opt to Bot::Cobalt::Conf constructor. Pass our --debug value to Conf as well (in bin/cobalt2 and Plugin::Rehash). Bot::Cobalt::Serializer should complain when freeze() or thaw() are given no data. Improved ::Core log object handling. Create initial log object at construction-time (not Syndicator start time) and ensure that replacement log objects can handle log methods in use in the core set. Use Try::Tiny in place of previous block evals and $@ checks. Depend on newer POE::Component::Client::HTTP and POE::Component::Resolver. Systems with older Components that happened to grab newer Socket::GetAddrInfo would produce failures due to Socket::GetAddrInfo API changes -- newer POE bits make use of newer Socket.pm and drop the GetAddrInfo dependency entirely. ...Not technically "our problem" but this makes my life less annoying on a couple machines :-) Some POD improvements and widely expanded tests. Drop 'tick' tracker for low-priority timer pool; pretty useless. Various small bug/oversight fixes: - Conf.pm; catch Serializer failures and report more details Related Plugin::Rehash fix to leave current configs untouched on read_cfg failures. - IRC.pm; more consistent error messages - IRC::Event::Nick; fix common() when channels() has changed - Explicitly 'use strictures' in IRC::* subclasses - Plugin::Auth; log to error() not emerg() * 0.005 (29 May 2012) Fix an IRC.pm bug that would cause failures if an error event was received for a context that never completed a connection. Fix Utils.pm bug in glob_* functions that would cause failures when operating on an untrue value. Should've been defined() checks. POD and test improvements and clean-ups. * 0.004 (27 May 2012) Fix IRC.pm bug that kept sessions hanging about when the bot was terminated via an online command. (This fixes the busted '!die' command from Plugin::Master). Also improve shutdown cleanups in Core. Code cleanups (no functionality change): - Bot::Cobalt::IRC - Bot::Cobalt::Utils - Significant POD cleanups * 0.003 (22 May 2012) Require perl-5.12.1; given/when changed sometime in there, it seems, and I'm tired of playing with EOL Perls anyway. Some Plugin::RDB cleanups. * 0.002 Fix a couple oversights resulting in test failures: - Fix Utils.pm test failures on