-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)
-0.64
+ * 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)
+ - added tests for this (stevan)
+
+ * Moose::Cookbook::Basics::Recipe3
+ - Updated the before qw[left right] sub to be a little more
+ defensive about what it accepts (stevan)
+ - added more tests to t/000_recipies/basics/003_binary_tree.t
+ (stevan)
+
+ * Moose::Object
+ - We now always call DEMOLISHALL, even if a class does not
+ define DEMOLISH. This makes sure that method modifiers on
+ DEMOLISHALL work as expected. (doy)
+ - added tests for this (EvanCarroll)
+
+ * Moose::Util::MetaRole
+ - Accept roles for the wrapped_method_metaclass (rafl)
+ - added tests for this (rafl)
+
+ * Moose::Meta::Attribute
+ - We no longer pass the meta-attribute object as a final
+ argument to triggers. This actually changed for inlined code a
+ while back, but the non-inlined version and the docs were
+ still out of date.
+
+ * Tests
+ - Some tests tried to use Test::Warn 0.10, which had bugs. Now
+ they require 0.11. (Dave Rolsky)
+
+ * Documentation
+ - Lots of small changes to the manual, cookbook, and
+ elsewhere. These were based on feedback from various
+ users, too many to list here. (Dave Rolsky)
+
+0.69 Thu, February 12, 2009
+ * Moose
+ - Make some keyword errors use throw_error instead of croak
+ since Moose::Exporter wraps keywords now (Sartak)
+
+ * Moose::Cookbook::*
+ - Revised every recipe for style and clarity. Also moved some
+ documentation out of cookbook recipes and into Moose::Manual
+ pages. This work was funded as part of the Moose docs grant
+ from TPF. (Dave Rolsky)
+
+ * Moose::Meta::Method::Delegation
+ - If the attribute doing the delegation was not populated, the
+ error message did not specify the attribute name
+ properly. (doy)
+
+0.68 Wed, February 4, 2009
+ * POD
+ - Many spelling, typo, and formatting fixes by daxim.
+
+ * Moose::Manual::Attributes
+ - The NAME section in the POD used "Attribute" so search.cpan
+ didn't resolve links from other documents properly.
+
+ * Moose::Meta::Method::Overriden
+ - Now properly spelled as Overridden. Thanks to daxim for
+ noticing this.
+
+0.67 Tue, February 3, 2009
+ * Moose::Manual::*
+ - Lots of little typo fixes and a few clarifications. Several
+ pages didn't have proper titles, and so weren't actually
+ visible on search.cpan.org. Thanks to hanekomu for a variety
+ of fixes and formatting improvements.
+
+0.66 Tue, February 3, 2009
+ * Moose::Manual
+ - This is a brand new, extensive manual for Moose. This aims to
+ provide a complete introduction to all of Moose's
+ features. This work was funded as part of the Moose docs grant
+ from TPF. (Dave Rolsky)
+
+ * Moose::Meta::Attribute
+ - Added a delegation_metaclass method to replace a hard-coded
+ use of Moose::Meta::Method::Delegation. (Dave Rolsky)
+
+ * Moose::Util::TypeConstraints
+ - If you created a subtype and passed a parent that Moose didn't
+ know about, it simply ignored the parent. Now it automatically
+ creates the parent as a class type. This may not be what you
+ want, but is less broken than before. (Dave Rolsky)
+
+ * Moose::Util::TypeConstraints
+ - This module tried throw errors by calling Moose->throw_error,
+ but it did not ensure that Moose was loaded first. This could
+ cause very unhelpful errors when it tried to throw an error
+ before Moose was loaded. (Dave Rolsky)
+
+ * Moose::Util::TypeConstraints
+ - You could declare a name with subtype such as "Foo!Bar" that
+ would be allowed, but if you used it in a parameterized type
+ such as "ArrayRef[Foo!Bar]" it wouldn't work. We now do some
+ vetting on names created via the sugar functions, so that they
+ can only contain alphanumerics, ":", and ".". (Dave Rolsky)
+
+0.65 Thu, January 22, 2008
+ * Moose and Moose::Meta::Method::Overridden
+ - If an overridden method called super(), and then the
+ superclass's method (not overridden) _also_ called super(),
+ Moose went into an endless recursion loop. Test provided by
+ Chris Prather. (Dave Rolsky)
+
+ * Moose::Meta::TypeConstraint
+ - All methods are now documented. (gphat)
+
+ * t/100_bugs/011_DEMOLISH_eats_exceptions.t
+ - Fixed some bogus failures that occurred because we tried to
+ validate filesystem paths in a very ad-hoc and
+ not-quite-correct way. (Dave Rolsky)
+
+ * Moose::Util::TypeConstraints
+ - Added maybe_type to exports. See docs for details. (rjbs)
+
+ * Moose
+ - Added Moose::Util::TypeConstraints to the SEE ALSO
+ section. (pjf)
+
+ * Moose::Role
+ - Methods created via an attribute can now fulfill a "requires"
+ declaration for a role. (nothingmuch)
+
+ * Moose::Meta::Method::*
+ - Stack traces from inlined code will now report its line and
+ file as being in your class, as opposed to in Moose
+ guts. (nothingmuch).
+
+0.64 Wed, December 31, 2008
* Moose::Meta::Method::Accessor
- Always inline predicate and clearer methods (Sartak)
+
* Moose::Meta::Attribute
- Support for parameterized traits (Sartak)
- verify_against_type_constraint method to avoid duplication
and enhance extensibility (Sartak)
+
* Moose::Meta::Class
- Tests (but no support yet) for parameterized traits (Sartak)
+
* Moose
- - Require Class::MOP 0.74+, which has the side effect of making
+ - Require Class::MOP 0.75+, which has the side effect of making
sure we work on Win32. (Dave Rolsky)
0.63 Mon, December 8, 2008
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