X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=Changes;h=a62492ba5e998bdd9bc88fc7e8122c52fee223eb;hb=ec118926b577350961f578eaeb387a02ffb0b202;hp=dfc6e29fc7a2551c93561a3a3e6312521fa70c05;hpb=a708604922cad60af4a027ae13fecd1c2e919ebf;p=gitmo%2FMoose.git diff --git a/Changes b/Changes index dfc6e29..a62492b 100644 --- a/Changes +++ b/Changes @@ -1,11 +1,1247 @@ Also see Moose::Manual::Delta for more details of, and workarounds for, noteworthy changes. -0.76 +{{$NEXT}} + +2.0006 Mon, May 09, 2011 + + [BUG FIXES] + + * Revert the List::MoreUtils version bump, as it breaks backwards + compatibility. The dependency will be bumped with Moose 2.0200. + +2.0005 Mon, May 09, 2011 + + [BUG FIXES] + + * Only sort the alias keys when determining caching. + +2.0004 Mon, May 09, 2011 + + [BUG FIXES] + + * Bump the List::MoreUtils dep to avoid buggy behavior in old versions. + + * Sort the list of roles and the alias and excludes parameters when + determining caching, since their order doesn't matter. + +2.0003 Mon, May 09, 2011 + + [BUG FIXES] + + * Applying multiple role objects (rather than role names) at once no longer + skips every other role. (rjbs) + + * Caching of anon classes now works more sanely in the presence of role + application parameters - alias and excludes options are taken into account, + and caching is disabled entirely if other parameters exist. Asking for + caching (instead of just not weakening) when parameters are given will + begin warning in Moose 2.0200. (doy, autarch) + +2.0002 Thu, Apr 28, 2011 + + [ENHANCEMENTS] + + * Provide definition context information for constructors and destructors, so + that they will show up as something other than "generated method (unknown + origin)". Also, add the package that accessors are defined in to their + definition context. + + * Use Devel::PartialDump in type constraint error messages, if it is + installed. + + [BUG FIXES] + + * Stop hiding warnings produced by throwing errors in DEMOLISH methods. + + * The 'reset' native delegation for Counter attributes will now also respect + builders (previously, it only respected defaults). + +2.0001 Fri, Apr 22, 2011 + + [ENHANCEMENTS] + + * Anonymous classes and roles now have a unified implementation in + Class::MOP::Package. This means that anonymous packages are now also + possible. (Shawn M Moore, doy) + + [BUG FIXES] + + * No longer call XSLoader from multiple places, as this causes issues on + older perls. (doy, ribasushi) + + * Moose::Meta::Role->create now accepts the 'roles' parameter, as it was + documented to. (Chris Weyl) + + * Depend on Eval::Closure 0.04, which fixes some issues in mod_perl + environments. (doy, mateu) + +2.0000 Mon, Apr 11, 2011 + + [API CHANGES] + + * The RegexpRef type constraint now accepts regular expressions blessed into + other classes, such as those found in pluggable regexp engines. + Additionally the 'Object' constraint no longer rejects objects implemented + as a blessed regular expression. (David Leadbeater) + + [OTHER] + + * Moose::Manual::Support now explicitly states when major releases are + allowed to happen (January, April, July, or October). + +1.9906-TRIAL Mon, Apr 04, 2011 + + [OTHER] + + * Update conflicts list. + * Minor pod updates. + +1.9905-TRIAL Mon, Mar 28, 2011 + + [NEW FEATURES] + + * The Moose::Meta::Role::Attribute class now has an original_role method + which returns the role which first defined an attribute. See the docs for + details. (Dave Rolsky) + + * Moose::Util::MetaRole will make sure that the class to which you're + applying metaroles or base class roles can actually have them applied. If + not (it's not a Moose class, it has a non-Moose metaclass, etc.), then it + gives a useful error message. Previously, this would just end up dying in + the MetaRole code without a useful message. (Dave Rolsky) + + [BUG FIXES] + + * When a role had its own applied_attribute metaclass (usually from MetaRole + application), that metaclass would get lost when that role participated in + role composition. It was also lost if that role was consumed by some other + role. Both of these cases have been fixed. Attributes are always applied + with the applied_attribute metaclass of the role which originally defined + them. (Dave Rolsky) + +1.9904-TRIAL Fri, Mar 04, 2011 + + [BUG FIXES] + + * Reinitializing anonymous roles used to accidentally clear out the role's + stash in some circumstances. This is now fixed. (doy) + + * The Int type constraint now rejects integers with trailing newlines. + (Matthew Horsfall) + +1.9903-TRIAL Mon, Feb 28, 2011 + + [BUG FIXES] + + * Reverse the order that Moose::Exporter 'also' exports are dispatched. When + trying to re-export from a package that itself exported a modified set of + Moose sugar, you'd get the original Moose sugar instead of the overrides. + There are also now tests for this. (perigrin) + + * Don't initialize lazy attributes with defaults in the constructor (for + immutable classes). (mo) + + * When reinitializing meta objects for classes and roles, we failed to + preserve roles and role applications. This led to weird bugs. Many MooseX + modules end up reinitializing your class or role. (Dave Rolsky) + +1.9902-TRIAL Mon, Jan 03, 2011 + + [OTHER] + + * Fix generation of CCFLAGS. + + * Add a bit more Dist::Zilla functionality. + +1.9901-TRIAL Mon, Jan 03, 2011 + + [OTHER] + + * Fix some indexing issues. + + * Fix a few issues with the conflict checking stuff. + +1.9900-TRIAL Sat, Jan 01, 2011 + + [OTHER] + + * The entire Class::MOP distribution has been merged with Moose. In the + future, the Class::MOP code itself will be merged into Moose, and + eventually the Class::MOP namespace will disappear entirely. For the + current release, we have simply changed how Class::MOP is + distributed. (Dave Rolsky). + + * Switched to Dist::Zilla for development. However, we still have a minimal + Makefile.PL in the repository that can be used for development. (Dave + Rolsky) + + [API CHANGES] + + * Roles now have their own default attribute metaclass to use during + application to a class, rather than just using the class's + attribute_metaclass. This is also overridable via ::MetaRole, with the + applied_attribute key in the role_metaroles hashref (doy). + + * The internal code used to generate inlined methods (accessor, constructor, + etc.) has been massively rewritten. MooseX modules that do inlining will + almost certainly need to be updated as well. + + [ENHANCEMENTS] + + * We now load the roles needed for native delegations only as needed. This + speeds up the compilation time for Moose itself. (doy) + + +1.25 Fri, Apr 1, 2011 + + [BUG FIXES] + + * Reinitializing anonymous roles used to accidentally clear out the role's + stash in some circumstances. This is now fixed. (doy) (backported from + 1.9904) + + +1.24 Tue, Feb 24, 2011 + + [BUG FIXES] + + * Reverse the order that Moose::Exporter 'also' exports are dispatched. When + trying to re-export from a package that itself exported a modified set of + Moose sugar, you'd get the original Moose sugar instead of the overrides. + There are also now tests for this. (perigrin) (backported from 1.9903) + + +1.23 Sun, Feb 13, 2011 + + [PACKAGING FIX] + + * The 1.22 release had a bad MANIFEST. This has been fixed. + + +1.22 Sun, Feb 13, 2011 + + [BUG FIXES] + + * When reinitializing meta objects for classes and roles, we failed to + preserve roles and role applications. This led to weird bugs. Many MooseX + modules end up reinitializing your class or role. (Dave Rolsky) (backported + from 1.9903) + +1.21 Wed, Nov 24, 2010 + + [ENHANCEMENTS] + + * The Support manual has been updated to reflect our new major/minor version + policy. (Chris Prather) + + * The Contributing manual has been updated to reflect workflow changes based + on this new support policy. (doy) + + [BUG FIXES] + + * The role attribute metaclass did not inherit from Class::MOP::Object, + which could cause errors when trying to resolve metaclass compatibility + issues. Reported by Daniel Ruoso. (doy) + + * The lazy_build feature was accidentally removed from all the docs. Now + it's listed in Moose.pm again. (Chris Prather) + +1.20 Fri, Nov 19, 2010 + + [BUG FIXES] + + * When using native delegations, if an array or hash ref member failed a + type constraint check, Moose ended up erroring out with "Can't call method + "get_message" on unblessed reference" instead of generating a useful error + based on the failed type constraint. Reported by t0m. RT #63113. (Dave + Rolsky) + +1.19 Tue, Nov 2, 2010 + + [BUG FIXES] + + * There was still one place in the code trying to load Test::Exception + instead of Test::Fatal. (Karen Etheridge) + + +1.18 Sun, Oct 31, 2010 + + [ENHANCEMENTS] + + * Type constraint objects now have an assert_coerce method which will either + return a valid value or throw an error. (rjbs) + + * We now warn when an accessor for one attribute overwrites an accessor for + another attribute. RT #57510. (Dave Rolsky) + + [BUG FIXES] + + * The native Array and Hash delegation methods now coerce individual new + members if the _member type_ has a coercion. In other words, if the array + reference is defined as an ArrayRef[DateTime], and you've defined a + coercion from Int to DateTime, then pushing an integer via a delegation + method will coerce the integer to a DateTime object. Reported by Karen + Etheridge. RT #62351. (Dave Rolsky) + + * An attribute using native delegations did not always properly coerce and + type check a lazily set default value. (doy and Dave Rolsky) + + * Using a regexp to define delegations for a class which was not yet loaded + did not actually work, but did not explicitly fail. However, it caused an + error when the class was loaded later. Reported by Max Kanat-Alexander. RT + #60596. (Dave Rolsky) + + * Attempting to delegate to a class or role which is not yet loaded will now + throw an explicit error. (Dave Rolsky) + + * Attempting to set lazy_build in an inherited attribute was ignored. RT + #62057. (perigrin) + + [OTHER] + + * The Moose test suite now uses Test::Fatal instead of + Test::Exception. (rjbs) + +1.17 Tue, Oct 19, 2010 + + [BUG FIXES] + + * Make native delegation inlining work with instance metaclasses where slot + access is an do {} block, like Kioku. This fixes the use of native + delegations together with Kioku. (Scott, doy) + +1.16 Mon, Oct 18, 2010 + + [ENHANCEMENTS] + + * Almost every native delegation method which changes the attribute value + now has an explicitly documented return value. In general, this return + value matches what Perl would return for the same operation. (Dave Rolsky) + + * Lots of work on native delegation documentation, including documenting + what arguments each native delegation method allows or requires. (Dave + Rolsky) + + * Passing an odd number of args to ->new() now gives a more useful warning + than Perl's builtin warning. Suggested by Sir Robert Burbridge. (Dave + Rolsky) + + * Allow disabling stack traces by setting an environment variable. See + Moose::Error::Default for details. This feature is considered + experimental, and may change in a future release. (Marcus Ramberg) + + * The deprecation warning for using alias and excludes without a leading + dash now tells you the role being applied and what it was being applied + to. (mst). + + [BUG FIXES] + + * A number of native trait methods which expected strings as arguments did + not allow the empty string. This included Array->join, String->match, + String->replace, and String->substr. Reported by Whitney Jackson. RT + #61962. (Dave Rolsky) + + * 'no Moose' no longer inadvertently removes imports it didn't create + itself. RT #60013. (Florian Ragwitz, doy) + + * Roles now support passing an array reference of method names to method + modifier sugar functions. (doy) + + * Native traits no longer use optimized inlining routines if the instance + requests it (in particular, if inline_get_slot_value doesn't return + something that can be assigned to). This should fix issues with + KiokuDB::Class. (doy) + + * We now ignore all Class::MOP and Moose classes when determining what + package called a deprecated feature. This should make the deprecation + warnings saner, and make it possible to turn them off more easily. (Dave + Rolsky) + + * The deprecated "default is" warning no longer happens if the attribute has + any accessor method defined (accessor, reader, writer). Also, this warning + only happens when a method that was generated because of the "default is" + gets called, rather than when the attribute is defined. (Dave Rolsky) + + * The "default default" code for some native delegations no longer issues a + deprecation warning when the attribute is required or has a builder. (Dave + Rolsky) + + * Setting a "default default" caused a fatal error if you used the builder + or lazy_build options for the attribute. Reported by Kent Fredric. RT + #59613. (Dave Rolsky) + +1.15 Tue, Oct 5, 2010 + + [API CHANGES] + + * Major changes to Native Traits, most of which make them act more like + "normal" attributes. This should be mostly compatible with existing code, + but see Moose::Manual::Delta for details. + + * A few native traits (String, Counter, Bool) provide default values of "is" + and "default" when you created an attribute. Allowing them to provide + these values is now deprecated. Supply the value yourself when creating + the attribute. + + * New option 'trait_aliases' for Moose::Exporter, which will allow you to + generate non-global aliases for your traits (and allow your users to + rename the aliases, etc). (doy) + + * 'use Moose' and 'use Moose::Role' now accept a '-meta_name' option, to + determine which name to install the 'meta' name under. Passing 'undef' + to this option will suppress generation of the meta method entirely. (doy) + + * Moose now warns if it overwrites an existing method named "meta" in your + class when you "use Moose". (doy) + + [ENHANCEMENTS] + + * Native Trait delegations are now all generated as inline code. This should + be much faster than the previous method of delegation. In the best case, + native trait methods will be very highly optimized. + + * Reinitializing a metaclass no longer removes the existing method and + attribute objects (it instead fixes them so they are correct for the + reinitialized metaclass). This should make the order of loading many + MooseX modules less of an issue. (doy) + + * The Moose::Manual docs have been revised and updated. (Dave Rolsky) + + [BUG FIXES] + + * If an attribute was weak, setting it to a non-ref value after the object + was constructed caused an error. Now we only call weaken when the new + value is a reference. + + * t/040_type_constraints/036_match_type_operator.t failed on 5.13.5+. Fixed + based on a patch from Andreas Koenig. + +1.14 Tue, Sep 21, 2010 + + [BUG FIXES] + + * Work around what looks like a bug in List::MoreUtils::any. This bug caused + a weird error when defining the same union type twice, but only when using + MooseX::Types. Reported by Curtis Jewell. RT #61001. (Dave Rolsky) + +1.13 Mon, Sep 13, 2010 + + [API CHANGES] + + * The deprecation warnings for alias and excludes are back, use -alias and + -excludes instead. (Dave Rolsky) + + [ENHANCEMENTS] + + * When composing one role into another and there is an attribute conflict, + the error message now includes the attribute name. Reported by Sam + Graham. RT #59985. (Dave Rolsky) + + * When a class is made immutable, the does_role method is overridden with a + much faster version that simply looks role names up in a hash. Code which + uses lots of role-based type constraints should be faster. (Dave Rolsky) + +1.12 Sat, Aug 28, 2010 + + [BUG FIXES] + + * Fix the MANIFEST. Fixes RT #60831, reported by Alberto Simões. + +1.11 Fri, Aug 27, 2010 + + [API CHANGES] + + * An attribute in a subclass can now override the value of "is". (doy) + + * The deprecation warnings for alias and excludes have been turned back off + for this release, to give other module authors a chance to tweak their + code. (Dave Rolsky) + + [BUG FIXES] + + * mro::get_linear_isa was being called as a function rather than a method, + which caused problems with Perl 5.8.x. (t0m) + + * Union types always created a type constraint, even if their constituent + constraints did not have any coercions. This bogus coercion always + returned undef, which meant that a union which included Undef as a member + always coerced bad values to undef. Reported by Eric Brine. RT + #58411. (Dave Rolsky) + + * Union types with coercions would always fall back to coercing the value to + undef (unintentionally). Now if all the coercions for a union type fail, + the value returned by the coercion is the original value that we attempted + to coerce. (Dave Rolsky). + +1.10 Sun, Aug 22, 2010 + + [API CHANGES] + + * The long-deprecated alias and excludes options for role applications now + issue a deprecation warning. Use -alias and -excludes instead. (Dave + Rolsky) + + [BUG FIXES] + + * Inlined code no longer stringifies numeric attribute defaults. (vg, doy) + + * default => undef now works properly. (doy) + + * Enum type constraints now throw errors if their values are nonsensical. + (Sartak) + + [ENHANCEMENTS] + + * Optimizations that should help speed up compilation time (Dave Rolsky). + +1.09 Tue, Jul 25, 2010 + + [API CHANGES] + + * You can no longer pass "coerce => 1" for an attribute unless its type + constraint has a coercion defined. Doing so will issue a deprecation + warning. (Dave Rolsky) + + * Previously, '+foo' only allowed a specific set of options to be + overridden, which made it impossible to change attribute options related + to extensions. Now we blacklist some options, and anything else is + allowed. (doy, Tuomas Jormola) + + * Most features which have been declared deprecated now issue a warning using + Moose::Deprecated. Warnings are issued once per calling package, not + repeatedly. See Moose::Deprecated for information on how you can shut + these warnings up entirely. Note that deprecated features will eventually + be removed, so shutting up the warnings may not be the best idea. (Dave + Rolsky) + + * Removed the long-deprecated Moose::Meta::Role->alias_method method. (Dave + Rolsky). + + [NEW FEATURES] + + * We no longer unimport strict and warnings when Moose, Moose::Role, or + Moose::Exporter are unimported. Doing this was broken if the user + explicitly loaded strict and warnings themself, and the results could be + generally surprising. We decided that it was best to err on the side of + safety and leave these on. Reported by David Wheeler. RT #58310. (Dave + Rolsky) + + * New with_traits helper function in Moose::Util. (doy) + + [BUG FIXES] + + * Accessors will no longer be inlined if the instance metaclass isn't + inlinable. (doy) + + * Use Perl 5.10's new recursive regex features, if possible, for the type + constraint parser. (doy, nothingmuch) + + [ENHANCEMENTS] + + * Attributes now warn if their accessors overwrite a locally defined + function (not just method). (doy) + + [OTHER] + + * Bump our required perl version to 5.8.3, since earlier versions fail tests + and aren't easily installable/testable. + +1.08 Tue, Jun 15, 2010 + + [ENHANCEMENTS] + + * Refactored a small amount of Moose::Meta::Method::Constructor to allow it + to be overridden more easily (doy). + +1.07 Sat, Jun 05, 2010 + + [BUG FIXES] + + * Fixed a minor metaclass compatibility fixing bug dealing with immutable + classes and non-class metaclass traits (doy, dougdude). + +1.06 Tue, Jun 01, 2010 + + [NEW FEATURES] + + * Added '0+' overloading in Moose::Meta::TypeConstraint so that we can + more uniformly compare type constraints between 'classic' Moose type + constraints and MooseX::Types based type constraints. + +1.05 Thu, May 20, 2010 + + [API CHANGES] + + * Packages and modules no longer have methods - this functionality was + moved back up into Moose::Meta::Class and Moose::Meta::Role individually + (through the Class::MOP::Mixin::HasMethods mixin) (doy). + + * BUILDALL is now called by Moose::Meta::Class::new_object, rather than by + Moose::Object::new. (doy) + + [NEW FEATURES] + + * strict and warnings are now unimported when Moose, Moose::Role, or + Moose::Exporter are unimported. (doy, Adam Kennedy) + + * Added a 'consumers' method to Moose::Meta::Role for finding all + classes/roles which consume the given role. (doy) + + [BUG FIXES] + + * Fix has '+attr' in Roles to explode immediately, rather than when the role + is applied to a class (t0m). + + * Fix type constraint validation messages to not include the string 'failed' + twice in the same sentence (Florian Ragwitz). + + * New type constraints will default to being unequal, rather than equal + (rjbs). + + * The tests no longer check for perl's behavior of clobbering $@, which has + been fixed in perl-5.13.1 (Florian Ragwitz). + + * Metaclass compatibility fixing has been completely rewritten, and should + be much more robust. (doy) + +1.04 Thu, May 20, 2010 + + * This release was broken and has been deleted from CPAN shortly after its + upload. + +1.03 Thu, May 06, 2010 + + [NEW FEATURES] + + * Allow specifying required versions when setting superclasses or applying + roles (Florian Ragwitz). + +1.02 Sat, May 01, 2010 + + [BUG FIXES] + + * Stop the natatime method provided by the native Array trait from returning + an exhausted iterator when being called with a callback. (Florian Ragwitz) + + * Make Moose::Meta::TypeConstraint::Class correctly reject RegexpRefs. + (Florian Ragwitz) + + * Calling is_subtype_of on a Moose::Meta::TypeConstraint::Class with itself or + the class the TC represents as an argument incorrectly returned true. This + behavior is correct for is_type_of, not is_subtype_of. (Guillermo Roditi) + + * Use File::Temp for temp files created during tests. Previously, files were + written to the t/ dir, which could cause problems of the user running the + tests did not have write access to that directory.. (Chris Weyl, Ævar + Arnfjörð Bjarmason) + + * Pass role arguments along when applying roles to instances. (doy, lsm) + +1.01 Fri, Mar 26, 2010 + + [NEW FEATURES] + + * The handles option now also accepts a role type constraint in addition to a + plain role name. (Florian Ragwitz) + + [OTHER] + + * Record the Sartak/doy debt properly in Changes (perigrin) + +1.00 Tue, Mar 25, 2010 + + [BUG FIXES] + + * Moose::Meta::Attribute::Native::Trait::Code no longer creates reader + methods by default. (Florian Ragwitz) + + [DOCUMENTATION] + + * Improve various parts of the documentation and fix many typos. + (Dave Rolsky, Mateu Hunter, Graham Knop, Robin V, Jay Hannah, Jesse Luehrs) + + [OTHER] + + * Paid the $10 debt to doy from 0.80 Sat, Jun 6, 2009 (Sartak) + +0.99 Mon, Mar 8, 2010 + + [NEW FEATURES] + + * New method find_type_for in Moose::Meta::TypeConstraint::Union, for finding + which member of the union a given value validates for. (Cory Watson) + + [BUG FIXES] + + * DEMOLISH methods in mutable subclasses of immutable classes are now called + properly (Chia-liang Kao, Jesse Luehrs) + + [NEW DOCUMENTATION] + + * Added Moose::Manual::Support that defines the support, compatiblity, and + release policies for Moose. (Chris Prather) + +0.98 Wed, Feb 10, 2010 + + [BUG FIXES] + + * An internals change in 0.97 broke role application to an instance in some + cases. The bug occurred when two different roles were applied to different + instances of the same class. (Rafael Kitover) + + +0.97 Tue, Feb 9, 2010 + + [BUG FIXES] + + * Calling ->reinitialize on a cached anonymous class effectively uncached + the metaclass object, causing the metaclass to go out of scope + unexpectedly. This could easily happen at a distance by applying a + metarole to an anonymous class. (Dave Rolsky). + +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 as + a delegation option. This allows the code reference to be called as a + method on the object. (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 and 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 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) + - 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 - Do not run coercions in coerce() if the value already passes the type constraint (hdp) + * Moose::Meta::TypeConstraint::Class + - In validation error messages, specifically say that the value is not + an instance of the class. This should alleviate some frustrating + forgot-to-load-my-type bugs. rt.cpan.org #44639 (Sartak) + + * Moose::Meta::Role::Application::ToClass + - Revert the class-overrides-role warning in favor of a solution outside + of the Moose core (Sartak) + + * Tests + - Make Test::Output optional again, since it's only used in a few files + (Sartak) + 0.75_01 Thu, April 23, 2009 * Moose::Meta::Role::Application::ToClass - Moose now warns about each class overriding methods from roles it @@ -98,7 +1334,7 @@ for, noteworthy changes. point out this fact. (hdp) * Moose::Cookbook::Basics::Recipe12 - - A new recipe, creating a custom meta-method class. + - A new recipe, creating a custom meta-method class. * Moose::Cookbook::Meta::Recipe6 - A new recipe, creating a custom meta-method class. @@ -110,7 +1346,7 @@ for, noteworthy changes. 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) @@ -262,7 +1498,7 @@ for, noteworthy changes. * 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) @@ -289,7 +1525,7 @@ for, noteworthy changes. - Some tests tried to use Test::Warn 0.10, which had bugs. Now they require 0.11. (Dave Rolsky) - * Documentation + * 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) @@ -359,7 +1595,7 @@ for, noteworthy changes. vetting on names created via the sugar functions, so that they can only contain alphanumerics, ":", and ".". (Dave Rolsky) -0.65 Thu, January 22, 2008 +0.65 Thu, January 22, 2009 * Moose and Moose::Meta::Method::Overridden - If an overridden method called super(), and then the superclass's method (not overridden) _also_ called super(), @@ -515,7 +1751,7 @@ for, noteworthy changes. - Passing "-traits" when loading Moose caused the Moose.pm exports to be broken. Reported by t0m. (Dave Rolsky) - Tests for this bug. (t0m) - + * Moose::Util - Change resolve_metaclass alias to use the new load_first_existing_class function. This makes it a lot @@ -540,7 +1776,7 @@ for, noteworthy changes. * Moose::Meta::TypeConstraint::Union - Type constraint names are sorted as strings, not numbers. (jnapiorkowski) - + * Moose::Meta::TypeConstraint::Parameterizable - New parameterize method. This can be used as a factory method to make a new type constraint with a given parameterized @@ -550,7 +1786,7 @@ for, noteworthy changes. 0.59 Tue October 14, 2008 * Moose - Add abridged documentation for builder/default/initializer/ - predicate, and link to more details sections in + predicate, and link to more details sections in Class::MOP::Attribute. (t0m) * Moose::Util::TypeConstraints @@ -761,16 +1997,16 @@ for, noteworthy changes. - explicitly require Perl 5.8.0+ (Dave Rolsky) * Moose::Util::TypeConstraints - - Fix warnings from find_type_constraint if the type is not + - Fix warnings from find_type_constraint if the type is not found (t0m). - + * Moose::Meta::TypeConstraint - Predicate methods (equals/is_a_type_of/is_subtype_of) now return false if the type you specify cannot be found in the type registry, rather than throwing an unhelpful and coincidental exception. (t0m). - added docs & test for this (t0m) - + * Moose::Meta::TypeConstraint::Registry - add_type_constraint now throws an exception if a parameter is not supplied (t0m). @@ -785,7 +2021,7 @@ for, noteworthy changes. method when that method was provided by another role being composed at the same time. (Dave Rolsky) - test and bug finding (tokuhirom) - + 0.55_01 Wed August 20, 2008 !! Calling Moose::init_meta as a function is now !! @@ -893,32 +2129,32 @@ for, noteworthy changes. 0.54 Thurs. July 3, 2008 ... this is not my day today ... - + * Moose::Meta::Attribute - - fixed legal_options_for_inheritance such that - clone_and_inherit options still works for - Class::MOP::Attribute objects and therefore + - fixed legal_options_for_inheritance such that + clone_and_inherit options still works for + Class::MOP::Attribute objects and therefore does not break MooseX::AttributeHelpers (stevan) 0.53 Thurs. July 3, 2008 - * Whoops, I guess I should run 'make manifest' before - actually releasing the module. No actual changes + * Whoops, I guess I should run 'make manifest' before + actually releasing the module. No actual changes in this release, except the fact that it includes - the changes that I didn't include in the last + the changes that I didn't include in the last release. (stevan--) 0.52 Thurs. July 3, 2008 * Moose - added "FEATURE REQUESTS" section to the Moose docs to properly direct people (stevan) (RT #34333) - - making 'extends' croak if it is passed a Role since - this is not ever something you want to do + - making 'extends' croak if it is passed a Role since + this is not ever something you want to do (fixed by stevan, found by obra) - added tests for this (stevan) * Moose::Object - - adding support for DOES (as in UNIVERSAL::DOES) + - adding support for DOES (as in UNIVERSAL::DOES) (nothingmuch) - added test for this @@ -927,12 +2163,12 @@ for, noteworthy changes. - added tests for this (wreis) * Moose::Cookbook::Snacks::* - - removed some of the unfinished snacks that should + - removed some of the unfinished snacks that should not have been released yet. Added some more examples to the 'Keywords' snack. (stevan) * Moose::Cookbook::Style - - added general Moose "style guide" of sorts to the + - added general Moose "style guide" of sorts to the cookbook (nothingmuch) (RT #34335) * t/ @@ -988,9 +2224,9 @@ for, noteworthy changes. !! faster with new Class::MOP 0.59 !! * Moose::Meta::Attribute - - fixed how the is => (ro|rw) works with + - fixed how the is => (ro|rw) works with custom defined reader, writer and accessor - options. + options. - added docs for this (TODO). - added tests for this (Thanks to Penfold) - added the custom attribute alias for regular @@ -1004,15 +2240,15 @@ for, noteworthy changes. Moose::Meta::Role Moose::Meta::Role::Composite Moose::Util::TypeConstraints - - switched usage of reftype to ref because + - switched usage of reftype to ref because it is much faster - + * Moose::Meta::Role - changing add_package_symbol to use the new HASH ref form - + * Moose::Object - - fixed how DEMOLISHALL is called so that it + - fixed how DEMOLISHALL is called so that it can be overrided in subclasses (thanks to Sartak) - added test for this (thanks to Sartak) @@ -1032,7 +2268,7 @@ for, noteworthy changes. 0.47 Thurs. May 29, 2008 (late night release engineering)-- - - fixing the version is META.yml, no functional + - fixing the version is META.yml, no functional changes in this release 0.46 Wed. May 28, 2008 @@ -1041,153 +2277,153 @@ for, noteworthy changes. * Moose::Meta::Class - some optimizations of the &initialize method - since it is called so often by &meta - + since it is called so often by &meta + * Moose::Meta::Class Moose::Meta::Role - - now use the get_all_package_symbols from the - updated Class::MOP, test suite is now 10 seconds + - now use the get_all_package_symbols from the + updated Class::MOP, test suite is now 10 seconds faster - + * Moose::Meta::Method::Destructor - - is_needed can now also be called as a class - method for immutablization to check if the - destructor object even needs to be created + - is_needed can now also be called as a class + method for immutablization to check if the + destructor object even needs to be created at all - + * Moose::Meta::Method::Destructor Moose::Meta::Method::Constructor - - added more descriptive error message to help + - added more descriptive error message to help keep people from wasting time tracking an error that is easily fixed by upgrading. 0.45 Saturday, May 24, 2008 * Moose - - Because of work in Class::MOP 0.57, all + - Because of work in Class::MOP 0.57, all XS based functionality is now optional and a Pure Perl version is supplied - the CLASS_MOP_NO_XS environment variable - can now be used to force non-XS versions - to always be used + can now be used to force non-XS versions + to always be used - several of the packages have been tweaked to take care of this, mostly we added - support for the package_name and name + support for the package_name and name variables in all the Method metaclasses - - before/around/after method modifiers now + - before/around/after method modifiers now support regexp matching of names (thanks to Takatoshi Kitano) - tests added for this - - NOTE: this only works for classes, it - is currently not supported in roles, + - NOTE: this only works for classes, it + is currently not supported in roles, but, ... patches welcome - All usage of Carp::confess have been replaced by Carp::croak in the "keyword" functions since the stack trace is usually not helpful - + * Moose::Role - All usage of Carp::confess have been replaced by Carp::croak in the "keyword" functions since - the stack trace is usually not helpful - - The 'has' keyword for roles now accepts the - same array ref form that Moose.pm does + the stack trace is usually not helpful + - The 'has' keyword for roles now accepts the + same array ref form that Moose.pm does (has [qw/foo bar/] => (is => 'rw', ...)) - added test for this - + * Moose::Meta::Attribute - trigger on a ro-attribute is no longer an error, as it's useful to trigger off of the constructor * Moose::Meta::Class - - added same 'add_package_symbol' fix as in + - added same 'add_package_symbol' fix as in Class::MOP 0.57 * Moose::Util - - does_role now handles non-Moose classes + - does_role now handles non-Moose classes more gracefully - added tests for this - - added the 'add_method_modifier' function + - added the 'add_method_modifier' function (thanks to Takatoshi Kitano) * Moose::Util::TypeConstraints - - subtypes of parameterizable types now are + - subtypes of parameterizable types now are themselves parameterizable types * Moose::Meta::Method::Constructor - - fixed bug where trigger was not being - called by the inlined immutable - constructors + - fixed bug where trigger was not being + called by the inlined immutable + constructors - added test for this (thanks to Caelum) - + * Moose::Meta::Role::Application::ToInstance - now uses the metaclass of the instance (if possible) to create the anon-class (thanks Jonathan Rockway) - + * Moose::Cookbook::Recipe22 - added the meta-attribute trait recipe (thanks to Sartak) - + * t/ - - fixed hash-ordering test bug that was + - fixed hash-ordering test bug that was causing occasional cpantester failures - - renamed the t/000_recipe/*.t tests to be - more descriptive (thanks to Sartak) + - renamed the t/000_recipe/*.t tests to be + more descriptive (thanks to Sartak) 0.44 Sat. May 10, 2008 * Moose - - made make_immutable warning cluck to + - made make_immutable warning cluck to show where the error is (thanks mst) - + * Moose::Object - - BUILDALL and DEMOLISHALL now call - ->body when looping through the + - BUILDALL and DEMOLISHALL now call + ->body when looping through the methods, to avoid the overloaded method call. - fixed issue where DEMOLISHALL was - eating the $@ values, and so not + eating the $@ values, and so not working correctly, it still kind of - eats them, but so does vanilla perl + eats them, but so does vanilla perl - added tests for this - + * Moose::Cookbook::Recipe7 - - added new recipe for immutable + - added new recipe for immutable functionality (thanks Dave Rolsky) - + * Moose::Cookbook::Recipe9 - - added new recipe for builder and + - added new recipe for builder and lazy_build (thanks Dave Rolsky) - + * Moose::Cookbook::Recipe11 - - added new recipe for method aliasing + - added new recipe for method aliasing and exclusion with Roles (thanks Dave Rolsky) * t/ - fixed Win32 test failure (thanks spicyjack) - ~ removed Build.PL and Module::Build compat + ~ removed Build.PL and Module::Build compat since Module::Install has done that. 0.43 Wed. April, 30, 2008 * NOTE TO SELF: - drink more coffee before + drink more coffee before doing release engineering - - - whoops, forgot to do the smolder tests, + + - whoops, forgot to do the smolder tests, and we broke some of the custom meta-attr modules. This fixes that. 0.42 Mon. April 28, 2008 - - some bad tests slipped by, nothing else + - some bad tests slipped by, nothing else changed in this release (cpantesters++) - - - upped the Class::MOP dependency to 0.55 - since we have tests which need the C3 + + - upped the Class::MOP dependency to 0.55 + since we have tests which need the C3 support 0.41 Mon. April 28, 2008 ~~ numerous documentation updates ~~ - + - Changed all usage of die to Carp::croak for better error reporting (initial patch by Tod Hagan) @@ -1204,8 +2440,8 @@ for, noteworthy changes. any method/@ISA cache penalty (nothingmuch) * Moose::Meta::Class - - fixing &new_object to make sure trigger gets the - coerced value (spotted by Charles Alderman on the + - fixing &new_object to make sure trigger gets the + coerced value (spotted by Charles Alderman on the mailing list) - added test for this @@ -1215,23 +2451,23 @@ for, noteworthy changes. found by Jesse Luehrs, fixed by Dave Rolsky) - added tests for this (Dave Rolsky) - fix typo in initialize_body method (nothingmuch) - + * Moose::Meta::Method::Destructor - fix typo in initialize_body method (nothingmuch) * Moose::Meta::Method::Overriden Moose::Meta::Method::Augmented - - moved the logic for these into their own + - moved the logic for these into their own classes (nothingmuch) * Moose::Meta::Attribute - - inherited attributes may now be extended without + - inherited attributes may now be extended without restriction on the type ('isa', 'does') (Sartak) - added tests for this (Sartak) - - when an attribute property is malformed (such as lazy without - a default), give the name of the attribute in the error + - when an attribute property is malformed (such as lazy without + a default), give the name of the attribute in the error message (Sartak) - - added the &applied_traits and &has_applied_traits methods + - added the &applied_traits and &has_applied_traits methods to allow introspection of traits - added tests for this - moved 'trait' and 'metaclass' argument handling to here from @@ -1239,14 +2475,14 @@ for, noteworthy changes. - clone_and_inherit_options now handles 'trait' and 'metaclass' (has '+foo' syntax) (nothingmuch) - added tests for this (t0m) - - * Moose::Object - - localize $@ inside DEMOLISHALL to avoid it + + * Moose::Object + - localize $@ inside DEMOLISHALL to avoid it eating $@ (found by Ernesto) - added test for this (thanks to Ernesto) * Moose::Util::TypeConstraints - - &find_type_constraint now DWIMs when given an + - &find_type_constraint now DWIMs when given an type constraint object or name (nothingmuch) - &find_or_create_type_constraint superseded with a number of more specific functions: @@ -1259,19 +2495,19 @@ for, noteworthy changes. Moose::Meta::TypeConstraint::Enum Moose::Meta::TypeConstraint::Union Moose::Meta::TypeConstraint::Parameterized - - added the &equals method for comparing two type + - added the &equals method for comparing two type constraints (nothingmuch) - added tests for this (nothingmuch) * Moose::Meta::TypeConstraint - - add the &parents method, which is just an alias to &parent. + - add the &parents method, which is just an alias to &parent. Useful for polymorphism with TC::{Class,Role,Union} (nothingmuch) * Moose::Meta::TypeConstraint::Class - added the class attribute for introspection purposes (nothingmuch) - added tests for this - + * Moose::Meta::TypeConstraint::Enum Moose::Meta::TypeConstraint::Role - broke these out into their own classes (nothingmuch) @@ -1290,70 +2526,70 @@ for, noteworthy changes. 0.39 Fri. March 14, 2008 * Moose - - documenting the use of '+name' with attributes + - documenting the use of '+name' with attributes that come from recently composed roles. It makes - sense, people are using it, and so why not just + sense, people are using it, and so why not just officially support it. - - fixing the 'extends' keyword so that it will not + - fixing the 'extends' keyword so that it will not trigger Ovid's bug (http://use.perl.org/~Ovid/journal/35763) - + * oose - - added the perl -Moose=+Class::Name feature to allow + - added the perl -Moose=+Class::Name feature to allow monkeypatching of classes in one liners - + * Moose::Util - - fixing the 'apply_all_roles' keyword so that it will not - trigger Ovid's bug (http://use.perl.org/~Ovid/journal/35763) - + - fixing the 'apply_all_roles' keyword so that it will not + trigger Ovid's bug (http://use.perl.org/~Ovid/journal/35763) + * Moose::Meta::Class - added ->create method which now supports roles (thanks to jrockway) - added tests for this - - added ->create_anon_class which now supports roles and caching of + - added ->create_anon_class which now supports roles and caching of the results (thanks to jrockway) - added tests for this - made ->does_role a little more forgiving when it is checking a Class::MOP era metaclasses. - + * Moose::Meta::Role::Application::ToInstance - - it is now possible to pass extra params to be used when + - it is now possible to pass extra params to be used when a role is applied to an the instance (rebless_params) - added tests for this - + * Moose::Util::TypeConstraints - class_type now accepts an optional second argument for a custom message. POD anotated accordingly (groditi) - - added tests for this - - it is now possible to make anon-enums by passing 'enum' an - ARRAY ref instead of the $name => @values. Everything else + - added tests for this + - it is now possible to make anon-enums by passing 'enum' an + ARRAY ref instead of the $name => @values. Everything else works as before. - added tests for this - + * t/ - - making test for using '+name' on attributes consumed + - making test for using '+name' on attributes consumed from a role, it works and makes sense too. - * Moose::Meta::Attribute - - fix handles so that it doesn't return nothing - when the method cannot be found, not sure why + * Moose::Meta::Attribute + - fix handles so that it doesn't return nothing + when the method cannot be found, not sure why it ever did this originally, this means we now - have slightly better support for AUTOLOADed + have slightly better support for AUTOLOADed objects - added more delegation tests - - adding ->does method to this so as to better + - adding ->does method to this so as to better support traits and their introspection. - added tests for this - + * Moose::Object - - localizing the Data::Dumper configurations so + - localizing the Data::Dumper configurations so that it does not pollute others (RT #33509) - made ->does a little more forgiving when it is passed Class::MOP era metaclasses. 0.38 Fri. Feb. 15, 2008 - * Moose::Meta::Attribute - - fixed initializer to correctly do - type checking and coercion in the - callback + * Moose::Meta::Attribute + - fixed initializer to correctly do + type checking and coercion in the + callback - added tests for this * t/ @@ -1361,62 +2597,62 @@ for, noteworthy changes. 0.37 Thurs. Feb. 14, 2008 * Moose - - fixed some details in Moose::init_meta + - fixed some details in Moose::init_meta and its superclass handling (thanks thepler) - added tests for this (thanks thepler) - - 'has' now dies if you don't pass in name + - 'has' now dies if you don't pass in name value pairs - added the 'make_immutable' keyword as a shortcut to make_immutable * Moose::Meta::Class Moose::Meta::Method::Constructor - Moose::Meta::Attribute + Moose::Meta::Attribute - making (init_arg => undef) work here too (thanks to nothingmuch) - - * Moose::Meta::Attribute + + * Moose::Meta::Attribute Moose::Meta::Method::Constructor - Moose::Meta::Method::Accessor + Moose::Meta::Method::Accessor - make lazy attributes respect attr initializers (rjbs) - added tests for this - + * Moose::Util::TypeConstraints Moose::Util::TypeConstraints::OptimizedConstraints Moose::Meta::TypeConstraints Moose::Meta::Attribute Moose::Meta::Method::Constructor - Moose::Meta::Method::Accessor - - making type errors use the + Moose::Meta::Method::Accessor + - making type errors use the assigned message (thanks to Sartak) - added tests for this * Moose::Meta::Method::Destructor - - making sure DESTROY gets inlined properly + - making sure DESTROY gets inlined properly with successive DEMOLISH calls (thanks to manito) - * Moose::Meta::Attribute - Moose::Meta::Method::Accessor - - fixed handling of undef with type constraints - (thanks to Ernesto) + * Moose::Meta::Attribute + Moose::Meta::Method::Accessor + - fixed handling of undef with type constraints + (thanks to Ernesto) - added tests for this - + * Moose::Util - - added &get_all_init_args and &get_all_attribute_values + - added &get_all_init_args and &get_all_attribute_values (thanks to Sartak and nothingmuch) 0.36 Sat. Jan. 26, 2008 * Moose::Role Moose::Meta::Attribute - - role type tests now support when roles are + - role type tests now support when roles are applied to non-Moose classes (found by ash) - added tests for this (thanks to ash) - couple extra tests to boost code coverage - * Moose::Meta::Method::Constructor + * Moose::Meta::Method::Constructor - improved fix for handling Class::MOP attributes - - added test for this - + - added test for this + * Moose::Meta::Class - handled the add_attribute($attribute_meta_object) case correctly @@ -1424,12 +2660,12 @@ for, noteworthy changes. 0.35 Tues. Jan. 22, 2008 * Moose::Meta::Method::Constructor - - fix to make sure even Class::MOP attributes + - fix to make sure even Class::MOP attributes are handled correctly (Thanks to Dave Rolsky) - added test for this (also Dave Rolsky) - + * Moose::Meta::Class - - improved error message on _apply_all_roles, + - improved error message on _apply_all_roles, you should now use Moose::Util::apply_all_roles and you shouldnt have been using a _ prefixed method in the first place ;) @@ -1440,27 +2676,27 @@ for, noteworthy changes. Moose is now a postmodern object system :) - (see the POD for details) - - * <> - - this release contains a major reworking and - cleanup of the role system + + * <> + - this release contains a major reworking and + cleanup of the role system - 100% backwards compat. - Role application now restructured into seperate classes based on type of applicants - Role summation (combining of more than one role) - is much cleaner and anon-classes are no longer + is much cleaner and anon-classes are no longer used in this process - - new Composite role metaclass + - new Composite role metaclass - runtime application of roles to instances is now more efficient and re-uses generated classes when applicable - + * <> - - methods can now be excluded from a given role + - methods can now be excluded from a given role during composition - - methods can now be aliased to another name (and - still retain the original as well) - + - methods can now be aliased to another name (and + still retain the original as well) + * Moose::Util::TypeConstraints::OptimizedConstraints - added this module (see above) @@ -1477,20 +2713,20 @@ for, noteworthy changes. * Moose::Meta::Method::Accessor Moose::Meta::Method::Constructor Moose::Meta::Attribute - Moose::Meta::TypeConstraint - Moose::Meta::TypeCoercion - - lots of cleanup of such things as: + Moose::Meta::TypeConstraint + Moose::Meta::TypeCoercion + - lots of cleanup of such things as: - generated methods - type constraint handling - - error handling/messages - (thanks to nothingmuch) - + - error handling/messages + (thanks to nothingmuch) + * Moose::Meta::TypeConstraint::Parameterizable - - added this module to support the refactor + - added this module to support the refactor in Moose::Meta::TypeConstraint::Parameterized * Moose::Meta::TypeConstraint::Parameterized - - refactored how these types are handled so they + - refactored how these types are handled so they are more generic and not confined to ArrayRef and HashRef only @@ -1674,16 +2910,16 @@ for, noteworthy changes. - 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 @@ -2402,9 +3638,9 @@ for, noteworthy changes. - 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 @@ -2452,8 +3688,8 @@ for, noteworthy changes. * 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!!!