X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=Changes;h=2511928abd70d529e6c03eb3d4315f39dd522dc0;hb=bc1d412683eec686d1d461224e2a597e98bacfc1;hp=339d178e843c8642a2c3d2567bc9beecf5324cf3;hpb=576cd474fc09bba92843e299a33dd2634629a930;p=gitmo%2FMoose.git diff --git a/Changes b/Changes index 339d178..2511928 100644 --- a/Changes +++ b/Changes @@ -1,10 +1,541 @@ Also see Moose::Manual::Delta for more details of, and workarounds for, noteworthy changes. +{{$NEXT}} + +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. + 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 @@ -189,7 +720,7 @@ for, noteworthy changes. too. (Dave Rolsky) * Moose::Util::MetaRole::apply_metaclass_roles is now called - apply_metaroles. The old name is deprecated. Dave Rolsky> + 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 @@ -991,7 +1522,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(),