Pull -metaclass out of the import line
[gitmo/Moose.git] / Changes
diff --git a/Changes b/Changes
index af46484..051c658 100644 (file)
--- a/Changes
+++ b/Changes
@@ -1,4 +1,189 @@
-Revision history for Perl extension Moose
+Also see Moose::Manual::Delta for more details of, and workarounds
+for, noteworthy changes.
+
+0.75
+    * Moose
+    * Moose::Meta::Class
+      - Move validation of not inheriting from roles from Moose::extends to
+        Moose::Meta::Class::superclasses (doy)
+
+    * Moose::Util
+      - add ensure_all_roles() function to encapsulate the common "apply this
+        role unless the object already does it" pattern (hdp)
+
+0.74 Tue, April 7, 2009
+    * Moose::Meta::Role
+    * Moose::Meta::Method::Destructor
+      - Include stack traces in the deprecation warnings.
+        (Florian Ragwitz)
+
+    * Moose::Meta::Class
+      - Removed the long-deprecated _apply_all_roles method.
+
+    * Moose::Meta::TypeConstraint
+      - Removed the long-deprecated union method.
+
+
+0.73_02 Mon, April 6, 2009
+    * More deprecations and renamings
+      - Moose::Meta::Method::Constructor
+        - initialize_body => _initialize_body (this is always called
+          when an object is constructed)
+
+    * Moose::Object
+      - The DEMOLISHALL method could throw an exception during global
+        destruction, meaning that your class's DEMOLISH methods would
+        not be properly called. Reported by t0m.
+
+    * Moose::Meta::Method::Destructor
+      - Destructor inlining was totally broken by the change to the
+        is_needed method in 0.72_01. Now there is a test for this
+        feature, and it works again.
+
+0.73_01 Sun, April 5, 2009
+    * Moose::*
+      - Call user_class->meta in fewer places, with the eventual goal
+        of allowing the user to rename or exclude ->meta
+        altogether. Instead uses Class::MOP::class_of. (Sartak)
+
+    * Moose::Meta::Method::Accessor
+      - If an attribute had a lazy default, and that value did not
+        pass the attribute's type constraint, it did not get the
+        message from the type constraint, instead using a generic
+        message. Test provided by perigrin.
+
+    * Moose::Util::TypeConstraints
+      - Add duck_type keyword. It's sugar over making sure an object
+        can() a list of methods. This is easier than jrockway's
+        suggestion to fork all of CPAN. (perigrin)
+        - add tests and documentation (perigrin)
+
+    * Moose
+      - Document the fact that init_meta() returns the target class's
+        metaclass object. (hdp)
+
+    * Moose::Cookbook::Extending::Recipe1
+    * Moose::Cookbook::Extending::Recipe2
+    * Moose::Cookbook::Extending::Recipe3
+    * Moose::Cookbook::Extending::Recipe4
+      - Make init_meta() examples explicitly return the metaclass and
+        point out this fact. (hdp)
+
+    * Moose::Cookbook::Basics::Recipe12
+      - A new recipe, creating a custom meta-method class.        
+
+    * Moose::Cookbook::Meta::Recipe6
+      - A new recipe, creating a custom meta-method class.
+
+    * Moose::Meta::Class
+    * Moose::Meta::Method::Constructor
+      - Attribute triggers no longer receive the meta-attribute object
+        as an argument in any circumstance. Previously, triggers
+        called during instance construction were passed the
+        meta-attribute, but triggers called by normal accessors were
+        not. Fixes RT#44429, reported by Mark Swayne. (hdp)
+    
+    * Moose::Manual::Attributes
+      - Remove references to triggers receving the meta-attribute object as an
+        argument. (hdp)
+
+    * Moose::Cookbook::FAQ
+      - Remove recommendation for deprecated Moose::Policy and
+        Moose::Policy::FollowPBP; recommend MooseX::FollowPBP
+        instead. (hdp)
+
+    * Many methods have been renamed with a leading underscore, and a
+      few have been deprecated entirely. The methods with a leading
+      underscore are consider "internals only". People writing
+      subclasses or extensions to Moose should feel free to override
+      them, but they are not for "public" use.
+
+      - Moose::Meta::Class
+        - check_metaclass_compatibility => _check_metaclass_compatibility
+
+      - Moose::Meta::Method::Accessor
+        - initialize_body => _initialize_body (this is always called
+          when an object is constructed)
+        - /(generate_.*_method(?:_inline)?)/ => '_' . $1
+
+      - Moose::Meta::Method::Constructor
+        - initialize_body => _initialize_body (this is always called
+          when an object is constructed)
+        - /(generate_constructor_method(?:_inline)?)/ => '_' . $1
+        - attributes => _attributes (now inherited from parent)
+        - meta_instance => _meta_instance (now inherited from parent)
+
+      - Moose::Meta::Role
+        - alias_method is deprecated. Use add_method
+
+0.73 Fri, March 29, 2009
+    * No changes from 0.72_01.
+
+0.72_01 Thu, March 26, 2009
+    * Everything
+      - Almost every module has complete API documentation. A few
+        methods (and even whole classes) have been intentionally
+        excluded pending some rethinking of their APIs.
+
+    * Moose::Util::TypeConstraints
+      - Calling subtype with a name as the only argument is now an
+        exception. If you want an anonymous subtype do:
+
+         my $subtype = subtype as 'Foo';
+
+    * Moose::Cookbook::Meta::Recipe7
+      - A new recipe, creating a custom meta-instance class.
+
+    * Moose::Cookbook::Basics::Recipe5
+      - Fix various typos and mistakes. Includes a patch from Radu
+        Greab.
+
+    * Moose::Cookbook::Basics::Recipe9
+      - Link to this recipe from Moose.pm's builder blurb
+
+    * Moose::Exporter
+      - When wrapping a function with a prototype, Moose::Exporter now
+        makes sure the wrapped function still has the same
+        prototype. (Daisuke Maki)
+
+    * Moose::Meta::Attribute
+      - Allow a subclass to set lazy_build for an inherited
+        attribute. (hdp)
+
+    * Makefile.PL
+      - Explicitly depend on Data::OptList. We already had this dependency
+        via Sub::Exporter, but since we're using it directly we're
+        better off with it listed. (Sartak)
+
+    * Moose::Meta::Method::Constructor
+      - Make it easier to subclass the inlining behaviour. (Ash
+        Berlin)
+
+    * Moose::Manual::Delta
+      - Details significant changes in the history of Moose, along
+        with recommended workarounds.
+
+    * Moose::Manual::Contributing
+      - Contributor's guide to Moose.
+
+    * Moose::Meta::Method::Constructor
+      - The long-deprecated intialize_body method has been removed
+        (yes, spelled like that).
+
+    * Moose::Meta::Method::Destructor
+      - This is_needed method is now always a class method.
+
+    * Moose::Meta::Class
+      - Changes to the internals of how make_immutable works to match
+        changes in latest Class::MOP.
+
+0.72 Mon, February 23, 2009
+    * Moose::Object
+    * Moose::Meta::Method::Constructor
+      - A mutable class accepted Foo->new(undef) without complaint,
+        while an immutable class would blow up with an unhelpful
+        error. Now, in both cases we throw a helpful error
+        instead. Reported by doy.
 
 0.71_01 Sun, February 22, 2009
     * Moose::Cookbook
