anon-roles are now more efficient about package usage
[gitmo/Moose.git] / Changes
diff --git a/Changes b/Changes
index 6304094..b91c65a 100644 (file)
--- a/Changes
+++ b/Changes
 Revision history for Perl extension Moose
 
-0.19
+0.34
+    ~~~ more misc. doc. fixes ~~~
+    ~~ updated copyright dates ~~
+    
+    Moose is now a postmodern object system 
+      - (see the POD for details)
+    
+    * Moose::Meta::Method::Accessor
+      - fixed bug when passing a list of values to 
+        an accessor would get (incorrectly) ignored.
+        Thanks to Sartak for finding this ;)
+        - added tests for this (Sartak again)
+
+    * Moose::Meta::Method::Accessor
+      Moose::Meta::Method::Constructor
+      Moose::Meta::Attribute
+      Moose::Meta::TypeConstraint      
+      Moose::Meta::TypeCoercion      
+      - lots of cleanup of such things as: 
+        - generated methods
+        - type constraint handling
+        - error handling/messages 
+        (thanks to nothingmuch)   
+
+    * Moose::Util::TypeConstraints
+      - all optimized type constraint subs are now 
+        pulled from the Moose::Util::TypeConstraints::OptimizedConstraints
+        module (thanks to nothingmuch)
+    
+    * Moose::Util::TypeConstraints::OptimizedConstraints
+      - added this module (see above)
+
+0.33 Fri. Dec. 14, 2007
+    !! Moose now loads 2 x faster !!
+    !!  with new Class::MOP 0.49  !!
+
+    ++ new oose.pm module to make command line
+       Moose-ness easier (see POD docs for more)
+    
+    * Moose::Meta::Class
+    * Moose::Meta::Role
+      - several tweaks to take advantage of the 
+        new method map caching in Class::MOP
+
+    * Moose::Meta::TypeConstraint::Parameterized
+      - allow subtypes of ArrayRef and HashRef to
+        be used as a container (sartak)
+        - added tests for this 
+      - basic support for coercion to ArrayRef and
+        HashRef for containers (sartak)
+        - added tests for this 
+        
+    * Moose::Meta::TypeCoercion
+      - coercions will now create subtypes as needed
+        so you can now add coercions to parameterized
+        types without having to explictly define them
+        - added tests for this
+
+    * Moose::Meta::Method::Accessor
+      - allow subclasses to decide whether we need
+        to copy the value into a new variable (sartak)
+
+0.32 Tues. Dec. 4, 2007
+    * Moose::Util::TypeConstraints
+      - fixing how subtype aliases of unions work
+        they should inherit the parent's coercion
+        - added tests for this
+      - you can now define multiple coercions on 
+        a single type at different times instead of
+        having to do it all in one place
+        - added tests for this
+      
+    * Moose::Meta::TypeConstraint
+      - there is now a default constraint of sub { 1 }
+        instead of Moose::Util::TypeConstraints setting
+        this for us
+
+    * Moose::Meta::TypeCoercion 
+    * Moose::Meta::TypeCoercion::Union    
+      - added the &has_coercion_for_type and 
+        &add_type_coercions methods to support the 
+        new features above (although you cannot add
+        more type coercions for Union types)
+
+0.31 Mon. Nov. 26, 2007
+    * Moose::Meta::Attribute
+      - made the +attr syntax handle extending types with 
+        parameters. So "has '+foo' => (isa => 'ArrayRef[Int]')"
+        now works if the original foo is an ArrayRef.
+        - added tests for this.
+      - delegation now works even if the attribute does not
+        have a reader method using the get_read_method_ref
+        method from Class::MOP::Attribute. 
+        - added tests for this
+        - added docs for this
+    
+    * Moose::Util::TypeConstraints
+      - passing no "additional attribute info" to 
+        &find_or_create_type_constraint will no longer 
+        attempt to create an __ANON__ type for you, 
+        instead it will just return undef.
+        - added docs for this
+
+0.30 Fri. Nov. 23, 2007
+    * Moose::Meta::Method::Constructor
+      -builder related bug in inlined constructor. (groditi)
+
+    * Moose::Meta::Method::Accessor
+      - genereate unnecessary calls to predicates and refactor
+        code generation for runtime speed (groditi)
+
+    * Moose::Util::TypeConstraints
+      - fix ClassName constraint to introspect symbol table (mst)
+        - added more tests for this (mst)
+      - fixed it so that subtype 'Foo' => as 'HashRef[Int]' ...
+        with work correctly.
+        - added tests for this
+
+    * Moose::Cookbook
+      - adding the link to Recipie 11 (written by Sartak)
+        - adding test for SYNOPSIS code
+
+    * t/ 
+      - New tests for builder bug. Upon instantiation, if an
+        attribute had a builder, no value and was not lazy the
+        builder default was not getting run, oops. (groditi)
+
+0.29 Tues. Nov. 13, 2007
+    * Moose::Meta::Attribute
+      - Fix error message on missing builder method (groditi)
+
+    * Moose::Meta::Method::Accessor
+      - Fix error message on missing builder method (groditi)
+
+    * t/ 
+      - Add test to check for the correct error message when
+        builder method is missing (groditi)
+
+0.28 Tues. Nov. 13, 2007
+    - 0.27 packaged incorrectly (groditi)     
+
+0.27 Tues. Nov. 13, 2007
+    * Moose::Meta::Attribute
+      - Added support for the new builder option (groditi)
+      - Added support for lazy_build option (groditi)
+      - Changed slot initialization for predicate changes (groditi)
+
+    * Moose::Meta::Method::Accessor
+      - Added support for lazy_build option (groditi)
+      - Fix inline methods to work with corrected predicate 
+        behavior (groditi)
+
+    * Moose::Meta::Method::Constructor
+      - Added support for lazy_build option (groditi)
+
+    * t/
+      - tests for builder and lazy_build (groditi)
+
+    * fixing some misc. bits in the docs that 
+      got mentioned on CPAN Forum & perlmonks
+    
+    * Moose::Meta::Role
+      - fixed how required methods are handled 
+        when they encounter overriden or modified
+        methods from a class (thanks to confound).
+        - added tests for this
+
+    * Moose::Util::TypeConstraint
+      - fixed the type notation parser so that 
+        the | always creates a union and so is 
+        no longer a valid type char (thanks to 
+        konobi, mugwump and #moose for working 
+        this one out.)
+        - added more tests for this
+
+0.26 Thurs. Sept. 27, 2007
+    == New Features ==
+    
+    * Parameterized Types
+      We now support parameterized collection types, such as: 
+          ArrayRef[Int]    # array or integers
+          HashRef[Object]  # a hash with object values
+      They can also be nested:
+          ArrayRef[HashRef[RegExpr]] # an array of hashes with regexpr values
+      And work with the type unions as well:
+          ArrayRef[Int | Str]  # array of integers of strings
+    
+    * Better Framework Extendability
+      Moose.pm is now "extendable" such that it is now much 
+      easier to extend the framework and add your own keywords 
+      and customizations. See the "EXTENDING AND EMBEDDING MOOSE"
+      section of the Moose.pm docs.
+    
+    * Moose Snacks!
+      In an effort to begin documenting some of the various 
+      details of Moose as well as some common idioms, we have 
+      created Moose::Cookbook::Snacks as a place to find 
+      small (easily digestable) nuggets of Moose code.
+    
+    ====
+    ~ Several doc updates/cleanup thanks to castaway ~
+    
+    - converted build system to use Module::Install instead of 
+      Module::Build (thanks to jrockway)
+
+    * Moose
+      - added all the meta classes to the immutable list and 
+        set it to inline the accessors
+      - fix import to allow Sub::Exporter like { into => } 
+           and { into_level => } (perigrin)
+      - exposed and documented init_meta() to allow better 
+           embedding and extending of Moose (perigrin)
+           
+       * t/
+         - complete re-organization of the test suite
+         - added some new tests as well 
+         - finally re-enabled the Moose::POOP test since
+           the new version of DBM::Deep now works again
+           (thanks rob)
+
+    * Moose::Meta::Class
+      - fixed very odd and very nasty recursion bug with 
+        inner/augment (mst)
+        - added tests for this (eilara)
+
+    * Moose::Meta::Attribute
+      Moose::Meta::Method::Constructor
+      Moose::Meta::Method::Accessor
+      - fixed issue with overload::Overloaded getting called 
+        on non-blessed items. (RT #29269)
+        - added tests for this
+    
+    * Moose::Meta::Method::Accessor
+      - fixed issue with generated accessor code making 
+        assumptions about hash based classes (thanks to dexter)
+    
+    * Moose::Coookbook::Snacks
+      - these are bits of documentation, not quite as big as 
+        Recipes but which have no clear place in the module docs. 
+        So they are Snacks! (horray for castaway++)
+
+    * Moose::Cookbook::Recipe4
+      - updated it to use the new ArrayRef[MyType] construct
+        - updated the accompanying test as well
+
+    +++ Major Refactor of the Type Constraint system +++
+    +++       with new features added as well        +++
+
+    * Moose::Util::TypeConstraint
+      - no longer uses package variable to keep track of 
+        the type constraints, now uses the an instance of
+        Moose::Meta::TypeConstraint::Registry to do it
+      - added more sophisticated type notation parsing
+        (thanks to mugwump)
+        - added tests for this
+
+    * Moose::Meta::TypeConstraint
+      - some minor adjustments to make subclassing easier
+      - added the package_defined_in attribute so that we 
+        can track where the type constraints are created
+      
+    * Moose::Meta::TypeConstraint::Union
+      - this is now been refactored to be a subclass of 
+        Moose::Meta::TypeConstraint
+        
+    * Moose::Meta::TypeCoercion::Union
+      - this has been added to service the newly refactored
+        Moose::Meta::TypeConstraint::Union and is itself 
+        a subclass of Moose::Meta::TypeCoercion
+      
+    * Moose::Meta::TypeConstraint::Parameterized
+      - added this module (taken from MooseX::AttributeHelpers)
+        to help construct nested collection types
+        - added tests for this
+    
+    * Moose::Meta::TypeConstraint::Registry
+      - added this class to keep track of type constraints
+
+0.25 Mon. Aug. 13, 2007
+    * Moose
+      - Documentation update to reference Moose::Util::TypeConstraints 
+        under 'isa' in 'has' for how to define a new type 
+        (thanks to shlomif).
+
+    * Moose::Meta::Attribute
+      - required attributes now will no longer accept undef 
+        from the constructor, even if there is a default and lazy
+        - added tests for this
+      - default subroutines must return a value which passes the 
+        type constraint
+        - added tests for this
+    
+    * Moose::Meta::Attribute
+    * Moose::Meta::Method::Constructor
+    * Moose::Meta::Method::Accessor        
+      - type-constraint tests now handle overloaded objects correctly
+        in the error message
+        - added tests for this (thanks to EvanCarroll) 
+
+    * Moose::Meta::TypeConstraint::Union
+      - added (has_)hand_optimized_constraint to this class so that 
+        it behaves as the regular Moose::Meta::TypeConstraint does.
+
+    * Moose::Meta::Role
+      - large refactoring of this code
+      - added several more tests 
+        - tests for subtle conflict resolition issues 
+          added, but not currently running
+          (thanks to kolibre)
+
+    * Moose::Cookbook::Recipe7 
+      - added new recipe for augment/inner functionality 
+        (still in progress)
+        - added test for this
+
+    * Moose::Spec::Role
+      - a formal definition of roles (still in progress)
+
+    * Moose::Util
+      - utilities for easier working with Moose classes
+        - added tests for these
+
+    * Test::Moose
+      - This contains Moose specific test functions
+        - added tests for these
+
+0.24 Tues. July 3, 2007
+    ~ Some doc updates/cleanup ~
+
+    * Moose::Meta::Attribute
+      - added support for roles to be given as parameters 
+        to the 'handles' option.
+        - added tests and docs for this
+      - the has '+foo' attribute form now accepts changes to 
+        the lazy option, and the addition of a handles option
+        (but not changing the handles option)
+        - added tests and docs for this
+
+    * Moose::Meta::Role
+      - required methods are now fetched using find_method_by_name
+        so that required methods can come from superclasses
+        - adjusted tests for this
+
+0.23 Mon. June 18, 2007
+    * Moose::Meta::Method::Constructor
+      - fix inlined constructor for hierarchy with multiple BUILD methods (mst)
+    * Moose::Meta::Class
+      - Modify make_immutable to work with the new Class::MOP immutable
+        mechanism + POD + very basic test (groditi)
+    * Moose::Meta::Attribute
+      - Fix handles to use goto() so that caller() comes out properly on 
+        the other side (perigrin)
+
+0.22 Thurs. May 31, 2007
+    * Moose::Util::TypeConstraints
+      - fix for prototype undeclared issue when Moose::Util::TypeConstraints 
+        loaded before consumers (e.g. Moose::Meta::Attribute) by predeclaring
+        prototypes for functions
+      - added the ClassName type constraint, this checks for strings 
+        which will respond true to ->isa(UNIVERSAL). 
+        - added tests and docs for this
+      - subtyping just in name now works correctly by making the 
+        default for where be { 1 }
+        - added test for this 
+
+    * Moose::Meta::Method::Accessor
+      - coerce and lazy now work together correctly, thanks to 
+        merlyn for finding this bug
+        - tests added for this
+      - fix reader presedence bug in Moose::Meta::Attribute + tests
+
+    * Moose::Object
+      - Foo->new(undef) now gets ignored, it is assumed you meant to pass
+        a HASH-ref and missed. This produces better error messages then 
+        having it die cause undef is not a HASH.
+        - added tests for this
+
+0.21 Thursday, May 2nd, 2007
+    * Moose
+      - added SUPER_SLOT and INNER_SLOT class hashes to support unimport
+      - modified unimport to remove super and inner along with the rest
+        - altered unimport tests to handle this
+
+    * Moose::Role
+      - altered super export to populate SUPER_SLOT
+
+    * Moose::Meta::Class
+      - altered augment and override modifier application to use *_SLOT
+        - modified tests for these to unimport one test class each to test
+
+    * Moose::Meta::Role
+      - fixed issue where custom attribute metaclasses
+        where not handled correctly in roles
+        - added tests for this
+    
+    * Moose::Meta::Class
+      - fixed issue where extending metaclasses with 
+        roles would blow up. Thanks to Aankhen`` for
+        finding this insidious error, and it's solution.
+        
+    ~~ lots of spelling and grammer fixes in the docs, 
+       many many thanks to rlb3 and Aankhen for these :)
+
+0.20 Friday, April 6th, 2007
+    >> I messed up the SKIP logic in one test
+       so this release is just to fix that.
+
+    * Moose
+      - 'has' now also accepts an ARRAY ref
+        to create multiple attrs (see docs)
+        (thanks to konobi for this)
+         - added tests and docs 
+
+0.19 Thurs. April 5th, 2007
+    ~~ More documentation updates ~~
+
     * Moose::Util::TypeConstraints
-      - type now supports messages as well
+      - 'type' now supports messages as well
         thanks to phaylon for finding this
         - added tests for this
-      - added list_all_type_constraints and 
-        list_all_builtin_type_constraints
+      - added &list_all_type_constraints and 
+        &list_all_builtin_type_constraints
         functions to facilitate introspection.
     
     * Moose::Meta::Attribute
@@ -16,12 +431,19 @@ Revision history for Perl extension Moose
         things like &new) thanks to ashleyb 
         for finding this
         - added tests and docs for this
-      - added the "documentation" attributes
+      - added the 'documentation' attributes
         so that you can actually document your 
         attributes and inspect them through the 
         meta-object.
         - added tests and docs for this
 
+    * Moose::Meta::Class
+      - when loading custom attribute metaclasses
+        it will first look in for the class in the 
+        Moose::Meta::Attribute::Custom::$name, and 
+        then default to just loading $name.
+        - added tests and docs for this
+
     * Moose::Meta::TypeConstraint
       - type constraints now stringify to their names.
         - added test for this