=head1 NAME Badger::Changes - Summary of changes in the Badger toolkit =head1 CHANGES This document contains a brief overview of what has changed between successive version of the Badger toolkit. Badger is now considered to be mature, stable, reliable, and unlikely to change significantly in future versions. =head2 Version 0.12 - 12th December 2016 Added some tests for YAML modules in 3 test scripts that were failing. =head2 Version 0.11 - 11th December 2016 Fix for missing file in distribution. =head2 Version 0.10 - 11th December 2016 Added L, L, L, L, L, L, L and L. Refactored parts of L. Changed L L method to allow message formats to be defined in C<$self->{ messages }> when C<$self> is a blessed hash object. Added L method to L. Fixed a bug in the L feature of L which prevented it from working with subclasses. Fixed a bug in L L to make it directly call other C functions instead of relying on inheritance of those methods through C<$self>. Added L, L, L, L, L, L, L, L and L, to L. Added additional delegate hooks to L to load utility functions in L, L, L, L and L. Squashed a non-numerical warning in L. Added the L, L and L constants to L. Fixed L to work better with L and L to work better with L. Fixed a typo/bug in the L method which was returning the wrong argument list. Fixed a parser bug in L. Fixes to silence warnings in perl 5.22. =head2 Version 0.09 - 8th February 2012 Added L. Changed L to numify values to remove leading zeroes (e.g. 2012/04/20 now yields a month of 4 instead of 04). Fixed some obscure bugs in the module loading code in L and related modules that could potentially cause unpredictable results on case insensitive file systems (e.g. Apple's HFS with default settings). Added the L method to L. Added documentation for various methods that was missing. Temporary disabled the Pod::Coverage tests on AUTOMATED_TESTING systems. We know there's still stuff to do. Added SLASH to Badger::Constants =head2 Version 0.08 - 13th January 2012 Restored the C<$VERSION> variable to L rather than using the C import hook in L which confused PAUSE. Changed L to detect undefined results. Merged Michael Grubb's bug fix for L: L Fixed some minor documentation issues. =head2 Version 0.07 - 2nd January 2012 Added L, L. and L. Added L. Added the L method to L. Added L and L methods to L. Also changed the L, L and L functions to short-circuit and return if passed a single object that is already of the expected type. Added some extra comparison methods to L (L, (L and L) and overloaded these and other methods onto the C<==>, C, C>, C>, C=> and C=> operators. Added the L and L methods to L. Added the L import hook and C<-a|Badger::Test/all()> option to L to make it easier to define tests that don't get run unless a particular environment variable is set (e.g. for Pod coverage/kwalitee tests that you only want to run if either of the C or C environment variables is set). Added the L, L and L functions to L. Also add some extra debugging code to L and L to catch any attempt to pass an odd number of arguments. Changed the L module to use L on the module path when specified as a single string. Also added the L and L methods along with their corresponding package variable magic. Added the L, L and L methods to L. Added the L method to L. Added the L method to L. Changed the L module to store the configuration scheme in C<$CONFIG_SCHEMA> instead of C<$CONFIG>. Added the L module which defines the C codec. Changed the L method in L to pass the exception type to L. Changed the L method in L to preserve the list/scalar calling context and to handle false but defined values. Cleaned up and generalised the L module. The Badger-specific data has now been moved into L. The C method is now called L. =head2 Version 0.06 Added L and L to L and L and L methods to L. Added L to L and L to L. Added L to L. Added the L method to L for specifying the encoding of a file, along with the L, L, L and L methods for enabling different encoding layers. Added the L method to L for specifying a serialisation codec to use in conjunction with the new L method. Added L. This is returned by the new L, L and L methods in L. Added L. Added L and L. Added L to L as an alias for C. It's the numerical counterpart to L and is significantly easier to type. Added L to L. Also added the C class definition for use with the L method. Added L import hook to L. Added L as an alias for L in L. Changed L to maintain the order of configuration parameters where possible (i.e. when expressed as a list ref rather than a hash ref). Also added C fallback which looks in the target object or hash ref for the variable. This allows options to default to the values set by preceeding options. Changed L to use L if available. Mr T is now using Badger 0.06 in production code and is happy to report that everything seems to be working rather well. Anyone for a game of tennis? =head2 Version 0.05 - 23rd December 2008 Refactored L. Added support to L for the C<=> pseudo-sigil which can be used to create constants on the fly. package Badger::Example; use Badger::Class exports => { tags => { math => { e => '=2.718', pi => '=3.142', phi => '=1.618', }, } }; package main; use Badger::Example ':math'; print e; # 2.718 print pi; # 3.142 print phi; # 1.618 Mr T is starting to feel rather confident about building a production system based on Badger v0.05. =head2 Version 0.04 - 2nd December 2008 Added the L method to L. Added L hook to L and L to L. Changed L L method to accept a list or hash reference, or a string of whitespace delimited exception types. Changed L to pass C<$name> as an argument to various methods. Also passes arguments to load() (required for Template::TT2::Plugins) Also modified L to accept a non-textlike type argument which bypasses the module lookup. Moved a whole bunch of stuff out of L into C modules. Added L for simple configuration. Added L method to L and L hook to L. Added L hook and related paraphernalia to L. Added the C<-t> / C<--trace> command line options to L to enable it when running tests. Also added C<-h> / C<--help> options. Added L exportable subroutine to L. Added L. It's similar to L, but slightly different. See the TT uri/url filters for the reason. Changed the L method in L to accept a single C value to clear any current prototype. Also added the L method. Mr T is looking on the bright side about the possibility of building a production system based on Badger v0.04, but still advises caution. =head2 Version 0.03 - 7th October 2008 Added delegate loaders to L. This provides some semantic sugar for loading a bunch of different C modules in one go. use Badger Filesystem => 'FS $Bin', Codecs => 'storable base64', Debug => { modules => 'My::Module', }; Added L to L. Added L to L Added the L L and L import hooks and related method to L. These delegate to the C module. Added the L method to L. Added support for L to L. Added the L and L hooks to L, implemented by L and L, respectively. There are still experimental. Fixed up some stat handling in L to help with subclassing in L Mr T pities the fool that attempts to builds a production system based on Badger version 0.03 without first evaluating it carefully and reading the documentation. =head2 Version 0.02 - 6th September 2008 L got the L method and hook for declaring and defining variables. L gained the ability to load and export functions from L, L, L, L and L. Various documentation updates. Mr T admires the tenacity of anyone attempting to build a production system based on Badger v0.02 and hopes they have a thorough test suite. =head2 Version 0.01 - 27th August 2008 This was the first release version. Mr T pities the fool who builds a production system based on Badger v0.01. =head1 AUTHOR Andy Wardley Eabw@wardley.orgE =head1 COPYRIGHT Copyright (C) 2008-2013 Andy Wardley. All Rights Reserved. This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself. =cut