-Revision history for Perl extension Moose
+Also see Moose::Manual::Delta for more details of, and workarounds
+for, noteworthy changes.
-0.71
+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
+ - Hopefully fixed some POD errors in a few recipes that caused
+ them to display weird on search.cpan.org.
+
+ * Moose::Util::TypeConstraints
+ - Calling type or subtype without the sugar helpers (as, where,
+ message) is now deprecated.
+ - The subtype function tried hard to guess what you meant, but
+ often got it wrong. For example:
+
+ my $subtype = subtype as 'ArrayRef[Object]';
+
+ 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
- A new recipe which demonstrates the use of BUILDARGS and
BUILD. (Dave Rolsky)
+ * Moose::Cookbook::Roles::Recipe3
+ - A new recipe, applying a role to an object instance. (Dave
+ Rolsky)
+
+ * Moose::Exporter
+ - Allow overriding specific keywords from "also" packages. (doy)
+
+ * Tests
+ - 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
+ recipe code. (Dave Rolsky)
+
+ * Moose::Util::TypeConstraints::Optimized
+ - Just use Class::MOP for the optimized ClassName check. (Dave
+ Rolsky)
+
0.70 Sat, February 14, 2009
* Moose::Util::TypeConstraints
- Added the RoleName type (stevan)
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
* 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
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)
* 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