@@ -16,6 +201,10 @@ Revision history for Perl extension Moose
         This caused an error in the past, but now works as you'd
         expect.
 
+    * Everywhere
+      - Make sure Moose.pm is loaded before calling
+        Moose->throw_error. This wasn't normally an issue, but could
+        bite you in weird cases.
 
 0.71 Thu, February 19, 2009
     * Moose::Cookbook::Basics::Recipe11
@@ -30,8 +219,8 @@ Revision history for Perl extension Moose
       - Allow overriding specific keywords from "also" packages. (doy)
 
     * Tests
-      - Replace hardcoded cookbook tests with Test::Inline POD
-        to ensure they don't get out of sync. (Dave Rolsky)
+      - Replace hardcoded cookbook tests with Test::Inline to ensure
+        the tests match the actual code in the recipes. (Dave Rolsky)
 
     * Moose::Cookbook
       - Working on the above turned up a number of little bugs in the
@@ -314,7 +503,7 @@ Revision history for Perl extension Moose
         them, but MooseX modules can create them in some other
         way. See the 0.58 changes for more details. (jnapiorkowski)
       - Changed the way subtypes are created so that the job is
-        delegated to a type constraint parent.  This clears up some
+        delegated to a type constraint parent. This clears up some
         hardcoded checking and should allow correct subtypes of
         Moose::Meta::Type::Constraint. Don't rely on this new API too
         much (create_child_type) because it may go away in the
@@ -409,7 +598,7 @@ Revision history for Perl extension Moose
 
     * Moose::Meta::TypeConstraint::Parameterizable
       - Added a new method 'parameterize' which is basically a factory
-        for the containing constraint.  This makes it easier to create
+        for the containing constraint. This makes it easier to create
         new types of parameterized constraints. (jnapiorkowski)
 
     * Moose::Meta::TypeConstraint::Union
@@ -428,7 +617,7 @@ Revision history for Perl extension Moose
         all whitespace differences. (jnapiorkowski)
       - Changed the way we parse type constraint strings so that we now
         match TC[Int,Int,...] and TC[name=>Str] as parameterized type
-        constraints.  This lays the foundation for more flexible type
+        constraints. This lays the foundation for more flexible type
         constraint implementations.
 
     * Tests and docs for all the above. (jnapiorkowski)
@@ -1113,7 +1302,7 @@ Revision history for Perl extension Moose
     
     * t/
       - making test for using '+name' on attributes consumed 
-        from a role, it works and makes sense too.    
+        from a role, it works and makes sense too.
 
     * Moose::Meta::Attribute 
       - fix handles so that it doesn't return nothing