X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=Changes;h=7e0522aa9bc4998f14ea4d2417c2167d1e7b6000;hb=a7116c4cfacdb17ebbc20bf0d2ee25bc8c22918a;hp=5af4bb46287840a05d0effc5153719307741eb48;hpb=ed5d4812547cdbda8cb46bde33e34064a84b52ee;p=gitmo%2FMoose.git diff --git a/Changes b/Changes index 5af4bb4..7e0522a 100644 --- a/Changes +++ b/Changes @@ -1,16 +1,572 @@ Also see Moose::Manual::Delta for more details of, and workarounds for, noteworthy changes. -next version +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 - - Added the currying syntax for delegation from AttributeHelpers - to the existing delegation API. (hdp) + - 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 - - Moved in from MooseX::AttributeHelpers with API tweaks. See + - 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) @@ -45,6 +601,11 @@ next version - 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 @@ -145,7 +706,7 @@ next version that's what we need. 0.80 Sat, Jun 6, 2009 - * Moose::Manual::FAQ + * 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