1 Revision history for Perl extension Moose
4 ~~ numerous documentation updates ~~
6 - Changed all usage of die to Carp::croak for better
7 error reporting (initial patch by Tod Hagan)
10 - the make_immutable keyword is now deprecated, don't
11 use it in any new code and please fix your old code
12 as well. There will be 2 releases, and then it will
18 - refactored the way inner and super work to avoid
19 any method/@ISA cache penalty (nothingmuch)
22 - fixing &new_object to make sure trigger gets the
23 coerced value (spotted by Charles Alderman on the
27 * Moose::Meta::Method::Constructor
28 - immutable classes which had non-lazy attributes were calling
29 the default generating sub twice in the constructor. (bug
30 found by Jesse Luehrs, fixed by Dave Rolsky)
31 - added tests for this (Dave Rolsky)
32 - fix typo in initialize_body method (nothingmuch)
34 * Moose::Meta::Method::Destructor
35 - fix typo in initialize_body method (nothingmuch)
37 * Moose::Meta::Method::Overriden
38 Moose::Meta::Method::Augmented
39 - moved the logic for these into their own
42 * Moose::Meta::Attribute
43 - inherited attributes may now be extended without
44 restriction on the type ('isa', 'does') (Sartak)
45 - added tests for this (Sartak)
46 - when an attribute property is malformed (such as lazy without
47 a default), give the name of the attribute in the error
49 - added the &applied_traits and &has_applied_traits methods
50 to allow introspection of traits
51 - added tests for this
54 - localize $@ inside DEMOLISHALL to avoid it
55 eating $@ (found by Ernesto)
56 - added test for this (thanks to Ernesto)
58 * Moose::Util::TypeConstraints
59 - &find_type_constraint now DWIMs when given an
60 type constraint object or name (nothingmuch)
62 * Moose::Meta::TypeConstraint
63 Moose::Meta::TypeConstraint::Class
64 Moose::Meta::TypeConstraint::Enum
65 Moose::Meta::TypeConstraint::Union
66 Moose::Meta::TypeConstraint::Parameterized
67 - added the &equals method for comparing two type
68 constraints (nothingmuch)
69 - added tests for this (nothingmuch)
71 * Moose::Meta::TypeConstraint
72 - add the &parents method, which is just an alias to &parent.
73 Useful for polymorphism with TC::Class (nothingmuch)
75 * Moose::Meta::TypeConstraint::Class
76 - added the class attribute for introspection purposes
78 - added tests for this
80 * Moose::Meta::TypeConstraint::Enum
81 Moose::Meta::TypeConstraint::Role
82 - broke these out into their own classes (nothingmuch)
84 * Moose::Cookbook::Recipe*
85 - fixed references to test file locations in the POD
86 and updated up some text for new Moose features
89 0.40 Fri. March 14, 2008
90 - I hate Pod::Coverage
92 0.39 Fri. March 14, 2008
94 - documenting the use of '+name' with attributes
95 that come from recently composed roles. It makes
96 sense, people are using it, and so why not just
97 officially support it.
98 - fixing the 'extends' keyword so that it will not
99 trigger Ovid's bug (http://use.perl.org/~Ovid/journal/35763)
102 - added the perl -Moose=+Class::Name feature to allow
103 monkeypatching of classes in one liners
106 - fixing the 'apply_all_roles' keyword so that it will not
107 trigger Ovid's bug (http://use.perl.org/~Ovid/journal/35763)
110 - added ->create method which now supports roles (thanks to jrockway)
111 - added tests for this
112 - added ->create_anon_class which now supports roles and caching of
113 the results (thanks to jrockway)
114 - added tests for this
115 - made ->does_role a little more forgiving when it is
116 checking a Class::MOP era metaclasses.
118 * Moose::Meta::Role::Application::ToInstance
119 - it is now possible to pass extra params to be used when
120 a role is applied to an the instance (rebless_params)
121 - added tests for this
123 * Moose::Util::TypeConstraints
124 - class_type now accepts an optional second argument for a
125 custom message. POD anotated accordingly (groditi)
126 - added tests for this
127 - it is now possible to make anon-enums by passing 'enum' an
128 ARRAY ref instead of the $name => @values. Everything else
130 - added tests for this
133 - making test for using '+name' on attributes consumed
134 from a role, it works and makes sense too.
136 * Moose::Meta::Attribute
137 - fix handles so that it doesn't return nothing
138 when the method cannot be found, not sure why
139 it ever did this originally, this means we now
140 have slightly better support for AUTOLOADed
142 - added more delegation tests
143 - adding ->does method to this so as to better
144 support traits and their introspection.
145 - added tests for this
148 - localizing the Data::Dumper configurations so
149 that it does not pollute others (RT #33509)
150 - made ->does a little more forgiving when it is
151 passed Class::MOP era metaclasses.
153 0.38 Fri. Feb. 15, 2008
154 * Moose::Meta::Attribute
155 - fixed initializer to correctly do
156 type checking and coercion in the
158 - added tests for this
161 - fixed some finicky tests (thanks to konobi)
163 0.37 Thurs. Feb. 14, 2008
165 - fixed some details in Moose::init_meta
166 and its superclass handling (thanks thepler)
167 - added tests for this (thanks thepler)
168 - 'has' now dies if you don't pass in name
170 - added the 'make_immutable' keyword as a shortcut
174 Moose::Meta::Method::Constructor
175 Moose::Meta::Attribute
176 - making (init_arg => undef) work here too
177 (thanks to nothingmuch)
179 * Moose::Meta::Attribute
180 Moose::Meta::Method::Constructor
181 Moose::Meta::Method::Accessor
182 - make lazy attributes respect attr initializers (rjbs)
183 - added tests for this
185 * Moose::Util::TypeConstraints
186 Moose::Util::TypeConstraints::OptimizedConstraints
187 Moose::Meta::TypeConstraints
188 Moose::Meta::Attribute
189 Moose::Meta::Method::Constructor
190 Moose::Meta::Method::Accessor
191 - making type errors use the
192 assigned message (thanks to Sartak)
193 - added tests for this
195 * Moose::Meta::Method::Destructor
196 - making sure DESTROY gets inlined properly
197 with successive DEMOLISH calls (thanks to manito)
199 * Moose::Meta::Attribute
200 Moose::Meta::Method::Accessor
201 - fixed handling of undef with type constraints
203 - added tests for this
206 - added &get_all_init_args and &get_all_attribute_values
207 (thanks to Sartak and nothingmuch)
209 0.36 Sat. Jan. 26, 2008
211 Moose::Meta::Attribute
212 - role type tests now support when roles are
213 applied to non-Moose classes (found by ash)
214 - added tests for this (thanks to ash)
215 - couple extra tests to boost code coverage
217 * Moose::Meta::Method::Constructor
218 - improved fix for handling Class::MOP attributes
219 - added test for this
222 - handled the add_attribute($attribute_meta_object)
224 - added test for this
226 0.35 Tues. Jan. 22, 2008
227 * Moose::Meta::Method::Constructor
228 - fix to make sure even Class::MOP attributes
229 are handled correctly (Thanks to Dave Rolsky)
230 - added test for this (also Dave Rolsky)
233 - improved error message on _apply_all_roles,
234 you should now use Moose::Util::apply_all_roles
235 and you shouldnt have been using a _ prefixed
236 method in the first place ;)
238 0.34 Mon. Jan. 21, 2008
239 ~~~ more misc. doc. fixes ~~~
240 ~~ updated copyright dates ~~
242 Moose is now a postmodern object system :)
243 - (see the POD for details)
245 * <<Role System Refactoring>>
246 - this release contains a major reworking and
247 cleanup of the role system
248 - 100% backwards compat.
249 - Role application now restructured into seperate
250 classes based on type of applicants
251 - Role summation (combining of more than one role)
252 is much cleaner and anon-classes are no longer
254 - new Composite role metaclass
255 - runtime application of roles to instances
256 is now more efficient and re-uses generated
257 classes when applicable
259 * <<New Role composition features>>
260 - methods can now be excluded from a given role
262 - methods can now be aliased to another name (and
263 still retain the original as well)
265 * Moose::Util::TypeConstraints::OptimizedConstraints
266 - added this module (see above)
269 - fixed the &_process_attribute method to be called
270 by &add_attribute, so that the API is now correct
272 * Moose::Meta::Method::Accessor
273 - fixed bug when passing a list of values to
274 an accessor would get (incorrectly) ignored.
275 Thanks to Sartak for finding this ;)
276 - added tests for this (Sartak again)
278 * Moose::Meta::Method::Accessor
279 Moose::Meta::Method::Constructor
280 Moose::Meta::Attribute
281 Moose::Meta::TypeConstraint
282 Moose::Meta::TypeCoercion
283 - lots of cleanup of such things as:
285 - type constraint handling
286 - error handling/messages
287 (thanks to nothingmuch)
289 * Moose::Meta::TypeConstraint::Parameterizable
290 - added this module to support the refactor
291 in Moose::Meta::TypeConstraint::Parameterized
293 * Moose::Meta::TypeConstraint::Parameterized
294 - refactored how these types are handled so they
295 are more generic and not confined to ArrayRef
299 - shortened some file names for better VMS support (RT #32381)
301 0.33 Fri. Dec. 14, 2007
302 !! Moose now loads 2 x faster !!
303 !! with new Class::MOP 0.49 !!
305 ++ new oose.pm module to make command line
306 Moose-ness easier (see POD docs for more)
310 - several tweaks to take advantage of the
311 new method map caching in Class::MOP
313 * Moose::Meta::TypeConstraint::Parameterized
314 - allow subtypes of ArrayRef and HashRef to
315 be used as a container (sartak)
316 - added tests for this
317 - basic support for coercion to ArrayRef and
318 HashRef for containers (sartak)
319 - added tests for this
321 * Moose::Meta::TypeCoercion
322 - coercions will now create subtypes as needed
323 so you can now add coercions to parameterized
324 types without having to explictly define them
325 - added tests for this
327 * Moose::Meta::Method::Accessor
328 - allow subclasses to decide whether we need
329 to copy the value into a new variable (sartak)
331 0.32 Tues. Dec. 4, 2007
332 * Moose::Util::TypeConstraints
333 - fixing how subtype aliases of unions work
334 they should inherit the parent's coercion
335 - added tests for this
336 - you can now define multiple coercions on
337 a single type at different times instead of
338 having to do it all in one place
339 - added tests for this
341 * Moose::Meta::TypeConstraint
342 - there is now a default constraint of sub { 1 }
343 instead of Moose::Util::TypeConstraints setting
346 * Moose::Meta::TypeCoercion
347 * Moose::Meta::TypeCoercion::Union
348 - added the &has_coercion_for_type and
349 &add_type_coercions methods to support the
350 new features above (although you cannot add
351 more type coercions for Union types)
353 0.31 Mon. Nov. 26, 2007
354 * Moose::Meta::Attribute
355 - made the +attr syntax handle extending types with
356 parameters. So "has '+foo' => (isa => 'ArrayRef[Int]')"
357 now works if the original foo is an ArrayRef.
358 - added tests for this.
359 - delegation now works even if the attribute does not
360 have a reader method using the get_read_method_ref
361 method from Class::MOP::Attribute.
362 - added tests for this
363 - added docs for this
365 * Moose::Util::TypeConstraints
366 - passing no "additional attribute info" to
367 &find_or_create_type_constraint will no longer
368 attempt to create an __ANON__ type for you,
369 instead it will just return undef.
370 - added docs for this
372 0.30 Fri. Nov. 23, 2007
373 * Moose::Meta::Method::Constructor
374 -builder related bug in inlined constructor. (groditi)
376 * Moose::Meta::Method::Accessor
377 - genereate unnecessary calls to predicates and refactor
378 code generation for runtime speed (groditi)
380 * Moose::Util::TypeConstraints
381 - fix ClassName constraint to introspect symbol table (mst)
382 - added more tests for this (mst)
383 - fixed it so that subtype 'Foo' => as 'HashRef[Int]' ...
385 - added tests for this
388 - adding the link to Recipie 11 (written by Sartak)
389 - adding test for SYNOPSIS code
392 - New tests for builder bug. Upon instantiation, if an
393 attribute had a builder, no value and was not lazy the
394 builder default was not getting run, oops. (groditi)
396 0.29 Tues. Nov. 13, 2007
397 * Moose::Meta::Attribute
398 - Fix error message on missing builder method (groditi)
400 * Moose::Meta::Method::Accessor
401 - Fix error message on missing builder method (groditi)
404 - Add test to check for the correct error message when
405 builder method is missing (groditi)
407 0.28 Tues. Nov. 13, 2007
408 - 0.27 packaged incorrectly (groditi)
410 0.27 Tues. Nov. 13, 2007
411 * Moose::Meta::Attribute
412 - Added support for the new builder option (groditi)
413 - Added support for lazy_build option (groditi)
414 - Changed slot initialization for predicate changes (groditi)
416 * Moose::Meta::Method::Accessor
417 - Added support for lazy_build option (groditi)
418 - Fix inline methods to work with corrected predicate
421 * Moose::Meta::Method::Constructor
422 - Added support for lazy_build option (groditi)
425 - tests for builder and lazy_build (groditi)
427 * fixing some misc. bits in the docs that
428 got mentioned on CPAN Forum & perlmonks
431 - fixed how required methods are handled
432 when they encounter overriden or modified
433 methods from a class (thanks to confound).
434 - added tests for this
436 * Moose::Util::TypeConstraint
437 - fixed the type notation parser so that
438 the | always creates a union and so is
439 no longer a valid type char (thanks to
440 konobi, mugwump and #moose for working
442 - added more tests for this
444 0.26 Thurs. Sept. 27, 2007
447 * Parameterized Types
448 We now support parameterized collection types, such as:
449 ArrayRef[Int] # array or integers
450 HashRef[Object] # a hash with object values
451 They can also be nested:
452 ArrayRef[HashRef[RegExpr]] # an array of hashes with regexpr values
453 And work with the type unions as well:
454 ArrayRef[Int | Str] # array of integers of strings
456 * Better Framework Extendability
457 Moose.pm is now "extendable" such that it is now much
458 easier to extend the framework and add your own keywords
459 and customizations. See the "EXTENDING AND EMBEDDING MOOSE"
460 section of the Moose.pm docs.
463 In an effort to begin documenting some of the various
464 details of Moose as well as some common idioms, we have
465 created Moose::Cookbook::Snacks as a place to find
466 small (easily digestable) nuggets of Moose code.
469 ~ Several doc updates/cleanup thanks to castaway ~
471 - converted build system to use Module::Install instead of
472 Module::Build (thanks to jrockway)
475 - added all the meta classes to the immutable list and
476 set it to inline the accessors
477 - fix import to allow Sub::Exporter like { into => }
478 and { into_level => } (perigrin)
479 - exposed and documented init_meta() to allow better
480 embedding and extending of Moose (perigrin)
483 - complete re-organization of the test suite
484 - added some new tests as well
485 - finally re-enabled the Moose::POOP test since
486 the new version of DBM::Deep now works again
490 - fixed very odd and very nasty recursion bug with
492 - added tests for this (eilara)
494 * Moose::Meta::Attribute
495 Moose::Meta::Method::Constructor
496 Moose::Meta::Method::Accessor
497 - fixed issue with overload::Overloaded getting called
498 on non-blessed items. (RT #29269)
499 - added tests for this
501 * Moose::Meta::Method::Accessor
502 - fixed issue with generated accessor code making
503 assumptions about hash based classes (thanks to dexter)
505 * Moose::Coookbook::Snacks
506 - these are bits of documentation, not quite as big as
507 Recipes but which have no clear place in the module docs.
508 So they are Snacks! (horray for castaway++)
510 * Moose::Cookbook::Recipe4
511 - updated it to use the new ArrayRef[MyType] construct
512 - updated the accompanying test as well
514 +++ Major Refactor of the Type Constraint system +++
515 +++ with new features added as well +++
517 * Moose::Util::TypeConstraint
518 - no longer uses package variable to keep track of
519 the type constraints, now uses the an instance of
520 Moose::Meta::TypeConstraint::Registry to do it
521 - added more sophisticated type notation parsing
523 - added tests for this
525 * Moose::Meta::TypeConstraint
526 - some minor adjustments to make subclassing easier
527 - added the package_defined_in attribute so that we
528 can track where the type constraints are created
530 * Moose::Meta::TypeConstraint::Union
531 - this is now been refactored to be a subclass of
532 Moose::Meta::TypeConstraint
534 * Moose::Meta::TypeCoercion::Union
535 - this has been added to service the newly refactored
536 Moose::Meta::TypeConstraint::Union and is itself
537 a subclass of Moose::Meta::TypeCoercion
539 * Moose::Meta::TypeConstraint::Parameterized
540 - added this module (taken from MooseX::AttributeHelpers)
541 to help construct nested collection types
542 - added tests for this
544 * Moose::Meta::TypeConstraint::Registry
545 - added this class to keep track of type constraints
547 0.25 Mon. Aug. 13, 2007
549 - Documentation update to reference Moose::Util::TypeConstraints
550 under 'isa' in 'has' for how to define a new type
553 * Moose::Meta::Attribute
554 - required attributes now will no longer accept undef
555 from the constructor, even if there is a default and lazy
556 - added tests for this
557 - default subroutines must return a value which passes the
559 - added tests for this
561 * Moose::Meta::Attribute
562 * Moose::Meta::Method::Constructor
563 * Moose::Meta::Method::Accessor
564 - type-constraint tests now handle overloaded objects correctly
566 - added tests for this (thanks to EvanCarroll)
568 * Moose::Meta::TypeConstraint::Union
569 - added (has_)hand_optimized_constraint to this class so that
570 it behaves as the regular Moose::Meta::TypeConstraint does.
573 - large refactoring of this code
574 - added several more tests
575 - tests for subtle conflict resolition issues
576 added, but not currently running
579 * Moose::Cookbook::Recipe7
580 - added new recipe for augment/inner functionality
582 - added test for this
585 - a formal definition of roles (still in progress)
588 - utilities for easier working with Moose classes
589 - added tests for these
592 - This contains Moose specific test functions
593 - added tests for these
595 0.24 Tues. July 3, 2007
596 ~ Some doc updates/cleanup ~
598 * Moose::Meta::Attribute
599 - added support for roles to be given as parameters
600 to the 'handles' option.
601 - added tests and docs for this
602 - the has '+foo' attribute form now accepts changes to
603 the lazy option, and the addition of a handles option
604 (but not changing the handles option)
605 - added tests and docs for this
608 - required methods are now fetched using find_method_by_name
609 so that required methods can come from superclasses
610 - adjusted tests for this
612 0.23 Mon. June 18, 2007
613 * Moose::Meta::Method::Constructor
614 - fix inlined constructor for hierarchy with multiple BUILD methods (mst)
616 - Modify make_immutable to work with the new Class::MOP immutable
617 mechanism + POD + very basic test (groditi)
618 * Moose::Meta::Attribute
619 - Fix handles to use goto() so that caller() comes out properly on
620 the other side (perigrin)
622 0.22 Thurs. May 31, 2007
623 * Moose::Util::TypeConstraints
624 - fix for prototype undeclared issue when Moose::Util::TypeConstraints
625 loaded before consumers (e.g. Moose::Meta::Attribute) by predeclaring
626 prototypes for functions
627 - added the ClassName type constraint, this checks for strings
628 which will respond true to ->isa(UNIVERSAL).
629 - added tests and docs for this
630 - subtyping just in name now works correctly by making the
631 default for where be { 1 }
632 - added test for this
634 * Moose::Meta::Method::Accessor
635 - coerce and lazy now work together correctly, thanks to
636 merlyn for finding this bug
637 - tests added for this
638 - fix reader presedence bug in Moose::Meta::Attribute + tests
641 - Foo->new(undef) now gets ignored, it is assumed you meant to pass
642 a HASH-ref and missed. This produces better error messages then
643 having it die cause undef is not a HASH.
644 - added tests for this
646 0.21 Thursday, May 2nd, 2007
648 - added SUPER_SLOT and INNER_SLOT class hashes to support unimport
649 - modified unimport to remove super and inner along with the rest
650 - altered unimport tests to handle this
653 - altered super export to populate SUPER_SLOT
656 - altered augment and override modifier application to use *_SLOT
657 - modified tests for these to unimport one test class each to test
660 - fixed issue where custom attribute metaclasses
661 where not handled correctly in roles
662 - added tests for this
665 - fixed issue where extending metaclasses with
666 roles would blow up. Thanks to Aankhen`` for
667 finding this insidious error, and it's solution.
669 ~~ lots of spelling and grammer fixes in the docs,
670 many many thanks to rlb3 and Aankhen for these :)
672 0.20 Friday, April 6th, 2007
673 >> I messed up the SKIP logic in one test
674 so this release is just to fix that.
677 - 'has' now also accepts an ARRAY ref
678 to create multiple attrs (see docs)
679 (thanks to konobi for this)
680 - added tests and docs
682 0.19 Thurs. April 5th, 2007
683 ~~ More documentation updates ~~
685 * Moose::Util::TypeConstraints
686 - 'type' now supports messages as well
687 thanks to phaylon for finding this
688 - added tests for this
689 - added &list_all_type_constraints and
690 &list_all_builtin_type_constraints
691 functions to facilitate introspection.
693 * Moose::Meta::Attribute
694 - fixed regexp 'handles' declarations
695 to build the list of delegated methods
696 correctly (and not override important
697 things like &new) thanks to ashleyb
699 - added tests and docs for this
700 - added the 'documentation' attributes
701 so that you can actually document your
702 attributes and inspect them through the
704 - added tests and docs for this
707 - when loading custom attribute metaclasses
708 it will first look in for the class in the
709 Moose::Meta::Attribute::Custom::$name, and
710 then default to just loading $name.
711 - added tests and docs for this
713 * Moose::Meta::TypeConstraint
714 - type constraints now stringify to their names.
715 - added test for this
718 - added tests to assure we work with Module::Refresh
719 - added stricter test skip logic in the Moose POOP
720 test, ask Rob Kinyon why.
721 - *cough* DBM::Deep 1.0 backwards compatability sucks *cough* ;)
723 0.18 Sat. March 10, 2007
724 ~~ Many, many documentation updates ~~
727 - We now use Class::MOP::load_class to
729 - added tests to show types and subtypes
730 working with Declare::Constraints::Simple
731 and Test::Deep as constraint engines.
734 !! You must have Class::MOP 0.37_001 !!
735 !! for this developer release to work !!
737 This release was primarily adding the immutable
738 feature to Moose. An immutable class is one which
739 you promise not to alter. When you set the class
740 as immutable it will perform various bits of
741 memoization and inline certain part of the code
742 (constructors, destructors and accessors). This
743 minimizes (and in some cases totally eliminates)
744 one of Moose's biggest performance hits. This
745 feature is not on by default, and is 100% optional.
746 It has several configurable bits as well, so you
747 can pick and choose to your specific needs.
749 The changes involved in this were fairly wide and
750 highly specific, but 100% backwards compatible, so
751 I am not going to enumerate them here. If you are
752 truely interested in what was changed, please do
755 0.17 Tues. Nov. 14, 2006
756 * Moose::Meta::Method::Accessor
757 - bugfix for read-only accessors which
758 are have a type constraint and lazy.
759 Thanks to chansen for finding it.
761 0.16 Tues. Nov. 14, 2006
763 There are some speed improvements in this release,
764 but they are only the begining, so stay tuned.
767 - BUILDALL and DEMOLISHALL no longer get
768 called unless they actually need to be.
769 This gave us a signifigant speed boost
770 for the cases when there is no BUILD or
771 DEMOLISH method present.
773 * Moose::Util::TypeConstraints
774 * Moose::Meta::TypeConstraint
775 - added an 'optimize_as' option to the
776 type constraint, which allows for a
777 hand optimized version of the type
778 constraint to be used when possible.
779 - Any internally created type constraints
780 now provide an optimized version as well.
782 0.15 Sun. Nov. 5, 2006
784 This version of Moose *must* have Class::MOP 0.36 in order
785 to work correctly. A number of small internal tweaks have
786 been made in order to be compatible with that release.
788 * Moose::Util::TypeConstraints
789 - added &unimport so that you can clean out
790 your class namespace of these exported
794 - fixed minor issue which occasionally
795 comes up during global destruction
797 - moved Moose::Meta::Method::Overriden into
801 - moved Moose::Meta::Role::Method into
804 * Moose::Meta::Attribute
805 - changed how we do type checks so that
806 we reduce the overall cost, but still
809 - moved accessor generation methods to
810 Moose::Meta::Method::Accessor to
811 conform to the API changes from
814 * Moose::Meta::TypeConstraint
815 - changed how constraints are compiled
816 so that we do less recursion and more
817 iteration. This makes the type check
819 - moved Moose::Meta::TypeConstraint::Union
822 * Moose::Meta::Method::Accessor
823 - created this from methods formerly found in
824 Moose::Meta::Attribute
826 * Moose::Meta::Role::Method
827 - moved this from Moose::Meta::Role
829 * Moose::Meta::Method::Overriden
830 - moved this from Moose::Meta::Class
832 * Moose::Meta::TypeConstraint::Union
833 - moved this from Moose::Meta::TypeConstraint
835 0.14 Mon. Oct. 9, 2006
837 * Moose::Meta::Attribute
838 - fixed lazy attributes which were not getting
839 checked with the type constraint (thanks ashley)
840 - added tests for this
841 - removed the over-enthusiastic DWIMery of the
842 automatic ArrayRef and HashRef defaults, it
843 broke predicates in an ugly way.
844 - removed tests for this
846 0.13 Sat. Sept. 30, 2006
848 This version of Moose *must* have Class::MOP 0.35 in order
849 to work correctly. A number of small internal tweaks have
850 been made in order to be compatible with that release.
853 - Removed the use of UNIVERSAL::require to be a better
854 symbol table citizen and remove a dependency
855 (thanks Adam Kennedy)
857 **~~ removed experimental & undocumented feature ~~**
858 - commented out the 'method' and 'self' keywords, see the
859 comments for more info.
862 - added a FAQ and WTF files to document frequently
863 asked questions and common problems
865 * Moose::Util::TypeConstraints
866 - added GlobRef and FileHandle type constraint
867 - added tests for this
869 * Moose::Meta::Attribute
870 - if your attribute 'isa' ArrayRef of HashRef, and you have
871 not explicitly set a default, then make the default DWIM.
872 This will also work for subtypes of ArrayRef and HashRef
874 - you can now auto-deref subtypes of ArrayRef or HashRef too.
875 - new test added for this (thanks to ashley)
878 - added basic support for runtime role composition
879 but this is still *highly experimental*, so feedback
880 is much appreciated :)
881 - added tests for this
883 * Moose::Meta::TypeConstraint
884 - the type constraint now handles the coercion process
885 through delegation, this is to support the coercion
888 * Moose::Meta::TypeConstraint::Union
889 - it is now possible for coercions to be performed
891 - added tests for this (thanks to konobi)
893 * Moose::Meta::TypeCoercion
894 - properly capturing error when type constraint
898 - Scalar::Util 1.18 is bad on Win32, so temporarily
899 only require version 1.17 for Win32 and cygwin.
900 (thanks Adam Kennedy)
902 0.12 Sat. Sept. 1, 2006
904 - Recipe5 (subtypes & coercion) has been written
907 - fixed "bad meta" error message to be more descriptive
908 - fixed &unimport to not remove the &inner and &super
909 keywords because we need to localize them.
910 - fixed number of spelling/grammer issues, thanks Theory :)
912 **~~ experimental & undocumented feature ~~**
913 - added the method and self keywords, they are basically
914 just sugar, and they may not stay around.
917 - added &dump method to easily Data::Dumper
920 * Moose::Meta::TypeConstraint
921 - added the &is_a_type_of method to check both the current
922 and the subtype of a method (similar to &isa with classes)
925 - this is now a subclass of Class::MOP::Module, and no longer
926 creates the _role_meta ugliness of before.
927 - fixed tests to reflect this change
929 0.11 Wed. July 12, 2006
931 - added an &unimport method to remove all the keywords
932 that Moose will import, simply add 'no Moose' to the
933 bottom of your class file.
936 - fixed some test failures caused by a forgotten test
939 0.10 Thurs. July 6, 2006
941 - improved error message when loading modules so
942 it is less confusing when you load a role.
943 - added &calculate_all_roles method to
944 Moose::Meta::Class and Moose::Meta::Role
947 This module has been tested against Class::MOP 0.30
948 but it does not yet utilize the optimizations
949 it makes available. Stay tuned for that ;)
951 0.09_03 Fri. June 23, 2006
952 ++ DEVELOPER RELEASE ++
954 - 'use strict' and 'use warnings' are no longer
955 needed in Moose classes, Moose itself will
956 turn them on for you.
957 - added tests for this
958 - moved code from exported subs to private methods
959 in Moose::Meta::Class
962 - as with Moose, strict and warnings are
963 automatically turned on for you.
964 - added tests for this
967 - now handles an edge case for override errors
968 - added tests for this
969 - added some more edge case tests
971 0.09_02 Tues. May 16, 2006
972 ++ DEVELOPER RELEASE ++
974 - added prototypes to the exported subs
978 - added prototypes to the exported subs
981 * Moose::Util::TypeConstraints
982 - cleaned up prototypes for the subs
985 0.09_01 Fri. May 12, 2006
986 ++ DEVELOPER RELEASE ++
987 - This release works in combination with
988 Class::MOP 0.29_01, it is a developer
989 release because it uses the a new
990 instance sub-protocol and a fairly
991 complete Role implementation. It has
992 not yet been optimized, so it slower
993 the the previous CPAN version. This
994 release also lacks good updated docs,
995 the official release will have updated docs.
998 - refactored the keyword exports
999 - 'with' now checks Role validaity and
1000 accepts more than one Role at a time
1001 - 'extends' makes metaclass adjustments as
1002 needed to ensure metaclass compatability
1005 - refactored the keyword exports
1006 - 'with' now checks Role validaity and
1007 accepts more than one Role at a time
1009 * Moose::Util::TypeConstraints
1010 - added the 'enum' keyword for simple
1011 string enumerations which can be used as
1013 - see example of usage in t/202_example.t
1016 - more careful checking of params to new()
1019 - much work done on the role composition
1020 - many new tests for conflict detection
1021 and composition edge cases
1022 - not enough documentation, I suggest
1023 looking at the tests
1025 * Moose::Meta::Instance
1026 - added new Instance metaclass to support
1027 the new Class::MOP instance protocol
1029 * Moose::Meta::Class
1030 - some small changes to support the new
1032 - some small additions to support Roles
1034 * Moose::Meta::Attribute
1035 - some improvements to the accessor generation code
1037 - some small changes to support the new
1039 - (still somewhat) experimental delegation support
1040 with the 'handles' option
1041 - added several tests for this
1042 - no docs for this yet
1044 0.05 Thurs. April 27, 2006
1046 - keywords are now exported with Sub::Exporter
1047 thanks to chansen for this commit
1048 - has keyword now takes a 'metaclass' option
1049 to support custom attribute meta-classes
1050 on a per-attribute basis
1051 - added tests for this
1052 - the 'has' keyword not accepts inherited slot
1053 specifications (has '+foo'). This is still an
1054 experimental feature and probably not finished
1055 see t/038_attribute_inherited_slot_specs.t for
1056 more details, or ask about it on #moose
1057 - added tests for this
1060 - keywords are now exported with Sub::Exporter
1062 * Moose::Utils::TypeConstraints
1063 - reorganized the type constraint hierarchy, thanks
1064 to nothingmuch and chansen for his help and advice
1066 - added some tests for this
1067 - keywords are now exported with Sub::Exporter
1068 thanks to chansen for this commit
1070 * Moose::Meta::Class
1071 - due to changes in Class::MOP, we had to change
1072 construct_instance (for the better)
1074 * Moose::Meta::Attribute
1075 - due to changes in Class::MOP, we had to add the
1076 initialize_instance_slot method (it's a good thing)
1078 * Moose::Meta::TypeConstraint
1079 - added type constraint unions
1080 - added tests for this
1081 - added the is_subtype_of predicate method
1082 - added tests for this
1084 0.04 Sun. April 16th, 2006
1086 - Roles can now consume other roles
1087 - added tests for this
1088 - Roles can specify required methods now with
1089 the requires() keyword
1090 - added tests for this
1093 - ripped out much of it's guts ,.. much cleaner now
1094 - added required methods and correct handling of
1095 them in apply() for both classes and roles
1096 - added tests for this
1097 - no longer adds a does() method to consuming classes
1098 it relys on the one in Moose::Object
1099 - added roles attribute and some methods to support
1100 roles consuming roles
1102 * Moose::Meta::Attribute
1103 - added support for triggers on attributes
1104 - added tests for this
1105 - added support for does option on an attribute
1106 - added tests for this
1108 * Moose::Meta::Class
1109 - added support for attribute triggers in the
1111 - added tests for this
1114 - Moose no longer creates a subtype for your class
1115 if a subtype of the same name already exists, this
1116 should DWIM in 99.9999% of all cases
1118 * Moose::Util::TypeConstraints
1119 - fixed bug where incorrect subtype conflicts were
1121 - added test for this
1124 - this class can now be extended with 'use base' if
1125 you need it, it properly loads the metaclass class now
1126 - added test for this
1128 0.03_02 Wed. April 12, 2006
1130 - you must now explictly use Moose::Util::TypeConstraints
1131 it no longer gets exported for you automatically
1134 - new() now accepts hash-refs as well as key/value lists
1135 - added does() method to check for Roles
1136 - added tests for this
1138 * Moose::Meta::Class
1139 - added roles attribute along with the add_role() and
1141 - added tests for this
1144 - now adds a does() method to consuming classes
1145 which tests the class's hierarchy for roles
1146 - added tests for this
1148 0.03_01 Mon. April 10, 2006
1150 - added new Role recipe (no content yet, only code)
1153 - added 'with' keyword for Role support
1154 - added test and docs for this
1155 - fixed subtype quoting bug
1156 - added test for this
1160 - added test and docs
1162 * Moose::Util::TypeConstraints
1163 - added the message keyword to add custom
1164 error messages to type constraints
1167 - the meta role to support Moose::Role
1168 - added tests and docs
1170 * Moose::Meta::Class
1171 - moved a number of things from Moose.pm
1172 to here, they should have been here
1175 * Moose::Meta::Attribute
1176 - moved the attribute option macros here
1177 instead of putting them in Moose.pm
1179 * Moose::Meta::TypeConstraint
1180 - added the message attributes and the
1182 - added tests and docs for this
1184 0.03 Thurs. March 30, 2006
1186 - added the Moose::Cookbook with 5 recipes,
1187 describing all the stuff Moose can do.
1190 - fixed an issue with &extends super class loading
1191 it now captures errors and deals with inline
1192 packages correctly (bug found by mst, solution
1194 - added super/override & inner/augment features
1195 - added tests and docs for these
1198 - BUILDALL now takes a reference of the %params
1199 that are passed to &new, and passes that to
1202 * Moose::Util::TypeConstraints
1203 - Type constraints now survive runtime reloading
1204 - added test for this
1206 * Moose::Meta::Class
1207 - fixed the way attribute defaults are handled
1208 during instance construction (bug found by chansen)
1210 * Moose::Meta::Attribute
1211 - read-only attributes now actually enforce their
1212 read-only-ness (this corrected in Class::MOP as
1215 0.02 Tues. March 21, 2006
1217 - many more tests, fixing some bugs and
1219 - &extends now loads the base module with
1221 - added UNIVERSAL::require to the
1224 - each new Moose class will also create
1225 and register a subtype of Object which
1226 correspond to the new Moose class.
1227 - the 'isa' option in &has now only
1228 accepts strings, and will DWIM in
1231 * Moose::Util::TypeConstraints
1232 - added type coercion features
1233 - added tests for this
1234 - added support for this in attributes
1235 and instance construction
1237 - type construction no longer creates a
1238 function, it registers the type instead.
1239 - added several functions to get the
1243 - BUILDALL and DEMOLISHALL were broken
1244 because of a mis-named hash key, Whoops :)
1246 * Moose::Meta::Attribute
1247 - adding support for coercion in the
1248 autogenerated accessors
1250 * Moose::Meta::Class
1251 - adding support for coercion in the
1252 instance construction
1254 * Moose::Meta::TypeConstraint
1255 * Moose::Meta::TypeCoercion
1256 - type constraints and coercions are now
1257 full fledges meta-objects
1259 0.01 Wed. March 15, 2006
1260 - Moooooooooooooooooose!!!