1 Also see Moose::Manual::Delta for more details of, and workarounds
2 for, noteworthy changes.
6 - get_attribute_map is now deprecated (Dave Rolsky)
8 * replace two more eval { } calls with try { } (doy)
10 0.92 Tue, Sep 22, 2009
11 * Moose::Util::TypeConstraints
12 - added the match_on_type operator (Stevan)
13 - added tests and docs for this (Stevan)
16 - Metaclass compat fixing should already happen recursively, there's no
17 need to explicitly walk up the inheritance tree. (doy)
19 * Moose::Meta::Attribute
20 - Add tests for set_raw_value and get_raw_value. (nothingmuch)
22 0.91 Thu, Sep 17, 2009
24 - Don't import any functions, in order to avoid polluting our namespace
25 with things that can look like methods (blessed, try, etc)
28 * Moose::Meta::Method::Constructor
29 - The generated code needs to called Scalar::Util::blessed by its
30 fully-qualified name or else Perl can interpret the call to blessed as
31 an indirect method call. This broke Search::GIN, which in turn broke
32 KiokuDB. (nothingmuch)
34 0.90 Tue, Sep 15, 2009
35 * Moose::Meta::Attribute::Native::Trait::Counter
36 * Moose::Meta::Attribute::Native::Trait::String
37 - For these two traits, an attribute which did not explicitly provide
38 methods to handles magically ended up delegating *all* the helper
39 methods. This has been removed. You must be explicit in your handles
40 declaration for all Native Traits. (Dave Rolsky)
43 - DEMOLISHALL behavior has changed. If any DEMOLISH method dies, we make
44 sure to rethrow its error message. However, we also localize $@ before
45 this so that if all the DEMOLISH methods success, the value of $@ will
46 be preserved. (nothingmuch and Dave Rolsky)
47 - We now also localize $? during object destruction. (nothingmuch and
49 - The handling of DEMOLISH methods was broken for immutablized classes,
50 which were not receiving the value of
51 Devel::GlobalDestruction::in_global_destruction.
52 - These two fixes address some of RT #48271, reported by Zefram.
53 - This is all now documented in Moose::Manual::Construction.
54 - Calling $object->new() is now deprecated. A warning will be
58 - Added more hooks to customize how roles are applied. The role
59 summation class, used to create composite roles, can now be changed
60 and/or have meta-roles applied to it. (rafl)
62 * Moose::Meta::Method::Delegation
63 - fixed delegated methods to make sure that any modifiers attached to
64 the accessor being delegated on will be called (Stevan)
65 - added tests for this (Stevan)
68 - Moose no longer warns when a class that is being made immutable has
69 mutable ancestors. While in theory this is a good thing to warn about,
70 we found so many exceptions to this that doing this properly became
73 0.89_02 Thu, Sep 10, 2009
74 * Moose::Meta::Attribute::Native
75 - Fix Hash, which still had 'empty' instead of 'is_empty'. (hdp)
77 * Moose::Meta::Attribute::Native::Trait::Array
78 - Added a number of functions from List::Util and List::MoreUtils,
79 including reduce, shuffle, uniq, and natatime. (doy)
82 - This module will now generate an init_meta method for your exporting
83 class if you pass it options for
84 Moose::Util::MetaRole::apply_metaclass_roles or
85 apply_base_class_roles. This eliminates a lot of repetitive
86 boilerplate for typical MooseX modules. (doy).
87 - Documented the with_meta feature, which is a replacement for
88 with_caller. This feature was added by josh a while ago.
89 - The with_caller feature is now deprecated, but will not issue a
90 warning yet. (Dave Rolsky)
91 - If you try to wrap/export a subroutine which doesn't actually exist,
92 Moose::Exporter will warn you about this. (doy)
94 * Moose::Meta::Role::Application::ToRole
95 - When a role aliased a method from another role, it was only getting
96 the new (aliased) name, not the original name. This differed from what
97 happens when a class aliases a role's methods. If you _only_ want the
98 aliased name, make sure to also exclue the original name. (Dave
101 0.89_01 Wed Sep 2, 2009
102 * Moose::Meta::Attribute
103 - Added the currying syntax for delegation from AttributeHelpers to the
104 existing delegation API. (hdp)
106 * Moose::Meta::Attribute::Native
107 - We have merged the functionality of MooseX::AttributeHelpers into the
108 Moose core with some API tweaks. You can continue to use
109 MooseX::AttributeHelpers, but it will not be maintained except
110 (perhaps) for critical bug fixes in the future. See
111 Moose::Manual::Delta for details. (hdp, jhannah, rbuels, Sartak,
114 * Moose::Error::Croak
115 * Moose::Error::Confess
116 - Clarify documentation on how to use different error-throwing
117 modules. (Curtis Jewell)
120 - Correct POD for builder to point to Recipe8, not 9. (gphat)
123 - When a nonexistent sub name is passed to as_is, with_caller, or
124 with_meta, throw a warning and skip the exporting, rather than
125 installing a broken sub. (doy)
128 - Moose now warns if you call C<make_immutable> for a class with mutable
131 0.89 Thu Aug 13, 2009
132 * Moose::Manual::Attributes
133 - Clarify "is", include discussion of "bare". (Sartak)
135 * Moose::Meta::Role::Method::Conflicting
136 * Moose::Meta::Role::Application::ToClass
137 - For the first set of roles involved in a conflict, report all
138 unresolved method conflicts, not just the first method. Fixes #47210
139 reported by Ovid. (Sartak)
141 * Moose::Meta::TypeConstraint
142 - Add assert_valid method to use a TypeConstraint for assertion (rjbs)
145 - Make "use Moose -metaclass => 'Foo'" do alias resolution, like -traits
147 - Allow specifying role options (alias, excludes, MXRP stuff) in the
148 arrayref passed to "use Moose -traits" (doy)
151 - Add functions meta_class_alias and meta_attribute_alias for creating
152 aliases for class and attribute metaclasses and metatraits. (doy)
154 * Moose::Meta::Attribute
155 * Moose::Meta::Method::Accessor
156 - A trigger now receives the old value as a second argument, if the
157 attribute had one. (Dave Rolsky)
159 * Moose::Meta::Method::Constructor
160 - Fix a bug with $obj->new when $obj has stringify overloading.
161 Reported by Andrew Suffield [rt.cpan.org #47882] (Sartak)
162 - However, we will probably deprecate $obj->new, so please don't start
163 using it for new code!
165 * Moose::Meta::Role::Application
166 * Moose::Meta::Role::Application::RoleSummation
167 - Rename alias and excludes to -alias and -excludes (but keep the old
168 names for now, for backcompat) (doy)
170 0.88 Fri Jul 24, 2009
171 * Moose::Manual::Contributing
172 - Re-write the Moose::Manual::Contributing document to reflect
173 the new layout and methods of work for the Git repository. All
174 work now should be done in topic branches and reviewed by a
175 core committer before being applied to master. All releases
176 are done by a cabal member and merged from master to
177 stable. This plan was devised by Yuval, blame him. (perigrin)
180 - Create metaclass attributes for the different role application
183 * Moose::Util::MetaRole
184 - Allow applying roles to a meta role's role application
187 * Moose::Meta::Attribute
188 - Add weak_ref to allowed options for "has '+foo'" (mst)
190 * Moose::Meta::Method::Accessor
191 - No longer uses inline_slot_access in accessors, to support
192 non-lvalue-based meta instances. (sorear)
195 * Moose::Meta::Method::Delegation
196 - Once again allow class names as well as objects for
197 delegation. This was changed in 0.86.
200 * Moose::Meta::Class::Immutable::Trait
201 - Fixes to work with the latest Class::MOP.
203 * Moose::Meta::Method::Delegation
204 - Delegation now dies with a more useful error message if the
205 attribute's accessor returns something defined but
208 0.85 Fri, Jun 26, 2009
209 * Moose::Meta::Attribute
210 - The warning for 'no associated methods' is now split out into
211 the _check_associated_methods method, so that extensions can
212 safely call 'after install_accessors => ...'. This fixes a
213 warning from MooseX::AttributeHelpers. (hdp)
215 0.84 Fri, Jun 26, 2009
217 - has now sets definition_context for attributes defined in
220 * Moose::Meta::Attribute
221 - When adding an attribute to a metaclass, if the attribute has
222 no associated methods, it will give a deprecation
224 - Methods generated by delegation were not being added to
225 associated_methods. (hdp)
226 - Attribute accessors (reader, writer, accessor, predicate,
227 clearer) now warn if they overwrite an existing method. (doy)
228 - Attribute constructors now warn very noisily about unknown (or
229 misspelled) arguments
231 * Moose::Util::TypeConstraints
232 - Deprecated the totally useless Role type name, which just
233 checked if $object->can('does'). Note that this is _not_ the
234 same as a type created by calling role_type('RoleName').
236 * Moose::Util::TypeConstraints
237 * Moose::Meta::TypeConstraint::DuckType
238 - Reify duck type from a regular subtype into an actual class
240 - Document this because Sartak did all my work for me
243 * Moose::Meta::Attribute
244 - Allow Moose::Meta::TypeConstraint::DuckType in handles, since
245 it is just a list of methods (Sartak)
248 - The get_*_method_modifiers methods would die if the role had
249 no modifiers of the given type (Robert Buels).
251 0.83 Tue, Jun 23, 2009
253 - Fix _construct_instance not setting the special __MOP__ object
254 key in instances of anon classes. (doy)
256 0.82 Sun, Jun 21, 2009
257 * Moose::Manual::Types
258 - Mention MooseX::Types early to avoid users falling down the
259 string parsing rathole (mst)
261 * Moose::Manual::MooseX
262 - Add warnings about class-level extensions and mention considering
263 using plain objects instead
265 0.81 Sun, Jun 7, 2009
266 * Bumped our Class::MOP prereq to the latest version (0.85), since
269 0.80 Sat, Jun 6, 2009
271 - Add FAQ about the coercion change from 0.76 because it came up
272 three times today (perigrin)
273 - Win doy $10 dollars because Sartak didn't think anybody
274 would document this fast enough (perigrin)
276 * Moose::Meta::Method::Destructor
277 - Inline a DESTROY method even if there are no DEMOLISH methods
278 to prevent unnecessary introspection in
279 Moose::Object::DEMOLISHALL
282 - A role's required methods are now represented by
283 Moose::Meta::Role::Method::Required objects. Conflicts are now
284 represented by Moose::Meta::Role::Method::Conflicting
285 objects. The benefit for end-users in that unresolved
286 conflicts generate different, more instructive, errors,
287 resolving Ovid's #44895. (Sartak)
290 - Improve the error message of "extends" as suggested by Adam
291 Kennedy and confound (Sartak)
292 - Link to Moose::Manual::Roles from Moose::Role as we now have
293 excellent documentation (Adam Kennedy)
296 - Update test suite for subname change in Class::MOP
298 - Add TODO test for infinite recursion in Moose::Meta::Class
301 0.79 Wed, May 13, 2009
303 - More fixes for Win32 problems. Reported by Robert Krimen.
306 - The DEMOLISHALL method could still blow up in some cases
307 during global destruction. This method has been made more
308 resilient in the face of global destruction's random garbage
312 - If you "also" a module that isn't loaded, the error message
313 now acknowledges that (Sartak)
316 - When your ->meta method does not return a Moose::Meta::Class,
317 the error message gave the wrong output (Sartak)
319 0.78 Tue, May 12, 2009
320 * Moose::Cookbook::FAQ and Moose::Cookbook::WTF
321 - Merged these documents into what is now Moose::Manual::FAQ
324 - Moved to Moose::Manual::Unsweetened
326 * Moose::Cookbook::Basics::Recipes 9-12
327 - Renamed to be 8-11, since recipe 8 did not exist
330 - Make Moose::Exporter import strict and warnings into packages
334 - Fix DEMOLISHALL sometimes not being able to find DEMOLISH
335 methods during global destruction (doy)
338 * Moose::Meta::Role::Application::ToClass
339 - Track the Role::Application objects created during class-role
343 - Fix metaclass incompatibility errors when extending a vanilla perl
344 class which isa Moose class with a metaclass role applied (t0m)
347 - Add a role-combination hook, _role_for_combination, for the
348 benefit of MooseX::Role::Parameterized (Sartak)
351 - Some tests were failing on Win32 because they explicit checked
352 warning output for newlines. Reported by Nickolay Platonov.
354 0.77 Sat, May 2, 2009
356 - Add explicit use of Devel::GlobalDestruction and Sub::Name
360 - Pass a boolean to DEMOLISHALL and DEMOLISH indicating whether
361 or not we are currently in global destruction (doy)
362 - Add explicit use of Devel::GlobalDestruction and Sub::Name
365 * Moose::Cookbook::FAQ
366 - Reworked much of the existing content to be more useful to
367 modern Moose hackers (Sartak)
370 - Depend on Class::MOP 0.83 instead of 0.82_01.
372 0.76 Mon, April 27, 2009
373 * Moose::Meta::TypeConstraint
374 - Do not run coercions in coerce() if the value already passes the type
377 * Moose::Meta::TypeConstraint::Class
378 - In validation error messages, specifically say that the value is not
379 an instance of the class. This should alleviate some frustrating
380 forgot-to-load-my-type bugs. rt.cpan.org #44639 (Sartak)
382 * Moose::Meta::Role::Application::ToClass
383 - Revert the class-overrides-role warning in favor of a solution outside
384 of the Moose core (Sartak)
387 - Make Test::Output optional again, since it's only used in a few files
390 0.75_01 Thu, April 23, 2009
391 * Moose::Meta::Role::Application::ToClass
392 - Moose now warns about each class overriding methods from roles it
396 - Warnings tests have standardized on Test::Output which is now an
397 unconditionally dependency (Sartak)
400 - Changes to immutabilization to work with Class::MOP 0.82_01+.
402 0.75 Mon, April 20, 2009
405 - Move validation of not inheriting from roles from Moose::extends to
406 Moose::Meta::Class::superclasses (doy)
409 - add ensure_all_roles() function to encapsulate the common "apply this
410 role unless the object already does it" pattern (hdp)
413 - Users can now select a different metaclass with the "-metaclass"
414 option to import, for classes and roles (Sartak)
417 - Make method_metaclass an attr so that it can accept a metarole
420 0.74 Tue, April 7, 2009
422 * Moose::Meta::Method::Destructor
423 - Include stack traces in the deprecation warnings.
427 - Removed the long-deprecated _apply_all_roles method.
429 * Moose::Meta::TypeConstraint
430 - Removed the long-deprecated union method.
433 0.73_02 Mon, April 6, 2009
434 * More deprecations and renamings
435 - Moose::Meta::Method::Constructor
436 - initialize_body => _initialize_body (this is always called
437 when an object is constructed)
440 - The DEMOLISHALL method could throw an exception during global
441 destruction, meaning that your class's DEMOLISH methods would
442 not be properly called. Reported by t0m.
444 * Moose::Meta::Method::Destructor
445 - Destructor inlining was totally broken by the change to the
446 is_needed method in 0.72_01. Now there is a test for this
447 feature, and it works again.
450 - Bold the word 'not' in the POD for find_meta (t0m)
452 0.73_01 Sun, April 5, 2009
454 - Call user_class->meta in fewer places, with the eventual goal
455 of allowing the user to rename or exclude ->meta
456 altogether. Instead uses Class::MOP::class_of. (Sartak)
458 * Moose::Meta::Method::Accessor
459 - If an attribute had a lazy default, and that value did not
460 pass the attribute's type constraint, it did not get the
461 message from the type constraint, instead using a generic
462 message. Test provided by perigrin.
464 * Moose::Util::TypeConstraints
465 - Add duck_type keyword. It's sugar over making sure an object
466 can() a list of methods. This is easier than jrockway's
467 suggestion to fork all of CPAN. (perigrin)
468 - add tests and documentation (perigrin)
471 - Document the fact that init_meta() returns the target class's
472 metaclass object. (hdp)
474 * Moose::Cookbook::Extending::Recipe1
475 * Moose::Cookbook::Extending::Recipe2
476 * Moose::Cookbook::Extending::Recipe3
477 * Moose::Cookbook::Extending::Recipe4
478 - Make init_meta() examples explicitly return the metaclass and
479 point out this fact. (hdp)
481 * Moose::Cookbook::Basics::Recipe12
482 - A new recipe, creating a custom meta-method class.
484 * Moose::Cookbook::Meta::Recipe6
485 - A new recipe, creating a custom meta-method class.
488 * Moose::Meta::Method::Constructor
489 - Attribute triggers no longer receive the meta-attribute object
490 as an argument in any circumstance. Previously, triggers
491 called during instance construction were passed the
492 meta-attribute, but triggers called by normal accessors were
493 not. Fixes RT#44429, reported by Mark Swayne. (hdp)
495 * Moose::Manual::Attributes
496 - Remove references to triggers receving the meta-attribute object as an
499 * Moose::Cookbook::FAQ
500 - Remove recommendation for deprecated Moose::Policy and
501 Moose::Policy::FollowPBP; recommend MooseX::FollowPBP
504 * Many methods have been renamed with a leading underscore, and a
505 few have been deprecated entirely. The methods with a leading
506 underscore are consider "internals only". People writing
507 subclasses or extensions to Moose should feel free to override
508 them, but they are not for "public" use.
511 - check_metaclass_compatibility => _check_metaclass_compatibility
513 - Moose::Meta::Method::Accessor
514 - initialize_body => _initialize_body (this is always called
515 when an object is constructed)
516 - /(generate_.*_method(?:_inline)?)/ => '_' . $1
518 - Moose::Meta::Method::Constructor
519 - initialize_body => _initialize_body (this is always called
520 when an object is constructed)
521 - /(generate_constructor_method(?:_inline)?)/ => '_' . $1
522 - attributes => _attributes (now inherited from parent)
523 - meta_instance => _meta_instance (now inherited from parent)
526 - alias_method is deprecated. Use add_method
528 0.73 Fri, March 29, 2009
529 * No changes from 0.72_01.
531 0.72_01 Thu, March 26, 2009
533 - Almost every module has complete API documentation. A few
534 methods (and even whole classes) have been intentionally
535 excluded pending some rethinking of their APIs.
537 * Moose::Util::TypeConstraints
538 - Calling subtype with a name as the only argument is now an
539 exception. If you want an anonymous subtype do:
541 my $subtype = subtype as 'Foo';
543 * Moose::Cookbook::Meta::Recipe7
544 - A new recipe, creating a custom meta-instance class.
546 * Moose::Cookbook::Basics::Recipe5
547 - Fix various typos and mistakes. Includes a patch from Radu
550 * Moose::Cookbook::Basics::Recipe9
551 - Link to this recipe from Moose.pm's builder blurb
554 - When wrapping a function with a prototype, Moose::Exporter now
555 makes sure the wrapped function still has the same
556 prototype. (Daisuke Maki)
558 * Moose::Meta::Attribute
559 - Allow a subclass to set lazy_build for an inherited
563 - Explicitly depend on Data::OptList. We already had this dependency
564 via Sub::Exporter, but since we're using it directly we're
565 better off with it listed. (Sartak)
567 * Moose::Meta::Method::Constructor
568 - Make it easier to subclass the inlining behaviour. (Ash
571 * Moose::Manual::Delta
572 - Details significant changes in the history of Moose, along
573 with recommended workarounds.
575 * Moose::Manual::Contributing
576 - Contributor's guide to Moose.
578 * Moose::Meta::Method::Constructor
579 - The long-deprecated intialize_body method has been removed
580 (yes, spelled like that).
582 * Moose::Meta::Method::Destructor
583 - This is_needed method is now always a class method.
586 - Changes to the internals of how make_immutable works to match
587 changes in latest Class::MOP.
589 0.72 Mon, February 23, 2009
591 * Moose::Meta::Method::Constructor
592 - A mutable class accepted Foo->new(undef) without complaint,
593 while an immutable class would blow up with an unhelpful
594 error. Now, in both cases we throw a helpful error
595 instead. Reported by doy.
597 0.71_01 Sun, February 22, 2009
599 - Hopefully fixed some POD errors in a few recipes that caused
600 them to display weird on search.cpan.org.
602 * Moose::Util::TypeConstraints
603 - Calling type or subtype without the sugar helpers (as, where,
604 message) is now deprecated.
605 - The subtype function tried hard to guess what you meant, but
606 often got it wrong. For example:
608 my $subtype = subtype as 'ArrayRef[Object]';
610 This caused an error in the past, but now works as you'd
614 - Make sure Moose.pm is loaded before calling
615 Moose->throw_error. This wasn't normally an issue, but could
616 bite you in weird cases.
618 0.71 Thu, February 19, 2009
619 * Moose::Cookbook::Basics::Recipe11
620 - A new recipe which demonstrates the use of BUILDARGS and
623 * Moose::Cookbook::Roles::Recipe3
624 - A new recipe, applying a role to an object instance. (Dave
628 - Allow overriding specific keywords from "also" packages. (doy)
631 - Replace hardcoded cookbook tests with Test::Inline to ensure
632 the tests match the actual code in the recipes. (Dave Rolsky)
635 - Working on the above turned up a number of little bugs in the
636 recipe code. (Dave Rolsky)
638 * Moose::Util::TypeConstraints::Optimized
639 - Just use Class::MOP for the optimized ClassName check. (Dave
642 0.70 Sat, February 14, 2009
643 * Moose::Util::TypeConstraints
644 - Added the RoleName type (stevan)
645 - added tests for this (stevan)
647 * Moose::Cookbook::Basics::Recipe3
648 - Updated the before qw[left right] sub to be a little more
649 defensive about what it accepts (stevan)
650 - added more tests to t/000_recipies/basics/003_binary_tree.t
654 - We now always call DEMOLISHALL, even if a class does not
655 define DEMOLISH. This makes sure that method modifiers on
656 DEMOLISHALL work as expected. (doy)
657 - added tests for this (EvanCarroll)
659 * Moose::Util::MetaRole
660 - Accept roles for the wrapped_method_metaclass (rafl)
661 - added tests for this (rafl)
663 * Moose::Meta::Attribute
664 - We no longer pass the meta-attribute object as a final
665 argument to triggers. This actually changed for inlined code a
666 while back, but the non-inlined version and the docs were
670 - Some tests tried to use Test::Warn 0.10, which had bugs. Now
671 they require 0.11. (Dave Rolsky)
674 - Lots of small changes to the manual, cookbook, and
675 elsewhere. These were based on feedback from various
676 users, too many to list here. (Dave Rolsky)
678 0.69 Thu, February 12, 2009
680 - Make some keyword errors use throw_error instead of croak
681 since Moose::Exporter wraps keywords now (Sartak)
684 - Revised every recipe for style and clarity. Also moved some
685 documentation out of cookbook recipes and into Moose::Manual
686 pages. This work was funded as part of the Moose docs grant
687 from TPF. (Dave Rolsky)
689 * Moose::Meta::Method::Delegation
690 - If the attribute doing the delegation was not populated, the
691 error message did not specify the attribute name
694 0.68 Wed, February 4, 2009
696 - Many spelling, typo, and formatting fixes by daxim.
698 * Moose::Manual::Attributes
699 - The NAME section in the POD used "Attribute" so search.cpan
700 didn't resolve links from other documents properly.
702 * Moose::Meta::Method::Overriden
703 - Now properly spelled as Overridden. Thanks to daxim for
706 0.67 Tue, February 3, 2009
708 - Lots of little typo fixes and a few clarifications. Several
709 pages didn't have proper titles, and so weren't actually
710 visible on search.cpan.org. Thanks to hanekomu for a variety
711 of fixes and formatting improvements.
713 0.66 Tue, February 3, 2009
715 - This is a brand new, extensive manual for Moose. This aims to
716 provide a complete introduction to all of Moose's
717 features. This work was funded as part of the Moose docs grant
718 from TPF. (Dave Rolsky)
720 * Moose::Meta::Attribute
721 - Added a delegation_metaclass method to replace a hard-coded
722 use of Moose::Meta::Method::Delegation. (Dave Rolsky)
724 * Moose::Util::TypeConstraints
725 - If you created a subtype and passed a parent that Moose didn't
726 know about, it simply ignored the parent. Now it automatically
727 creates the parent as a class type. This may not be what you
728 want, but is less broken than before. (Dave Rolsky)
730 * Moose::Util::TypeConstraints
731 - This module tried throw errors by calling Moose->throw_error,
732 but it did not ensure that Moose was loaded first. This could
733 cause very unhelpful errors when it tried to throw an error
734 before Moose was loaded. (Dave Rolsky)
736 * Moose::Util::TypeConstraints
737 - You could declare a name with subtype such as "Foo!Bar" that
738 would be allowed, but if you used it in a parameterized type
739 such as "ArrayRef[Foo!Bar]" it wouldn't work. We now do some
740 vetting on names created via the sugar functions, so that they
741 can only contain alphanumerics, ":", and ".". (Dave Rolsky)
743 0.65 Thu, January 22, 2008
744 * Moose and Moose::Meta::Method::Overridden
745 - If an overridden method called super(), and then the
746 superclass's method (not overridden) _also_ called super(),
747 Moose went into an endless recursion loop. Test provided by
748 Chris Prather. (Dave Rolsky)
750 * Moose::Meta::TypeConstraint
751 - All methods are now documented. (gphat)
753 * t/100_bugs/011_DEMOLISH_eats_exceptions.t
754 - Fixed some bogus failures that occurred because we tried to
755 validate filesystem paths in a very ad-hoc and
756 not-quite-correct way. (Dave Rolsky)
758 * Moose::Util::TypeConstraints
759 - Added maybe_type to exports. See docs for details. (rjbs)
762 - Added Moose::Util::TypeConstraints to the SEE ALSO
766 - Methods created via an attribute can now fulfill a "requires"
767 declaration for a role. (nothingmuch)
769 * Moose::Meta::Method::*
770 - Stack traces from inlined code will now report its line and
771 file as being in your class, as opposed to in Moose
774 0.64 Wed, December 31, 2008
775 * Moose::Meta::Method::Accessor
776 - Always inline predicate and clearer methods (Sartak)
778 * Moose::Meta::Attribute
779 - Support for parameterized traits (Sartak)
780 - verify_against_type_constraint method to avoid duplication
781 and enhance extensibility (Sartak)
784 - Tests (but no support yet) for parameterized traits (Sartak)
787 - Require Class::MOP 0.75+, which has the side effect of making
788 sure we work on Win32. (Dave Rolsky)
790 0.63 Mon, December 8, 2008
792 - Some small grammar tweaks and bug fixes in non-Moose example
795 0.62_02 Fri, December 5, 2008
796 * Moose::Meta::Role::Application::ToClass
797 - When a class does not provide all of a role's required
798 methods, the error thrown now mentions all of the missing
799 methods, as opposed to just the first one found. Requested by
800 Curtis Poe (RT #41119). (Dave Rolsky)
802 * Moose::Meta::Method::Constructor
803 - Moose will no longer inline a constructor for your class
804 unless it inherits its constructor from Moose::Object, and
805 will warn when it doesn't inline. If you want to force
806 inlining anyway, pass "replace_constructor => 1" to
807 make_immutable. Addresses RT #40968, reported by Jon
808 Swartz. (Dave Rolsky)
809 - The quoting of default values could be broken if the default
810 contained a single quote ('). Now we use quotemeta to escape
811 anything potentially dangerous in the defaults. (Dave Rolsky)
813 0.62_01 Wed, December 3, 2008
815 - use the method->execute API for BUILDALL
816 and DEMOLISHALL (Sartak)
818 * Moose::Util::TypeConstraints
819 - We now make all the type constraint meta classes immutable
820 before creating the default types provided by Moose. This
821 should make loading Moose a little faster. (Dave Rolsky)
823 0.62 Wed November 26, 2008
824 * Moose::Meta::Role::Application::ToClass
825 Moose::Meta::Role::Application::ToRole
826 - fixed issues where excluding and aliasing the
827 same methods for a single role did not work
828 right (worked just fine with multiple
830 - added test for this (stevan)
832 * Moose::Meta::Role::Application::RoleSummation
833 - fixed the error message when trying to compose
834 a role with a role it excludes (Sartak)
837 - Catch another case where recursion caused the value
838 of $CALLER to be stamped on (t0m)
839 - added test for this (t0m)
842 - Remove the make_immutable keyword, which has been
843 deprecated since April. It breaks metaclasses that
844 use Moose without no Moose (Sartak)
846 * Moose::Meta::Attribute
847 - Removing an attribute from a class now also removes delegation
848 (handles) methods installed for that attribute (t0m)
849 - added test for this (t0m)
851 * Moose::Meta::Method::Constructor
852 - An attribute with a default that looked like a number (but was
853 really a string) would accidentally be treated as a number
854 when the constructor was made immutable (perigrin)
855 - added test for this (perigrin)
858 - create method for constructing a role
860 - added test for this (Sartak)
861 - anonymous roles! (Sartak)
862 - added test for this (Sartak)
865 - more consistent error messages (Sartak)
867 * Moose::Cookbook::Roles::Recipe1
868 - attempt to explain why a role that just requires
869 methods is useful (Sartak)
871 0.61 Fri November 7, 2008
872 * Moose::Meta::Attribute
873 - When passing a role to handles, it will be loaded if necessary
877 - Method objects returned by get_method (and other methods)
878 Could end up being returned without an associated_metaclass
879 attribute. Removing get_method_map, which is provided by
880 Class::MOP::Class, fixed this. The Moose version did nothing
881 different from its parent except introduce a bug. (Dave Rolsky)
882 - added tests for this (jdv79)
885 - Added a $VERSION to all .pm files which didn't have one. Fixes
886 RT #40049, reported by Adam Kennedy. (Dave Rolsky)
888 * Moose::Cookbook::Basics::Recipe4
889 * Moose::Cookbook::Basics::Recipe6
890 - These files had spaces on the first line of the SYNOPSIS, as
891 opposed to a totally empty line. According to RT #40432, this
892 confuses POD parsers. (Dave Rolsky)
894 0.60 Fri October 24, 2008
896 - Passing "-traits" when loading Moose caused the Moose.pm
897 exports to be broken. Reported by t0m. (Dave Rolsky)
898 - Tests for this bug. (t0m)
901 - Change resolve_metaclass alias to use the new
902 load_first_existing_class function. This makes it a lot
903 simpler, and also around 5 times faster. (t0m)
904 - Add caching to resolve_metaclass_alias, which gives an order
905 of magnitude speedup to things which repeatedly call the
906 Moose::Meta::Attribute->does method, notably MooseX::Storage
909 * Moose::Util::TypeConstraint
910 - Put back the changes for parameterized constraints that
911 shouldn't have been removed in 0.59. We still cannot parse
912 them, but MooseX modules can create them in some other
913 way. See the 0.58 changes for more details. (jnapiorkowski)
914 - Changed the way subtypes are created so that the job is
915 delegated to a type constraint parent. This clears up some
916 hardcoded checking and should allow correct subtypes of
917 Moose::Meta::Type::Constraint. Don't rely on this new API too
918 much (create_child_type) because it may go away in the
919 future. (jnapiorkowski)
921 * Moose::Meta::TypeConstraint::Union
922 - Type constraint names are sorted as strings, not numbers.
925 * Moose::Meta::TypeConstraint::Parameterizable
926 - New parameterize method. This can be used as a factory method
927 to make a new type constraint with a given parameterized
928 type. (jnapiorkowski)
929 - added tests (jnapiorkowski)
931 0.59 Tue October 14, 2008
933 - Add abridged documentation for builder/default/initializer/
934 predicate, and link to more details sections in
935 Class::MOP::Attribute. (t0m)
937 * Moose::Util::TypeConstraints
938 - removed prototypes from all but the &-based stuff (mst)
940 * Moose::Util::TypeConstraints
941 - Creating a anonymous subtype with both a constraint and a
942 message failed with a very unhelpful error, but should just
943 work. Reported by t0m. (Dave Rolsky)
946 - Some tests that used Test::Warn if it was available failed
947 with older versions of Test::Warn. Reported by Fayland. (Dave
949 - Test firing behavior of triggers in relation to builder/default/
951 - Test behavior of equals/is_a_type_of/is_a_subtype_of for all
952 kinds of supported type. (t0m)
955 - In create(), do not pass "roles" option to the superclass
956 - added related test that creates an anon metaclass with
959 * Moose::Meta::TypeConstraint::Class
960 * Moose::Meta::TypeConstraint::Role
961 - Unify behavior of equals/is_a_type_of/is_a_subtype_of with
962 other types (as per change in 0.55_02). (t0m)
964 * Moose::Meta::TypeConstraint::Registry
965 - Fix warning when dealing with unknown type names (t0m)
967 * Moose::Util::TypeConstraints
968 - Reverted changes from 0.58 related to handle parameterized
969 types. This caused random failures on BSD and Win32 systems,
970 apparently related to the regex engine. This means that Moose
971 can no longer parse structured type constraints like
972 ArrayRef[Int,Int] or HashRef[name=>Str]. This will be
973 supported in a slightly different way via MooseX::Types some
974 time in the future. (Dave Rolsky)
976 0.58 Sat September 20, 2008
977 !! This release has an incompatible change regarding !!
978 !! how roles add methods to a class !!
980 * Roles and role application
981 ! Roles now add methods by calling add_method, not
982 alias_method. They make sure to always provide a method
983 object, which will be cloned internally. This means that it is
984 now possible to track the source of a method provided by a
985 role, and even follow its history through intermediate roles.
987 This means that methods added by a role now show up when
988 looking at a class's method list/map. (Dave Rolsky)
991 - From this release on, we'll try to maintain a list of
992 conflicting modules, and warn you if you have one
993 installed. For example, this release conflicts with ...
994 - MooseX::Singleton <= 0.11
995 - MooseX::Params::Validate <= 0.05
998 In general, we try to not break backwards compatibility for
999 most Moose users, but MooseX modules and other code which
1000 extends Moose's metaclasses is often affected by very small
1001 changes in the Moose internals.
1003 * Moose::Meta::Method::Delegation
1004 * Moose::Meta::Attribute
1005 - Delegation methods now have their own method class. (Dave
1008 * Moose::Meta::TypeConstraint::Parameterizable
1009 - Added a new method 'parameterize' which is basically a factory
1010 for the containing constraint. This makes it easier to create
1011 new types of parameterized constraints. (jnapiorkowski)
1013 * Moose::Meta::TypeConstraint::Union
1014 - Changed the way Union types canonicalize their names to follow
1015 the normalized TC naming rules, which means we strip all
1016 whitespace. (jnapiorkowski)
1018 * Moose::Util::TypeConstraints
1019 - Parameter and Union args are now sorted, this makes Int|Str
1020 the same constraint as Str|Int. (jnapiorkowski)
1021 - Changes to the way Union types are parsed to more correctly
1022 stringify their names. (jnapiorkowski)
1023 - When creating a parameterized type, we now use the new
1024 parameterize method. (jnapiorkowski)
1025 - Incoming type constraint strings are now normalized to remove
1026 all whitespace differences. (jnapiorkowski)
1027 - Changed the way we parse type constraint strings so that we now
1028 match TC[Int,Int,...] and TC[name=>Str] as parameterized type
1029 constraints. This lays the foundation for more flexible type
1030 constraint implementations.
1032 * Tests and docs for all the above. (jnapiorkowski)
1036 - Moose::Exporter will no longer remove a subroutine that the
1037 exporting package re-exports. Moose re-exports the
1038 Carp::confess function, among others. The reasoning is that we
1039 cannot know whether you have also explicitly imported those
1040 functions for your own use, so we err on the safe side and
1041 always keep them. (Dave Rolsky)
1042 - added tests for this (rafl)
1044 * Moose::Meta::Class
1045 - Changes to how we fix metaclass compatibility that are much
1046 too complicated to go into. The summary is that Moose is much
1047 less likely to complain about metaclass incompatibility
1048 now. In particular, if two metaclasses differ because
1049 Moose::Util::MetaRole was used on the two corresponding
1050 classes, then the difference in roles is reconciled for the
1051 subclass's metaclass. (Dave Rolsky)
1052 - Squashed an warning in _process_attribute (thepler)
1055 - throw exceptions (sooner) for invalid attribute names (thepler)
1056 - added tests for this (thepler)
1058 * Moose::Util::MetaRole
1059 - If you explicitly set a constructor or destructor class for a
1060 metaclass object, and then applied roles to the metaclass,
1061 that explicitly set class would be lost and replaced with the
1064 * Moose::Meta::Class
1065 * Moose::Meta::Attribute
1066 * Moose::Meta::Method
1069 * Moose::Error::Default
1070 * Moose::Error::Croak
1071 * Moose::Error::Confess
1072 - All instances of confess() changed to use overridable
1073 C<throw_error> method. This method ultimately calls a class
1074 constructor, and you can change the class being called. In
1075 addition, errors now pass more information than just a string.
1076 The default C<error_class> behaves like C<Carp::confess>, so
1077 the behavior is not visibly different for end users.
1079 0.57 Wed September 3, 2008
1081 - A new bit of doc intended to introduce folks familiar with
1082 "standard" Perl 5 OO to Moose concepts. (Dave Rolsky)
1084 * Moose::Unsweetened
1085 - Shows examples of two classes, each done first with and then
1086 without Moose. This makes a nice parallel to
1087 Moose::Intro. (Dave Rolsky)
1089 * Moose::Util::TypeConstraints
1090 - Fixed a bug in find_or_parse_type_constraint so that it
1091 accepts a Moose::Meta::TypeConstraint object as the parent
1092 type, not just a name (jnapiorkowski)
1093 - added tests (jnapiorkowski)
1096 - If Sub::Name was not present, unimporting failed to actually
1097 remove some sugar subs, causing test failures (Dave Rolsky)
1099 0.56 Mon September 1, 2008
1100 For those not following the series of dev releases, there are
1101 several major changes in this release of Moose.
1102 ! Moose::init_meta should now be called as a method. See the
1105 - Major performance improvements by nothingmuch.
1107 - New modules for extension writers, Moose::Exporter and
1108 Moose::Util::MetaRole by Dave Rolsky.
1110 - Lots of doc improvements and additions, especially in the
1113 - Various bug fixes.
1115 * Removed all references to the experimental-but-no-longer-needed
1116 Moose::Meta::Role::Application::ToMetaclassInstance.
1118 * Require Class::MOP 0.65.
1120 0.55_04 Sat August 30, 2008
1121 * Moose::Util::MetaRole
1122 * Moose::Cookbook::Extending::Recipe2
1123 - This simplifies the application of roles to any meta class, as
1124 well as the base object class. Reimplemented metaclass traits
1125 using this module. (Dave Rolsky)
1127 * Moose::Cookbook::Extending::Recipe1
1128 - This a new recipe, an overview of various ways to write Moose
1129 extensions (Dave Rolsky)
1131 * Moose::Cookbook::Extending::Recipe3
1132 * Moose::Cookbook::Extending::Recipe4
1133 - These used to be Extending::Recipe1 and Extending::Recipe2,
1136 0.55_03 Fri August 29, 2008
1137 * No changes from 0.55_02 except increasing the Class::MOP
1138 dependency to 0.64_07.
1140 0.55_02 Fri August 29, 2008
1141 * Makefile.PL and Moose.pm
1142 - explicitly require Perl 5.8.0+ (Dave Rolsky)
1144 * Moose::Util::TypeConstraints
1145 - Fix warnings from find_type_constraint if the type is not
1148 * Moose::Meta::TypeConstraint
1149 - Predicate methods (equals/is_a_type_of/is_subtype_of) now
1150 return false if the type you specify cannot be found in the
1151 type registry, rather than throwing an unhelpful and
1152 coincidental exception. (t0m).
1153 - added docs & test for this (t0m)
1155 * Moose::Meta::TypeConstraint::Registry
1156 - add_type_constraint now throws an exception if a parameter is
1158 - added docs & test for this (t0m)
1160 * Moose::Cookbook::FAQ
1161 - Added a faq entry on the difference between "role" and "trait"
1165 - Fixed a bug that caused role composition to not see a required
1166 method when that method was provided by another role being
1167 composed at the same time. (Dave Rolsky)
1168 - test and bug finding (tokuhirom)
1170 0.55_01 Wed August 20, 2008
1172 !! Calling Moose::init_meta as a function is now !!
1173 !! deprecated. Please see the Moose.pm docs for details. !!
1175 * Moose::Meta::Method::Constructor
1176 - Fix inlined constructor so that values produced by default
1177 or builder methods are coerced as required. (t0m)
1178 - added test for this (t0m)
1180 * Moose::Meta::Attribute
1181 - A lazy attribute with a default or builder did not attempt to
1182 coerce the default value. The immutable code _did_
1184 - added test for this (t0m)
1187 - This is a new helper module for writing "Moose-alike"
1188 modules. This should make the lives of MooseX module authors
1189 much easier. (Dave Rolsky)
1192 * Moose::Cookbook::Meta::Recipe5
1193 - Implemented metaclass traits (and wrote a recipe for it):
1195 use Moose -traits => 'Foo'
1197 This should make writing small Moose extensions a little
1198 easier (Dave Rolsky)
1200 * Moose::Cookbook::Basics::Recipe1
1201 - Removed any examples of direct hashref access, and applied an
1202 editorial axe to reduce verbosity. (Dave Rolsky)
1204 * Moose::Cookbook::Basics::Recipe1
1205 - Also applied an editorial axe here. (Dave Rolsky)
1208 * Moose::Cookbook::Extending::Recipe1
1209 * Moose::Cookbook::Extending::Recipe2
1210 - Rewrote extending and embedding moose documentation and
1211 recipes to use Moose::Exporter (Dave Rolsky)
1215 - These two modules now warn when you load them from the main
1216 package "main" package, because we will not export sugar to
1217 main. Previously it just did nothing. (Dave Rolsky)
1220 - Now provide an init_meta method just like Moose.pm, and you
1221 can call this to provide an alternate role metaclass. (Dave
1222 Rolsky and nothingmuch)
1223 - get_method_map now respects the package cache flag (nothingmuch)
1226 - Two new methods - add_method and wrap_method_body
1230 - Optimizations including allowing constructors to accept hash
1231 refs, making many more classes immutable, and making
1232 constructors immutable. (nothingmuch)
1234 0.55 Sun August 3, 2008
1235 * Moose::Meta::Attribute
1236 - breaking down the way 'handles' methods are
1237 created so that the process can be more easily
1238 overridden by subclasses (stevan)
1240 * Moose::Meta::TypeConstraint
1241 - fixing what is passed into a ->message with
1242 the type constraints (RT #37569)
1243 - added tests for this (Charles Alderman)
1245 * Moose::Util::TypeConstraints
1246 - fix coerce to accept anon types like subtype can (mst)
1249 - reorganized the recipes into sections - Basics, Roles, Meta,
1250 Extending - and wrote abstracts for each section (Dave Rolsky)
1252 * Moose::Cookbook::Basics::Recipe10
1253 - A new recipe that demonstrates operator overloading
1254 in combination with Moose. (bluefeet)
1256 * Moose::Cookbook::Meta::Recipe1
1257 - an introduction to what meta is and why you'd want to make
1258 your own metaclass extensions (Dave Rolsky)
1260 * Moose::Cookbook::Meta::Recipe4
1261 - a very simple metaclass example (Dave Rolsky)
1263 * Moose::Cookbook::Extending::Recipe1
1264 - how to write a Moose-alike module to use your own object base
1267 * Moose::Cookbook::Extending::Recipe2
1268 - how to write modules with an API just like C<Moose.pm> (Dave
1272 - Tons of fixes, both syntactical and grammatical (Dave
1273 Rolsky, Paul Fenwick)
1275 0.54 Thurs. July 3, 2008
1276 ... this is not my day today ...
1278 * Moose::Meta::Attribute
1279 - fixed legal_options_for_inheritance such that
1280 clone_and_inherit options still works for
1281 Class::MOP::Attribute objects and therefore
1282 does not break MooseX::AttributeHelpers
1285 0.53 Thurs. July 3, 2008
1286 * Whoops, I guess I should run 'make manifest' before
1287 actually releasing the module. No actual changes
1288 in this release, except the fact that it includes
1289 the changes that I didn't include in the last
1292 0.52 Thurs. July 3, 2008
1294 - added "FEATURE REQUESTS" section to the Moose docs
1295 to properly direct people (stevan) (RT #34333)
1296 - making 'extends' croak if it is passed a Role since
1297 this is not ever something you want to do
1298 (fixed by stevan, found by obra)
1299 - added tests for this (stevan)
1302 - adding support for DOES (as in UNIVERSAL::DOES)
1304 - added test for this
1306 * Moose::Meta::Attribute
1307 - added legal_options_for_inheritance (wreis)
1308 - added tests for this (wreis)
1310 * Moose::Cookbook::Snacks::*
1311 - removed some of the unfinished snacks that should
1312 not have been released yet. Added some more examples
1313 to the 'Keywords' snack. (stevan)
1315 * Moose::Cookbook::Style
1316 - added general Moose "style guide" of sorts to the
1317 cookbook (nothingmuch) (RT #34335)
1320 - added more BUILDARGS tests (stevan)
1322 0.51 Thurs. Jun 26, 2008
1324 - add unimport so "no Moose::Role" actually does
1327 * Moose::Meta::Role::Application::ToRole
1328 - when RoleA did RoleB, and RoleA aliased a method from RoleB in
1329 order to provide its own implementation, that method still got
1330 added to the list of required methods for consumers of
1331 RoleB. Now an aliased method is only added to the list of
1332 required methods if the role doing the aliasing does not
1333 provide its own implementation. See Recipe 11 for an example
1334 of all this. (Dave Rolsky)
1335 - added tests for this
1337 * Moose::Meta::Method::Constructor
1338 - when a single argument that wasn't a hashref was provided to
1339 an immutabilized constructor, the error message was very
1340 unhelpful, as opposed to the non-immutable error. Reported by
1342 - added test for this (Dave Rolsky)
1344 * Moose::Meta::Attribute
1345 - added support for meta_attr->does("ShortAlias") (sartak)
1346 - added tests for this (sartak)
1347 - moved the bulk of the `handles` handling to the new
1348 install_delegation method (Stevan)
1351 - Added BUILDARGS, a new step in new()
1353 * Moose::Meta::Role::Application::RoleSummation
1354 - fix typos no one ever sees (sartak)
1356 * Moose::Util::TypeConstraints
1357 * Moose::Meta::TypeConstraint
1358 * Moose::Meta::TypeCoercion
1359 - Attempt to work around the ??{ } vs. threads issue
1361 - Some null_constraint optimizations
1363 0.50 Thurs. Jun 11, 2008
1364 - Fixed a version number issue by bumping all modules
1367 0.49 Thurs. Jun 11, 2008
1368 !! This version now approx. 20-25% !!
1369 !! faster with new Class::MOP 0.59 !!
1371 * Moose::Meta::Attribute
1372 - fixed how the is => (ro|rw) works with
1373 custom defined reader, writer and accessor
1375 - added docs for this (TODO).
1376 - added tests for this (Thanks to Penfold)
1377 - added the custom attribute alias for regular
1378 Moose attributes which is "Moose"
1379 - fix builder and default both being used
1384 Moose::Meta::Attribute
1386 Moose::Meta::Role::Composite
1387 Moose::Util::TypeConstraints
1388 - switched usage of reftype to ref because
1392 - changing add_package_symbol to use the new
1396 - fixed how DEMOLISHALL is called so that it
1397 can be overrided in subclasses (thanks to Sartak)
1398 - added test for this (thanks to Sartak)
1400 * Moose::Util::TypeConstraints
1401 - move the ClassName type check code to
1402 Class::MOP::is_class_loaded (thanks to Sartak)
1404 * Moose::Cookbook::Recipe11
1405 - add tests for this (thanks to tokuhirom)
1407 0.48 Thurs. May 29, 2008
1408 (early morning release engineering)--
1410 - fixing the version in Moose::Meta::Method::Destructor
1411 which was causing the indexer to choke
1413 0.47 Thurs. May 29, 2008
1414 (late night release engineering)--
1416 - fixing the version is META.yml, no functional
1417 changes in this release
1419 0.46 Wed. May 28, 2008
1420 !! This version now approx. 20-25% !!
1421 !! faster with new Class::MOP 0.57 !!
1423 * Moose::Meta::Class
1424 - some optimizations of the &initialize method
1425 since it is called so often by &meta
1427 * Moose::Meta::Class
1429 - now use the get_all_package_symbols from the
1430 updated Class::MOP, test suite is now 10 seconds
1433 * Moose::Meta::Method::Destructor
1434 - is_needed can now also be called as a class
1435 method for immutablization to check if the
1436 destructor object even needs to be created
1439 * Moose::Meta::Method::Destructor
1440 Moose::Meta::Method::Constructor
1441 - added more descriptive error message to help
1442 keep people from wasting time tracking an error
1443 that is easily fixed by upgrading.
1445 0.45 Saturday, May 24, 2008
1447 - Because of work in Class::MOP 0.57, all
1448 XS based functionality is now optional
1449 and a Pure Perl version is supplied
1450 - the CLASS_MOP_NO_XS environment variable
1451 can now be used to force non-XS versions
1453 - several of the packages have been tweaked
1454 to take care of this, mostly we added
1455 support for the package_name and name
1456 variables in all the Method metaclasses
1457 - before/around/after method modifiers now
1458 support regexp matching of names
1459 (thanks to Takatoshi Kitano)
1460 - tests added for this
1461 - NOTE: this only works for classes, it
1462 is currently not supported in roles,
1463 but, ... patches welcome
1464 - All usage of Carp::confess have been replaced
1465 by Carp::croak in the "keyword" functions since
1466 the stack trace is usually not helpful
1469 - All usage of Carp::confess have been replaced
1470 by Carp::croak in the "keyword" functions since
1471 the stack trace is usually not helpful
1472 - The 'has' keyword for roles now accepts the
1473 same array ref form that Moose.pm does
1474 (has [qw/foo bar/] => (is => 'rw', ...))
1475 - added test for this
1477 * Moose::Meta::Attribute
1478 - trigger on a ro-attribute is no longer an
1479 error, as it's useful to trigger off of the
1482 * Moose::Meta::Class
1483 - added same 'add_package_symbol' fix as in
1487 - does_role now handles non-Moose classes
1489 - added tests for this
1490 - added the 'add_method_modifier' function
1491 (thanks to Takatoshi Kitano)
1493 * Moose::Util::TypeConstraints
1494 - subtypes of parameterizable types now are
1495 themselves parameterizable types
1497 * Moose::Meta::Method::Constructor
1498 - fixed bug where trigger was not being
1499 called by the inlined immutable
1501 - added test for this (thanks to Caelum)
1503 * Moose::Meta::Role::Application::ToInstance
1504 - now uses the metaclass of the instance
1505 (if possible) to create the anon-class
1506 (thanks Jonathan Rockway)
1508 * Moose::Cookbook::Recipe22
1509 - added the meta-attribute trait recipe
1513 - fixed hash-ordering test bug that was
1514 causing occasional cpantester failures
1515 - renamed the t/000_recipe/*.t tests to be
1516 more descriptive (thanks to Sartak)
1518 0.44 Sat. May 10, 2008
1520 - made make_immutable warning cluck to
1521 show where the error is (thanks mst)
1524 - BUILDALL and DEMOLISHALL now call
1525 ->body when looping through the
1526 methods, to avoid the overloaded
1528 - fixed issue where DEMOLISHALL was
1529 eating the $@ values, and so not
1530 working correctly, it still kind of
1531 eats them, but so does vanilla perl
1532 - added tests for this
1534 * Moose::Cookbook::Recipe7
1535 - added new recipe for immutable
1536 functionality (thanks Dave Rolsky)
1538 * Moose::Cookbook::Recipe9
1539 - added new recipe for builder and
1540 lazy_build (thanks Dave Rolsky)
1542 * Moose::Cookbook::Recipe11
1543 - added new recipe for method aliasing
1544 and exclusion with Roles (thanks Dave Rolsky)
1547 - fixed Win32 test failure (thanks spicyjack)
1549 ~ removed Build.PL and Module::Build compat
1550 since Module::Install has done that.
1552 0.43 Wed. April, 30, 2008
1554 drink more coffee before
1555 doing release engineering
1557 - whoops, forgot to do the smolder tests,
1558 and we broke some of the custom meta-attr
1559 modules. This fixes that.
1561 0.42 Mon. April 28, 2008
1562 - some bad tests slipped by, nothing else
1563 changed in this release (cpantesters++)
1565 - upped the Class::MOP dependency to 0.55
1566 since we have tests which need the C3
1569 0.41 Mon. April 28, 2008
1570 ~~ numerous documentation updates ~~
1572 - Changed all usage of die to Carp::croak for better
1573 error reporting (initial patch by Tod Hagan)
1575 ** IMPORTANT NOTE **
1576 - the make_immutable keyword is now deprecated, don't
1577 use it in any new code and please fix your old code
1578 as well. There will be 2 releases, and then it will
1584 - refactored the way inner and super work to avoid
1585 any method/@ISA cache penalty (nothingmuch)
1587 * Moose::Meta::Class
1588 - fixing &new_object to make sure trigger gets the
1589 coerced value (spotted by Charles Alderman on the
1591 - added test for this
1593 * Moose::Meta::Method::Constructor
1594 - immutable classes which had non-lazy attributes were calling
1595 the default generating sub twice in the constructor. (bug
1596 found by Jesse Luehrs, fixed by Dave Rolsky)
1597 - added tests for this (Dave Rolsky)
1598 - fix typo in initialize_body method (nothingmuch)
1600 * Moose::Meta::Method::Destructor
1601 - fix typo in initialize_body method (nothingmuch)
1603 * Moose::Meta::Method::Overriden
1604 Moose::Meta::Method::Augmented
1605 - moved the logic for these into their own
1606 classes (nothingmuch)
1608 * Moose::Meta::Attribute
1609 - inherited attributes may now be extended without
1610 restriction on the type ('isa', 'does') (Sartak)
1611 - added tests for this (Sartak)
1612 - when an attribute property is malformed (such as lazy without
1613 a default), give the name of the attribute in the error
1615 - added the &applied_traits and &has_applied_traits methods
1616 to allow introspection of traits
1617 - added tests for this
1618 - moved 'trait' and 'metaclass' argument handling to here from
1620 - clone_and_inherit_options now handles 'trait' and 'metaclass' (has
1621 '+foo' syntax) (nothingmuch)
1622 - added tests for this (t0m)
1625 - localize $@ inside DEMOLISHALL to avoid it
1626 eating $@ (found by Ernesto)
1627 - added test for this (thanks to Ernesto)
1629 * Moose::Util::TypeConstraints
1630 - &find_type_constraint now DWIMs when given an
1631 type constraint object or name (nothingmuch)
1632 - &find_or_create_type_constraint superseded with a number of more
1634 - find_or_create_{isa,does}_type_constraint
1635 - find_or_parse_type_constraint
1637 * Moose::Meta::TypeConstraint
1638 Moose::Meta::TypeConstraint::Class
1639 Moose::Meta::TypeConstraint::Role
1640 Moose::Meta::TypeConstraint::Enum
1641 Moose::Meta::TypeConstraint::Union
1642 Moose::Meta::TypeConstraint::Parameterized
1643 - added the &equals method for comparing two type
1644 constraints (nothingmuch)
1645 - added tests for this (nothingmuch)
1647 * Moose::Meta::TypeConstraint
1648 - add the &parents method, which is just an alias to &parent.
1649 Useful for polymorphism with TC::{Class,Role,Union} (nothingmuch)
1651 * Moose::Meta::TypeConstraint::Class
1652 - added the class attribute for introspection purposes
1654 - added tests for this
1656 * Moose::Meta::TypeConstraint::Enum
1657 Moose::Meta::TypeConstraint::Role
1658 - broke these out into their own classes (nothingmuch)
1660 * Moose::Cookbook::Recipe*
1661 - fixed references to test file locations in the POD
1662 and updated up some text for new Moose features
1666 - Added &resolve_metaclass_alias, a helper function for finding an actual
1667 class for a short name (e.g. in the traits list)
1669 0.40 Fri. March 14, 2008
1670 - I hate Pod::Coverage
1672 0.39 Fri. March 14, 2008
1674 - documenting the use of '+name' with attributes
1675 that come from recently composed roles. It makes
1676 sense, people are using it, and so why not just
1677 officially support it.
1678 - fixing the 'extends' keyword so that it will not
1679 trigger Ovid's bug (http://use.perl.org/~Ovid/journal/35763)
1682 - added the perl -Moose=+Class::Name feature to allow
1683 monkeypatching of classes in one liners
1686 - fixing the 'apply_all_roles' keyword so that it will not
1687 trigger Ovid's bug (http://use.perl.org/~Ovid/journal/35763)
1689 * Moose::Meta::Class
1690 - added ->create method which now supports roles (thanks to jrockway)
1691 - added tests for this
1692 - added ->create_anon_class which now supports roles and caching of
1693 the results (thanks to jrockway)
1694 - added tests for this
1695 - made ->does_role a little more forgiving when it is
1696 checking a Class::MOP era metaclasses.
1698 * Moose::Meta::Role::Application::ToInstance
1699 - it is now possible to pass extra params to be used when
1700 a role is applied to an the instance (rebless_params)
1701 - added tests for this
1703 * Moose::Util::TypeConstraints
1704 - class_type now accepts an optional second argument for a
1705 custom message. POD anotated accordingly (groditi)
1706 - added tests for this
1707 - it is now possible to make anon-enums by passing 'enum' an
1708 ARRAY ref instead of the $name => @values. Everything else
1710 - added tests for this
1713 - making test for using '+name' on attributes consumed
1714 from a role, it works and makes sense too.
1716 * Moose::Meta::Attribute
1717 - fix handles so that it doesn't return nothing
1718 when the method cannot be found, not sure why
1719 it ever did this originally, this means we now
1720 have slightly better support for AUTOLOADed
1722 - added more delegation tests
1723 - adding ->does method to this so as to better
1724 support traits and their introspection.
1725 - added tests for this
1728 - localizing the Data::Dumper configurations so
1729 that it does not pollute others (RT #33509)
1730 - made ->does a little more forgiving when it is
1731 passed Class::MOP era metaclasses.
1733 0.38 Fri. Feb. 15, 2008
1734 * Moose::Meta::Attribute
1735 - fixed initializer to correctly do
1736 type checking and coercion in the
1738 - added tests for this
1741 - fixed some finicky tests (thanks to konobi)
1743 0.37 Thurs. Feb. 14, 2008
1745 - fixed some details in Moose::init_meta
1746 and its superclass handling (thanks thepler)
1747 - added tests for this (thanks thepler)
1748 - 'has' now dies if you don't pass in name
1750 - added the 'make_immutable' keyword as a shortcut
1753 * Moose::Meta::Class
1754 Moose::Meta::Method::Constructor
1755 Moose::Meta::Attribute
1756 - making (init_arg => undef) work here too
1757 (thanks to nothingmuch)
1759 * Moose::Meta::Attribute
1760 Moose::Meta::Method::Constructor
1761 Moose::Meta::Method::Accessor
1762 - make lazy attributes respect attr initializers (rjbs)
1763 - added tests for this
1765 * Moose::Util::TypeConstraints
1766 Moose::Util::TypeConstraints::OptimizedConstraints
1767 Moose::Meta::TypeConstraints
1768 Moose::Meta::Attribute
1769 Moose::Meta::Method::Constructor
1770 Moose::Meta::Method::Accessor
1771 - making type errors use the
1772 assigned message (thanks to Sartak)
1773 - added tests for this
1775 * Moose::Meta::Method::Destructor
1776 - making sure DESTROY gets inlined properly
1777 with successive DEMOLISH calls (thanks to manito)
1779 * Moose::Meta::Attribute
1780 Moose::Meta::Method::Accessor
1781 - fixed handling of undef with type constraints
1783 - added tests for this
1786 - added &get_all_init_args and &get_all_attribute_values
1787 (thanks to Sartak and nothingmuch)
1789 0.36 Sat. Jan. 26, 2008
1791 Moose::Meta::Attribute
1792 - role type tests now support when roles are
1793 applied to non-Moose classes (found by ash)
1794 - added tests for this (thanks to ash)
1795 - couple extra tests to boost code coverage
1797 * Moose::Meta::Method::Constructor
1798 - improved fix for handling Class::MOP attributes
1799 - added test for this
1801 * Moose::Meta::Class
1802 - handled the add_attribute($attribute_meta_object)
1804 - added test for this
1806 0.35 Tues. Jan. 22, 2008
1807 * Moose::Meta::Method::Constructor
1808 - fix to make sure even Class::MOP attributes
1809 are handled correctly (Thanks to Dave Rolsky)
1810 - added test for this (also Dave Rolsky)
1812 * Moose::Meta::Class
1813 - improved error message on _apply_all_roles,
1814 you should now use Moose::Util::apply_all_roles
1815 and you shouldnt have been using a _ prefixed
1816 method in the first place ;)
1818 0.34 Mon. Jan. 21, 2008
1819 ~~~ more misc. doc. fixes ~~~
1820 ~~ updated copyright dates ~~
1822 Moose is now a postmodern object system :)
1823 - (see the POD for details)
1825 * <<Role System Refactoring>>
1826 - this release contains a major reworking and
1827 cleanup of the role system
1828 - 100% backwards compat.
1829 - Role application now restructured into seperate
1830 classes based on type of applicants
1831 - Role summation (combining of more than one role)
1832 is much cleaner and anon-classes are no longer
1833 used in this process
1834 - new Composite role metaclass
1835 - runtime application of roles to instances
1836 is now more efficient and re-uses generated
1837 classes when applicable
1839 * <<New Role composition features>>
1840 - methods can now be excluded from a given role
1842 - methods can now be aliased to another name (and
1843 still retain the original as well)
1845 * Moose::Util::TypeConstraints::OptimizedConstraints
1846 - added this module (see above)
1848 * Moose::Meta::Class
1849 - fixed the &_process_attribute method to be called
1850 by &add_attribute, so that the API is now correct
1852 * Moose::Meta::Method::Accessor
1853 - fixed bug when passing a list of values to
1854 an accessor would get (incorrectly) ignored.
1855 Thanks to Sartak for finding this ;)
1856 - added tests for this (Sartak again)
1858 * Moose::Meta::Method::Accessor
1859 Moose::Meta::Method::Constructor
1860 Moose::Meta::Attribute
1861 Moose::Meta::TypeConstraint
1862 Moose::Meta::TypeCoercion
1863 - lots of cleanup of such things as:
1865 - type constraint handling
1866 - error handling/messages
1867 (thanks to nothingmuch)
1869 * Moose::Meta::TypeConstraint::Parameterizable
1870 - added this module to support the refactor
1871 in Moose::Meta::TypeConstraint::Parameterized
1873 * Moose::Meta::TypeConstraint::Parameterized
1874 - refactored how these types are handled so they
1875 are more generic and not confined to ArrayRef
1879 - shortened some file names for better VMS support (RT #32381)
1881 0.33 Fri. Dec. 14, 2007
1882 !! Moose now loads 2 x faster !!
1883 !! with new Class::MOP 0.49 !!
1885 ++ new oose.pm module to make command line
1886 Moose-ness easier (see POD docs for more)
1888 * Moose::Meta::Class
1890 - several tweaks to take advantage of the
1891 new method map caching in Class::MOP
1893 * Moose::Meta::TypeConstraint::Parameterized
1894 - allow subtypes of ArrayRef and HashRef to
1895 be used as a container (sartak)
1896 - added tests for this
1897 - basic support for coercion to ArrayRef and
1898 HashRef for containers (sartak)
1899 - added tests for this
1901 * Moose::Meta::TypeCoercion
1902 - coercions will now create subtypes as needed
1903 so you can now add coercions to parameterized
1904 types without having to explictly define them
1905 - added tests for this
1907 * Moose::Meta::Method::Accessor
1908 - allow subclasses to decide whether we need
1909 to copy the value into a new variable (sartak)
1911 0.32 Tues. Dec. 4, 2007
1912 * Moose::Util::TypeConstraints
1913 - fixing how subtype aliases of unions work
1914 they should inherit the parent's coercion
1915 - added tests for this
1916 - you can now define multiple coercions on
1917 a single type at different times instead of
1918 having to do it all in one place
1919 - added tests for this
1921 * Moose::Meta::TypeConstraint
1922 - there is now a default constraint of sub { 1 }
1923 instead of Moose::Util::TypeConstraints setting
1926 * Moose::Meta::TypeCoercion
1927 * Moose::Meta::TypeCoercion::Union
1928 - added the &has_coercion_for_type and
1929 &add_type_coercions methods to support the
1930 new features above (although you cannot add
1931 more type coercions for Union types)
1933 0.31 Mon. Nov. 26, 2007
1934 * Moose::Meta::Attribute
1935 - made the +attr syntax handle extending types with
1936 parameters. So "has '+foo' => (isa => 'ArrayRef[Int]')"
1937 now works if the original foo is an ArrayRef.
1938 - added tests for this.
1939 - delegation now works even if the attribute does not
1940 have a reader method using the get_read_method_ref
1941 method from Class::MOP::Attribute.
1942 - added tests for this
1943 - added docs for this
1945 * Moose::Util::TypeConstraints
1946 - passing no "additional attribute info" to
1947 &find_or_create_type_constraint will no longer
1948 attempt to create an __ANON__ type for you,
1949 instead it will just return undef.
1950 - added docs for this
1952 0.30 Fri. Nov. 23, 2007
1953 * Moose::Meta::Method::Constructor
1954 -builder related bug in inlined constructor. (groditi)
1956 * Moose::Meta::Method::Accessor
1957 - genereate unnecessary calls to predicates and refactor
1958 code generation for runtime speed (groditi)
1960 * Moose::Util::TypeConstraints
1961 - fix ClassName constraint to introspect symbol table (mst)
1962 - added more tests for this (mst)
1963 - fixed it so that subtype 'Foo' => as 'HashRef[Int]' ...
1964 with work correctly.
1965 - added tests for this
1968 - adding the link to Recipie 11 (written by Sartak)
1969 - adding test for SYNOPSIS code
1972 - New tests for builder bug. Upon instantiation, if an
1973 attribute had a builder, no value and was not lazy the
1974 builder default was not getting run, oops. (groditi)
1976 0.29 Tues. Nov. 13, 2007
1977 * Moose::Meta::Attribute
1978 - Fix error message on missing builder method (groditi)
1980 * Moose::Meta::Method::Accessor
1981 - Fix error message on missing builder method (groditi)
1984 - Add test to check for the correct error message when
1985 builder method is missing (groditi)
1987 0.28 Tues. Nov. 13, 2007
1988 - 0.27 packaged incorrectly (groditi)
1990 0.27 Tues. Nov. 13, 2007
1991 * Moose::Meta::Attribute
1992 - Added support for the new builder option (groditi)
1993 - Added support for lazy_build option (groditi)
1994 - Changed slot initialization for predicate changes (groditi)
1996 * Moose::Meta::Method::Accessor
1997 - Added support for lazy_build option (groditi)
1998 - Fix inline methods to work with corrected predicate
2001 * Moose::Meta::Method::Constructor
2002 - Added support for lazy_build option (groditi)
2005 - tests for builder and lazy_build (groditi)
2007 * fixing some misc. bits in the docs that
2008 got mentioned on CPAN Forum & perlmonks
2011 - fixed how required methods are handled
2012 when they encounter overriden or modified
2013 methods from a class (thanks to confound).
2014 - added tests for this
2016 * Moose::Util::TypeConstraint
2017 - fixed the type notation parser so that
2018 the | always creates a union and so is
2019 no longer a valid type char (thanks to
2020 konobi, mugwump and #moose for working
2022 - added more tests for this
2024 0.26 Thurs. Sept. 27, 2007
2027 * Parameterized Types
2028 We now support parameterized collection types, such as:
2029 ArrayRef[Int] # array or integers
2030 HashRef[Object] # a hash with object values
2031 They can also be nested:
2032 ArrayRef[HashRef[RegexpRef]] # an array of hashes with regex values
2033 And work with the type unions as well:
2034 ArrayRef[Int | Str] # array of integers of strings
2036 * Better Framework Extendability
2037 Moose.pm is now "extendable" such that it is now much
2038 easier to extend the framework and add your own keywords
2039 and customizations. See the "EXTENDING AND EMBEDDING MOOSE"
2040 section of the Moose.pm docs.
2043 In an effort to begin documenting some of the various
2044 details of Moose as well as some common idioms, we have
2045 created Moose::Cookbook::Snacks as a place to find
2046 small (easily digestable) nuggets of Moose code.
2049 ~ Several doc updates/cleanup thanks to castaway ~
2051 - converted build system to use Module::Install instead of
2052 Module::Build (thanks to jrockway)
2055 - added all the meta classes to the immutable list and
2056 set it to inline the accessors
2057 - fix import to allow Sub::Exporter like { into => }
2058 and { into_level => } (perigrin)
2059 - exposed and documented init_meta() to allow better
2060 embedding and extending of Moose (perigrin)
2063 - complete re-organization of the test suite
2064 - added some new tests as well
2065 - finally re-enabled the Moose::POOP test since
2066 the new version of DBM::Deep now works again
2069 * Moose::Meta::Class
2070 - fixed very odd and very nasty recursion bug with
2072 - added tests for this (eilara)
2074 * Moose::Meta::Attribute
2075 Moose::Meta::Method::Constructor
2076 Moose::Meta::Method::Accessor
2077 - fixed issue with overload::Overloaded getting called
2078 on non-blessed items. (RT #29269)
2079 - added tests for this
2081 * Moose::Meta::Method::Accessor
2082 - fixed issue with generated accessor code making
2083 assumptions about hash based classes (thanks to dexter)
2085 * Moose::Coookbook::Snacks
2086 - these are bits of documentation, not quite as big as
2087 Recipes but which have no clear place in the module docs.
2088 So they are Snacks! (horray for castaway++)
2090 * Moose::Cookbook::Recipe4
2091 - updated it to use the new ArrayRef[MyType] construct
2092 - updated the accompanying test as well
2094 +++ Major Refactor of the Type Constraint system +++
2095 +++ with new features added as well +++
2097 * Moose::Util::TypeConstraint
2098 - no longer uses package variable to keep track of
2099 the type constraints, now uses the an instance of
2100 Moose::Meta::TypeConstraint::Registry to do it
2101 - added more sophisticated type notation parsing
2103 - added tests for this
2105 * Moose::Meta::TypeConstraint
2106 - some minor adjustments to make subclassing easier
2107 - added the package_defined_in attribute so that we
2108 can track where the type constraints are created
2110 * Moose::Meta::TypeConstraint::Union
2111 - this is now been refactored to be a subclass of
2112 Moose::Meta::TypeConstraint
2114 * Moose::Meta::TypeCoercion::Union
2115 - this has been added to service the newly refactored
2116 Moose::Meta::TypeConstraint::Union and is itself
2117 a subclass of Moose::Meta::TypeCoercion
2119 * Moose::Meta::TypeConstraint::Parameterized
2120 - added this module (taken from MooseX::AttributeHelpers)
2121 to help construct nested collection types
2122 - added tests for this
2124 * Moose::Meta::TypeConstraint::Registry
2125 - added this class to keep track of type constraints
2127 0.25 Mon. Aug. 13, 2007
2129 - Documentation update to reference Moose::Util::TypeConstraints
2130 under 'isa' in 'has' for how to define a new type
2131 (thanks to shlomif).
2133 * Moose::Meta::Attribute
2134 - required attributes now will no longer accept undef
2135 from the constructor, even if there is a default and lazy
2136 - added tests for this
2137 - default subroutines must return a value which passes the
2139 - added tests for this
2141 * Moose::Meta::Attribute
2142 * Moose::Meta::Method::Constructor
2143 * Moose::Meta::Method::Accessor
2144 - type-constraint tests now handle overloaded objects correctly
2145 in the error message
2146 - added tests for this (thanks to EvanCarroll)
2148 * Moose::Meta::TypeConstraint::Union
2149 - added (has_)hand_optimized_constraint to this class so that
2150 it behaves as the regular Moose::Meta::TypeConstraint does.
2153 - large refactoring of this code
2154 - added several more tests
2155 - tests for subtle conflict resolition issues
2156 added, but not currently running
2159 * Moose::Cookbook::Recipe7
2160 - added new recipe for augment/inner functionality
2162 - added test for this
2165 - a formal definition of roles (still in progress)
2168 - utilities for easier working with Moose classes
2169 - added tests for these
2172 - This contains Moose specific test functions
2173 - added tests for these
2175 0.24 Tues. July 3, 2007
2176 ~ Some doc updates/cleanup ~
2178 * Moose::Meta::Attribute
2179 - added support for roles to be given as parameters
2180 to the 'handles' option.
2181 - added tests and docs for this
2182 - the has '+foo' attribute form now accepts changes to
2183 the lazy option, and the addition of a handles option
2184 (but not changing the handles option)
2185 - added tests and docs for this
2188 - required methods are now fetched using find_method_by_name
2189 so that required methods can come from superclasses
2190 - adjusted tests for this
2192 0.23 Mon. June 18, 2007
2193 * Moose::Meta::Method::Constructor
2194 - fix inlined constructor for hierarchy with multiple BUILD methods (mst)
2195 * Moose::Meta::Class
2196 - Modify make_immutable to work with the new Class::MOP immutable
2197 mechanism + POD + very basic test (groditi)
2198 * Moose::Meta::Attribute
2199 - Fix handles to use goto() so that caller() comes out properly on
2200 the other side (perigrin)
2202 0.22 Thurs. May 31, 2007
2203 * Moose::Util::TypeConstraints
2204 - fix for prototype undeclared issue when Moose::Util::TypeConstraints
2205 loaded before consumers (e.g. Moose::Meta::Attribute) by predeclaring
2206 prototypes for functions
2207 - added the ClassName type constraint, this checks for strings
2208 which will respond true to ->isa(UNIVERSAL).
2209 - added tests and docs for this
2210 - subtyping just in name now works correctly by making the
2211 default for where be { 1 }
2212 - added test for this
2214 * Moose::Meta::Method::Accessor
2215 - coerce and lazy now work together correctly, thanks to
2216 merlyn for finding this bug
2217 - tests added for this
2218 - fix reader presedence bug in Moose::Meta::Attribute + tests
2221 - Foo->new(undef) now gets ignored, it is assumed you meant to pass
2222 a HASH-ref and missed. This produces better error messages then
2223 having it die cause undef is not a HASH.
2224 - added tests for this
2226 0.21 Thursday, May 2nd, 2007
2228 - added SUPER_SLOT and INNER_SLOT class hashes to support unimport
2229 - modified unimport to remove super and inner along with the rest
2230 - altered unimport tests to handle this
2233 - altered super export to populate SUPER_SLOT
2235 * Moose::Meta::Class
2236 - altered augment and override modifier application to use *_SLOT
2237 - modified tests for these to unimport one test class each to test
2240 - fixed issue where custom attribute metaclasses
2241 where not handled correctly in roles
2242 - added tests for this
2244 * Moose::Meta::Class
2245 - fixed issue where extending metaclasses with
2246 roles would blow up. Thanks to Aankhen`` for
2247 finding this insidious error, and it's solution.
2249 ~~ lots of spelling and grammer fixes in the docs,
2250 many many thanks to rlb3 and Aankhen for these :)
2252 0.20 Friday, April 6th, 2007
2253 >> I messed up the SKIP logic in one test
2254 so this release is just to fix that.
2257 - 'has' now also accepts an ARRAY ref
2258 to create multiple attrs (see docs)
2259 (thanks to konobi for this)
2260 - added tests and docs
2262 0.19 Thurs. April 5th, 2007
2263 ~~ More documentation updates ~~
2265 * Moose::Util::TypeConstraints
2266 - 'type' now supports messages as well
2267 thanks to phaylon for finding this
2268 - added tests for this
2269 - added &list_all_type_constraints and
2270 &list_all_builtin_type_constraints
2271 functions to facilitate introspection.
2273 * Moose::Meta::Attribute
2274 - fixed regexp 'handles' declarations
2275 to build the list of delegated methods
2276 correctly (and not override important
2277 things like &new) thanks to ashleyb
2279 - added tests and docs for this
2280 - added the 'documentation' attributes
2281 so that you can actually document your
2282 attributes and inspect them through the
2284 - added tests and docs for this
2286 * Moose::Meta::Class
2287 - when loading custom attribute metaclasses
2288 it will first look in for the class in the
2289 Moose::Meta::Attribute::Custom::$name, and
2290 then default to just loading $name.
2291 - added tests and docs for this
2293 * Moose::Meta::TypeConstraint
2294 - type constraints now stringify to their names.
2295 - added test for this
2298 - added tests to assure we work with Module::Refresh
2299 - added stricter test skip logic in the Moose POOP
2300 test, ask Rob Kinyon why.
2301 - *cough* DBM::Deep 1.0 backwards compatibility sucks *cough* ;)
2303 0.18 Sat. March 10, 2007
2304 ~~ Many, many documentation updates ~~
2307 - We now use Class::MOP::load_class to
2309 - added tests to show types and subtypes
2310 working with Declare::Constraints::Simple
2311 and Test::Deep as constraint engines.
2314 !! You must have Class::MOP 0.37_001 !!
2315 !! for this developer release to work !!
2317 This release was primarily adding the immutable
2318 feature to Moose. An immutable class is one which
2319 you promise not to alter. When you set the class
2320 as immutable it will perform various bits of
2321 memoization and inline certain part of the code
2322 (constructors, destructors and accessors). This
2323 minimizes (and in some cases totally eliminates)
2324 one of Moose's biggest performance hits. This
2325 feature is not on by default, and is 100% optional.
2326 It has several configurable bits as well, so you
2327 can pick and choose to your specific needs.
2329 The changes involved in this were fairly wide and
2330 highly specific, but 100% backwards compatible, so
2331 I am not going to enumerate them here. If you are
2332 truely interested in what was changed, please do
2335 0.17 Tues. Nov. 14, 2006
2336 * Moose::Meta::Method::Accessor
2337 - bugfix for read-only accessors which
2338 are have a type constraint and lazy.
2339 Thanks to chansen for finding it.
2341 0.16 Tues. Nov. 14, 2006
2343 There are some speed improvements in this release,
2344 but they are only the begining, so stay tuned.
2347 - BUILDALL and DEMOLISHALL no longer get
2348 called unless they actually need to be.
2349 This gave us a signifigant speed boost
2350 for the cases when there is no BUILD or
2351 DEMOLISH method present.
2353 * Moose::Util::TypeConstraints
2354 * Moose::Meta::TypeConstraint
2355 - added an 'optimize_as' option to the
2356 type constraint, which allows for a
2357 hand optimized version of the type
2358 constraint to be used when possible.
2359 - Any internally created type constraints
2360 now provide an optimized version as well.
2362 0.15 Sun. Nov. 5, 2006
2364 This version of Moose *must* have Class::MOP 0.36 in order
2365 to work correctly. A number of small internal tweaks have
2366 been made in order to be compatible with that release.
2368 * Moose::Util::TypeConstraints
2369 - added &unimport so that you can clean out
2370 your class namespace of these exported
2373 * Moose::Meta::Class
2374 - fixed minor issue which occasionally
2375 comes up during global destruction
2377 - moved Moose::Meta::Method::Overriden into
2381 - moved Moose::Meta::Role::Method into
2384 * Moose::Meta::Attribute
2385 - changed how we do type checks so that
2386 we reduce the overall cost, but still
2389 - moved accessor generation methods to
2390 Moose::Meta::Method::Accessor to
2391 conform to the API changes from
2394 * Moose::Meta::TypeConstraint
2395 - changed how constraints are compiled
2396 so that we do less recursion and more
2397 iteration. This makes the type check
2399 - moved Moose::Meta::TypeConstraint::Union
2402 * Moose::Meta::Method::Accessor
2403 - created this from methods formerly found in
2404 Moose::Meta::Attribute
2406 * Moose::Meta::Role::Method
2407 - moved this from Moose::Meta::Role
2409 * Moose::Meta::Method::Overriden
2410 - moved this from Moose::Meta::Class
2412 * Moose::Meta::TypeConstraint::Union
2413 - moved this from Moose::Meta::TypeConstraint
2415 0.14 Mon. Oct. 9, 2006
2417 * Moose::Meta::Attribute
2418 - fixed lazy attributes which were not getting
2419 checked with the type constraint (thanks ashley)
2420 - added tests for this
2421 - removed the over-enthusiastic DWIMery of the
2422 automatic ArrayRef and HashRef defaults, it
2423 broke predicates in an ugly way.
2424 - removed tests for this
2426 0.13 Sat. Sept. 30, 2006
2428 This version of Moose *must* have Class::MOP 0.35 in order
2429 to work correctly. A number of small internal tweaks have
2430 been made in order to be compatible with that release.
2433 - Removed the use of UNIVERSAL::require to be a better
2434 symbol table citizen and remove a dependency
2435 (thanks Adam Kennedy)
2437 **~~ removed experimental & undocumented feature ~~**
2438 - commented out the 'method' and 'self' keywords, see the
2439 comments for more info.
2442 - added a FAQ and WTF files to document frequently
2443 asked questions and common problems
2445 * Moose::Util::TypeConstraints
2446 - added GlobRef and FileHandle type constraint
2447 - added tests for this
2449 * Moose::Meta::Attribute
2450 - if your attribute 'isa' ArrayRef of HashRef, and you have
2451 not explicitly set a default, then make the default DWIM.
2452 This will also work for subtypes of ArrayRef and HashRef
2454 - you can now auto-deref subtypes of ArrayRef or HashRef too.
2455 - new test added for this (thanks to ashley)
2458 - added basic support for runtime role composition
2459 but this is still *highly experimental*, so feedback
2460 is much appreciated :)
2461 - added tests for this
2463 * Moose::Meta::TypeConstraint
2464 - the type constraint now handles the coercion process
2465 through delegation, this is to support the coercion
2468 * Moose::Meta::TypeConstraint::Union
2469 - it is now possible for coercions to be performed
2471 - added tests for this (thanks to konobi)
2473 * Moose::Meta::TypeCoercion
2474 - properly capturing error when type constraint
2478 - Scalar::Util 1.18 is bad on Win32, so temporarily
2479 only require version 1.17 for Win32 and cygwin.
2480 (thanks Adam Kennedy)
2482 0.12 Sat. Sept. 1, 2006
2484 - Recipe5 (subtypes & coercion) has been written
2487 - fixed "bad meta" error message to be more descriptive
2488 - fixed &unimport to not remove the &inner and &super
2489 keywords because we need to localize them.
2490 - fixed number of spelling/grammer issues, thanks Theory :)
2492 **~~ experimental & undocumented feature ~~**
2493 - added the method and self keywords, they are basically
2494 just sugar, and they may not stay around.
2497 - added &dump method to easily Data::Dumper
2500 * Moose::Meta::TypeConstraint
2501 - added the &is_a_type_of method to check both the current
2502 and the subtype of a method (similar to &isa with classes)
2505 - this is now a subclass of Class::MOP::Module, and no longer
2506 creates the _role_meta ugliness of before.
2507 - fixed tests to reflect this change
2509 0.11 Wed. July 12, 2006
2511 - added an &unimport method to remove all the keywords
2512 that Moose will import, simply add 'no Moose' to the
2513 bottom of your class file.
2516 - fixed some test failures caused by a forgotten test
2519 0.10 Thurs. July 6, 2006
2521 - improved error message when loading modules so
2522 it is less confusing when you load a role.
2523 - added &calculate_all_roles method to
2524 Moose::Meta::Class and Moose::Meta::Role
2527 This module has been tested against Class::MOP 0.30
2528 but it does not yet utilize the optimizations
2529 it makes available. Stay tuned for that ;)
2531 0.09_03 Fri. June 23, 2006
2532 ++ DEVELOPER RELEASE ++
2534 - 'use strict' and 'use warnings' are no longer
2535 needed in Moose classes, Moose itself will
2536 turn them on for you.
2537 - added tests for this
2538 - moved code from exported subs to private methods
2539 in Moose::Meta::Class
2542 - as with Moose, strict and warnings are
2543 automatically turned on for you.
2544 - added tests for this
2547 - now handles an edge case for override errors
2548 - added tests for this
2549 - added some more edge case tests
2551 0.09_02 Tues. May 16, 2006
2552 ++ DEVELOPER RELEASE ++
2554 - added prototypes to the exported subs
2558 - added prototypes to the exported subs
2561 * Moose::Util::TypeConstraints
2562 - cleaned up prototypes for the subs
2565 0.09_01 Fri. May 12, 2006
2566 ++ DEVELOPER RELEASE ++
2567 - This release works in combination with
2568 Class::MOP 0.29_01, it is a developer
2569 release because it uses the a new
2570 instance sub-protocol and a fairly
2571 complete Role implementation. It has
2572 not yet been optimized, so it slower
2573 the the previous CPAN version. This
2574 release also lacks good updated docs,
2575 the official release will have updated docs.
2578 - refactored the keyword exports
2579 - 'with' now checks Role validaity and
2580 accepts more than one Role at a time
2581 - 'extends' makes metaclass adjustments as
2582 needed to ensure metaclass compatibility
2585 - refactored the keyword exports
2586 - 'with' now checks Role validaity and
2587 accepts more than one Role at a time
2589 * Moose::Util::TypeConstraints
2590 - added the 'enum' keyword for simple
2591 string enumerations which can be used as
2593 - see example of usage in t/202_example.t
2596 - more careful checking of params to new()
2599 - much work done on the role composition
2600 - many new tests for conflict detection
2601 and composition edge cases
2602 - not enough documentation, I suggest
2603 looking at the tests
2605 * Moose::Meta::Instance
2606 - added new Instance metaclass to support
2607 the new Class::MOP instance protocol
2609 * Moose::Meta::Class
2610 - some small changes to support the new
2612 - some small additions to support Roles
2614 * Moose::Meta::Attribute
2615 - some improvements to the accessor generation code
2617 - some small changes to support the new
2619 - (still somewhat) experimental delegation support
2620 with the 'handles' option
2621 - added several tests for this
2622 - no docs for this yet
2624 0.05 Thurs. April 27, 2006
2626 - keywords are now exported with Sub::Exporter
2627 thanks to chansen for this commit
2628 - has keyword now takes a 'metaclass' option
2629 to support custom attribute meta-classes
2630 on a per-attribute basis
2631 - added tests for this
2632 - the 'has' keyword not accepts inherited slot
2633 specifications (has '+foo'). This is still an
2634 experimental feature and probably not finished
2635 see t/038_attribute_inherited_slot_specs.t for
2636 more details, or ask about it on #moose
2637 - added tests for this
2640 - keywords are now exported with Sub::Exporter
2642 * Moose::Utils::TypeConstraints
2643 - reorganized the type constraint hierarchy, thanks
2644 to nothingmuch and chansen for his help and advice
2646 - added some tests for this
2647 - keywords are now exported with Sub::Exporter
2648 thanks to chansen for this commit
2650 * Moose::Meta::Class
2651 - due to changes in Class::MOP, we had to change
2652 construct_instance (for the better)
2654 * Moose::Meta::Attribute
2655 - due to changes in Class::MOP, we had to add the
2656 initialize_instance_slot method (it's a good thing)
2658 * Moose::Meta::TypeConstraint
2659 - added type constraint unions
2660 - added tests for this
2661 - added the is_subtype_of predicate method
2662 - added tests for this
2664 0.04 Sun. April 16th, 2006
2666 - Roles can now consume other roles
2667 - added tests for this
2668 - Roles can specify required methods now with
2669 the requires() keyword
2670 - added tests for this
2673 - ripped out much of it's guts ,.. much cleaner now
2674 - added required methods and correct handling of
2675 them in apply() for both classes and roles
2676 - added tests for this
2677 - no longer adds a does() method to consuming classes
2678 it relys on the one in Moose::Object
2679 - added roles attribute and some methods to support
2680 roles consuming roles
2682 * Moose::Meta::Attribute
2683 - added support for triggers on attributes
2684 - added tests for this
2685 - added support for does option on an attribute
2686 - added tests for this
2688 * Moose::Meta::Class
2689 - added support for attribute triggers in the
2691 - added tests for this
2694 - Moose no longer creates a subtype for your class
2695 if a subtype of the same name already exists, this
2696 should DWIM in 99.9999% of all cases
2698 * Moose::Util::TypeConstraints
2699 - fixed bug where incorrect subtype conflicts were
2701 - added test for this
2704 - this class can now be extended with 'use base' if
2705 you need it, it properly loads the metaclass class now
2706 - added test for this
2708 0.03_02 Wed. April 12, 2006
2710 - you must now explictly use Moose::Util::TypeConstraints
2711 it no longer gets exported for you automatically
2714 - new() now accepts hash-refs as well as key/value lists
2715 - added does() method to check for Roles
2716 - added tests for this
2718 * Moose::Meta::Class
2719 - added roles attribute along with the add_role() and
2721 - added tests for this
2724 - now adds a does() method to consuming classes
2725 which tests the class's hierarchy for roles
2726 - added tests for this
2728 0.03_01 Mon. April 10, 2006
2730 - added new Role recipe (no content yet, only code)
2733 - added 'with' keyword for Role support
2734 - added test and docs for this
2735 - fixed subtype quoting bug
2736 - added test for this
2740 - added test and docs
2742 * Moose::Util::TypeConstraints
2743 - added the message keyword to add custom
2744 error messages to type constraints
2747 - the meta role to support Moose::Role
2748 - added tests and docs
2750 * Moose::Meta::Class
2751 - moved a number of things from Moose.pm
2752 to here, they should have been here
2755 * Moose::Meta::Attribute
2756 - moved the attribute option macros here
2757 instead of putting them in Moose.pm
2759 * Moose::Meta::TypeConstraint
2760 - added the message attributes and the
2762 - added tests and docs for this
2764 0.03 Thurs. March 30, 2006
2766 - added the Moose::Cookbook with 5 recipes,
2767 describing all the stuff Moose can do.
2770 - fixed an issue with &extends super class loading
2771 it now captures errors and deals with inline
2772 packages correctly (bug found by mst, solution
2774 - added super/override & inner/augment features
2775 - added tests and docs for these
2778 - BUILDALL now takes a reference of the %params
2779 that are passed to &new, and passes that to
2782 * Moose::Util::TypeConstraints
2783 - Type constraints now survive runtime reloading
2784 - added test for this
2786 * Moose::Meta::Class
2787 - fixed the way attribute defaults are handled
2788 during instance construction (bug found by chansen)
2790 * Moose::Meta::Attribute
2791 - read-only attributes now actually enforce their
2792 read-only-ness (this corrected in Class::MOP as
2795 0.02 Tues. March 21, 2006
2797 - many more tests, fixing some bugs and
2799 - &extends now loads the base module with
2801 - added UNIVERSAL::require to the
2804 - each new Moose class will also create
2805 and register a subtype of Object which
2806 correspond to the new Moose class.
2807 - the 'isa' option in &has now only
2808 accepts strings, and will DWIM in
2811 * Moose::Util::TypeConstraints
2812 - added type coercion features
2813 - added tests for this
2814 - added support for this in attributes
2815 and instance construction
2817 - type construction no longer creates a
2818 function, it registers the type instead.
2819 - added several functions to get the
2823 - BUILDALL and DEMOLISHALL were broken
2824 because of a mis-named hash key, Whoops :)
2826 * Moose::Meta::Attribute
2827 - adding support for coercion in the
2828 autogenerated accessors
2830 * Moose::Meta::Class
2831 - adding support for coercion in the
2832 instance construction
2834 * Moose::Meta::TypeConstraint
2835 * Moose::Meta::TypeCoercion
2836 - type constraints and coercions are now
2837 full fledges meta-objects
2839 0.01 Wed. March 15, 2006
2840 - Moooooooooooooooooose!!!