add test that fails in 0.26; roles' require() should be able to find real methods...
[gitmo/Moose.git] / Changes
diff --git a/Changes b/Changes
index ef0d9fb..7644888 100644 (file)
--- a/Changes
+++ b/Changes
@@ -1,6 +1,352 @@
 Revision history for Perl extension Moose
 
-0.15
+0.27
+    * fixing some misc. bits in the docs that 
+      got mentioned on CPAN Forum
+
+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
+        thanks to phaylon for finding this
+        - added tests for this
+      - added &list_all_type_constraints and 
+        &list_all_builtin_type_constraints
+        functions to facilitate introspection.
+    
+    * Moose::Meta::Attribute
+      - fixed regexp 'handles' declarations 
+        to build the list of delegated methods
+        correctly (and not override important 
+        things like &new) thanks to ashleyb 
+        for finding this
+        - added tests and docs for this
+      - 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
+
+    * misc.
+      - added tests to assure we work with Module::Refresh 
+      - added stricter test skip logic in the Moose POOP 
+        test, ask Rob Kinyon why.
+        - *cough* DBM::Deep 1.0 backwards compatability sucks *cough* ;)
+
+0.18 Sat. March 10, 2007
+    ~~ Many, many documentation updates ~~
+
+    * misc.
+      - We now use Class::MOP::load_class to 
+        load all classes.    
+      - added tests to show types and subtypes 
+        working with Declare::Constraints::Simple
+        and Test::Deep as constraint engines.
+
+0.18_001
+    !! You must have Class::MOP 0.37_001  !!
+    !! for this developer release to work !!
+
+    This release was primarily adding the immutable
+    feature to Moose. An immutable class is one which 
+    you promise not to alter. When you set the class 
+    as immutable it will perform various bits of 
+    memoization and inline certain part of the code
+    (constructors, destructors and accessors). This 
+    minimizes (and in some cases totally eliminates)
+    one of Moose's biggest performance hits. This 
+    feature is not on by default, and is 100% optional.
+    It has several configurable bits as well, so you 
+    can pick and choose to your specific needs.
+    
+    The changes involved in this were fairly wide and 
+    highly specific, but 100% backwards compatible, so 
+    I am not going to enumerate them here. If you are 
+    truely interested in what was changed, please do 
+    a diff :)
+
+0.17 Tues. Nov. 14, 2006
+    * Moose::Meta::Method::Accessor
+      - bugfix for read-only accessors which 
+        are have a type constraint and lazy.
+        Thanks to chansen for finding it.
+
+0.16 Tues. Nov. 14, 2006
+    ++ NOTE ++
+    There are some speed improvements in this release, 
+    but they are only the begining, so stay tuned.
+    
+    * Moose::Object
+      - BUILDALL and DEMOLISHALL no longer get 
+        called unless they actually need to be.
+        This gave us a signifigant speed boost
+        for the cases when there is no BUILD or 
+        DEMOLISH method present.
+        
+    * Moose::Util::TypeConstraints
+    * Moose::Meta::TypeConstraint
+      - added an 'optimize_as' option to the 
+        type constraint, which allows for a
+        hand optimized version of the type 
+        constraint to be used when possible.
+      - Any internally created type constraints
+        now provide an optimized version as well.
+
+0.15 Sun. Nov. 5, 2006
+    ++ NOTE ++
+    This version of Moose *must* have Class::MOP 0.36 in order 
+    to work correctly. A number of small internal tweaks have 
+    been made in order to be compatible with that release.
 
     * Moose::Util::TypeConstraints
       - added &unimport so that you can clean out 
@@ -11,17 +357,43 @@ Revision history for Perl extension Moose
       - fixed minor issue which occasionally 
         comes up during global destruction 
         (thanks omega)
-        
+      - moved Moose::Meta::Method::Overriden into 
+        its own file.
+      
+    * Moose::Meta::Role      
+      - moved Moose::Meta::Role::Method into 
+        its own file.
+              
     * Moose::Meta::Attribute
       - changed how we do type checks so that 
         we reduce the overall cost, but still 
         retain correctness.
+       *** API CHANGE ***
+      - moved accessor generation methods to 
+        Moose::Meta::Method::Accessor to 
+        conform to the API changes from 
+        Class::MOP 0.36
           
     * Moose::Meta::TypeConstraint
       - changed how constraints are compiled
         so that we do less recursion and more
         iteration. This makes the type check 
         faster :)
+      - moved Moose::Meta::TypeConstraint::Union
+        into its own file
+    
+    * Moose::Meta::Method::Accessor
+      - created this from methods formerly found in 
+        Moose::Meta::Attribute
+    
+    * Moose::Meta::Role::Method
+      - moved this from Moose::Meta::Role
+          
+    * Moose::Meta::Method::Overriden
+      - moved this from Moose::Meta::Class
+      
+    * Moose::Meta::TypeConstraint::Union
+      - moved this from Moose::Meta::TypeConstraint
 
 0.14 Mon. Oct. 9, 2006
 
@@ -448,4 +820,4 @@ Revision history for Perl extension Moose
            full fledges meta-objects
 
 0.01 Wed. March 15, 2006
-    - Moooooooooooooooooose!!!
\ No newline at end of file
+    - Moooooooooooooooooose!!!