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 (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]
[BUG FIXES]
- * Calling ->reinitialize on a cached anonymous class destroyed the cache,
- causing the class to go out of scope unexpectedly. This could easily
- happen at a distance by applying a metarole to an anonymous class. (Dave
- Rolsky).
+ * 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]
- * Moose::Meta::Attribute::Native::Trait::Code now provides execute_method, in
- addition to execute, to be able to call a code attribute as a method.
- (Florian Ragwitz)
+ * 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)
+
+ * 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
[BUG FIXES]
- * Portability fixes to our XS code so we compile with 5.8.8 with Visual
+ * Portability fixes to our XS code so we compile with 5.8.8 and Visual
C++. Fixes RT #53391. Reported by Taro Nishino. (rafl)
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
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(),