1 Also see Moose::Manual::Delta for more details of, and workarounds
2 for, noteworthy changes.
6 2.0000 Mon, Apr 11, 2011
10 * The RegexpRef type constraint now accepts regular expressions blessed into
11 other classes, such as those found in pluggable regexp engines.
12 Additionally the 'Object' constraint no longer rejects objects implemented
13 as a blessed regular expression. (David Leadbeater)
17 * Moose::Manual::Support now explicitly states when major releases are
18 allowed to happen (January, April, July, or October).
20 1.9906-TRIAL Mon, Apr 04, 2011
24 * Update conflicts list.
27 1.9905-TRIAL Mon, Mar 28, 2011
31 * The Moose::Meta::Role::Attribute class now has an original_role method
32 which returns the role which first defined an attribute. See the docs for
33 details. (Dave Rolsky)
35 * Moose::Util::MetaRole will make sure that the class to which you're
36 applying metaroles or base class roles can actually have them applied. If
37 not (it's not a Moose class, it has a non-Moose metaclass, etc.), then it
38 gives a useful error message. Previously, this would just end up dying in
39 the MetaRole code without a useful message. (Dave Rolsky)
43 * When a role had its own applied_attribute metaclass (usually from MetaRole
44 application), that metaclass would get lost when that role participated in
45 role composition. It was also lost if that role was consumed by some other
46 role. Both of these cases have been fixed. Attributes are always applied
47 with the applied_attribute metaclass of the role which originally defined
50 1.9904-TRIAL Fri, Mar 04, 2011
54 * Reinitializing anonymous roles used to accidentally clear out the role's
55 stash in some circumstances. This is now fixed. (doy)
57 * The Int type constraint now rejects integers with trailing newlines.
60 1.9903-TRIAL Mon, Feb 28, 2011
64 * Reverse the order that Moose::Exporter 'also' exports are dispatched. When
65 trying to re-export from a package that itself exported a modified set of
66 Moose sugar, you'd get the original Moose sugar instead of the overrides.
67 There are also now tests for this. (perigrin)
69 * Don't initialize lazy attributes with defaults in the constructor (for
70 immutable classes). (mo)
72 * When reinitializing meta objects for classes and roles, we failed to
73 preserve roles and role applications. This led to weird bugs. Many MooseX
74 modules end up reinitializing your class or role. (Dave Rolsky)
76 1.9902-TRIAL Mon, Jan 03, 2011
80 * Fix generation of CCFLAGS.
82 * Add a bit more Dist::Zilla functionality.
84 1.9901-TRIAL Mon, Jan 03, 2011
88 * Fix some indexing issues.
90 * Fix a few issues with the conflict checking stuff.
92 1.9900-TRIAL Sat, Jan 01, 2011
96 * The entire Class::MOP distribution has been merged with Moose. In the
97 future, the Class::MOP code itself will be merged into Moose, and
98 eventually the Class::MOP namespace will disappear entirely. For the
99 current release, we have simply changed how Class::MOP is
100 distributed. (Dave Rolsky).
102 * Switched to Dist::Zilla for development. However, we still have a minimal
103 Makefile.PL in the repository that can be used for development. (Dave
108 * Roles now have their own default attribute metaclass to use during
109 application to a class, rather than just using the class's
110 attribute_metaclass. This is also overridable via ::MetaRole, with the
111 applied_attribute key in the role_metaroles hashref (doy).
113 * The internal code used to generate inlined methods (accessor, constructor,
114 etc.) has been massively rewritten. MooseX modules that do inlining will
115 almost certainly need to be updated as well.
119 * We now load the roles needed for native delegations only as needed. This
120 speeds up the compilation time for Moose itself. (doy)
123 1.25 Fri, Apr 1, 2011
127 * Reinitializing anonymous roles used to accidentally clear out the role's
128 stash in some circumstances. This is now fixed. (doy) (backported from
132 1.24 Tue, Feb 24, 2011
136 * Reverse the order that Moose::Exporter 'also' exports are dispatched. When
137 trying to re-export from a package that itself exported a modified set of
138 Moose sugar, you'd get the original Moose sugar instead of the overrides.
139 There are also now tests for this. (perigrin) (backported from 1.9903)
142 1.23 Sun, Feb 13, 2011
146 * The 1.22 release had a bad MANIFEST. This has been fixed.
149 1.22 Sun, Feb 13, 2011
153 * When reinitializing meta objects for classes and roles, we failed to
154 preserve roles and role applications. This led to weird bugs. Many MooseX
155 modules end up reinitializing your class or role. (Dave Rolsky) (backported
158 1.21 Wed, Nov 24, 2010
162 * The Support manual has been updated to reflect our new major/minor version
163 policy. (Chris Prather)
165 * The Contributing manual has been updated to reflect workflow changes based
166 on this new support policy. (doy)
170 * The role attribute metaclass did not inherit from Class::MOP::Object,
171 which could cause errors when trying to resolve metaclass compatibility
172 issues. Reported by Daniel Ruoso. (doy)
174 * The lazy_build feature was accidentally removed from all the docs. Now
175 it's listed in Moose.pm again. (Chris Prather)
177 1.20 Fri, Nov 19, 2010
181 * When using native delegations, if an array or hash ref member failed a
182 type constraint check, Moose ended up erroring out with "Can't call method
183 "get_message" on unblessed reference" instead of generating a useful error
184 based on the failed type constraint. Reported by t0m. RT #63113. (Dave
187 1.19 Tue, Nov 2, 2010
191 * There was still one place in the code trying to load Test::Exception
192 instead of Test::Fatal. (Karen Etheridge)
195 1.18 Sun, Oct 31, 2010
199 * Type constraint objects now have an assert_coerce method which will either
200 return a valid value or throw an error. (rjbs)
202 * We now warn when an accessor for one attribute overwrites an accessor for
203 another attribute. RT #57510. (Dave Rolsky)
207 * The native Array and Hash delegation methods now coerce individual new
208 members if the _member type_ has a coercion. In other words, if the array
209 reference is defined as an ArrayRef[DateTime], and you've defined a
210 coercion from Int to DateTime, then pushing an integer via a delegation
211 method will coerce the integer to a DateTime object. Reported by Karen
212 Etheridge. RT #62351. (Dave Rolsky)
214 * An attribute using native delegations did not always properly coerce and
215 type check a lazily set default value. (doy and Dave Rolsky)
217 * Using a regexp to define delegations for a class which was not yet loaded
218 did not actually work, but did not explicitly fail. However, it caused an
219 error when the class was loaded later. Reported by Max Kanat-Alexander. RT
220 #60596. (Dave Rolsky)
222 * Attempting to delegate to a class or role which is not yet loaded will now
223 throw an explicit error. (Dave Rolsky)
225 * Attempting to set lazy_build in an inherited attribute was ignored. RT
230 * The Moose test suite now uses Test::Fatal instead of
231 Test::Exception. (rjbs)
233 1.17 Tue, Oct 19, 2010
237 * Make native delegation inlining work with instance metaclasses where slot
238 access is an do {} block, like Kioku. This fixes the use of native
239 delegations together with Kioku. (Scott, doy)
241 1.16 Mon, Oct 18, 2010
245 * Almost every native delegation method which changes the attribute value
246 now has an explicitly documented return value. In general, this return
247 value matches what Perl would return for the same operation. (Dave Rolsky)
249 * Lots of work on native delegation documentation, including documenting
250 what arguments each native delegation method allows or requires. (Dave
253 * Passing an odd number of args to ->new() now gives a more useful warning
254 than Perl's builtin warning. Suggested by Sir Robert Burbridge. (Dave
257 * Allow disabling stack traces by setting an environment variable. See
258 Moose::Error::Default for details. This feature is considered
259 experimental, and may change in a future release. (Marcus Ramberg)
261 * The deprecation warning for using alias and excludes without a leading
262 dash now tells you the role being applied and what it was being applied
267 * A number of native trait methods which expected strings as arguments did
268 not allow the empty string. This included Array->join, String->match,
269 String->replace, and String->substr. Reported by Whitney Jackson. RT
270 #61962. (Dave Rolsky)
272 * 'no Moose' no longer inadvertently removes imports it didn't create
273 itself. RT #60013. (Florian Ragwitz, doy)
275 * Roles now support passing an array reference of method names to method
276 modifier sugar functions. (doy)
278 * Native traits no longer use optimized inlining routines if the instance
279 requests it (in particular, if inline_get_slot_value doesn't return
280 something that can be assigned to). This should fix issues with
281 KiokuDB::Class. (doy)
283 * We now ignore all Class::MOP and Moose classes when determining what
284 package called a deprecated feature. This should make the deprecation
285 warnings saner, and make it possible to turn them off more easily. (Dave
288 * The deprecated "default is" warning no longer happens if the attribute has
289 any accessor method defined (accessor, reader, writer). Also, this warning
290 only happens when a method that was generated because of the "default is"
291 gets called, rather than when the attribute is defined. (Dave Rolsky)
293 * The "default default" code for some native delegations no longer issues a
294 deprecation warning when the attribute is required or has a builder. (Dave
297 * Setting a "default default" caused a fatal error if you used the builder
298 or lazy_build options for the attribute. Reported by Kent Fredric. RT
299 #59613. (Dave Rolsky)
301 1.15 Tue, Oct 5, 2010
305 * Major changes to Native Traits, most of which make them act more like
306 "normal" attributes. This should be mostly compatible with existing code,
307 but see Moose::Manual::Delta for details.
309 * A few native traits (String, Counter, Bool) provide default values of "is"
310 and "default" when you created an attribute. Allowing them to provide
311 these values is now deprecated. Supply the value yourself when creating
314 * New option 'trait_aliases' for Moose::Exporter, which will allow you to
315 generate non-global aliases for your traits (and allow your users to
316 rename the aliases, etc). (doy)
318 * 'use Moose' and 'use Moose::Role' now accept a '-meta_name' option, to
319 determine which name to install the 'meta' name under. Passing 'undef'
320 to this option will suppress generation of the meta method entirely. (doy)
322 * Moose now warns if it overwrites an existing method named "meta" in your
323 class when you "use Moose". (doy)
327 * Native Trait delegations are now all generated as inline code. This should
328 be much faster than the previous method of delegation. In the best case,
329 native trait methods will be very highly optimized.
331 * Reinitializing a metaclass no longer removes the existing method and
332 attribute objects (it instead fixes them so they are correct for the
333 reinitialized metaclass). This should make the order of loading many
334 MooseX modules less of an issue. (doy)
336 * The Moose::Manual docs have been revised and updated. (Dave Rolsky)
340 * If an attribute was weak, setting it to a non-ref value after the object
341 was constructed caused an error. Now we only call weaken when the new
342 value is a reference.
344 * t/040_type_constraints/036_match_type_operator.t failed on 5.13.5+. Fixed
345 based on a patch from Andreas Koenig.
347 1.14 Tue, Sep 21, 2010
351 * Work around what looks like a bug in List::MoreUtils::any. This bug caused
352 a weird error when defining the same union type twice, but only when using
353 MooseX::Types. Reported by Curtis Jewell. RT #61001. (Dave Rolsky)
355 1.13 Mon, Sep 13, 2010
359 * The deprecation warnings for alias and excludes are back, use -alias and
360 -excludes instead. (Dave Rolsky)
364 * When composing one role into another and there is an attribute conflict,
365 the error message now includes the attribute name. Reported by Sam
366 Graham. RT #59985. (Dave Rolsky)
368 * When a class is made immutable, the does_role method is overridden with a
369 much faster version that simply looks role names up in a hash. Code which
370 uses lots of role-based type constraints should be faster. (Dave Rolsky)
372 1.12 Sat, Aug 28, 2010
376 * Fix the MANIFEST. Fixes RT #60831, reported by Alberto Simões.
378 1.11 Fri, Aug 27, 2010
382 * An attribute in a subclass can now override the value of "is". (doy)
384 * The deprecation warnings for alias and excludes have been turned back off
385 for this release, to give other module authors a chance to tweak their
390 * mro::get_linear_isa was being called as a function rather than a method,
391 which caused problems with Perl 5.8.x. (t0m)
393 * Union types always created a type constraint, even if their constituent
394 constraints did not have any coercions. This bogus coercion always
395 returned undef, which meant that a union which included Undef as a member
396 always coerced bad values to undef. Reported by Eric Brine. RT
397 #58411. (Dave Rolsky)
399 * Union types with coercions would always fall back to coercing the value to
400 undef (unintentionally). Now if all the coercions for a union type fail,
401 the value returned by the coercion is the original value that we attempted
402 to coerce. (Dave Rolsky).
404 1.10 Sun, Aug 22, 2010
408 * The long-deprecated alias and excludes options for role applications now
409 issue a deprecation warning. Use -alias and -excludes instead. (Dave
414 * Inlined code no longer stringifies numeric attribute defaults. (vg, doy)
416 * default => undef now works properly. (doy)
418 * Enum type constraints now throw errors if their values are nonsensical.
423 * Optimizations that should help speed up compilation time (Dave Rolsky).
425 1.09 Tue, Jul 25, 2010
429 * You can no longer pass "coerce => 1" for an attribute unless its type
430 constraint has a coercion defined. Doing so will issue a deprecation
431 warning. (Dave Rolsky)
433 * Previously, '+foo' only allowed a specific set of options to be
434 overridden, which made it impossible to change attribute options related
435 to extensions. Now we blacklist some options, and anything else is
436 allowed. (doy, Tuomas Jormola)
438 * Most features which have been declared deprecated now issue a warning using
439 Moose::Deprecated. Warnings are issued once per calling package, not
440 repeatedly. See Moose::Deprecated for information on how you can shut
441 these warnings up entirely. Note that deprecated features will eventually
442 be removed, so shutting up the warnings may not be the best idea. (Dave
445 * Removed the long-deprecated Moose::Meta::Role->alias_method method. (Dave
450 * We no longer unimport strict and warnings when Moose, Moose::Role, or
451 Moose::Exporter are unimported. Doing this was broken if the user
452 explicitly loaded strict and warnings themself, and the results could be
453 generally surprising. We decided that it was best to err on the side of
454 safety and leave these on. Reported by David Wheeler. RT #58310. (Dave
457 * New with_traits helper function in Moose::Util. (doy)
461 * Accessors will no longer be inlined if the instance metaclass isn't
464 * Use Perl 5.10's new recursive regex features, if possible, for the type
465 constraint parser. (doy, nothingmuch)
469 * Attributes now warn if their accessors overwrite a locally defined
470 function (not just method). (doy)
474 * Bump our required perl version to 5.8.3, since earlier versions fail tests
475 and aren't easily installable/testable.
477 1.08 Tue, Jun 15, 2010
481 * Refactored a small amount of Moose::Meta::Method::Constructor to allow it
482 to be overridden more easily (doy).
484 1.07 Sat, Jun 05, 2010
488 * Fixed a minor metaclass compatibility fixing bug dealing with immutable
489 classes and non-class metaclass traits (doy, dougdude).
491 1.06 Tue, Jun 01, 2010
495 * Added '0+' overloading in Moose::Meta::TypeConstraint so that we can
496 more uniformly compare type constraints between 'classic' Moose type
497 constraints and MooseX::Types based type constraints.
499 1.05 Thu, May 20, 2010
503 * Packages and modules no longer have methods - this functionality was
504 moved back up into Moose::Meta::Class and Moose::Meta::Role individually
505 (through the Class::MOP::Mixin::HasMethods mixin) (doy).
507 * BUILDALL is now called by Moose::Meta::Class::new_object, rather than by
508 Moose::Object::new. (doy)
512 * strict and warnings are now unimported when Moose, Moose::Role, or
513 Moose::Exporter are unimported. (doy, Adam Kennedy)
515 * Added a 'consumers' method to Moose::Meta::Role for finding all
516 classes/roles which consume the given role. (doy)
520 * Fix has '+attr' in Roles to explode immediately, rather than when the role
521 is applied to a class (t0m).
523 * Fix type constraint validation messages to not include the string 'failed'
524 twice in the same sentence (Florian Ragwitz).
526 * New type constraints will default to being unequal, rather than equal
529 * The tests no longer check for perl's behavior of clobbering $@, which has
530 been fixed in perl-5.13.1 (Florian Ragwitz).
532 * Metaclass compatibility fixing has been completely rewritten, and should
533 be much more robust. (doy)
535 1.04 Thu, May 20, 2010
537 * This release was broken and has been deleted from CPAN shortly after its
540 1.03 Thu, May 06, 2010
544 * Allow specifying required versions when setting superclasses or applying
545 roles (Florian Ragwitz).
547 1.02 Sat, May 01, 2010
551 * Stop the natatime method provided by the native Array trait from returning
552 an exhausted iterator when being called with a callback. (Florian Ragwitz)
554 * Make Moose::Meta::TypeConstraint::Class correctly reject RegexpRefs.
557 * Calling is_subtype_of on a Moose::Meta::TypeConstraint::Class with itself or
558 the class the TC represents as an argument incorrectly returned true. This
559 behavior is correct for is_type_of, not is_subtype_of. (Guillermo Roditi)
561 * Use File::Temp for temp files created during tests. Previously, files were
562 written to the t/ dir, which could cause problems of the user running the
563 tests did not have write access to that directory.. (Chris Weyl, Ævar
564 Arnfjörð Bjarmason)
566 * Pass role arguments along when applying roles to instances. (doy, lsm)
568 1.01 Fri, Mar 26, 2010
572 * The handles option now also accepts a role type constraint in addition to a
573 plain role name. (Florian Ragwitz)
577 * Record the Sartak/doy debt properly in Changes (perigrin)
579 1.00 Tue, Mar 25, 2010
583 * Moose::Meta::Attribute::Native::Trait::Code no longer creates reader
584 methods by default. (Florian Ragwitz)
588 * Improve various parts of the documentation and fix many typos.
589 (Dave Rolsky, Mateu Hunter, Graham Knop, Robin V, Jay Hannah, Jesse Luehrs)
593 * Paid the $10 debt to doy from 0.80 Sat, Jun 6, 2009 (Sartak)
595 0.99 Mon, Mar 8, 2010
599 * New method find_type_for in Moose::Meta::TypeConstraint::Union, for finding
600 which member of the union a given value validates for. (Cory Watson)
604 * DEMOLISH methods in mutable subclasses of immutable classes are now called
605 properly (Chia-liang Kao, Jesse Luehrs)
609 * Added Moose::Manual::Support that defines the support, compatiblity, and
610 release policies for Moose. (Chris Prather)
612 0.98 Wed, Feb 10, 2010
616 * An internals change in 0.97 broke role application to an instance in some
617 cases. The bug occurred when two different roles were applied to different
618 instances of the same class. (Rafael Kitover)
621 0.97 Tue, Feb 9, 2010
625 * Calling ->reinitialize on a cached anonymous class effectively uncached
626 the metaclass object, causing the metaclass to go out of scope
627 unexpectedly. This could easily happen at a distance by applying a
628 metarole to an anonymous class. (Dave Rolsky).
630 0.96 Sat, Feb 6, 2010
634 * ScalarRef is now a parameterized type. You can now specify a type
635 constraint for whatever the reference points to. (Closes RT#50857)
636 (Michael G. Schwern, Florian Ragwitz)
640 * ScalarRef now accepts references to other references. (Closes RT#50934)
643 0.95 Thu, Feb 4, 2010
647 * Moose::Meta::Attribute::Native::Trait::Code now provides execute_method as
648 a delegation option. This allows the code reference to be called as a
649 method on the object. (Florian Ragwitz)
653 * Moose::Object::does no longer checks the entire inheritance tree, since
654 Moose::Meta::Class::does_role already does this. (doy)
656 * Moose::Util::add_method_modifier (and subsequently the sugar functions
657 Moose::before, Moose::after, and Moose::around) can now accept arrayrefs,
658 with the same behavior as lists. Types other than arrayref and regexp
659 result in an error. (Dylan Hardison)
661 0.94 Mon, Jan 18, 2010
665 * Please see the changes listed for 0.93_01 and Moose::Manual::Delta.
669 * Improved support for anonymous roles by changing various APIs to take
670 Moose::Meta::Role objects as well as role names. This included
672 - Moose::Meta::Class->does_role
673 - Moose::Meta::Role->does_role
674 - Moose::Util::does_role
675 - Moose::Util::apply_all_roles
676 - Moose::Util::ensure_all_roles
677 - Moose::Util::search_class_by_role
679 Requested by Shawn Moore. Addresses RT #51143 (and then some). (Dave Rolsky)
683 * Fix handling of non-alphanumeric attributes names like '@foo'. This should
684 work as long as the accessor method names are explicitly set to valid Perl
685 method names. Reported by Doug Treder. RT #53731. (Dave Rolsky)
688 0.93_03 Tue, Jan 5, 2010
692 * Portability fixes to our XS code so we compile with 5.8.8 and Visual
693 C++. Fixes RT #53391. Reported by Taro Nishino. (rafl)
696 0.93_02 Tue, Jan 5, 2010
700 * Depend on Class::MOP 0.97_01 so we can get useful results from CPAN
701 testers. (Dave Rolsky)
704 0.93_01 Mon, Jan 4, 2010
708 See Moose::Manual::Delta for more details on backwards compatiblity issues.
710 * Role attributes are now objects of the Moose::Meta::Role::Attribute
711 class. (Dave Rolsky).
713 * There were major changes to how metaroles are applied. We now distinguish
714 between metaroles for classes vs those for roles. See the
715 Moose::Util::MetaRole docs for details. (Dave Rolsky)
717 * The old MetaRole API has been deprecated, but will continue to
718 work. However, if you are applying an attribute metaclass role, this may
719 break because of the fact that roles now have an attribute metaclass
722 * Moose::Util::MetaRole::apply_metaclass_roles is now called
723 apply_metaroles. The old name is deprecated. (Dave Rolsky)
725 * The unimport subs created by Moose::Exporter now clean up re-exported
726 functions like blessed and confess, unless the caller imported them from
727 somewhere else too. See Moose::Manua::Delta for backcompat details. (rafl)
729 [ENHANCEMENTS AND BUG FIXES]
731 * Changed the Str constraint to accept magic lvalue strings like one gets from
732 substr et al, again. (sorear)
734 * Sped up the type constraint parsing regex. (Sam Vilain)
736 * The Moose::Cookbook::Extending::Recipe2 recipe was broken. Fix suggested by
739 * Added Moose::Util::TypeConstraints exports when using oose.pm to allow
740 easier testing of TypeConstraints from the command line. (perigrin)
742 * Added a with_immutable test function to Test::Moose, to run a block of tests
743 with and without certain classes being immutable. (doy)
745 * We now use Module::Install extensions explicitly to avoid confusing errors
746 if they're not installed. We use Module::Install::AuthorRequires to stop
747 test extraction and general failures if you don't have the author side
748 dependencies installed.
750 * Fixed a grammar error in Moose::Cookbook::Basics::Recipe4. rt.cpan.org
751 #51791. (Amir E. Aharoni)
754 0.93 Thu, Nov 19, 2009
756 - Calling $object->new() is no longer deprecated, and no longer
760 - The get_attribute_map method is now deprecated. (Dave Rolsky)
762 * Moose::Meta::Method::Delegation
763 - Preserve variable aliasing in @_ for delegated methods, so that
764 altering @_ affects the passed value. (doy)
766 * Moose::Util::TypeConstraints
767 - Allow array refs for non-anonymous form of enum and duck_type, not
768 just anonymous. The non-arrayref forms may be removed in the
770 - Changed Str constraint to not accept globs (*STDIN or *FOO). (chansen)
771 - Properly document Int being a subtype of Str. (doy)
774 - Moose::Exporter using modules can now export their functions to the
775 main package. This applied to Moose and Moose::Role, among
776 others. (nothingmuch)
778 * Moose::Meta::Attribute
779 - Don't remove attribute accessors we never installed, during
780 remove_accessors. (doy)
782 * Moose::Meta::Attribute::Native::Trait::Array
783 - Don't bypass prototype checking when calling List::Util::first, to
784 avoid a segfault when it is called with a non-code argument. (doy)
786 * Moose::Meta::Attribute::Native::Trait::Code
787 - Fix passing arguments to code execute helpers. (doy)
789 0.92 Tue, Sep 22, 2009
790 * Moose::Util::TypeConstraints
791 - added the match_on_type operator (Stevan)
792 - added tests and docs for this (Stevan)
795 - Metaclass compat fixing should already happen recursively, there's no
796 need to explicitly walk up the inheritance tree. (doy)
798 * Moose::Meta::Attribute
799 - Add tests for set_raw_value and get_raw_value. (nothingmuch)
801 0.91 Thu, Sep 17, 2009
803 - Don't import any functions, in order to avoid polluting our namespace
804 with things that can look like methods (blessed, try, etc)
807 * Moose::Meta::Method::Constructor
808 - The generated code needs to called Scalar::Util::blessed by its
809 fully-qualified name or else Perl can interpret the call to blessed as
810 an indirect method call. This broke Search::GIN, which in turn broke
811 KiokuDB. (nothingmuch)
813 0.90 Tue, Sep 15, 2009
814 * Moose::Meta::Attribute::Native::Trait::Counter
815 * Moose::Meta::Attribute::Native::Trait::String
816 - For these two traits, an attribute which did not explicitly provide
817 methods to handles magically ended up delegating *all* the helper
818 methods. This has been removed. You must be explicit in your handles
819 declaration for all Native Traits. (Dave Rolsky)
822 - DEMOLISHALL behavior has changed. If any DEMOLISH method dies, we make
823 sure to rethrow its error message. However, we also localize $@ before
824 this so that if all the DEMOLISH methods success, the value of $@ will
825 be preserved. (nothingmuch and Dave Rolsky)
826 - We now also localize $? during object destruction. (nothingmuch and
828 - The handling of DEMOLISH methods was broken for immutablized classes,
829 which were not receiving the value of
830 Devel::GlobalDestruction::in_global_destruction.
831 - These two fixes address some of RT #48271, reported by Zefram.
832 - This is all now documented in Moose::Manual::Construction.
833 - Calling $object->new() is now deprecated. A warning will be
837 - Added more hooks to customize how roles are applied. The role
838 summation class, used to create composite roles, can now be changed
839 and/or have meta-roles applied to it. (rafl)
840 - The get_method_list method no longer explicitly excludes the "meta"
841 method. This was a hack that has been replaced by better hacks. (Dave
844 * Moose::Meta::Method::Delegation
845 - fixed delegated methods to make sure that any modifiers attached to
846 the accessor being delegated on will be called (Stevan)
847 - added tests for this (Stevan)
850 - Moose no longer warns when a class that is being made immutable has
851 mutable ancestors. While in theory this is a good thing to warn about,
852 we found so many exceptions to this that doing this properly became
855 0.89_02 Thu, Sep 10, 2009
856 * Moose::Meta::Attribute::Native
857 - Fix Hash, which still had 'empty' instead of 'is_empty'. (hdp)
859 * Moose::Meta::Attribute::Native::Trait::Array
860 - Added a number of functions from List::Util and List::MoreUtils,
861 including reduce, shuffle, uniq, and natatime. (doy)
864 - This module will now generate an init_meta method for your exporting
865 class if you pass it options for
866 Moose::Util::MetaRole::apply_metaclass_roles or
867 apply_base_class_roles. This eliminates a lot of repetitive
868 boilerplate for typical MooseX modules. (doy).
869 - Documented the with_meta feature, which is a replacement for
870 with_caller. This feature was added by josh a while ago.
871 - The with_caller feature is now deprecated, but will not issue a
872 warning yet. (Dave Rolsky)
873 - If you try to wrap/export a subroutine which doesn't actually exist,
874 Moose::Exporter will warn you about this. (doy)
876 * Moose::Meta::Role::Application::ToRole
877 - When a role aliased a method from another role, it was only getting
878 the new (aliased) name, not the original name. This differed from what
879 happens when a class aliases a role's methods. If you _only_ want the
880 aliased name, make sure to also exclue the original name. (Dave
883 0.89_01 Wed Sep 2, 2009
884 * Moose::Meta::Attribute
885 - Added the currying syntax for delegation from AttributeHelpers to the
886 existing delegation API. (hdp)
888 * Moose::Meta::Attribute::Native
889 - We have merged the functionality of MooseX::AttributeHelpers into the
890 Moose core with some API tweaks. You can continue to use
891 MooseX::AttributeHelpers, but it will not be maintained except
892 (perhaps) for critical bug fixes in the future. See
893 Moose::Manual::Delta for details. (hdp, jhannah, rbuels, Sartak,
896 * Moose::Error::Croak
897 * Moose::Error::Confess
898 - Clarify documentation on how to use different error-throwing
899 modules. (Curtis Jewell)
902 - Correct POD for builder to point to Recipe8, not 9. (gphat)
905 - When a nonexistent sub name is passed to as_is, with_caller, or
906 with_meta, throw a warning and skip the exporting, rather than
907 installing a broken sub. (doy)
910 - Moose now warns if you call C<make_immutable> for a class with mutable
913 0.89 Thu Aug 13, 2009
914 * Moose::Manual::Attributes
915 - Clarify "is", include discussion of "bare". (Sartak)
917 * Moose::Meta::Role::Method::Conflicting
918 * Moose::Meta::Role::Application::ToClass
919 - For the first set of roles involved in a conflict, report all
920 unresolved method conflicts, not just the first method. Fixes #47210
921 reported by Ovid. (Sartak)
923 * Moose::Meta::TypeConstraint
924 - Add assert_valid method to use a TypeConstraint for assertion (rjbs)
927 - Make "use Moose -metaclass => 'Foo'" do alias resolution, like -traits
929 - Allow specifying role options (alias, excludes, MXRP stuff) in the
930 arrayref passed to "use Moose -traits" (doy)
933 - Add functions meta_class_alias and meta_attribute_alias for creating
934 aliases for class and attribute metaclasses and metatraits. (doy)
936 * Moose::Meta::Attribute
937 * Moose::Meta::Method::Accessor
938 - A trigger now receives the old value as a second argument, if the
939 attribute had one. (Dave Rolsky)
941 * Moose::Meta::Method::Constructor
942 - Fix a bug with $obj->new when $obj has stringify overloading.
943 Reported by Andrew Suffield [rt.cpan.org #47882] (Sartak)
944 - However, we will probably deprecate $obj->new, so please don't start
945 using it for new code!
947 * Moose::Meta::Role::Application
948 * Moose::Meta::Role::Application::RoleSummation
949 - Rename alias and excludes to -alias and -excludes (but keep the old
950 names for now, for backcompat) (doy)
952 0.88 Fri Jul 24, 2009
953 * Moose::Manual::Contributing
954 - Re-write the Moose::Manual::Contributing document to reflect
955 the new layout and methods of work for the Git repository. All
956 work now should be done in topic branches and reviewed by a
957 core committer before being applied to master. All releases
958 are done by a cabal member and merged from master to
959 stable. This plan was devised by Yuval, blame him. (perigrin)
962 - Create metaclass attributes for the different role application
965 * Moose::Util::MetaRole
966 - Allow applying roles to a meta role's role application
969 * Moose::Meta::Attribute
970 - Add weak_ref to allowed options for "has '+foo'" (mst)
972 * Moose::Meta::Method::Accessor
973 - No longer uses inline_slot_access in accessors, to support
974 non-lvalue-based meta instances. (sorear)
977 * Moose::Meta::Method::Delegation
978 - Once again allow class names as well as objects for
979 delegation. This was changed in 0.86.
982 * Moose::Meta::Class::Immutable::Trait
983 - Fixes to work with the latest Class::MOP.
985 * Moose::Meta::Method::Delegation
986 - Delegation now dies with a more useful error message if the
987 attribute's accessor returns something defined but
990 0.85 Fri, Jun 26, 2009
991 * Moose::Meta::Attribute
992 - The warning for 'no associated methods' is now split out into
993 the _check_associated_methods method, so that extensions can
994 safely call 'after install_accessors => ...'. This fixes a
995 warning from MooseX::AttributeHelpers. (hdp)
997 0.84 Fri, Jun 26, 2009
999 - has now sets definition_context for attributes defined in
1002 * Moose::Meta::Attribute
1003 - When adding an attribute to a metaclass, if the attribute has
1004 no associated methods, it will give a deprecation
1006 - Methods generated by delegation were not being added to
1007 associated_methods. (hdp)
1008 - Attribute accessors (reader, writer, accessor, predicate,
1009 clearer) now warn if they overwrite an existing method. (doy)
1010 - Attribute constructors now warn very noisily about unknown (or
1011 misspelled) arguments
1013 * Moose::Util::TypeConstraints
1014 - Deprecated the totally useless Role type name, which just
1015 checked if $object->can('does'). Note that this is _not_ the
1016 same as a type created by calling role_type('RoleName').
1018 * Moose::Util::TypeConstraints
1019 * Moose::Meta::TypeConstraint::DuckType
1020 - Reify duck type from a regular subtype into an actual class
1022 - Document this because Sartak did all my work for me
1025 * Moose::Meta::Attribute
1026 - Allow Moose::Meta::TypeConstraint::DuckType in handles, since
1027 it is just a list of methods (Sartak)
1030 - The get_*_method_modifiers methods would die if the role had
1031 no modifiers of the given type (Robert Buels).
1033 0.83 Tue, Jun 23, 2009
1034 * Moose::Meta::Class
1035 - Fix _construct_instance not setting the special __MOP__ object
1036 key in instances of anon classes. (doy)
1038 0.82 Sun, Jun 21, 2009
1039 * Moose::Manual::Types
1040 - Mention MooseX::Types early to avoid users falling down the
1041 string parsing rathole (mst)
1043 * Moose::Manual::MooseX
1044 - Add warnings about class-level extensions and mention considering
1045 using plain objects instead
1047 0.81 Sun, Jun 7, 2009
1048 * Bumped our Class::MOP prereq to the latest version (0.85), since
1049 that's what we need.
1051 0.80 Sat, Jun 6, 2009
1052 * Moose::Manual::FAQ
1053 - Add FAQ about the coercion change from 0.76 because it came up
1054 three times today (perigrin)
1055 - Win doy $10 dollars because Sartak didn't think anybody
1056 would document this fast enough (perigrin)
1058 * Moose::Meta::Method::Destructor
1059 - Inline a DESTROY method even if there are no DEMOLISH methods
1060 to prevent unnecessary introspection in
1061 Moose::Object::DEMOLISHALL
1064 - A role's required methods are now represented by
1065 Moose::Meta::Role::Method::Required objects. Conflicts are now
1066 represented by Moose::Meta::Role::Method::Conflicting
1067 objects. The benefit for end-users in that unresolved
1068 conflicts generate different, more instructive, errors,
1069 resolving Ovid's #44895. (Sartak)
1072 - Improve the error message of "extends" as suggested by Adam
1073 Kennedy and confound (Sartak)
1074 - Link to Moose::Manual::Roles from Moose::Role as we now have
1075 excellent documentation (Adam Kennedy)
1078 - Update test suite for subname change in Class::MOP
1080 - Add TODO test for infinite recursion in Moose::Meta::Class
1083 0.79 Wed, May 13, 2009
1085 - More fixes for Win32 problems. Reported by Robert Krimen.
1088 - The DEMOLISHALL method could still blow up in some cases
1089 during global destruction. This method has been made more
1090 resilient in the face of global destruction's random garbage
1094 - If you "also" a module that isn't loaded, the error message
1095 now acknowledges that (Sartak)
1098 - When your ->meta method does not return a Moose::Meta::Class,
1099 the error message gave the wrong output (Sartak)
1101 0.78 Tue, May 12, 2009
1102 * Moose::Cookbook::FAQ and Moose::Cookbook::WTF
1103 - Merged these documents into what is now Moose::Manual::FAQ
1105 * Moose::Unsweetened
1106 - Moved to Moose::Manual::Unsweetened
1108 * Moose::Cookbook::Basics::Recipes 9-12
1109 - Renamed to be 8-11, since recipe 8 did not exist
1112 - Make Moose::Exporter import strict and warnings into packages
1116 - Fix DEMOLISHALL sometimes not being able to find DEMOLISH
1117 methods during global destruction (doy)
1119 * Moose::Meta::Class
1120 * Moose::Meta::Role::Application::ToClass
1121 - Track the Role::Application objects created during class-role
1122 consumption (Sartak)
1124 * Moose::Meta::Class
1125 - Fix metaclass incompatibility errors when extending a vanilla perl
1126 class which isa Moose class with a metaclass role applied (t0m)
1129 - Add a role-combination hook, _role_for_combination, for the
1130 benefit of MooseX::Role::Parameterized (Sartak)
1133 - Some tests were failing on Win32 because they explicit checked
1134 warning output for newlines. Reported by Nickolay Platonov.
1136 0.77 Sat, May 2, 2009
1138 - Add explicit use of Devel::GlobalDestruction and Sub::Name
1142 - Pass a boolean to DEMOLISHALL and DEMOLISH indicating whether
1143 or not we are currently in global destruction (doy)
1144 - Add explicit use of Devel::GlobalDestruction and Sub::Name
1147 * Moose::Cookbook::FAQ
1148 - Reworked much of the existing content to be more useful to
1149 modern Moose hackers (Sartak)
1152 - Depend on Class::MOP 0.83 instead of 0.82_01.
1154 0.76 Mon, April 27, 2009
1155 * Moose::Meta::TypeConstraint
1156 - Do not run coercions in coerce() if the value already passes the type
1159 * Moose::Meta::TypeConstraint::Class
1160 - In validation error messages, specifically say that the value is not
1161 an instance of the class. This should alleviate some frustrating
1162 forgot-to-load-my-type bugs. rt.cpan.org #44639 (Sartak)
1164 * Moose::Meta::Role::Application::ToClass
1165 - Revert the class-overrides-role warning in favor of a solution outside
1166 of the Moose core (Sartak)
1169 - Make Test::Output optional again, since it's only used in a few files
1172 0.75_01 Thu, April 23, 2009
1173 * Moose::Meta::Role::Application::ToClass
1174 - Moose now warns about each class overriding methods from roles it
1178 - Warnings tests have standardized on Test::Output which is now an
1179 unconditionally dependency (Sartak)
1181 * Moose::Meta::Class
1182 - Changes to immutabilization to work with Class::MOP 0.82_01+.
1184 0.75 Mon, April 20, 2009
1186 * Moose::Meta::Class
1187 - Move validation of not inheriting from roles from Moose::extends to
1188 Moose::Meta::Class::superclasses (doy)
1191 - add ensure_all_roles() function to encapsulate the common "apply this
1192 role unless the object already does it" pattern (hdp)
1195 - Users can now select a different metaclass with the "-metaclass"
1196 option to import, for classes and roles (Sartak)
1199 - Make method_metaclass an attr so that it can accept a metarole
1202 0.74 Tue, April 7, 2009
1204 * Moose::Meta::Method::Destructor
1205 - Include stack traces in the deprecation warnings.
1208 * Moose::Meta::Class
1209 - Removed the long-deprecated _apply_all_roles method.
1211 * Moose::Meta::TypeConstraint
1212 - Removed the long-deprecated union method.
1215 0.73_02 Mon, April 6, 2009
1216 * More deprecations and renamings
1217 - Moose::Meta::Method::Constructor
1218 - initialize_body => _initialize_body (this is always called
1219 when an object is constructed)
1222 - The DEMOLISHALL method could throw an exception during global
1223 destruction, meaning that your class's DEMOLISH methods would
1224 not be properly called. Reported by t0m.
1226 * Moose::Meta::Method::Destructor
1227 - Destructor inlining was totally broken by the change to the
1228 is_needed method in 0.72_01. Now there is a test for this
1229 feature, and it works again.
1232 - Bold the word 'not' in the POD for find_meta (t0m)
1234 0.73_01 Sun, April 5, 2009
1236 - Call user_class->meta in fewer places, with the eventual goal
1237 of allowing the user to rename or exclude ->meta
1238 altogether. Instead uses Class::MOP::class_of. (Sartak)
1240 * Moose::Meta::Method::Accessor
1241 - If an attribute had a lazy default, and that value did not
1242 pass the attribute's type constraint, it did not get the
1243 message from the type constraint, instead using a generic
1244 message. Test provided by perigrin.
1246 * Moose::Util::TypeConstraints
1247 - Add duck_type keyword. It's sugar over making sure an object
1248 can() a list of methods. This is easier than jrockway's
1249 suggestion to fork all of CPAN. (perigrin)
1250 - add tests and documentation (perigrin)
1253 - Document the fact that init_meta() returns the target class's
1254 metaclass object. (hdp)
1256 * Moose::Cookbook::Extending::Recipe1
1257 * Moose::Cookbook::Extending::Recipe2
1258 * Moose::Cookbook::Extending::Recipe3
1259 * Moose::Cookbook::Extending::Recipe4
1260 - Make init_meta() examples explicitly return the metaclass and
1261 point out this fact. (hdp)
1263 * Moose::Cookbook::Basics::Recipe12
1264 - A new recipe, creating a custom meta-method class.
1266 * Moose::Cookbook::Meta::Recipe6
1267 - A new recipe, creating a custom meta-method class.
1269 * Moose::Meta::Class
1270 * Moose::Meta::Method::Constructor
1271 - Attribute triggers no longer receive the meta-attribute object
1272 as an argument in any circumstance. Previously, triggers
1273 called during instance construction were passed the
1274 meta-attribute, but triggers called by normal accessors were
1275 not. Fixes RT#44429, reported by Mark Swayne. (hdp)
1277 * Moose::Manual::Attributes
1278 - Remove references to triggers receving the meta-attribute object as an
1281 * Moose::Cookbook::FAQ
1282 - Remove recommendation for deprecated Moose::Policy and
1283 Moose::Policy::FollowPBP; recommend MooseX::FollowPBP
1286 * Many methods have been renamed with a leading underscore, and a
1287 few have been deprecated entirely. The methods with a leading
1288 underscore are consider "internals only". People writing
1289 subclasses or extensions to Moose should feel free to override
1290 them, but they are not for "public" use.
1292 - Moose::Meta::Class
1293 - check_metaclass_compatibility => _check_metaclass_compatibility
1295 - Moose::Meta::Method::Accessor
1296 - initialize_body => _initialize_body (this is always called
1297 when an object is constructed)
1298 - /(generate_.*_method(?:_inline)?)/ => '_' . $1
1300 - Moose::Meta::Method::Constructor
1301 - initialize_body => _initialize_body (this is always called
1302 when an object is constructed)
1303 - /(generate_constructor_method(?:_inline)?)/ => '_' . $1
1304 - attributes => _attributes (now inherited from parent)
1305 - meta_instance => _meta_instance (now inherited from parent)
1308 - alias_method is deprecated. Use add_method
1310 0.73 Fri, March 29, 2009
1311 * No changes from 0.72_01.
1313 0.72_01 Thu, March 26, 2009
1315 - Almost every module has complete API documentation. A few
1316 methods (and even whole classes) have been intentionally
1317 excluded pending some rethinking of their APIs.
1319 * Moose::Util::TypeConstraints
1320 - Calling subtype with a name as the only argument is now an
1321 exception. If you want an anonymous subtype do:
1323 my $subtype = subtype as 'Foo';
1325 * Moose::Cookbook::Meta::Recipe7
1326 - A new recipe, creating a custom meta-instance class.
1328 * Moose::Cookbook::Basics::Recipe5
1329 - Fix various typos and mistakes. Includes a patch from Radu
1332 * Moose::Cookbook::Basics::Recipe9
1333 - Link to this recipe from Moose.pm's builder blurb
1336 - When wrapping a function with a prototype, Moose::Exporter now
1337 makes sure the wrapped function still has the same
1338 prototype. (Daisuke Maki)
1340 * Moose::Meta::Attribute
1341 - Allow a subclass to set lazy_build for an inherited
1345 - Explicitly depend on Data::OptList. We already had this dependency
1346 via Sub::Exporter, but since we're using it directly we're
1347 better off with it listed. (Sartak)
1349 * Moose::Meta::Method::Constructor
1350 - Make it easier to subclass the inlining behaviour. (Ash
1353 * Moose::Manual::Delta
1354 - Details significant changes in the history of Moose, along
1355 with recommended workarounds.
1357 * Moose::Manual::Contributing
1358 - Contributor's guide to Moose.
1360 * Moose::Meta::Method::Constructor
1361 - The long-deprecated intialize_body method has been removed
1362 (yes, spelled like that).
1364 * Moose::Meta::Method::Destructor
1365 - This is_needed method is now always a class method.
1367 * Moose::Meta::Class
1368 - Changes to the internals of how make_immutable works to match
1369 changes in latest Class::MOP.
1371 0.72 Mon, February 23, 2009
1373 * Moose::Meta::Method::Constructor
1374 - A mutable class accepted Foo->new(undef) without complaint,
1375 while an immutable class would blow up with an unhelpful
1376 error. Now, in both cases we throw a helpful error
1377 instead. Reported by doy.
1379 0.71_01 Sun, February 22, 2009
1381 - Hopefully fixed some POD errors in a few recipes that caused
1382 them to display weird on search.cpan.org.
1384 * Moose::Util::TypeConstraints
1385 - Calling type or subtype without the sugar helpers (as, where,
1386 message) is now deprecated.
1387 - The subtype function tried hard to guess what you meant, but
1388 often got it wrong. For example:
1390 my $subtype = subtype as 'ArrayRef[Object]';
1392 This caused an error in the past, but now works as you'd
1396 - Make sure Moose.pm is loaded before calling
1397 Moose->throw_error. This wasn't normally an issue, but could
1398 bite you in weird cases.
1400 0.71 Thu, February 19, 2009
1401 * Moose::Cookbook::Basics::Recipe11
1402 - A new recipe which demonstrates the use of BUILDARGS and
1403 BUILD. (Dave Rolsky)
1405 * Moose::Cookbook::Roles::Recipe3
1406 - A new recipe, applying a role to an object instance. (Dave
1410 - Allow overriding specific keywords from "also" packages. (doy)
1413 - Replace hardcoded cookbook tests with Test::Inline to ensure
1414 the tests match the actual code in the recipes. (Dave Rolsky)
1417 - Working on the above turned up a number of little bugs in the
1418 recipe code. (Dave Rolsky)
1420 * Moose::Util::TypeConstraints::Optimized
1421 - Just use Class::MOP for the optimized ClassName check. (Dave
1424 0.70 Sat, February 14, 2009
1425 * Moose::Util::TypeConstraints
1426 - Added the RoleName type (stevan)
1427 - added tests for this (stevan)
1429 * Moose::Cookbook::Basics::Recipe3
1430 - Updated the before qw[left right] sub to be a little more
1431 defensive about what it accepts (stevan)
1432 - added more tests to t/000_recipies/basics/003_binary_tree.t
1436 - We now always call DEMOLISHALL, even if a class does not
1437 define DEMOLISH. This makes sure that method modifiers on
1438 DEMOLISHALL work as expected. (doy)
1439 - added tests for this (EvanCarroll)
1441 * Moose::Util::MetaRole
1442 - Accept roles for the wrapped_method_metaclass (rafl)
1443 - added tests for this (rafl)
1445 * Moose::Meta::Attribute
1446 - We no longer pass the meta-attribute object as a final
1447 argument to triggers. This actually changed for inlined code a
1448 while back, but the non-inlined version and the docs were
1452 - Some tests tried to use Test::Warn 0.10, which had bugs. Now
1453 they require 0.11. (Dave Rolsky)
1456 - Lots of small changes to the manual, cookbook, and
1457 elsewhere. These were based on feedback from various
1458 users, too many to list here. (Dave Rolsky)
1460 0.69 Thu, February 12, 2009
1462 - Make some keyword errors use throw_error instead of croak
1463 since Moose::Exporter wraps keywords now (Sartak)
1465 * Moose::Cookbook::*
1466 - Revised every recipe for style and clarity. Also moved some
1467 documentation out of cookbook recipes and into Moose::Manual
1468 pages. This work was funded as part of the Moose docs grant
1469 from TPF. (Dave Rolsky)
1471 * Moose::Meta::Method::Delegation
1472 - If the attribute doing the delegation was not populated, the
1473 error message did not specify the attribute name
1476 0.68 Wed, February 4, 2009
1478 - Many spelling, typo, and formatting fixes by daxim.
1480 * Moose::Manual::Attributes
1481 - The NAME section in the POD used "Attribute" so search.cpan
1482 didn't resolve links from other documents properly.
1484 * Moose::Meta::Method::Overriden
1485 - Now properly spelled as Overridden. Thanks to daxim for
1488 0.67 Tue, February 3, 2009
1490 - Lots of little typo fixes and a few clarifications. Several
1491 pages didn't have proper titles, and so weren't actually
1492 visible on search.cpan.org. Thanks to hanekomu for a variety
1493 of fixes and formatting improvements.
1495 0.66 Tue, February 3, 2009
1497 - This is a brand new, extensive manual for Moose. This aims to
1498 provide a complete introduction to all of Moose's
1499 features. This work was funded as part of the Moose docs grant
1500 from TPF. (Dave Rolsky)
1502 * Moose::Meta::Attribute
1503 - Added a delegation_metaclass method to replace a hard-coded
1504 use of Moose::Meta::Method::Delegation. (Dave Rolsky)
1506 * Moose::Util::TypeConstraints
1507 - If you created a subtype and passed a parent that Moose didn't
1508 know about, it simply ignored the parent. Now it automatically
1509 creates the parent as a class type. This may not be what you
1510 want, but is less broken than before. (Dave Rolsky)
1512 * Moose::Util::TypeConstraints
1513 - This module tried throw errors by calling Moose->throw_error,
1514 but it did not ensure that Moose was loaded first. This could
1515 cause very unhelpful errors when it tried to throw an error
1516 before Moose was loaded. (Dave Rolsky)
1518 * Moose::Util::TypeConstraints
1519 - You could declare a name with subtype such as "Foo!Bar" that
1520 would be allowed, but if you used it in a parameterized type
1521 such as "ArrayRef[Foo!Bar]" it wouldn't work. We now do some
1522 vetting on names created via the sugar functions, so that they
1523 can only contain alphanumerics, ":", and ".". (Dave Rolsky)
1525 0.65 Thu, January 22, 2009
1526 * Moose and Moose::Meta::Method::Overridden
1527 - If an overridden method called super(), and then the
1528 superclass's method (not overridden) _also_ called super(),
1529 Moose went into an endless recursion loop. Test provided by
1530 Chris Prather. (Dave Rolsky)
1532 * Moose::Meta::TypeConstraint
1533 - All methods are now documented. (gphat)
1535 * t/100_bugs/011_DEMOLISH_eats_exceptions.t
1536 - Fixed some bogus failures that occurred because we tried to
1537 validate filesystem paths in a very ad-hoc and
1538 not-quite-correct way. (Dave Rolsky)
1540 * Moose::Util::TypeConstraints
1541 - Added maybe_type to exports. See docs for details. (rjbs)
1544 - Added Moose::Util::TypeConstraints to the SEE ALSO
1548 - Methods created via an attribute can now fulfill a "requires"
1549 declaration for a role. (nothingmuch)
1551 * Moose::Meta::Method::*
1552 - Stack traces from inlined code will now report its line and
1553 file as being in your class, as opposed to in Moose
1554 guts. (nothingmuch).
1556 0.64 Wed, December 31, 2008
1557 * Moose::Meta::Method::Accessor
1558 - Always inline predicate and clearer methods (Sartak)
1560 * Moose::Meta::Attribute
1561 - Support for parameterized traits (Sartak)
1562 - verify_against_type_constraint method to avoid duplication
1563 and enhance extensibility (Sartak)
1565 * Moose::Meta::Class
1566 - Tests (but no support yet) for parameterized traits (Sartak)
1569 - Require Class::MOP 0.75+, which has the side effect of making
1570 sure we work on Win32. (Dave Rolsky)
1572 0.63 Mon, December 8, 2008
1573 * Moose::Unsweetened
1574 - Some small grammar tweaks and bug fixes in non-Moose example
1577 0.62_02 Fri, December 5, 2008
1578 * Moose::Meta::Role::Application::ToClass
1579 - When a class does not provide all of a role's required
1580 methods, the error thrown now mentions all of the missing
1581 methods, as opposed to just the first one found. Requested by
1582 Curtis Poe (RT #41119). (Dave Rolsky)
1584 * Moose::Meta::Method::Constructor
1585 - Moose will no longer inline a constructor for your class
1586 unless it inherits its constructor from Moose::Object, and
1587 will warn when it doesn't inline. If you want to force
1588 inlining anyway, pass "replace_constructor => 1" to
1589 make_immutable. Addresses RT #40968, reported by Jon
1590 Swartz. (Dave Rolsky)
1591 - The quoting of default values could be broken if the default
1592 contained a single quote ('). Now we use quotemeta to escape
1593 anything potentially dangerous in the defaults. (Dave Rolsky)
1595 0.62_01 Wed, December 3, 2008
1597 - use the method->execute API for BUILDALL
1598 and DEMOLISHALL (Sartak)
1600 * Moose::Util::TypeConstraints
1601 - We now make all the type constraint meta classes immutable
1602 before creating the default types provided by Moose. This
1603 should make loading Moose a little faster. (Dave Rolsky)
1605 0.62 Wed November 26, 2008
1606 * Moose::Meta::Role::Application::ToClass
1607 Moose::Meta::Role::Application::ToRole
1608 - fixed issues where excluding and aliasing the
1609 same methods for a single role did not work
1610 right (worked just fine with multiple
1612 - added test for this (stevan)
1614 * Moose::Meta::Role::Application::RoleSummation
1615 - fixed the error message when trying to compose
1616 a role with a role it excludes (Sartak)
1619 - Catch another case where recursion caused the value
1620 of $CALLER to be stamped on (t0m)
1621 - added test for this (t0m)
1624 - Remove the make_immutable keyword, which has been
1625 deprecated since April. It breaks metaclasses that
1626 use Moose without no Moose (Sartak)
1628 * Moose::Meta::Attribute
1629 - Removing an attribute from a class now also removes delegation
1630 (handles) methods installed for that attribute (t0m)
1631 - added test for this (t0m)
1633 * Moose::Meta::Method::Constructor
1634 - An attribute with a default that looked like a number (but was
1635 really a string) would accidentally be treated as a number
1636 when the constructor was made immutable (perigrin)
1637 - added test for this (perigrin)
1640 - create method for constructing a role
1641 dynamically (Sartak)
1642 - added test for this (Sartak)
1643 - anonymous roles! (Sartak)
1644 - added test for this (Sartak)
1647 - more consistent error messages (Sartak)
1649 * Moose::Cookbook::Roles::Recipe1
1650 - attempt to explain why a role that just requires
1651 methods is useful (Sartak)
1653 0.61 Fri November 7, 2008
1654 * Moose::Meta::Attribute
1655 - When passing a role to handles, it will be loaded if necessary
1658 * Moose::Meta::Class
1659 - Method objects returned by get_method (and other methods)
1660 Could end up being returned without an associated_metaclass
1661 attribute. Removing get_method_map, which is provided by
1662 Class::MOP::Class, fixed this. The Moose version did nothing
1663 different from its parent except introduce a bug. (Dave Rolsky)
1664 - added tests for this (jdv79)
1667 - Added a $VERSION to all .pm files which didn't have one. Fixes
1668 RT #40049, reported by Adam Kennedy. (Dave Rolsky)
1670 * Moose::Cookbook::Basics::Recipe4
1671 * Moose::Cookbook::Basics::Recipe6
1672 - These files had spaces on the first line of the SYNOPSIS, as
1673 opposed to a totally empty line. According to RT #40432, this
1674 confuses POD parsers. (Dave Rolsky)
1676 0.60 Fri October 24, 2008
1678 - Passing "-traits" when loading Moose caused the Moose.pm
1679 exports to be broken. Reported by t0m. (Dave Rolsky)
1680 - Tests for this bug. (t0m)
1683 - Change resolve_metaclass alias to use the new
1684 load_first_existing_class function. This makes it a lot
1685 simpler, and also around 5 times faster. (t0m)
1686 - Add caching to resolve_metaclass_alias, which gives an order
1687 of magnitude speedup to things which repeatedly call the
1688 Moose::Meta::Attribute->does method, notably MooseX::Storage
1691 * Moose::Util::TypeConstraint
1692 - Put back the changes for parameterized constraints that
1693 shouldn't have been removed in 0.59. We still cannot parse
1694 them, but MooseX modules can create them in some other
1695 way. See the 0.58 changes for more details. (jnapiorkowski)
1696 - Changed the way subtypes are created so that the job is
1697 delegated to a type constraint parent. This clears up some
1698 hardcoded checking and should allow correct subtypes of
1699 Moose::Meta::Type::Constraint. Don't rely on this new API too
1700 much (create_child_type) because it may go away in the
1701 future. (jnapiorkowski)
1703 * Moose::Meta::TypeConstraint::Union
1704 - Type constraint names are sorted as strings, not numbers.
1707 * Moose::Meta::TypeConstraint::Parameterizable
1708 - New parameterize method. This can be used as a factory method
1709 to make a new type constraint with a given parameterized
1710 type. (jnapiorkowski)
1711 - added tests (jnapiorkowski)
1713 0.59 Tue October 14, 2008
1715 - Add abridged documentation for builder/default/initializer/
1716 predicate, and link to more details sections in
1717 Class::MOP::Attribute. (t0m)
1719 * Moose::Util::TypeConstraints
1720 - removed prototypes from all but the &-based stuff (mst)
1722 * Moose::Util::TypeConstraints
1723 - Creating a anonymous subtype with both a constraint and a
1724 message failed with a very unhelpful error, but should just
1725 work. Reported by t0m. (Dave Rolsky)
1728 - Some tests that used Test::Warn if it was available failed
1729 with older versions of Test::Warn. Reported by Fayland. (Dave
1731 - Test firing behavior of triggers in relation to builder/default/
1733 - Test behavior of equals/is_a_type_of/is_a_subtype_of for all
1734 kinds of supported type. (t0m)
1736 * Moose::Meta::Class
1737 - In create(), do not pass "roles" option to the superclass
1738 - added related test that creates an anon metaclass with
1739 a required attribute
1741 * Moose::Meta::TypeConstraint::Class
1742 * Moose::Meta::TypeConstraint::Role
1743 - Unify behavior of equals/is_a_type_of/is_a_subtype_of with
1744 other types (as per change in 0.55_02). (t0m)
1746 * Moose::Meta::TypeConstraint::Registry
1747 - Fix warning when dealing with unknown type names (t0m)
1749 * Moose::Util::TypeConstraints
1750 - Reverted changes from 0.58 related to handle parameterized
1751 types. This caused random failures on BSD and Win32 systems,
1752 apparently related to the regex engine. This means that Moose
1753 can no longer parse structured type constraints like
1754 ArrayRef[Int,Int] or HashRef[name=>Str]. This will be
1755 supported in a slightly different way via MooseX::Types some
1756 time in the future. (Dave Rolsky)
1758 0.58 Sat September 20, 2008
1759 !! This release has an incompatible change regarding !!
1760 !! how roles add methods to a class !!
1762 * Roles and role application
1763 ! Roles now add methods by calling add_method, not
1764 alias_method. They make sure to always provide a method
1765 object, which will be cloned internally. This means that it is
1766 now possible to track the source of a method provided by a
1767 role, and even follow its history through intermediate roles.
1769 This means that methods added by a role now show up when
1770 looking at a class's method list/map. (Dave Rolsky)
1773 - From this release on, we'll try to maintain a list of
1774 conflicting modules, and warn you if you have one
1775 installed. For example, this release conflicts with ...
1776 - MooseX::Singleton <= 0.11
1777 - MooseX::Params::Validate <= 0.05
1780 In general, we try to not break backwards compatibility for
1781 most Moose users, but MooseX modules and other code which
1782 extends Moose's metaclasses is often affected by very small
1783 changes in the Moose internals.
1785 * Moose::Meta::Method::Delegation
1786 * Moose::Meta::Attribute
1787 - Delegation methods now have their own method class. (Dave
1790 * Moose::Meta::TypeConstraint::Parameterizable
1791 - Added a new method 'parameterize' which is basically a factory
1792 for the containing constraint. This makes it easier to create
1793 new types of parameterized constraints. (jnapiorkowski)
1795 * Moose::Meta::TypeConstraint::Union
1796 - Changed the way Union types canonicalize their names to follow
1797 the normalized TC naming rules, which means we strip all
1798 whitespace. (jnapiorkowski)
1800 * Moose::Util::TypeConstraints
1801 - Parameter and Union args are now sorted, this makes Int|Str
1802 the same constraint as Str|Int. (jnapiorkowski)
1803 - Changes to the way Union types are parsed to more correctly
1804 stringify their names. (jnapiorkowski)
1805 - When creating a parameterized type, we now use the new
1806 parameterize method. (jnapiorkowski)
1807 - Incoming type constraint strings are now normalized to remove
1808 all whitespace differences. (jnapiorkowski)
1809 - Changed the way we parse type constraint strings so that we now
1810 match TC[Int,Int,...] and TC[name=>Str] as parameterized type
1811 constraints. This lays the foundation for more flexible type
1812 constraint implementations.
1814 * Tests and docs for all the above. (jnapiorkowski)
1818 - Moose::Exporter will no longer remove a subroutine that the
1819 exporting package re-exports. Moose re-exports the
1820 Carp::confess function, among others. The reasoning is that we
1821 cannot know whether you have also explicitly imported those
1822 functions for your own use, so we err on the safe side and
1823 always keep them. (Dave Rolsky)
1824 - added tests for this (rafl)
1826 * Moose::Meta::Class
1827 - Changes to how we fix metaclass compatibility that are much
1828 too complicated to go into. The summary is that Moose is much
1829 less likely to complain about metaclass incompatibility
1830 now. In particular, if two metaclasses differ because
1831 Moose::Util::MetaRole was used on the two corresponding
1832 classes, then the difference in roles is reconciled for the
1833 subclass's metaclass. (Dave Rolsky)
1834 - Squashed an warning in _process_attribute (thepler)
1837 - throw exceptions (sooner) for invalid attribute names (thepler)
1838 - added tests for this (thepler)
1840 * Moose::Util::MetaRole
1841 - If you explicitly set a constructor or destructor class for a
1842 metaclass object, and then applied roles to the metaclass,
1843 that explicitly set class would be lost and replaced with the
1846 * Moose::Meta::Class
1847 * Moose::Meta::Attribute
1848 * Moose::Meta::Method
1851 * Moose::Error::Default
1852 * Moose::Error::Croak
1853 * Moose::Error::Confess
1854 - All instances of confess() changed to use overridable
1855 C<throw_error> method. This method ultimately calls a class
1856 constructor, and you can change the class being called. In
1857 addition, errors now pass more information than just a string.
1858 The default C<error_class> behaves like C<Carp::confess>, so
1859 the behavior is not visibly different for end users.
1861 0.57 Wed September 3, 2008
1863 - A new bit of doc intended to introduce folks familiar with
1864 "standard" Perl 5 OO to Moose concepts. (Dave Rolsky)
1866 * Moose::Unsweetened
1867 - Shows examples of two classes, each done first with and then
1868 without Moose. This makes a nice parallel to
1869 Moose::Intro. (Dave Rolsky)
1871 * Moose::Util::TypeConstraints
1872 - Fixed a bug in find_or_parse_type_constraint so that it
1873 accepts a Moose::Meta::TypeConstraint object as the parent
1874 type, not just a name (jnapiorkowski)
1875 - added tests (jnapiorkowski)
1878 - If Sub::Name was not present, unimporting failed to actually
1879 remove some sugar subs, causing test failures (Dave Rolsky)
1881 0.56 Mon September 1, 2008
1882 For those not following the series of dev releases, there are
1883 several major changes in this release of Moose.
1884 ! Moose::init_meta should now be called as a method. See the
1887 - Major performance improvements by nothingmuch.
1889 - New modules for extension writers, Moose::Exporter and
1890 Moose::Util::MetaRole by Dave Rolsky.
1892 - Lots of doc improvements and additions, especially in the
1895 - Various bug fixes.
1897 * Removed all references to the experimental-but-no-longer-needed
1898 Moose::Meta::Role::Application::ToMetaclassInstance.
1900 * Require Class::MOP 0.65.
1902 0.55_04 Sat August 30, 2008
1903 * Moose::Util::MetaRole
1904 * Moose::Cookbook::Extending::Recipe2
1905 - This simplifies the application of roles to any meta class, as
1906 well as the base object class. Reimplemented metaclass traits
1907 using this module. (Dave Rolsky)
1909 * Moose::Cookbook::Extending::Recipe1
1910 - This a new recipe, an overview of various ways to write Moose
1911 extensions (Dave Rolsky)
1913 * Moose::Cookbook::Extending::Recipe3
1914 * Moose::Cookbook::Extending::Recipe4
1915 - These used to be Extending::Recipe1 and Extending::Recipe2,
1918 0.55_03 Fri August 29, 2008
1919 * No changes from 0.55_02 except increasing the Class::MOP
1920 dependency to 0.64_07.
1922 0.55_02 Fri August 29, 2008
1923 * Makefile.PL and Moose.pm
1924 - explicitly require Perl 5.8.0+ (Dave Rolsky)
1926 * Moose::Util::TypeConstraints
1927 - Fix warnings from find_type_constraint if the type is not
1930 * Moose::Meta::TypeConstraint
1931 - Predicate methods (equals/is_a_type_of/is_subtype_of) now
1932 return false if the type you specify cannot be found in the
1933 type registry, rather than throwing an unhelpful and
1934 coincidental exception. (t0m).
1935 - added docs & test for this (t0m)
1937 * Moose::Meta::TypeConstraint::Registry
1938 - add_type_constraint now throws an exception if a parameter is
1940 - added docs & test for this (t0m)
1942 * Moose::Cookbook::FAQ
1943 - Added a faq entry on the difference between "role" and "trait"
1947 - Fixed a bug that caused role composition to not see a required
1948 method when that method was provided by another role being
1949 composed at the same time. (Dave Rolsky)
1950 - test and bug finding (tokuhirom)
1952 0.55_01 Wed August 20, 2008
1954 !! Calling Moose::init_meta as a function is now !!
1955 !! deprecated. Please see the Moose.pm docs for details. !!
1957 * Moose::Meta::Method::Constructor
1958 - Fix inlined constructor so that values produced by default
1959 or builder methods are coerced as required. (t0m)
1960 - added test for this (t0m)
1962 * Moose::Meta::Attribute
1963 - A lazy attribute with a default or builder did not attempt to
1964 coerce the default value. The immutable code _did_
1966 - added test for this (t0m)
1969 - This is a new helper module for writing "Moose-alike"
1970 modules. This should make the lives of MooseX module authors
1971 much easier. (Dave Rolsky)
1974 * Moose::Cookbook::Meta::Recipe5
1975 - Implemented metaclass traits (and wrote a recipe for it):
1977 use Moose -traits => 'Foo'
1979 This should make writing small Moose extensions a little
1980 easier (Dave Rolsky)
1982 * Moose::Cookbook::Basics::Recipe1
1983 - Removed any examples of direct hashref access, and applied an
1984 editorial axe to reduce verbosity. (Dave Rolsky)
1986 * Moose::Cookbook::Basics::Recipe1
1987 - Also applied an editorial axe here. (Dave Rolsky)
1990 * Moose::Cookbook::Extending::Recipe1
1991 * Moose::Cookbook::Extending::Recipe2
1992 - Rewrote extending and embedding moose documentation and
1993 recipes to use Moose::Exporter (Dave Rolsky)
1997 - These two modules now warn when you load them from the main
1998 package "main" package, because we will not export sugar to
1999 main. Previously it just did nothing. (Dave Rolsky)
2002 - Now provide an init_meta method just like Moose.pm, and you
2003 can call this to provide an alternate role metaclass. (Dave
2004 Rolsky and nothingmuch)
2005 - get_method_map now respects the package cache flag (nothingmuch)
2008 - Two new methods - add_method and wrap_method_body
2012 - Optimizations including allowing constructors to accept hash
2013 refs, making many more classes immutable, and making
2014 constructors immutable. (nothingmuch)
2016 0.55 Sun August 3, 2008
2017 * Moose::Meta::Attribute
2018 - breaking down the way 'handles' methods are
2019 created so that the process can be more easily
2020 overridden by subclasses (stevan)
2022 * Moose::Meta::TypeConstraint
2023 - fixing what is passed into a ->message with
2024 the type constraints (RT #37569)
2025 - added tests for this (Charles Alderman)
2027 * Moose::Util::TypeConstraints
2028 - fix coerce to accept anon types like subtype can (mst)
2031 - reorganized the recipes into sections - Basics, Roles, Meta,
2032 Extending - and wrote abstracts for each section (Dave Rolsky)
2034 * Moose::Cookbook::Basics::Recipe10
2035 - A new recipe that demonstrates operator overloading
2036 in combination with Moose. (bluefeet)
2038 * Moose::Cookbook::Meta::Recipe1
2039 - an introduction to what meta is and why you'd want to make
2040 your own metaclass extensions (Dave Rolsky)
2042 * Moose::Cookbook::Meta::Recipe4
2043 - a very simple metaclass example (Dave Rolsky)
2045 * Moose::Cookbook::Extending::Recipe1
2046 - how to write a Moose-alike module to use your own object base
2049 * Moose::Cookbook::Extending::Recipe2
2050 - how to write modules with an API just like C<Moose.pm> (Dave
2054 - Tons of fixes, both syntactical and grammatical (Dave
2055 Rolsky, Paul Fenwick)
2057 0.54 Thurs. July 3, 2008
2058 ... this is not my day today ...
2060 * Moose::Meta::Attribute
2061 - fixed legal_options_for_inheritance such that
2062 clone_and_inherit options still works for
2063 Class::MOP::Attribute objects and therefore
2064 does not break MooseX::AttributeHelpers
2067 0.53 Thurs. July 3, 2008
2068 * Whoops, I guess I should run 'make manifest' before
2069 actually releasing the module. No actual changes
2070 in this release, except the fact that it includes
2071 the changes that I didn't include in the last
2074 0.52 Thurs. July 3, 2008
2076 - added "FEATURE REQUESTS" section to the Moose docs
2077 to properly direct people (stevan) (RT #34333)
2078 - making 'extends' croak if it is passed a Role since
2079 this is not ever something you want to do
2080 (fixed by stevan, found by obra)
2081 - added tests for this (stevan)
2084 - adding support for DOES (as in UNIVERSAL::DOES)
2086 - added test for this
2088 * Moose::Meta::Attribute
2089 - added legal_options_for_inheritance (wreis)
2090 - added tests for this (wreis)
2092 * Moose::Cookbook::Snacks::*
2093 - removed some of the unfinished snacks that should
2094 not have been released yet. Added some more examples
2095 to the 'Keywords' snack. (stevan)
2097 * Moose::Cookbook::Style
2098 - added general Moose "style guide" of sorts to the
2099 cookbook (nothingmuch) (RT #34335)
2102 - added more BUILDARGS tests (stevan)
2104 0.51 Thurs. Jun 26, 2008
2106 - add unimport so "no Moose::Role" actually does
2109 * Moose::Meta::Role::Application::ToRole
2110 - when RoleA did RoleB, and RoleA aliased a method from RoleB in
2111 order to provide its own implementation, that method still got
2112 added to the list of required methods for consumers of
2113 RoleB. Now an aliased method is only added to the list of
2114 required methods if the role doing the aliasing does not
2115 provide its own implementation. See Recipe 11 for an example
2116 of all this. (Dave Rolsky)
2117 - added tests for this
2119 * Moose::Meta::Method::Constructor
2120 - when a single argument that wasn't a hashref was provided to
2121 an immutabilized constructor, the error message was very
2122 unhelpful, as opposed to the non-immutable error. Reported by
2124 - added test for this (Dave Rolsky)
2126 * Moose::Meta::Attribute
2127 - added support for meta_attr->does("ShortAlias") (sartak)
2128 - added tests for this (sartak)
2129 - moved the bulk of the `handles` handling to the new
2130 install_delegation method (Stevan)
2133 - Added BUILDARGS, a new step in new()
2135 * Moose::Meta::Role::Application::RoleSummation
2136 - fix typos no one ever sees (sartak)
2138 * Moose::Util::TypeConstraints
2139 * Moose::Meta::TypeConstraint
2140 * Moose::Meta::TypeCoercion
2141 - Attempt to work around the ??{ } vs. threads issue
2143 - Some null_constraint optimizations
2145 0.50 Thurs. Jun 11, 2008
2146 - Fixed a version number issue by bumping all modules
2149 0.49 Thurs. Jun 11, 2008
2150 !! This version now approx. 20-25% !!
2151 !! faster with new Class::MOP 0.59 !!
2153 * Moose::Meta::Attribute
2154 - fixed how the is => (ro|rw) works with
2155 custom defined reader, writer and accessor
2157 - added docs for this (TODO).
2158 - added tests for this (Thanks to Penfold)
2159 - added the custom attribute alias for regular
2160 Moose attributes which is "Moose"
2161 - fix builder and default both being used
2166 Moose::Meta::Attribute
2168 Moose::Meta::Role::Composite
2169 Moose::Util::TypeConstraints
2170 - switched usage of reftype to ref because
2174 - changing add_package_symbol to use the new
2178 - fixed how DEMOLISHALL is called so that it
2179 can be overrided in subclasses (thanks to Sartak)
2180 - added test for this (thanks to Sartak)
2182 * Moose::Util::TypeConstraints
2183 - move the ClassName type check code to
2184 Class::MOP::is_class_loaded (thanks to Sartak)
2186 * Moose::Cookbook::Recipe11
2187 - add tests for this (thanks to tokuhirom)
2189 0.48 Thurs. May 29, 2008
2190 (early morning release engineering)--
2192 - fixing the version in Moose::Meta::Method::Destructor
2193 which was causing the indexer to choke
2195 0.47 Thurs. May 29, 2008
2196 (late night release engineering)--
2198 - fixing the version is META.yml, no functional
2199 changes in this release
2201 0.46 Wed. May 28, 2008
2202 !! This version now approx. 20-25% !!
2203 !! faster with new Class::MOP 0.57 !!
2205 * Moose::Meta::Class
2206 - some optimizations of the &initialize method
2207 since it is called so often by &meta
2209 * Moose::Meta::Class
2211 - now use the get_all_package_symbols from the
2212 updated Class::MOP, test suite is now 10 seconds
2215 * Moose::Meta::Method::Destructor
2216 - is_needed can now also be called as a class
2217 method for immutablization to check if the
2218 destructor object even needs to be created
2221 * Moose::Meta::Method::Destructor
2222 Moose::Meta::Method::Constructor
2223 - added more descriptive error message to help
2224 keep people from wasting time tracking an error
2225 that is easily fixed by upgrading.
2227 0.45 Saturday, May 24, 2008
2229 - Because of work in Class::MOP 0.57, all
2230 XS based functionality is now optional
2231 and a Pure Perl version is supplied
2232 - the CLASS_MOP_NO_XS environment variable
2233 can now be used to force non-XS versions
2235 - several of the packages have been tweaked
2236 to take care of this, mostly we added
2237 support for the package_name and name
2238 variables in all the Method metaclasses
2239 - before/around/after method modifiers now
2240 support regexp matching of names
2241 (thanks to Takatoshi Kitano)
2242 - tests added for this
2243 - NOTE: this only works for classes, it
2244 is currently not supported in roles,
2245 but, ... patches welcome
2246 - All usage of Carp::confess have been replaced
2247 by Carp::croak in the "keyword" functions since
2248 the stack trace is usually not helpful
2251 - All usage of Carp::confess have been replaced
2252 by Carp::croak in the "keyword" functions since
2253 the stack trace is usually not helpful
2254 - The 'has' keyword for roles now accepts the
2255 same array ref form that Moose.pm does
2256 (has [qw/foo bar/] => (is => 'rw', ...))
2257 - added test for this
2259 * Moose::Meta::Attribute
2260 - trigger on a ro-attribute is no longer an
2261 error, as it's useful to trigger off of the
2264 * Moose::Meta::Class
2265 - added same 'add_package_symbol' fix as in
2269 - does_role now handles non-Moose classes
2271 - added tests for this
2272 - added the 'add_method_modifier' function
2273 (thanks to Takatoshi Kitano)
2275 * Moose::Util::TypeConstraints
2276 - subtypes of parameterizable types now are
2277 themselves parameterizable types
2279 * Moose::Meta::Method::Constructor
2280 - fixed bug where trigger was not being
2281 called by the inlined immutable
2283 - added test for this (thanks to Caelum)
2285 * Moose::Meta::Role::Application::ToInstance
2286 - now uses the metaclass of the instance
2287 (if possible) to create the anon-class
2288 (thanks Jonathan Rockway)
2290 * Moose::Cookbook::Recipe22
2291 - added the meta-attribute trait recipe
2295 - fixed hash-ordering test bug that was
2296 causing occasional cpantester failures
2297 - renamed the t/000_recipe/*.t tests to be
2298 more descriptive (thanks to Sartak)
2300 0.44 Sat. May 10, 2008
2302 - made make_immutable warning cluck to
2303 show where the error is (thanks mst)
2306 - BUILDALL and DEMOLISHALL now call
2307 ->body when looping through the
2308 methods, to avoid the overloaded
2310 - fixed issue where DEMOLISHALL was
2311 eating the $@ values, and so not
2312 working correctly, it still kind of
2313 eats them, but so does vanilla perl
2314 - added tests for this
2316 * Moose::Cookbook::Recipe7
2317 - added new recipe for immutable
2318 functionality (thanks Dave Rolsky)
2320 * Moose::Cookbook::Recipe9
2321 - added new recipe for builder and
2322 lazy_build (thanks Dave Rolsky)
2324 * Moose::Cookbook::Recipe11
2325 - added new recipe for method aliasing
2326 and exclusion with Roles (thanks Dave Rolsky)
2329 - fixed Win32 test failure (thanks spicyjack)
2331 ~ removed Build.PL and Module::Build compat
2332 since Module::Install has done that.
2334 0.43 Wed. April, 30, 2008
2336 drink more coffee before
2337 doing release engineering
2339 - whoops, forgot to do the smolder tests,
2340 and we broke some of the custom meta-attr
2341 modules. This fixes that.
2343 0.42 Mon. April 28, 2008
2344 - some bad tests slipped by, nothing else
2345 changed in this release (cpantesters++)
2347 - upped the Class::MOP dependency to 0.55
2348 since we have tests which need the C3
2351 0.41 Mon. April 28, 2008
2352 ~~ numerous documentation updates ~~
2354 - Changed all usage of die to Carp::croak for better
2355 error reporting (initial patch by Tod Hagan)
2357 ** IMPORTANT NOTE **
2358 - the make_immutable keyword is now deprecated, don't
2359 use it in any new code and please fix your old code
2360 as well. There will be 2 releases, and then it will
2366 - refactored the way inner and super work to avoid
2367 any method/@ISA cache penalty (nothingmuch)
2369 * Moose::Meta::Class
2370 - fixing &new_object to make sure trigger gets the
2371 coerced value (spotted by Charles Alderman on the
2373 - added test for this
2375 * Moose::Meta::Method::Constructor
2376 - immutable classes which had non-lazy attributes were calling
2377 the default generating sub twice in the constructor. (bug
2378 found by Jesse Luehrs, fixed by Dave Rolsky)
2379 - added tests for this (Dave Rolsky)
2380 - fix typo in initialize_body method (nothingmuch)
2382 * Moose::Meta::Method::Destructor
2383 - fix typo in initialize_body method (nothingmuch)
2385 * Moose::Meta::Method::Overriden
2386 Moose::Meta::Method::Augmented
2387 - moved the logic for these into their own
2388 classes (nothingmuch)
2390 * Moose::Meta::Attribute
2391 - inherited attributes may now be extended without
2392 restriction on the type ('isa', 'does') (Sartak)
2393 - added tests for this (Sartak)
2394 - when an attribute property is malformed (such as lazy without
2395 a default), give the name of the attribute in the error
2397 - added the &applied_traits and &has_applied_traits methods
2398 to allow introspection of traits
2399 - added tests for this
2400 - moved 'trait' and 'metaclass' argument handling to here from
2402 - clone_and_inherit_options now handles 'trait' and 'metaclass' (has
2403 '+foo' syntax) (nothingmuch)
2404 - added tests for this (t0m)
2407 - localize $@ inside DEMOLISHALL to avoid it
2408 eating $@ (found by Ernesto)
2409 - added test for this (thanks to Ernesto)
2411 * Moose::Util::TypeConstraints
2412 - &find_type_constraint now DWIMs when given an
2413 type constraint object or name (nothingmuch)
2414 - &find_or_create_type_constraint superseded with a number of more
2416 - find_or_create_{isa,does}_type_constraint
2417 - find_or_parse_type_constraint
2419 * Moose::Meta::TypeConstraint
2420 Moose::Meta::TypeConstraint::Class
2421 Moose::Meta::TypeConstraint::Role
2422 Moose::Meta::TypeConstraint::Enum
2423 Moose::Meta::TypeConstraint::Union
2424 Moose::Meta::TypeConstraint::Parameterized
2425 - added the &equals method for comparing two type
2426 constraints (nothingmuch)
2427 - added tests for this (nothingmuch)
2429 * Moose::Meta::TypeConstraint
2430 - add the &parents method, which is just an alias to &parent.
2431 Useful for polymorphism with TC::{Class,Role,Union} (nothingmuch)
2433 * Moose::Meta::TypeConstraint::Class
2434 - added the class attribute for introspection purposes
2436 - added tests for this
2438 * Moose::Meta::TypeConstraint::Enum
2439 Moose::Meta::TypeConstraint::Role
2440 - broke these out into their own classes (nothingmuch)
2442 * Moose::Cookbook::Recipe*
2443 - fixed references to test file locations in the POD
2444 and updated up some text for new Moose features
2448 - Added &resolve_metaclass_alias, a helper function for finding an actual
2449 class for a short name (e.g. in the traits list)
2451 0.40 Fri. March 14, 2008
2452 - I hate Pod::Coverage
2454 0.39 Fri. March 14, 2008
2456 - documenting the use of '+name' with attributes
2457 that come from recently composed roles. It makes
2458 sense, people are using it, and so why not just
2459 officially support it.
2460 - fixing the 'extends' keyword so that it will not
2461 trigger Ovid's bug (http://use.perl.org/~Ovid/journal/35763)
2464 - added the perl -Moose=+Class::Name feature to allow
2465 monkeypatching of classes in one liners
2468 - fixing the 'apply_all_roles' keyword so that it will not
2469 trigger Ovid's bug (http://use.perl.org/~Ovid/journal/35763)
2471 * Moose::Meta::Class
2472 - added ->create method which now supports roles (thanks to jrockway)
2473 - added tests for this
2474 - added ->create_anon_class which now supports roles and caching of
2475 the results (thanks to jrockway)
2476 - added tests for this
2477 - made ->does_role a little more forgiving when it is
2478 checking a Class::MOP era metaclasses.
2480 * Moose::Meta::Role::Application::ToInstance
2481 - it is now possible to pass extra params to be used when
2482 a role is applied to an the instance (rebless_params)
2483 - added tests for this
2485 * Moose::Util::TypeConstraints
2486 - class_type now accepts an optional second argument for a
2487 custom message. POD anotated accordingly (groditi)
2488 - added tests for this
2489 - it is now possible to make anon-enums by passing 'enum' an
2490 ARRAY ref instead of the $name => @values. Everything else
2492 - added tests for this
2495 - making test for using '+name' on attributes consumed
2496 from a role, it works and makes sense too.
2498 * Moose::Meta::Attribute
2499 - fix handles so that it doesn't return nothing
2500 when the method cannot be found, not sure why
2501 it ever did this originally, this means we now
2502 have slightly better support for AUTOLOADed
2504 - added more delegation tests
2505 - adding ->does method to this so as to better
2506 support traits and their introspection.
2507 - added tests for this
2510 - localizing the Data::Dumper configurations so
2511 that it does not pollute others (RT #33509)
2512 - made ->does a little more forgiving when it is
2513 passed Class::MOP era metaclasses.
2515 0.38 Fri. Feb. 15, 2008
2516 * Moose::Meta::Attribute
2517 - fixed initializer to correctly do
2518 type checking and coercion in the
2520 - added tests for this
2523 - fixed some finicky tests (thanks to konobi)
2525 0.37 Thurs. Feb. 14, 2008
2527 - fixed some details in Moose::init_meta
2528 and its superclass handling (thanks thepler)
2529 - added tests for this (thanks thepler)
2530 - 'has' now dies if you don't pass in name
2532 - added the 'make_immutable' keyword as a shortcut
2535 * Moose::Meta::Class
2536 Moose::Meta::Method::Constructor
2537 Moose::Meta::Attribute
2538 - making (init_arg => undef) work here too
2539 (thanks to nothingmuch)
2541 * Moose::Meta::Attribute
2542 Moose::Meta::Method::Constructor
2543 Moose::Meta::Method::Accessor
2544 - make lazy attributes respect attr initializers (rjbs)
2545 - added tests for this
2547 * Moose::Util::TypeConstraints
2548 Moose::Util::TypeConstraints::OptimizedConstraints
2549 Moose::Meta::TypeConstraints
2550 Moose::Meta::Attribute
2551 Moose::Meta::Method::Constructor
2552 Moose::Meta::Method::Accessor
2553 - making type errors use the
2554 assigned message (thanks to Sartak)
2555 - added tests for this
2557 * Moose::Meta::Method::Destructor
2558 - making sure DESTROY gets inlined properly
2559 with successive DEMOLISH calls (thanks to manito)
2561 * Moose::Meta::Attribute
2562 Moose::Meta::Method::Accessor
2563 - fixed handling of undef with type constraints
2565 - added tests for this
2568 - added &get_all_init_args and &get_all_attribute_values
2569 (thanks to Sartak and nothingmuch)
2571 0.36 Sat. Jan. 26, 2008
2573 Moose::Meta::Attribute
2574 - role type tests now support when roles are
2575 applied to non-Moose classes (found by ash)
2576 - added tests for this (thanks to ash)
2577 - couple extra tests to boost code coverage
2579 * Moose::Meta::Method::Constructor
2580 - improved fix for handling Class::MOP attributes
2581 - added test for this
2583 * Moose::Meta::Class
2584 - handled the add_attribute($attribute_meta_object)
2586 - added test for this
2588 0.35 Tues. Jan. 22, 2008
2589 * Moose::Meta::Method::Constructor
2590 - fix to make sure even Class::MOP attributes
2591 are handled correctly (Thanks to Dave Rolsky)
2592 - added test for this (also Dave Rolsky)
2594 * Moose::Meta::Class
2595 - improved error message on _apply_all_roles,
2596 you should now use Moose::Util::apply_all_roles
2597 and you shouldnt have been using a _ prefixed
2598 method in the first place ;)
2600 0.34 Mon. Jan. 21, 2008
2601 ~~~ more misc. doc. fixes ~~~
2602 ~~ updated copyright dates ~~
2604 Moose is now a postmodern object system :)
2605 - (see the POD for details)
2607 * <<Role System Refactoring>>
2608 - this release contains a major reworking and
2609 cleanup of the role system
2610 - 100% backwards compat.
2611 - Role application now restructured into seperate
2612 classes based on type of applicants
2613 - Role summation (combining of more than one role)
2614 is much cleaner and anon-classes are no longer
2615 used in this process
2616 - new Composite role metaclass
2617 - runtime application of roles to instances
2618 is now more efficient and re-uses generated
2619 classes when applicable
2621 * <<New Role composition features>>
2622 - methods can now be excluded from a given role
2624 - methods can now be aliased to another name (and
2625 still retain the original as well)
2627 * Moose::Util::TypeConstraints::OptimizedConstraints
2628 - added this module (see above)
2630 * Moose::Meta::Class
2631 - fixed the &_process_attribute method to be called
2632 by &add_attribute, so that the API is now correct
2634 * Moose::Meta::Method::Accessor
2635 - fixed bug when passing a list of values to
2636 an accessor would get (incorrectly) ignored.
2637 Thanks to Sartak for finding this ;)
2638 - added tests for this (Sartak again)
2640 * Moose::Meta::Method::Accessor
2641 Moose::Meta::Method::Constructor
2642 Moose::Meta::Attribute
2643 Moose::Meta::TypeConstraint
2644 Moose::Meta::TypeCoercion
2645 - lots of cleanup of such things as:
2647 - type constraint handling
2648 - error handling/messages
2649 (thanks to nothingmuch)
2651 * Moose::Meta::TypeConstraint::Parameterizable
2652 - added this module to support the refactor
2653 in Moose::Meta::TypeConstraint::Parameterized
2655 * Moose::Meta::TypeConstraint::Parameterized
2656 - refactored how these types are handled so they
2657 are more generic and not confined to ArrayRef
2661 - shortened some file names for better VMS support (RT #32381)
2663 0.33 Fri. Dec. 14, 2007
2664 !! Moose now loads 2 x faster !!
2665 !! with new Class::MOP 0.49 !!
2667 ++ new oose.pm module to make command line
2668 Moose-ness easier (see POD docs for more)
2670 * Moose::Meta::Class
2672 - several tweaks to take advantage of the
2673 new method map caching in Class::MOP
2675 * Moose::Meta::TypeConstraint::Parameterized
2676 - allow subtypes of ArrayRef and HashRef to
2677 be used as a container (sartak)
2678 - added tests for this
2679 - basic support for coercion to ArrayRef and
2680 HashRef for containers (sartak)
2681 - added tests for this
2683 * Moose::Meta::TypeCoercion
2684 - coercions will now create subtypes as needed
2685 so you can now add coercions to parameterized
2686 types without having to explictly define them
2687 - added tests for this
2689 * Moose::Meta::Method::Accessor
2690 - allow subclasses to decide whether we need
2691 to copy the value into a new variable (sartak)
2693 0.32 Tues. Dec. 4, 2007
2694 * Moose::Util::TypeConstraints
2695 - fixing how subtype aliases of unions work
2696 they should inherit the parent's coercion
2697 - added tests for this
2698 - you can now define multiple coercions on
2699 a single type at different times instead of
2700 having to do it all in one place
2701 - added tests for this
2703 * Moose::Meta::TypeConstraint
2704 - there is now a default constraint of sub { 1 }
2705 instead of Moose::Util::TypeConstraints setting
2708 * Moose::Meta::TypeCoercion
2709 * Moose::Meta::TypeCoercion::Union
2710 - added the &has_coercion_for_type and
2711 &add_type_coercions methods to support the
2712 new features above (although you cannot add
2713 more type coercions for Union types)
2715 0.31 Mon. Nov. 26, 2007
2716 * Moose::Meta::Attribute
2717 - made the +attr syntax handle extending types with
2718 parameters. So "has '+foo' => (isa => 'ArrayRef[Int]')"
2719 now works if the original foo is an ArrayRef.
2720 - added tests for this.
2721 - delegation now works even if the attribute does not
2722 have a reader method using the get_read_method_ref
2723 method from Class::MOP::Attribute.
2724 - added tests for this
2725 - added docs for this
2727 * Moose::Util::TypeConstraints
2728 - passing no "additional attribute info" to
2729 &find_or_create_type_constraint will no longer
2730 attempt to create an __ANON__ type for you,
2731 instead it will just return undef.
2732 - added docs for this
2734 0.30 Fri. Nov. 23, 2007
2735 * Moose::Meta::Method::Constructor
2736 -builder related bug in inlined constructor. (groditi)
2738 * Moose::Meta::Method::Accessor
2739 - genereate unnecessary calls to predicates and refactor
2740 code generation for runtime speed (groditi)
2742 * Moose::Util::TypeConstraints
2743 - fix ClassName constraint to introspect symbol table (mst)
2744 - added more tests for this (mst)
2745 - fixed it so that subtype 'Foo' => as 'HashRef[Int]' ...
2746 with work correctly.
2747 - added tests for this
2750 - adding the link to Recipie 11 (written by Sartak)
2751 - adding test for SYNOPSIS code
2754 - New tests for builder bug. Upon instantiation, if an
2755 attribute had a builder, no value and was not lazy the
2756 builder default was not getting run, oops. (groditi)
2758 0.29 Tues. Nov. 13, 2007
2759 * Moose::Meta::Attribute
2760 - Fix error message on missing builder method (groditi)
2762 * Moose::Meta::Method::Accessor
2763 - Fix error message on missing builder method (groditi)
2766 - Add test to check for the correct error message when
2767 builder method is missing (groditi)
2769 0.28 Tues. Nov. 13, 2007
2770 - 0.27 packaged incorrectly (groditi)
2772 0.27 Tues. Nov. 13, 2007
2773 * Moose::Meta::Attribute
2774 - Added support for the new builder option (groditi)
2775 - Added support for lazy_build option (groditi)
2776 - Changed slot initialization for predicate changes (groditi)
2778 * Moose::Meta::Method::Accessor
2779 - Added support for lazy_build option (groditi)
2780 - Fix inline methods to work with corrected predicate
2783 * Moose::Meta::Method::Constructor
2784 - Added support for lazy_build option (groditi)
2787 - tests for builder and lazy_build (groditi)
2789 * fixing some misc. bits in the docs that
2790 got mentioned on CPAN Forum & perlmonks
2793 - fixed how required methods are handled
2794 when they encounter overriden or modified
2795 methods from a class (thanks to confound).
2796 - added tests for this
2798 * Moose::Util::TypeConstraint
2799 - fixed the type notation parser so that
2800 the | always creates a union and so is
2801 no longer a valid type char (thanks to
2802 konobi, mugwump and #moose for working
2804 - added more tests for this
2806 0.26 Thurs. Sept. 27, 2007
2809 * Parameterized Types
2810 We now support parameterized collection types, such as:
2811 ArrayRef[Int] # array or integers
2812 HashRef[Object] # a hash with object values
2813 They can also be nested:
2814 ArrayRef[HashRef[RegexpRef]] # an array of hashes with regex values
2815 And work with the type unions as well:
2816 ArrayRef[Int | Str] # array of integers of strings
2818 * Better Framework Extendability
2819 Moose.pm is now "extendable" such that it is now much
2820 easier to extend the framework and add your own keywords
2821 and customizations. See the "EXTENDING AND EMBEDDING MOOSE"
2822 section of the Moose.pm docs.
2825 In an effort to begin documenting some of the various
2826 details of Moose as well as some common idioms, we have
2827 created Moose::Cookbook::Snacks as a place to find
2828 small (easily digestable) nuggets of Moose code.
2831 ~ Several doc updates/cleanup thanks to castaway ~
2833 - converted build system to use Module::Install instead of
2834 Module::Build (thanks to jrockway)
2837 - added all the meta classes to the immutable list and
2838 set it to inline the accessors
2839 - fix import to allow Sub::Exporter like { into => }
2840 and { into_level => } (perigrin)
2841 - exposed and documented init_meta() to allow better
2842 embedding and extending of Moose (perigrin)
2845 - complete re-organization of the test suite
2846 - added some new tests as well
2847 - finally re-enabled the Moose::POOP test since
2848 the new version of DBM::Deep now works again
2851 * Moose::Meta::Class
2852 - fixed very odd and very nasty recursion bug with
2854 - added tests for this (eilara)
2856 * Moose::Meta::Attribute
2857 Moose::Meta::Method::Constructor
2858 Moose::Meta::Method::Accessor
2859 - fixed issue with overload::Overloaded getting called
2860 on non-blessed items. (RT #29269)
2861 - added tests for this
2863 * Moose::Meta::Method::Accessor
2864 - fixed issue with generated accessor code making
2865 assumptions about hash based classes (thanks to dexter)
2867 * Moose::Coookbook::Snacks
2868 - these are bits of documentation, not quite as big as
2869 Recipes but which have no clear place in the module docs.
2870 So they are Snacks! (horray for castaway++)
2872 * Moose::Cookbook::Recipe4
2873 - updated it to use the new ArrayRef[MyType] construct
2874 - updated the accompanying test as well
2876 +++ Major Refactor of the Type Constraint system +++
2877 +++ with new features added as well +++
2879 * Moose::Util::TypeConstraint
2880 - no longer uses package variable to keep track of
2881 the type constraints, now uses the an instance of
2882 Moose::Meta::TypeConstraint::Registry to do it
2883 - added more sophisticated type notation parsing
2885 - added tests for this
2887 * Moose::Meta::TypeConstraint
2888 - some minor adjustments to make subclassing easier
2889 - added the package_defined_in attribute so that we
2890 can track where the type constraints are created
2892 * Moose::Meta::TypeConstraint::Union
2893 - this is now been refactored to be a subclass of
2894 Moose::Meta::TypeConstraint
2896 * Moose::Meta::TypeCoercion::Union
2897 - this has been added to service the newly refactored
2898 Moose::Meta::TypeConstraint::Union and is itself
2899 a subclass of Moose::Meta::TypeCoercion
2901 * Moose::Meta::TypeConstraint::Parameterized
2902 - added this module (taken from MooseX::AttributeHelpers)
2903 to help construct nested collection types
2904 - added tests for this
2906 * Moose::Meta::TypeConstraint::Registry
2907 - added this class to keep track of type constraints
2909 0.25 Mon. Aug. 13, 2007
2911 - Documentation update to reference Moose::Util::TypeConstraints
2912 under 'isa' in 'has' for how to define a new type
2913 (thanks to shlomif).
2915 * Moose::Meta::Attribute
2916 - required attributes now will no longer accept undef
2917 from the constructor, even if there is a default and lazy
2918 - added tests for this
2919 - default subroutines must return a value which passes the
2921 - added tests for this
2923 * Moose::Meta::Attribute
2924 * Moose::Meta::Method::Constructor
2925 * Moose::Meta::Method::Accessor
2926 - type-constraint tests now handle overloaded objects correctly
2927 in the error message
2928 - added tests for this (thanks to EvanCarroll)
2930 * Moose::Meta::TypeConstraint::Union
2931 - added (has_)hand_optimized_constraint to this class so that
2932 it behaves as the regular Moose::Meta::TypeConstraint does.
2935 - large refactoring of this code
2936 - added several more tests
2937 - tests for subtle conflict resolition issues
2938 added, but not currently running
2941 * Moose::Cookbook::Recipe7
2942 - added new recipe for augment/inner functionality
2944 - added test for this
2947 - a formal definition of roles (still in progress)
2950 - utilities for easier working with Moose classes
2951 - added tests for these
2954 - This contains Moose specific test functions
2955 - added tests for these
2957 0.24 Tues. July 3, 2007
2958 ~ Some doc updates/cleanup ~
2960 * Moose::Meta::Attribute
2961 - added support for roles to be given as parameters
2962 to the 'handles' option.
2963 - added tests and docs for this
2964 - the has '+foo' attribute form now accepts changes to
2965 the lazy option, and the addition of a handles option
2966 (but not changing the handles option)
2967 - added tests and docs for this
2970 - required methods are now fetched using find_method_by_name
2971 so that required methods can come from superclasses
2972 - adjusted tests for this
2974 0.23 Mon. June 18, 2007
2975 * Moose::Meta::Method::Constructor
2976 - fix inlined constructor for hierarchy with multiple BUILD methods (mst)
2977 * Moose::Meta::Class
2978 - Modify make_immutable to work with the new Class::MOP immutable
2979 mechanism + POD + very basic test (groditi)
2980 * Moose::Meta::Attribute
2981 - Fix handles to use goto() so that caller() comes out properly on
2982 the other side (perigrin)
2984 0.22 Thurs. May 31, 2007
2985 * Moose::Util::TypeConstraints
2986 - fix for prototype undeclared issue when Moose::Util::TypeConstraints
2987 loaded before consumers (e.g. Moose::Meta::Attribute) by predeclaring
2988 prototypes for functions
2989 - added the ClassName type constraint, this checks for strings
2990 which will respond true to ->isa(UNIVERSAL).
2991 - added tests and docs for this
2992 - subtyping just in name now works correctly by making the
2993 default for where be { 1 }
2994 - added test for this
2996 * Moose::Meta::Method::Accessor
2997 - coerce and lazy now work together correctly, thanks to
2998 merlyn for finding this bug
2999 - tests added for this
3000 - fix reader presedence bug in Moose::Meta::Attribute + tests
3003 - Foo->new(undef) now gets ignored, it is assumed you meant to pass
3004 a HASH-ref and missed. This produces better error messages then
3005 having it die cause undef is not a HASH.
3006 - added tests for this
3008 0.21 Thursday, May 2nd, 2007
3010 - added SUPER_SLOT and INNER_SLOT class hashes to support unimport
3011 - modified unimport to remove super and inner along with the rest
3012 - altered unimport tests to handle this
3015 - altered super export to populate SUPER_SLOT
3017 * Moose::Meta::Class
3018 - altered augment and override modifier application to use *_SLOT
3019 - modified tests for these to unimport one test class each to test
3022 - fixed issue where custom attribute metaclasses
3023 where not handled correctly in roles
3024 - added tests for this
3026 * Moose::Meta::Class
3027 - fixed issue where extending metaclasses with
3028 roles would blow up. Thanks to Aankhen`` for
3029 finding this insidious error, and it's solution.
3031 ~~ lots of spelling and grammer fixes in the docs,
3032 many many thanks to rlb3 and Aankhen for these :)
3034 0.20 Friday, April 6th, 2007
3035 >> I messed up the SKIP logic in one test
3036 so this release is just to fix that.
3039 - 'has' now also accepts an ARRAY ref
3040 to create multiple attrs (see docs)
3041 (thanks to konobi for this)
3042 - added tests and docs
3044 0.19 Thurs. April 5th, 2007
3045 ~~ More documentation updates ~~
3047 * Moose::Util::TypeConstraints
3048 - 'type' now supports messages as well
3049 thanks to phaylon for finding this
3050 - added tests for this
3051 - added &list_all_type_constraints and
3052 &list_all_builtin_type_constraints
3053 functions to facilitate introspection.
3055 * Moose::Meta::Attribute
3056 - fixed regexp 'handles' declarations
3057 to build the list of delegated methods
3058 correctly (and not override important
3059 things like &new) thanks to ashleyb
3061 - added tests and docs for this
3062 - added the 'documentation' attributes
3063 so that you can actually document your
3064 attributes and inspect them through the
3066 - added tests and docs for this
3068 * Moose::Meta::Class
3069 - when loading custom attribute metaclasses
3070 it will first look in for the class in the
3071 Moose::Meta::Attribute::Custom::$name, and
3072 then default to just loading $name.
3073 - added tests and docs for this
3075 * Moose::Meta::TypeConstraint
3076 - type constraints now stringify to their names.
3077 - added test for this
3080 - added tests to assure we work with Module::Refresh
3081 - added stricter test skip logic in the Moose POOP
3082 test, ask Rob Kinyon why.
3083 - *cough* DBM::Deep 1.0 backwards compatibility sucks *cough* ;)
3085 0.18 Sat. March 10, 2007
3086 ~~ Many, many documentation updates ~~
3089 - We now use Class::MOP::load_class to
3091 - added tests to show types and subtypes
3092 working with Declare::Constraints::Simple
3093 and Test::Deep as constraint engines.
3096 !! You must have Class::MOP 0.37_001 !!
3097 !! for this developer release to work !!
3099 This release was primarily adding the immutable
3100 feature to Moose. An immutable class is one which
3101 you promise not to alter. When you set the class
3102 as immutable it will perform various bits of
3103 memoization and inline certain part of the code
3104 (constructors, destructors and accessors). This
3105 minimizes (and in some cases totally eliminates)
3106 one of Moose's biggest performance hits. This
3107 feature is not on by default, and is 100% optional.
3108 It has several configurable bits as well, so you
3109 can pick and choose to your specific needs.
3111 The changes involved in this were fairly wide and
3112 highly specific, but 100% backwards compatible, so
3113 I am not going to enumerate them here. If you are
3114 truely interested in what was changed, please do
3117 0.17 Tues. Nov. 14, 2006
3118 * Moose::Meta::Method::Accessor
3119 - bugfix for read-only accessors which
3120 are have a type constraint and lazy.
3121 Thanks to chansen for finding it.
3123 0.16 Tues. Nov. 14, 2006
3125 There are some speed improvements in this release,
3126 but they are only the begining, so stay tuned.
3129 - BUILDALL and DEMOLISHALL no longer get
3130 called unless they actually need to be.
3131 This gave us a signifigant speed boost
3132 for the cases when there is no BUILD or
3133 DEMOLISH method present.
3135 * Moose::Util::TypeConstraints
3136 * Moose::Meta::TypeConstraint
3137 - added an 'optimize_as' option to the
3138 type constraint, which allows for a
3139 hand optimized version of the type
3140 constraint to be used when possible.
3141 - Any internally created type constraints
3142 now provide an optimized version as well.
3144 0.15 Sun. Nov. 5, 2006
3146 This version of Moose *must* have Class::MOP 0.36 in order
3147 to work correctly. A number of small internal tweaks have
3148 been made in order to be compatible with that release.
3150 * Moose::Util::TypeConstraints
3151 - added &unimport so that you can clean out
3152 your class namespace of these exported
3155 * Moose::Meta::Class
3156 - fixed minor issue which occasionally
3157 comes up during global destruction
3159 - moved Moose::Meta::Method::Overriden into
3163 - moved Moose::Meta::Role::Method into
3166 * Moose::Meta::Attribute
3167 - changed how we do type checks so that
3168 we reduce the overall cost, but still
3171 - moved accessor generation methods to
3172 Moose::Meta::Method::Accessor to
3173 conform to the API changes from
3176 * Moose::Meta::TypeConstraint
3177 - changed how constraints are compiled
3178 so that we do less recursion and more
3179 iteration. This makes the type check
3181 - moved Moose::Meta::TypeConstraint::Union
3184 * Moose::Meta::Method::Accessor
3185 - created this from methods formerly found in
3186 Moose::Meta::Attribute
3188 * Moose::Meta::Role::Method
3189 - moved this from Moose::Meta::Role
3191 * Moose::Meta::Method::Overriden
3192 - moved this from Moose::Meta::Class
3194 * Moose::Meta::TypeConstraint::Union
3195 - moved this from Moose::Meta::TypeConstraint
3197 0.14 Mon. Oct. 9, 2006
3199 * Moose::Meta::Attribute
3200 - fixed lazy attributes which were not getting
3201 checked with the type constraint (thanks ashley)
3202 - added tests for this
3203 - removed the over-enthusiastic DWIMery of the
3204 automatic ArrayRef and HashRef defaults, it
3205 broke predicates in an ugly way.
3206 - removed tests for this
3208 0.13 Sat. Sept. 30, 2006
3210 This version of Moose *must* have Class::MOP 0.35 in order
3211 to work correctly. A number of small internal tweaks have
3212 been made in order to be compatible with that release.
3215 - Removed the use of UNIVERSAL::require to be a better
3216 symbol table citizen and remove a dependency
3217 (thanks Adam Kennedy)
3219 **~~ removed experimental & undocumented feature ~~**
3220 - commented out the 'method' and 'self' keywords, see the
3221 comments for more info.
3224 - added a FAQ and WTF files to document frequently
3225 asked questions and common problems
3227 * Moose::Util::TypeConstraints
3228 - added GlobRef and FileHandle type constraint
3229 - added tests for this
3231 * Moose::Meta::Attribute
3232 - if your attribute 'isa' ArrayRef of HashRef, and you have
3233 not explicitly set a default, then make the default DWIM.
3234 This will also work for subtypes of ArrayRef and HashRef
3236 - you can now auto-deref subtypes of ArrayRef or HashRef too.
3237 - new test added for this (thanks to ashley)
3240 - added basic support for runtime role composition
3241 but this is still *highly experimental*, so feedback
3242 is much appreciated :)
3243 - added tests for this
3245 * Moose::Meta::TypeConstraint
3246 - the type constraint now handles the coercion process
3247 through delegation, this is to support the coercion
3250 * Moose::Meta::TypeConstraint::Union
3251 - it is now possible for coercions to be performed
3253 - added tests for this (thanks to konobi)
3255 * Moose::Meta::TypeCoercion
3256 - properly capturing error when type constraint
3260 - Scalar::Util 1.18 is bad on Win32, so temporarily
3261 only require version 1.17 for Win32 and cygwin.
3262 (thanks Adam Kennedy)
3264 0.12 Sat. Sept. 1, 2006
3266 - Recipe5 (subtypes & coercion) has been written
3269 - fixed "bad meta" error message to be more descriptive
3270 - fixed &unimport to not remove the &inner and &super
3271 keywords because we need to localize them.
3272 - fixed number of spelling/grammer issues, thanks Theory :)
3274 **~~ experimental & undocumented feature ~~**
3275 - added the method and self keywords, they are basically
3276 just sugar, and they may not stay around.
3279 - added &dump method to easily Data::Dumper
3282 * Moose::Meta::TypeConstraint
3283 - added the &is_a_type_of method to check both the current
3284 and the subtype of a method (similar to &isa with classes)
3287 - this is now a subclass of Class::MOP::Module, and no longer
3288 creates the _role_meta ugliness of before.
3289 - fixed tests to reflect this change
3291 0.11 Wed. July 12, 2006
3293 - added an &unimport method to remove all the keywords
3294 that Moose will import, simply add 'no Moose' to the
3295 bottom of your class file.
3298 - fixed some test failures caused by a forgotten test
3301 0.10 Thurs. July 6, 2006
3303 - improved error message when loading modules so
3304 it is less confusing when you load a role.
3305 - added &calculate_all_roles method to
3306 Moose::Meta::Class and Moose::Meta::Role
3309 This module has been tested against Class::MOP 0.30
3310 but it does not yet utilize the optimizations
3311 it makes available. Stay tuned for that ;)
3313 0.09_03 Fri. June 23, 2006
3314 ++ DEVELOPER RELEASE ++
3316 - 'use strict' and 'use warnings' are no longer
3317 needed in Moose classes, Moose itself will
3318 turn them on for you.
3319 - added tests for this
3320 - moved code from exported subs to private methods
3321 in Moose::Meta::Class
3324 - as with Moose, strict and warnings are
3325 automatically turned on for you.
3326 - added tests for this
3329 - now handles an edge case for override errors
3330 - added tests for this
3331 - added some more edge case tests
3333 0.09_02 Tues. May 16, 2006
3334 ++ DEVELOPER RELEASE ++
3336 - added prototypes to the exported subs
3340 - added prototypes to the exported subs
3343 * Moose::Util::TypeConstraints
3344 - cleaned up prototypes for the subs
3347 0.09_01 Fri. May 12, 2006
3348 ++ DEVELOPER RELEASE ++
3349 - This release works in combination with
3350 Class::MOP 0.29_01, it is a developer
3351 release because it uses the a new
3352 instance sub-protocol and a fairly
3353 complete Role implementation. It has
3354 not yet been optimized, so it slower
3355 the the previous CPAN version. This
3356 release also lacks good updated docs,
3357 the official release will have updated docs.
3360 - refactored the keyword exports
3361 - 'with' now checks Role validaity and
3362 accepts more than one Role at a time
3363 - 'extends' makes metaclass adjustments as
3364 needed to ensure metaclass compatibility
3367 - refactored the keyword exports
3368 - 'with' now checks Role validaity and
3369 accepts more than one Role at a time
3371 * Moose::Util::TypeConstraints
3372 - added the 'enum' keyword for simple
3373 string enumerations which can be used as
3375 - see example of usage in t/202_example.t
3378 - more careful checking of params to new()
3381 - much work done on the role composition
3382 - many new tests for conflict detection
3383 and composition edge cases
3384 - not enough documentation, I suggest
3385 looking at the tests
3387 * Moose::Meta::Instance
3388 - added new Instance metaclass to support
3389 the new Class::MOP instance protocol
3391 * Moose::Meta::Class
3392 - some small changes to support the new
3394 - some small additions to support Roles
3396 * Moose::Meta::Attribute
3397 - some improvements to the accessor generation code
3399 - some small changes to support the new
3401 - (still somewhat) experimental delegation support
3402 with the 'handles' option
3403 - added several tests for this
3404 - no docs for this yet
3406 0.05 Thurs. April 27, 2006
3408 - keywords are now exported with Sub::Exporter
3409 thanks to chansen for this commit
3410 - has keyword now takes a 'metaclass' option
3411 to support custom attribute meta-classes
3412 on a per-attribute basis
3413 - added tests for this
3414 - the 'has' keyword not accepts inherited slot
3415 specifications (has '+foo'). This is still an
3416 experimental feature and probably not finished
3417 see t/038_attribute_inherited_slot_specs.t for
3418 more details, or ask about it on #moose
3419 - added tests for this
3422 - keywords are now exported with Sub::Exporter
3424 * Moose::Utils::TypeConstraints
3425 - reorganized the type constraint hierarchy, thanks
3426 to nothingmuch and chansen for his help and advice
3428 - added some tests for this
3429 - keywords are now exported with Sub::Exporter
3430 thanks to chansen for this commit
3432 * Moose::Meta::Class
3433 - due to changes in Class::MOP, we had to change
3434 construct_instance (for the better)
3436 * Moose::Meta::Attribute
3437 - due to changes in Class::MOP, we had to add the
3438 initialize_instance_slot method (it's a good thing)
3440 * Moose::Meta::TypeConstraint
3441 - added type constraint unions
3442 - added tests for this
3443 - added the is_subtype_of predicate method
3444 - added tests for this
3446 0.04 Sun. April 16th, 2006
3448 - Roles can now consume other roles
3449 - added tests for this
3450 - Roles can specify required methods now with
3451 the requires() keyword
3452 - added tests for this
3455 - ripped out much of it's guts ,.. much cleaner now
3456 - added required methods and correct handling of
3457 them in apply() for both classes and roles
3458 - added tests for this
3459 - no longer adds a does() method to consuming classes
3460 it relys on the one in Moose::Object
3461 - added roles attribute and some methods to support
3462 roles consuming roles
3464 * Moose::Meta::Attribute
3465 - added support for triggers on attributes
3466 - added tests for this
3467 - added support for does option on an attribute
3468 - added tests for this
3470 * Moose::Meta::Class
3471 - added support for attribute triggers in the
3473 - added tests for this
3476 - Moose no longer creates a subtype for your class
3477 if a subtype of the same name already exists, this
3478 should DWIM in 99.9999% of all cases
3480 * Moose::Util::TypeConstraints
3481 - fixed bug where incorrect subtype conflicts were
3483 - added test for this
3486 - this class can now be extended with 'use base' if
3487 you need it, it properly loads the metaclass class now
3488 - added test for this
3490 0.03_02 Wed. April 12, 2006
3492 - you must now explictly use Moose::Util::TypeConstraints
3493 it no longer gets exported for you automatically
3496 - new() now accepts hash-refs as well as key/value lists
3497 - added does() method to check for Roles
3498 - added tests for this
3500 * Moose::Meta::Class
3501 - added roles attribute along with the add_role() and
3503 - added tests for this
3506 - now adds a does() method to consuming classes
3507 which tests the class's hierarchy for roles
3508 - added tests for this
3510 0.03_01 Mon. April 10, 2006
3512 - added new Role recipe (no content yet, only code)
3515 - added 'with' keyword for Role support
3516 - added test and docs for this
3517 - fixed subtype quoting bug
3518 - added test for this
3522 - added test and docs
3524 * Moose::Util::TypeConstraints
3525 - added the message keyword to add custom
3526 error messages to type constraints
3529 - the meta role to support Moose::Role
3530 - added tests and docs
3532 * Moose::Meta::Class
3533 - moved a number of things from Moose.pm
3534 to here, they should have been here
3537 * Moose::Meta::Attribute
3538 - moved the attribute option macros here
3539 instead of putting them in Moose.pm
3541 * Moose::Meta::TypeConstraint
3542 - added the message attributes and the
3544 - added tests and docs for this
3546 0.03 Thurs. March 30, 2006
3548 - added the Moose::Cookbook with 5 recipes,
3549 describing all the stuff Moose can do.
3552 - fixed an issue with &extends super class loading
3553 it now captures errors and deals with inline
3554 packages correctly (bug found by mst, solution
3556 - added super/override & inner/augment features
3557 - added tests and docs for these
3560 - BUILDALL now takes a reference of the %params
3561 that are passed to &new, and passes that to
3564 * Moose::Util::TypeConstraints
3565 - Type constraints now survive runtime reloading
3566 - added test for this
3568 * Moose::Meta::Class
3569 - fixed the way attribute defaults are handled
3570 during instance construction (bug found by chansen)
3572 * Moose::Meta::Attribute
3573 - read-only attributes now actually enforce their
3574 read-only-ness (this corrected in Class::MOP as
3577 0.02 Tues. March 21, 2006
3579 - many more tests, fixing some bugs and
3581 - &extends now loads the base module with
3583 - added UNIVERSAL::require to the
3586 - each new Moose class will also create
3587 and register a subtype of Object which
3588 correspond to the new Moose class.
3589 - the 'isa' option in &has now only
3590 accepts strings, and will DWIM in
3593 * Moose::Util::TypeConstraints
3594 - added type coercion features
3595 - added tests for this
3596 - added support for this in attributes
3597 and instance construction
3599 - type construction no longer creates a
3600 function, it registers the type instead.
3601 - added several functions to get the
3605 - BUILDALL and DEMOLISHALL were broken
3606 because of a mis-named hash key, Whoops :)
3608 * Moose::Meta::Attribute
3609 - adding support for coercion in the
3610 autogenerated accessors
3612 * Moose::Meta::Class
3613 - adding support for coercion in the
3614 instance construction
3616 * Moose::Meta::TypeConstraint
3617 * Moose::Meta::TypeCoercion
3618 - type constraints and coercions are now
3619 full fledges meta-objects
3621 0.01 Wed. March 15, 2006
3622 - Moooooooooooooooooose!!!