Also see Moose::Manual::Delta for more details of, and workarounds
for, noteworthy changes.
-0.77
+0.96 Sat, Feb 6, 2010
+
+ [NEW FEATURES]
+ * ScalarRef is now a parameterized type. You can now specify a type
+ constraint for whatever the reference points to. (Closes RT#50857)
+ (Michael G. Schwern, Florian Ragwitz)
+
+ [BUG FIXES]
+ * ScalarRef now accepts references to other references. (Closes RT#50934)
+ (Michael G. Schwern)
+
+0.95 Thu, Feb 4, 2010
+
+ [NEW FEATURES]
+
+ * Moose::Meta::Attribute::Native::Trait::Code now provides execute_method, in
+ addition to execute, to be able to call a code attribute as a method.
+ (Florian Ragwitz)
+
+ [ENHANCEMENTS]
+
+ * Moose::Object::does no longer checks the entire inheritance tree, since
+ Moose::Meta::Class::does_role already does this. (doy)
+ * Moose::Util::add_method_modifier (and subsequently the sugar functions Moose::before,
+ Moose::after, and Moose::around) can now accept arrayrefs, with the same
+ behavior as lists. Types other than arrayref and regexp result in an error.
+ (Dylan Hardison)
+
+0.94 Mon, Jan 18, 2010
+
+ [API CHANGES]
+
+ * Please see the changes listed for 0.93_01 and Moose::Manual::Delta.
+
+ [ENHANCEMENTS]
+
+ * Improved support for anonymous roles by changing various APIs to take
+ Moose::Meta::Role objects as well as role names. This included
+
+ - Moose::Meta::Class->does_role
+ - Moose::Meta::Role->does_role
+ - Moose::Util::does_role
+ - Moose::Util::apply_all_roles
+ - Moose::Util::ensure_all_roles
+ - Moose::Util::search_class_by_role
+
+ Requested by Shawn Moore. Addresses RT #51143 (and then some). (Dave Rolsky)
+
+ [BUG FIXES]
+
+ * Fix handling of non-alphanumeric attributes names like '@foo'. This should
+ work as long as the accessor method names are explicitly set to valid Perl
+ method names. Reported by Doug Treder. RT #53731. (Dave Rolsky)
+
+
+0.93_03 Tue, Jan 5, 2010
+
+ [BUG FIXES]
+
+ * Portability fixes to our XS code so we compile with 5.8.8 with Visual
+ C++. Fixes RT #53391. Reported by Taro Nishino. (rafl)
+
+
+0.93_02 Tue, Jan 5, 2010
+
+ [BUG FIXES]
+
+ * Depend on Class::MOP 0.97_01 so we can get useful results from CPAN
+ testers. (Dave Rolsky)
+
+
+0.93_01 Mon, Jan 4, 2010
+
+ [API CHANGES]
+
+ See Moose::Manual::Delta for more details on backwards compatiblity issues.
+
+ * Role attributes are now objects of the Moose::Meta::Role::Attribute
+ class. (Dave Rolsky).
+
+ * There were major changes to how metaroles are applied. We now distinguish
+ between metaroles for classes vs those for roles. See the
+ Moose::Util::MetaRole docs for details. (Dave Rolsky)
+
+ * The old MetaRole API has been deprecated, but will continue to
+ work. However, if you are applying an attribute metaclass role, this may
+ break because of the fact that roles now have an attribute metaclass
+ too. (Dave Rolsky)
+
+ * Moose::Util::MetaRole::apply_metaclass_roles is now called
+ apply_metaroles. The old name is deprecated. Dave Rolsky>
+
+ * The unimport subs created by Moose::Exporter now clean up re-exported
+ functions like blessed and confess, unless the caller imported them from
+ somewhere else too. See Moose::Manua::Delta for backcompat details. (rafl)
+
+ [ENHANCEMENTS AND BUG FIXES]
+
+ * Changed the Str constraint to accept magic lvalue strings like one gets from
+ substr et al, again. (sorear)
+
+ * Sped up the type constraint parsing regex. (Sam Vilain)
+
+ * The Moose::Cookbook::Extending::Recipe2 recipe was broken. Fix suggested by
+ jrey.
+
+ * Added Moose::Util::TypeConstraints exports when using oose.pm to allow
+ easier testing of TypeConstraints from the command line. (perigrin)
+
+ * Added a with_immutable test function to Test::Moose, to run a block of tests
+ with and without certain classes being immutable. (doy)
+
+ * We now use Module::Install extensions explicitly to avoid confusing errors
+ if they're not installed. We use Module::Install::AuthorRequires to stop
+ test extraction and general failures if you don't have the author side
+ dependencies installed.
+
+ * Fixed a grammar error in Moose::Cookbook::Basics::Recipe4. rt.cpan.org
+ #51791. (Amir E. Aharoni)
+
+
+0.93 Thu, Nov 19, 2009
+ * Moose::Object
+ - Calling $object->new() is no longer deprecated, and no longer
+ warns. (doy)
+
+ * Moose::Meta::Role
+ - The get_attribute_map method is now deprecated. (Dave Rolsky)
+
+ * Moose::Meta::Method::Delegation
+ - Preserve variable aliasing in @_ for delegated methods, so that
+ altering @_ affects the passed value. (doy)
+
+ * Moose::Util::TypeConstraints
+ - Allow array refs for non-anonymous form of enum and duck_type, not
+ just anonymous. The non-arrayref forms may be removed in the
+ future. (doy)
+ - Changed Str constraint to not accept globs (*STDIN or *FOO). (chansen)
+ - Properly document Int being a subtype of Str. (doy)
+
+ * Moose::Exporter
+ - Moose::Exporter using modules can now export their functions to the
+ main package. This applied to Moose and Moose::Role, among
+ others. (nothingmuch)
+
+ * Moose::Meta::Attribute
+ - Don't remove attribute accessors we never installed, during
+ remove_accessors. (doy)
+
+ * Moose::Meta::Attribute::Native::Trait::Array
+ - Don't bypass prototype checking when calling List::Util::first, to
+ avoid a segfault when it is called with a non-code argument. (doy)
+
+ * Moose::Meta::Attribute::Native::Trait::Code
+ - Fix passing arguments to code execute helpers. (doy)
+
+0.92 Tue, Sep 22, 2009
+ * Moose::Util::TypeConstraints
+ - added the match_on_type operator (Stevan)
+ - added tests and docs for this (Stevan)
+
+ * Moose::Meta::Class
+ - Metaclass compat fixing should already happen recursively, there's no
+ need to explicitly walk up the inheritance tree. (doy)
+
+ * Moose::Meta::Attribute
+ - Add tests for set_raw_value and get_raw_value. (nothingmuch)
+
+0.91 Thu, Sep 17, 2009
+ * Moose::Object
+ - Don't import any functions, in order to avoid polluting our namespace
+ with things that can look like methods (blessed, try, etc)
+ (nothingmuch)
+
+ * Moose::Meta::Method::Constructor
+ - The generated code needs to called Scalar::Util::blessed by its
+ fully-qualified name or else Perl can interpret the call to blessed as
+ an indirect method call. This broke Search::GIN, which in turn broke
+ KiokuDB. (nothingmuch)
+
+0.90 Tue, Sep 15, 2009
+ * Moose::Meta::Attribute::Native::Trait::Counter
+ * Moose::Meta::Attribute::Native::Trait::String
+ - For these two traits, an attribute which did not explicitly provide
+ methods to handles magically ended up delegating *all* the helper
+ methods. This has been removed. You must be explicit in your handles
+ declaration for all Native Traits. (Dave Rolsky)
+
+ * Moose::Object
+ - DEMOLISHALL behavior has changed. If any DEMOLISH method dies, we make
+ sure to rethrow its error message. However, we also localize $@ before
+ this so that if all the DEMOLISH methods success, the value of $@ will
+ be preserved. (nothingmuch and Dave Rolsky)
+ - We now also localize $? during object destruction. (nothingmuch and
+ Dave Rolsky)
+ - The handling of DEMOLISH methods was broken for immutablized classes,
+ which were not receiving the value of
+ Devel::GlobalDestruction::in_global_destruction.
+ - These two fixes address some of RT #48271, reported by Zefram.
+ - This is all now documented in Moose::Manual::Construction.
+ - Calling $object->new() is now deprecated. A warning will be
+ issued. (perigrin)
+
+ * Moose::Meta::Role
+ - Added more hooks to customize how roles are applied. The role
+ summation class, used to create composite roles, can now be changed
+ and/or have meta-roles applied to it. (rafl)
+ - The get_method_list method no longer explicitly excludes the "meta"
+ method. This was a hack that has been replaced by better hacks. (Dave
+ Rolsky)
+
+ * Moose::Meta::Method::Delegation
+ - fixed delegated methods to make sure that any modifiers attached to
+ the accessor being delegated on will be called (Stevan)
+ - added tests for this (Stevan)
+
+ * Moose::Meta::Class
+ - Moose no longer warns when a class that is being made immutable has
+ mutable ancestors. While in theory this is a good thing to warn about,
+ we found so many exceptions to this that doing this properly became
+ quite problematic.
+
+0.89_02 Thu, Sep 10, 2009
+ * Moose::Meta::Attribute::Native
+ - Fix Hash, which still had 'empty' instead of 'is_empty'. (hdp)
+
+ * Moose::Meta::Attribute::Native::Trait::Array
+ - Added a number of functions from List::Util and List::MoreUtils,
+ including reduce, shuffle, uniq, and natatime. (doy)
+
+ * Moose::Exporter
+ - This module will now generate an init_meta method for your exporting
+ class if you pass it options for
+ Moose::Util::MetaRole::apply_metaclass_roles or
+ apply_base_class_roles. This eliminates a lot of repetitive
+ boilerplate for typical MooseX modules. (doy).
+ - Documented the with_meta feature, which is a replacement for
+ with_caller. This feature was added by josh a while ago.
+ - The with_caller feature is now deprecated, but will not issue a
+ warning yet. (Dave Rolsky)
+ - If you try to wrap/export a subroutine which doesn't actually exist,
+ Moose::Exporter will warn you about this. (doy)
+
+ * Moose::Meta::Role::Application::ToRole
+ - When a role aliased a method from another role, it was only getting
+ the new (aliased) name, not the original name. This differed from what
+ happens when a class aliases a role's methods. If you _only_ want the
+ aliased name, make sure to also exclue the original name. (Dave
+ Rolsky)
+
+0.89_01 Wed Sep 2, 2009
+ * Moose::Meta::Attribute
+ - Added the currying syntax for delegation from AttributeHelpers to the
+ existing delegation API. (hdp)
+
+ * Moose::Meta::Attribute::Native
+ - We have merged the functionality of MooseX::AttributeHelpers into the
+ Moose core with some API tweaks. You can continue to use
+ MooseX::AttributeHelpers, but it will not be maintained except
+ (perhaps) for critical bug fixes in the future. See
+ Moose::Manual::Delta for details. (hdp, jhannah, rbuels, Sartak,
+ perigrin, doy)
+
+ * Moose::Error::Croak
+ * Moose::Error::Confess
+ - Clarify documentation on how to use different error-throwing
+ modules. (Curtis Jewell)
+
+ * Moose
+ - Correct POD for builder to point to Recipe8, not 9. (gphat)
+
+ * Moose::Exporter
+ - When a nonexistent sub name is passed to as_is, with_caller, or
+ with_meta, throw a warning and skip the exporting, rather than
+ installing a broken sub. (doy)
+
+ * Moose::Meta::Class
+ - Moose now warns if you call C<make_immutable> for a class with mutable
+ ancestors. (doy)
+
+0.89 Thu Aug 13, 2009
+ * Moose::Manual::Attributes
+ - Clarify "is", include discussion of "bare". (Sartak)
+
+ * Moose::Meta::Role::Method::Conflicting
+ * Moose::Meta::Role::Application::ToClass
+ - For the first set of roles involved in a conflict, report all
+ unresolved method conflicts, not just the first method. Fixes #47210
+ reported by Ovid. (Sartak)
+
+ * Moose::Meta::TypeConstraint
+ - Add assert_valid method to use a TypeConstraint for assertion (rjbs)
+
+ * Moose::Exporter
+ - Make "use Moose -metaclass => 'Foo'" do alias resolution, like -traits
+ does. (doy)
+ - Allow specifying role options (alias, excludes, MXRP stuff) in the
+ arrayref passed to "use Moose -traits" (doy)
+
+ * Moose::Util
+ - Add functions meta_class_alias and meta_attribute_alias for creating
+ aliases for class and attribute metaclasses and metatraits. (doy)
+
+ * Moose::Meta::Attribute
+ * Moose::Meta::Method::Accessor
+ - A trigger now receives the old value as a second argument, if the
+ attribute had one. (Dave Rolsky)
+
+ * Moose::Meta::Method::Constructor
+ - Fix a bug with $obj->new when $obj has stringify overloading.
+ Reported by Andrew Suffield [rt.cpan.org #47882] (Sartak)
+ - However, we will probably deprecate $obj->new, so please don't start
+ using it for new code!
+
+ * Moose::Meta::Role::Application
+ * Moose::Meta::Role::Application::RoleSummation
+ - Rename alias and excludes to -alias and -excludes (but keep the old
+ names for now, for backcompat) (doy)
+
+0.88 Fri Jul 24, 2009
+ * Moose::Manual::Contributing
+ - Re-write the Moose::Manual::Contributing document to reflect
+ the new layout and methods of work for the Git repository. All
+ work now should be done in topic branches and reviewed by a
+ core committer before being applied to master. All releases
+ are done by a cabal member and merged from master to
+ stable. This plan was devised by Yuval, blame him. (perigrin)
+
+ * Moose::Meta::Role
+ - Create metaclass attributes for the different role application
+ classes. (rafl)
+
+ * Moose::Util::MetaRole
+ - Allow applying roles to a meta role's role application
+ classes. (rafl)
+
+ * Moose::Meta::Attribute
+ - Add weak_ref to allowed options for "has '+foo'" (mst)
+
+ * Moose::Meta::Method::Accessor
+ - No longer uses inline_slot_access in accessors, to support
+ non-lvalue-based meta instances. (sorear)
+
+0.87 Tue Jul 7, 2009
+ * Moose::Meta::Method::Delegation
+ - Once again allow class names as well as objects for
+ delegation. This was changed in 0.86.
+
+0.86 Fri Jul 3, 2009
+ * Moose::Meta::Class::Immutable::Trait
+ - Fixes to work with the latest Class::MOP.
+
+ * Moose::Meta::Method::Delegation
+ - Delegation now dies with a more useful error message if the
+ attribute's accessor returns something defined but
+ unblessed. (hdp)
+
+0.85 Fri, Jun 26, 2009
+ * Moose::Meta::Attribute
+ - The warning for 'no associated methods' is now split out into
+ the _check_associated_methods method, so that extensions can
+ safely call 'after install_accessors => ...'. This fixes a
+ warning from MooseX::AttributeHelpers. (hdp)
+
+0.84 Fri, Jun 26, 2009
+ * Moose::Role
+ - has now sets definition_context for attributes defined in
+ roles. (doy)
+
+ * Moose::Meta::Attribute
+ - When adding an attribute to a metaclass, if the attribute has
+ no associated methods, it will give a deprecation
+ warning. (hdp)
+ - Methods generated by delegation were not being added to
+ associated_methods. (hdp)
+ - Attribute accessors (reader, writer, accessor, predicate,
+ clearer) now warn if they overwrite an existing method. (doy)
+ - Attribute constructors now warn very noisily about unknown (or
+ misspelled) arguments
+
+ * Moose::Util::TypeConstraints
+ - Deprecated the totally useless Role type name, which just
+ checked if $object->can('does'). Note that this is _not_ the
+ same as a type created by calling role_type('RoleName').
+
+ * Moose::Util::TypeConstraints
+ * Moose::Meta::TypeConstraint::DuckType
+ - Reify duck type from a regular subtype into an actual class
+ (Sartak)
+ - Document this because Sartak did all my work for me
+ (perigrin)
+
+ * Moose::Meta::Attribute
+ - Allow Moose::Meta::TypeConstraint::DuckType in handles, since
+ it is just a list of methods (Sartak)
+
+ * Moose::Meta::Role
+ - The get_*_method_modifiers methods would die if the role had
+ no modifiers of the given type (Robert Buels).
+
+0.83 Tue, Jun 23, 2009
+ * Moose::Meta::Class
+ - Fix _construct_instance not setting the special __MOP__ object
+ key in instances of anon classes. (doy)
+
+0.82 Sun, Jun 21, 2009
+ * Moose::Manual::Types
+ - Mention MooseX::Types early to avoid users falling down the
+ string parsing rathole (mst)
+
+ * Moose::Manual::MooseX
+ - Add warnings about class-level extensions and mention considering
+ using plain objects instead
+
+0.81 Sun, Jun 7, 2009
+ * Bumped our Class::MOP prereq to the latest version (0.85), since
+ that's what we need.
+
+0.80 Sat, Jun 6, 2009
+ * Moose::Manual::FAQ
+ - Add FAQ about the coercion change from 0.76 because it came up
+ three times today (perigrin)
+ - Win doy $10 dollars because Sartak didn't think anybody
+ would document this fast enough (perigrin)
+
+ * Moose::Meta::Method::Destructor
+ - Inline a DESTROY method even if there are no DEMOLISH methods
+ to prevent unnecessary introspection in
+ Moose::Object::DEMOLISHALL
+
+ * Moose::*
+ - A role's required methods are now represented by
+ Moose::Meta::Role::Method::Required objects. Conflicts are now
+ represented by Moose::Meta::Role::Method::Conflicting
+ objects. The benefit for end-users in that unresolved
+ conflicts generate different, more instructive, errors,
+ resolving Ovid's #44895. (Sartak)
+
+ * Moose::Role
+ - Improve the error message of "extends" as suggested by Adam
+ Kennedy and confound (Sartak)
+ - Link to Moose::Manual::Roles from Moose::Role as we now have
+ excellent documentation (Adam Kennedy)
+
+ * Tests
+ - Update test suite for subname change in Class::MOP
+ (nothingmuch)
+ - Add TODO test for infinite recursion in Moose::Meta::Class
+ (groditi)
+
+0.79 Wed, May 13, 2009
+ * Tests
+ - More fixes for Win32 problems. Reported by Robert Krimen.
+
+ * Moose::Object
+ - The DEMOLISHALL method could still blow up in some cases
+ during global destruction. This method has been made more
+ resilient in the face of global destruction's random garbage
+ collection order.
+
+ * Moose::Exporter
+ - If you "also" a module that isn't loaded, the error message
+ now acknowledges that (Sartak)
+
+ * Moose
+ - When your ->meta method does not return a Moose::Meta::Class,
+ the error message gave the wrong output (Sartak)
+
+0.78 Tue, May 12, 2009
+ * Moose::Cookbook::FAQ and Moose::Cookbook::WTF
+ - Merged these documents into what is now Moose::Manual::FAQ
+
+ * Moose::Unsweetened
+ - Moved to Moose::Manual::Unsweetened
+
+ * Moose::Cookbook::Basics::Recipes 9-12
+ - Renamed to be 8-11, since recipe 8 did not exist
+
+ * Moose::Exporter
+ - Make Moose::Exporter import strict and warnings into packages
+ that use it (doy)
+
+ * Moose::Object
+ - Fix DEMOLISHALL sometimes not being able to find DEMOLISH
+ methods during global destruction (doy)
+
+ * Moose::Meta::Class
+ * Moose::Meta::Role::Application::ToClass
+ - Track the Role::Application objects created during class-role
+ consumption (Sartak)
+
+ * Moose::Meta::Class
+ - Fix metaclass incompatibility errors when extending a vanilla perl
+ class which isa Moose class with a metaclass role applied (t0m)
+
+ * Moose::Meta::Role
+ - Add a role-combination hook, _role_for_combination, for the
+ benefit of MooseX::Role::Parameterized (Sartak)
+
+ * Tests
+ - Some tests were failing on Win32 because they explicit checked
+ warning output for newlines. Reported by Nickolay Platonov.
+
+0.77 Sat, May 2, 2009
+ * Moose::Meta::Role
+ - Add explicit use of Devel::GlobalDestruction and Sub::Name
+ (perigrin)
+
* Moose::Object
- - pass a boolean to DEMOLISHALL and DEMOLISH indicating whether or not
- we are currently in global destruction (doy)
+ - Pass a boolean to DEMOLISHALL and DEMOLISH indicating whether
+ or not we are currently in global destruction (doy)
+ - Add explicit use of Devel::GlobalDestruction and Sub::Name
+ (perigrin)
+
+ * Moose::Cookbook::FAQ
+ - Reworked much of the existing content to be more useful to
+ modern Moose hackers (Sartak)
+
+ * Makefile.PL
+ - Depend on Class::MOP 0.83 instead of 0.82_01.
0.76 Mon, April 27, 2009
* Moose::Meta::TypeConstraint
- 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)
+ and { into_level => } (perigrin)
- exposed and documented init_meta() to allow better
- embedding and extending of Moose (perigrin)
+ 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)
+ * 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
- Type constraints now survive runtime reloading
- added test for this
- * Moose::Meta::Class
- - fixed the way attribute defaults are handled
- during instance construction (bug found by chansen)
+ * Moose::Meta::Class
+ - fixed the way attribute defaults are handled
+ during instance construction (bug found by chansen)
* Moose::Meta::Attribute
- read-only attributes now actually enforce their
* Moose::Meta::TypeConstraint
* Moose::Meta::TypeCoercion
- - type constraints and coercions are now
- full fledges meta-objects
+ - type constraints and coercions are now
+ full fledges meta-objects
0.01 Wed. March 15, 2006
- Moooooooooooooooooose!!!