Also see Moose::Manual::Delta for more details of, and workarounds
for, noteworthy changes.
+1.9900
+
+ [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.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
* Make Moose::Meta::TypeConstraint::Class correctly reject RegexpRefs.
(Florian Ragwitz)
- * Don't write temporary files in t/, rather use File::Temp to create
- a temporary directory. This caused an issue for anyone running the
- Moose tests with user that didn't have permission to write to the
- t/ directory.
+ * 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)
- Implemented by the Fedora perl-Moose package maintainer Chris
- Weyl, integrated by Ævar Arnfjörð Bjarmason.
+ * Pass role arguments along when applying roles to instances. (doy, lsm)
1.01 Fri, Mar 26, 2010
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(),