1 Revision history for Perl extension Moose
6 - role type tests now support when roles are
7 applied to non-Moose classes (found by ash)
8 - added tests for this (thanks to ash)
10 * Moose::Meta::Method::Constructor
11 - improved fix for handling Class::MOP attributes
15 - handled the add_attribute($attribute_meta_object)
19 0.35 Tues. Jan. 22, 2008
20 * Moose::Meta::Method::Constructor
21 - fix to make sure even Class::MOP attributes
22 are handled correctly (Thanks to Dave Rolsky)
23 - added test for this (also Dave Rolsky)
26 - improved error message on _apply_all_roles,
27 you should now use Moose::Util::apply_all_roles
28 and you shouldnt have been using a _ prefixed
29 method in the first place ;)
31 0.34 Mon. Jan. 21, 2008
32 ~~~ more misc. doc. fixes ~~~
33 ~~ updated copyright dates ~~
35 Moose is now a postmodern object system :)
36 - (see the POD for details)
38 * <<Role System Refactoring>>
39 - this release contains a major reworking and
40 cleanup of the role system
41 - 100% backwards compat.
42 - Role application now restructured into seperate
43 classes based on type of applicants
44 - Role summation (combining of more than one role)
45 is much cleaner and anon-classes are no longer
47 - new Composite role metaclass
48 - runtime application of roles to instances
49 is now more efficient and re-uses generated
50 classes when applicable
52 * <<New Role composition features>>
53 - methods can now be excluded from a given role
56 with 'My::Role' => { excludes => [qw/method1 method2/] };
58 - methods can now be aliased to another name (and
59 still retain the original as well)
63 method1 => method1_aliased
67 * <<New Attribute traits>>
68 - allows arbitrary roles to be applied to attribute metaobjects
69 to allow better combination of custom attribute features. Docs
70 are coming soon for this feature.
72 * <<New Maybe[$type] parameterized type>>
73 - added this new type which basically means the value is
74 of $type or it is undef
80 - now uses the Moose::Util::apply_all_roles to deal
84 - added the &apply_all_roles function
86 * Moose::Util::TypeConstraints
87 - all optimized type constraint subs are now
88 pulled from the Moose::Util::TypeConstraints::OptimizedConstraints
89 module (thanks to nothingmuch)
90 - improved support for the IO:: family of modules within the
91 FileHandle type constraint
93 * Moose::Util::TypeConstraints::OptimizedConstraints
94 - added this module (see above)
97 - fixed the &_process_attribute method to be called
98 by &add_attribute, so that the API is now correct
100 * Moose::Meta::Method::Accessor
101 - fixed bug when passing a list of values to
102 an accessor would get (incorrectly) ignored.
103 Thanks to Sartak for finding this ;)
104 - added tests for this (Sartak again)
106 * Moose::Meta::Method::Accessor
107 Moose::Meta::Method::Constructor
108 Moose::Meta::Attribute
109 Moose::Meta::TypeConstraint
110 Moose::Meta::TypeCoercion
111 - lots of cleanup of such things as:
113 - type constraint handling
114 - error handling/messages
115 (thanks to nothingmuch)
117 * Moose::Meta::TypeConstraint::Parameterizable
118 - added this module to support the refactor
119 in Moose::Meta::TypeConstraint::Parameterized
121 * Moose::Meta::TypeConstraint::Parameterized
122 - refactored how these types are handled so they
123 are more generic and not confined to ArrayRef
127 - shortened some file names for better VMS support (RT #32381)
129 0.33 Fri. Dec. 14, 2007
130 !! Moose now loads 2 x faster !!
131 !! with new Class::MOP 0.49 !!
133 ++ new oose.pm module to make command line
134 Moose-ness easier (see POD docs for more)
138 - several tweaks to take advantage of the
139 new method map caching in Class::MOP
141 * Moose::Meta::TypeConstraint::Parameterized
142 - allow subtypes of ArrayRef and HashRef to
143 be used as a container (sartak)
144 - added tests for this
145 - basic support for coercion to ArrayRef and
146 HashRef for containers (sartak)
147 - added tests for this
149 * Moose::Meta::TypeCoercion
150 - coercions will now create subtypes as needed
151 so you can now add coercions to parameterized
152 types without having to explictly define them
153 - added tests for this
155 * Moose::Meta::Method::Accessor
156 - allow subclasses to decide whether we need
157 to copy the value into a new variable (sartak)
159 0.32 Tues. Dec. 4, 2007
160 * Moose::Util::TypeConstraints
161 - fixing how subtype aliases of unions work
162 they should inherit the parent's coercion
163 - added tests for this
164 - you can now define multiple coercions on
165 a single type at different times instead of
166 having to do it all in one place
167 - added tests for this
169 * Moose::Meta::TypeConstraint
170 - there is now a default constraint of sub { 1 }
171 instead of Moose::Util::TypeConstraints setting
174 * Moose::Meta::TypeCoercion
175 * Moose::Meta::TypeCoercion::Union
176 - added the &has_coercion_for_type and
177 &add_type_coercions methods to support the
178 new features above (although you cannot add
179 more type coercions for Union types)
181 0.31 Mon. Nov. 26, 2007
182 * Moose::Meta::Attribute
183 - made the +attr syntax handle extending types with
184 parameters. So "has '+foo' => (isa => 'ArrayRef[Int]')"
185 now works if the original foo is an ArrayRef.
186 - added tests for this.
187 - delegation now works even if the attribute does not
188 have a reader method using the get_read_method_ref
189 method from Class::MOP::Attribute.
190 - added tests for this
191 - added docs for this
193 * Moose::Util::TypeConstraints
194 - passing no "additional attribute info" to
195 &find_or_create_type_constraint will no longer
196 attempt to create an __ANON__ type for you,
197 instead it will just return undef.
198 - added docs for this
200 0.30 Fri. Nov. 23, 2007
201 * Moose::Meta::Method::Constructor
202 -builder related bug in inlined constructor. (groditi)
204 * Moose::Meta::Method::Accessor
205 - genereate unnecessary calls to predicates and refactor
206 code generation for runtime speed (groditi)
208 * Moose::Util::TypeConstraints
209 - fix ClassName constraint to introspect symbol table (mst)
210 - added more tests for this (mst)
211 - fixed it so that subtype 'Foo' => as 'HashRef[Int]' ...
213 - added tests for this
216 - adding the link to Recipie 11 (written by Sartak)
217 - adding test for SYNOPSIS code
220 - New tests for builder bug. Upon instantiation, if an
221 attribute had a builder, no value and was not lazy the
222 builder default was not getting run, oops. (groditi)
224 0.29 Tues. Nov. 13, 2007
225 * Moose::Meta::Attribute
226 - Fix error message on missing builder method (groditi)
228 * Moose::Meta::Method::Accessor
229 - Fix error message on missing builder method (groditi)
232 - Add test to check for the correct error message when
233 builder method is missing (groditi)
235 0.28 Tues. Nov. 13, 2007
236 - 0.27 packaged incorrectly (groditi)
238 0.27 Tues. Nov. 13, 2007
239 * Moose::Meta::Attribute
240 - Added support for the new builder option (groditi)
241 - Added support for lazy_build option (groditi)
242 - Changed slot initialization for predicate changes (groditi)
244 * Moose::Meta::Method::Accessor
245 - Added support for lazy_build option (groditi)
246 - Fix inline methods to work with corrected predicate
249 * Moose::Meta::Method::Constructor
250 - Added support for lazy_build option (groditi)
253 - tests for builder and lazy_build (groditi)
255 * fixing some misc. bits in the docs that
256 got mentioned on CPAN Forum & perlmonks
259 - fixed how required methods are handled
260 when they encounter overriden or modified
261 methods from a class (thanks to confound).
262 - added tests for this
264 * Moose::Util::TypeConstraint
265 - fixed the type notation parser so that
266 the | always creates a union and so is
267 no longer a valid type char (thanks to
268 konobi, mugwump and #moose for working
270 - added more tests for this
272 0.26 Thurs. Sept. 27, 2007
275 * Parameterized Types
276 We now support parameterized collection types, such as:
277 ArrayRef[Int] # array or integers
278 HashRef[Object] # a hash with object values
279 They can also be nested:
280 ArrayRef[HashRef[RegExpr]] # an array of hashes with regexpr values
281 And work with the type unions as well:
282 ArrayRef[Int | Str] # array of integers of strings
284 * Better Framework Extendability
285 Moose.pm is now "extendable" such that it is now much
286 easier to extend the framework and add your own keywords
287 and customizations. See the "EXTENDING AND EMBEDDING MOOSE"
288 section of the Moose.pm docs.
291 In an effort to begin documenting some of the various
292 details of Moose as well as some common idioms, we have
293 created Moose::Cookbook::Snacks as a place to find
294 small (easily digestable) nuggets of Moose code.
297 ~ Several doc updates/cleanup thanks to castaway ~
299 - converted build system to use Module::Install instead of
300 Module::Build (thanks to jrockway)
303 - added all the meta classes to the immutable list and
304 set it to inline the accessors
305 - fix import to allow Sub::Exporter like { into => }
306 and { into_level => } (perigrin)
307 - exposed and documented init_meta() to allow better
308 embedding and extending of Moose (perigrin)
311 - complete re-organization of the test suite
312 - added some new tests as well
313 - finally re-enabled the Moose::POOP test since
314 the new version of DBM::Deep now works again
318 - fixed very odd and very nasty recursion bug with
320 - added tests for this (eilara)
322 * Moose::Meta::Attribute
323 Moose::Meta::Method::Constructor
324 Moose::Meta::Method::Accessor
325 - fixed issue with overload::Overloaded getting called
326 on non-blessed items. (RT #29269)
327 - added tests for this
329 * Moose::Meta::Method::Accessor
330 - fixed issue with generated accessor code making
331 assumptions about hash based classes (thanks to dexter)
333 * Moose::Coookbook::Snacks
334 - these are bits of documentation, not quite as big as
335 Recipes but which have no clear place in the module docs.
336 So they are Snacks! (horray for castaway++)
338 * Moose::Cookbook::Recipe4
339 - updated it to use the new ArrayRef[MyType] construct
340 - updated the accompanying test as well
342 +++ Major Refactor of the Type Constraint system +++
343 +++ with new features added as well +++
345 * Moose::Util::TypeConstraint
346 - no longer uses package variable to keep track of
347 the type constraints, now uses the an instance of
348 Moose::Meta::TypeConstraint::Registry to do it
349 - added more sophisticated type notation parsing
351 - added tests for this
353 * Moose::Meta::TypeConstraint
354 - some minor adjustments to make subclassing easier
355 - added the package_defined_in attribute so that we
356 can track where the type constraints are created
358 * Moose::Meta::TypeConstraint::Union
359 - this is now been refactored to be a subclass of
360 Moose::Meta::TypeConstraint
362 * Moose::Meta::TypeCoercion::Union
363 - this has been added to service the newly refactored
364 Moose::Meta::TypeConstraint::Union and is itself
365 a subclass of Moose::Meta::TypeCoercion
367 * Moose::Meta::TypeConstraint::Parameterized
368 - added this module (taken from MooseX::AttributeHelpers)
369 to help construct nested collection types
370 - added tests for this
372 * Moose::Meta::TypeConstraint::Registry
373 - added this class to keep track of type constraints
375 0.25 Mon. Aug. 13, 2007
377 - Documentation update to reference Moose::Util::TypeConstraints
378 under 'isa' in 'has' for how to define a new type
381 * Moose::Meta::Attribute
382 - required attributes now will no longer accept undef
383 from the constructor, even if there is a default and lazy
384 - added tests for this
385 - default subroutines must return a value which passes the
387 - added tests for this
389 * Moose::Meta::Attribute
390 * Moose::Meta::Method::Constructor
391 * Moose::Meta::Method::Accessor
392 - type-constraint tests now handle overloaded objects correctly
394 - added tests for this (thanks to EvanCarroll)
396 * Moose::Meta::TypeConstraint::Union
397 - added (has_)hand_optimized_constraint to this class so that
398 it behaves as the regular Moose::Meta::TypeConstraint does.
401 - large refactoring of this code
402 - added several more tests
403 - tests for subtle conflict resolition issues
404 added, but not currently running
407 * Moose::Cookbook::Recipe7
408 - added new recipe for augment/inner functionality
410 - added test for this
413 - a formal definition of roles (still in progress)
416 - utilities for easier working with Moose classes
417 - added tests for these
420 - This contains Moose specific test functions
421 - added tests for these
423 0.24 Tues. July 3, 2007
424 ~ Some doc updates/cleanup ~
426 * Moose::Meta::Attribute
427 - added support for roles to be given as parameters
428 to the 'handles' option.
429 - added tests and docs for this
430 - the has '+foo' attribute form now accepts changes to
431 the lazy option, and the addition of a handles option
432 (but not changing the handles option)
433 - added tests and docs for this
436 - required methods are now fetched using find_method_by_name
437 so that required methods can come from superclasses
438 - adjusted tests for this
440 0.23 Mon. June 18, 2007
441 * Moose::Meta::Method::Constructor
442 - fix inlined constructor for hierarchy with multiple BUILD methods (mst)
444 - Modify make_immutable to work with the new Class::MOP immutable
445 mechanism + POD + very basic test (groditi)
446 * Moose::Meta::Attribute
447 - Fix handles to use goto() so that caller() comes out properly on
448 the other side (perigrin)
450 0.22 Thurs. May 31, 2007
451 * Moose::Util::TypeConstraints
452 - fix for prototype undeclared issue when Moose::Util::TypeConstraints
453 loaded before consumers (e.g. Moose::Meta::Attribute) by predeclaring
454 prototypes for functions
455 - added the ClassName type constraint, this checks for strings
456 which will respond true to ->isa(UNIVERSAL).
457 - added tests and docs for this
458 - subtyping just in name now works correctly by making the
459 default for where be { 1 }
460 - added test for this
462 * Moose::Meta::Method::Accessor
463 - coerce and lazy now work together correctly, thanks to
464 merlyn for finding this bug
465 - tests added for this
466 - fix reader presedence bug in Moose::Meta::Attribute + tests
469 - Foo->new(undef) now gets ignored, it is assumed you meant to pass
470 a HASH-ref and missed. This produces better error messages then
471 having it die cause undef is not a HASH.
472 - added tests for this
474 0.21 Thursday, May 2nd, 2007
476 - added SUPER_SLOT and INNER_SLOT class hashes to support unimport
477 - modified unimport to remove super and inner along with the rest
478 - altered unimport tests to handle this
481 - altered super export to populate SUPER_SLOT
484 - altered augment and override modifier application to use *_SLOT
485 - modified tests for these to unimport one test class each to test
488 - fixed issue where custom attribute metaclasses
489 where not handled correctly in roles
490 - added tests for this
493 - fixed issue where extending metaclasses with
494 roles would blow up. Thanks to Aankhen`` for
495 finding this insidious error, and it's solution.
497 ~~ lots of spelling and grammer fixes in the docs,
498 many many thanks to rlb3 and Aankhen for these :)
500 0.20 Friday, April 6th, 2007
501 >> I messed up the SKIP logic in one test
502 so this release is just to fix that.
505 - 'has' now also accepts an ARRAY ref
506 to create multiple attrs (see docs)
507 (thanks to konobi for this)
508 - added tests and docs
510 0.19 Thurs. April 5th, 2007
511 ~~ More documentation updates ~~
513 * Moose::Util::TypeConstraints
514 - 'type' now supports messages as well
515 thanks to phaylon for finding this
516 - added tests for this
517 - added &list_all_type_constraints and
518 &list_all_builtin_type_constraints
519 functions to facilitate introspection.
521 * Moose::Meta::Attribute
522 - fixed regexp 'handles' declarations
523 to build the list of delegated methods
524 correctly (and not override important
525 things like &new) thanks to ashleyb
527 - added tests and docs for this
528 - added the 'documentation' attributes
529 so that you can actually document your
530 attributes and inspect them through the
532 - added tests and docs for this
535 - when loading custom attribute metaclasses
536 it will first look in for the class in the
537 Moose::Meta::Attribute::Custom::$name, and
538 then default to just loading $name.
539 - added tests and docs for this
541 * Moose::Meta::TypeConstraint
542 - type constraints now stringify to their names.
543 - added test for this
546 - added tests to assure we work with Module::Refresh
547 - added stricter test skip logic in the Moose POOP
548 test, ask Rob Kinyon why.
549 - *cough* DBM::Deep 1.0 backwards compatability sucks *cough* ;)
551 0.18 Sat. March 10, 2007
552 ~~ Many, many documentation updates ~~
555 - We now use Class::MOP::load_class to
557 - added tests to show types and subtypes
558 working with Declare::Constraints::Simple
559 and Test::Deep as constraint engines.
562 !! You must have Class::MOP 0.37_001 !!
563 !! for this developer release to work !!
565 This release was primarily adding the immutable
566 feature to Moose. An immutable class is one which
567 you promise not to alter. When you set the class
568 as immutable it will perform various bits of
569 memoization and inline certain part of the code
570 (constructors, destructors and accessors). This
571 minimizes (and in some cases totally eliminates)
572 one of Moose's biggest performance hits. This
573 feature is not on by default, and is 100% optional.
574 It has several configurable bits as well, so you
575 can pick and choose to your specific needs.
577 The changes involved in this were fairly wide and
578 highly specific, but 100% backwards compatible, so
579 I am not going to enumerate them here. If you are
580 truely interested in what was changed, please do
583 0.17 Tues. Nov. 14, 2006
584 * Moose::Meta::Method::Accessor
585 - bugfix for read-only accessors which
586 are have a type constraint and lazy.
587 Thanks to chansen for finding it.
589 0.16 Tues. Nov. 14, 2006
591 There are some speed improvements in this release,
592 but they are only the begining, so stay tuned.
595 - BUILDALL and DEMOLISHALL no longer get
596 called unless they actually need to be.
597 This gave us a signifigant speed boost
598 for the cases when there is no BUILD or
599 DEMOLISH method present.
601 * Moose::Util::TypeConstraints
602 * Moose::Meta::TypeConstraint
603 - added an 'optimize_as' option to the
604 type constraint, which allows for a
605 hand optimized version of the type
606 constraint to be used when possible.
607 - Any internally created type constraints
608 now provide an optimized version as well.
610 0.15 Sun. Nov. 5, 2006
612 This version of Moose *must* have Class::MOP 0.36 in order
613 to work correctly. A number of small internal tweaks have
614 been made in order to be compatible with that release.
616 * Moose::Util::TypeConstraints
617 - added &unimport so that you can clean out
618 your class namespace of these exported
622 - fixed minor issue which occasionally
623 comes up during global destruction
625 - moved Moose::Meta::Method::Overriden into
629 - moved Moose::Meta::Role::Method into
632 * Moose::Meta::Attribute
633 - changed how we do type checks so that
634 we reduce the overall cost, but still
637 - moved accessor generation methods to
638 Moose::Meta::Method::Accessor to
639 conform to the API changes from
642 * Moose::Meta::TypeConstraint
643 - changed how constraints are compiled
644 so that we do less recursion and more
645 iteration. This makes the type check
647 - moved Moose::Meta::TypeConstraint::Union
650 * Moose::Meta::Method::Accessor
651 - created this from methods formerly found in
652 Moose::Meta::Attribute
654 * Moose::Meta::Role::Method
655 - moved this from Moose::Meta::Role
657 * Moose::Meta::Method::Overriden
658 - moved this from Moose::Meta::Class
660 * Moose::Meta::TypeConstraint::Union
661 - moved this from Moose::Meta::TypeConstraint
663 0.14 Mon. Oct. 9, 2006
665 * Moose::Meta::Attribute
666 - fixed lazy attributes which were not getting
667 checked with the type constraint (thanks ashley)
668 - added tests for this
669 - removed the over-enthusiastic DWIMery of the
670 automatic ArrayRef and HashRef defaults, it
671 broke predicates in an ugly way.
672 - removed tests for this
674 0.13 Sat. Sept. 30, 2006
676 This version of Moose *must* have Class::MOP 0.35 in order
677 to work correctly. A number of small internal tweaks have
678 been made in order to be compatible with that release.
681 - Removed the use of UNIVERSAL::require to be a better
682 symbol table citizen and remove a dependency
683 (thanks Adam Kennedy)
685 **~~ removed experimental & undocumented feature ~~**
686 - commented out the 'method' and 'self' keywords, see the
687 comments for more info.
690 - added a FAQ and WTF files to document frequently
691 asked questions and common problems
693 * Moose::Util::TypeConstraints
694 - added GlobRef and FileHandle type constraint
695 - added tests for this
697 * Moose::Meta::Attribute
698 - if your attribute 'isa' ArrayRef of HashRef, and you have
699 not explicitly set a default, then make the default DWIM.
700 This will also work for subtypes of ArrayRef and HashRef
702 - you can now auto-deref subtypes of ArrayRef or HashRef too.
703 - new test added for this (thanks to ashley)
706 - added basic support for runtime role composition
707 but this is still *highly experimental*, so feedback
708 is much appreciated :)
709 - added tests for this
711 * Moose::Meta::TypeConstraint
712 - the type constraint now handles the coercion process
713 through delegation, this is to support the coercion
716 * Moose::Meta::TypeConstraint::Union
717 - it is now possible for coercions to be performed
719 - added tests for this (thanks to konobi)
721 * Moose::Meta::TypeCoercion
722 - properly capturing error when type constraint
726 - Scalar::Util 1.18 is bad on Win32, so temporarily
727 only require version 1.17 for Win32 and cygwin.
728 (thanks Adam Kennedy)
730 0.12 Sat. Sept. 1, 2006
732 - Recipe5 (subtypes & coercion) has been written
735 - fixed "bad meta" error message to be more descriptive
736 - fixed &unimport to not remove the &inner and &super
737 keywords because we need to localize them.
738 - fixed number of spelling/grammer issues, thanks Theory :)
740 **~~ experimental & undocumented feature ~~**
741 - added the method and self keywords, they are basically
742 just sugar, and they may not stay around.
745 - added &dump method to easily Data::Dumper
748 * Moose::Meta::TypeConstraint
749 - added the &is_a_type_of method to check both the current
750 and the subtype of a method (similar to &isa with classes)
753 - this is now a subclass of Class::MOP::Module, and no longer
754 creates the _role_meta ugliness of before.
755 - fixed tests to reflect this change
757 0.11 Wed. July 12, 2006
759 - added an &unimport method to remove all the keywords
760 that Moose will import, simply add 'no Moose' to the
761 bottom of your class file.
764 - fixed some test failures caused by a forgotten test
767 0.10 Thurs. July 6, 2006
769 - improved error message when loading modules so
770 it is less confusing when you load a role.
771 - added &calculate_all_roles method to
772 Moose::Meta::Class and Moose::Meta::Role
775 This module has been tested against Class::MOP 0.30
776 but it does not yet utilize the optimizations
777 it makes available. Stay tuned for that ;)
779 0.09_03 Fri. June 23, 2006
780 ++ DEVELOPER RELEASE ++
782 - 'use strict' and 'use warnings' are no longer
783 needed in Moose classes, Moose itself will
784 turn them on for you.
785 - added tests for this
786 - moved code from exported subs to private methods
787 in Moose::Meta::Class
790 - as with Moose, strict and warnings are
791 automatically turned on for you.
792 - added tests for this
795 - now handles an edge case for override errors
796 - added tests for this
797 - added some more edge case tests
799 0.09_02 Tues. May 16, 2006
800 ++ DEVELOPER RELEASE ++
802 - added prototypes to the exported subs
806 - added prototypes to the exported subs
809 * Moose::Util::TypeConstraints
810 - cleaned up prototypes for the subs
813 0.09_01 Fri. May 12, 2006
814 ++ DEVELOPER RELEASE ++
815 - This release works in combination with
816 Class::MOP 0.29_01, it is a developer
817 release because it uses the a new
818 instance sub-protocol and a fairly
819 complete Role implementation. It has
820 not yet been optimized, so it slower
821 the the previous CPAN version. This
822 release also lacks good updated docs,
823 the official release will have updated docs.
826 - refactored the keyword exports
827 - 'with' now checks Role validaity and
828 accepts more than one Role at a time
829 - 'extends' makes metaclass adjustments as
830 needed to ensure metaclass compatability
833 - refactored the keyword exports
834 - 'with' now checks Role validaity and
835 accepts more than one Role at a time
837 * Moose::Util::TypeConstraints
838 - added the 'enum' keyword for simple
839 string enumerations which can be used as
841 - see example of usage in t/202_example.t
844 - more careful checking of params to new()
847 - much work done on the role composition
848 - many new tests for conflict detection
849 and composition edge cases
850 - not enough documentation, I suggest
853 * Moose::Meta::Instance
854 - added new Instance metaclass to support
855 the new Class::MOP instance protocol
858 - some small changes to support the new
860 - some small additions to support Roles
862 * Moose::Meta::Attribute
863 - some improvements to the accessor generation code
865 - some small changes to support the new
867 - (still somewhat) experimental delegation support
868 with the 'handles' option
869 - added several tests for this
870 - no docs for this yet
872 0.05 Thurs. April 27, 2006
874 - keywords are now exported with Sub::Exporter
875 thanks to chansen for this commit
876 - has keyword now takes a 'metaclass' option
877 to support custom attribute meta-classes
878 on a per-attribute basis
879 - added tests for this
880 - the 'has' keyword not accepts inherited slot
881 specifications (has '+foo'). This is still an
882 experimental feature and probably not finished
883 see t/038_attribute_inherited_slot_specs.t for
884 more details, or ask about it on #moose
885 - added tests for this
888 - keywords are now exported with Sub::Exporter
890 * Moose::Utils::TypeConstraints
891 - reorganized the type constraint hierarchy, thanks
892 to nothingmuch and chansen for his help and advice
894 - added some tests for this
895 - keywords are now exported with Sub::Exporter
896 thanks to chansen for this commit
899 - due to changes in Class::MOP, we had to change
900 construct_instance (for the better)
902 * Moose::Meta::Attribute
903 - due to changes in Class::MOP, we had to add the
904 initialize_instance_slot method (it's a good thing)
906 * Moose::Meta::TypeConstraint
907 - added type constraint unions
908 - added tests for this
909 - added the is_subtype_of predicate method
910 - added tests for this
912 0.04 Sun. April 16th, 2006
914 - Roles can now consume other roles
915 - added tests for this
916 - Roles can specify required methods now with
917 the requires() keyword
918 - added tests for this
921 - ripped out much of it's guts ,.. much cleaner now
922 - added required methods and correct handling of
923 them in apply() for both classes and roles
924 - added tests for this
925 - no longer adds a does() method to consuming classes
926 it relys on the one in Moose::Object
927 - added roles attribute and some methods to support
928 roles consuming roles
930 * Moose::Meta::Attribute
931 - added support for triggers on attributes
932 - added tests for this
933 - added support for does option on an attribute
934 - added tests for this
937 - added support for attribute triggers in the
939 - added tests for this
942 - Moose no longer creates a subtype for your class
943 if a subtype of the same name already exists, this
944 should DWIM in 99.9999% of all cases
946 * Moose::Util::TypeConstraints
947 - fixed bug where incorrect subtype conflicts were
949 - added test for this
952 - this class can now be extended with 'use base' if
953 you need it, it properly loads the metaclass class now
954 - added test for this
956 0.03_02 Wed. April 12, 2006
958 - you must now explictly use Moose::Util::TypeConstraints
959 it no longer gets exported for you automatically
962 - new() now accepts hash-refs as well as key/value lists
963 - added does() method to check for Roles
964 - added tests for this
967 - added roles attribute along with the add_role() and
969 - added tests for this
972 - now adds a does() method to consuming classes
973 which tests the class's hierarchy for roles
974 - added tests for this
976 0.03_01 Mon. April 10, 2006
978 - added new Role recipe (no content yet, only code)
981 - added 'with' keyword for Role support
982 - added test and docs for this
983 - fixed subtype quoting bug
984 - added test for this
988 - added test and docs
990 * Moose::Util::TypeConstraints
991 - added the message keyword to add custom
992 error messages to type constraints
995 - the meta role to support Moose::Role
996 - added tests and docs
999 - moved a number of things from Moose.pm
1000 to here, they should have been here
1003 * Moose::Meta::Attribute
1004 - moved the attribute option macros here
1005 instead of putting them in Moose.pm
1007 * Moose::Meta::TypeConstraint
1008 - added the message attributes and the
1010 - added tests and docs for this
1012 0.03 Thurs. March 30, 2006
1014 - added the Moose::Cookbook with 5 recipes,
1015 describing all the stuff Moose can do.
1018 - fixed an issue with &extends super class loading
1019 it now captures errors and deals with inline
1020 packages correctly (bug found by mst, solution
1022 - added super/override & inner/augment features
1023 - added tests and docs for these
1026 - BUILDALL now takes a reference of the %params
1027 that are passed to &new, and passes that to
1030 * Moose::Util::TypeConstraints
1031 - Type constraints now survive runtime reloading
1032 - added test for this
1034 * Moose::Meta::Class
1035 - fixed the way attribute defaults are handled
1036 during instance construction (bug found by chansen)
1038 * Moose::Meta::Attribute
1039 - read-only attributes now actually enforce their
1040 read-only-ness (this corrected in Class::MOP as
1043 0.02 Tues. March 21, 2006
1045 - many more tests, fixing some bugs and
1047 - &extends now loads the base module with
1049 - added UNIVERSAL::require to the
1052 - each new Moose class will also create
1053 and register a subtype of Object which
1054 correspond to the new Moose class.
1055 - the 'isa' option in &has now only
1056 accepts strings, and will DWIM in
1059 * Moose::Util::TypeConstraints
1060 - added type coercion features
1061 - added tests for this
1062 - added support for this in attributes
1063 and instance construction
1065 - type construction no longer creates a
1066 function, it registers the type instead.
1067 - added several functions to get the
1071 - BUILDALL and DEMOLISHALL were broken
1072 because of a mis-named hash key, Whoops :)
1074 * Moose::Meta::Attribute
1075 - adding support for coercion in the
1076 autogenerated accessors
1078 * Moose::Meta::Class
1079 - adding support for coercion in the
1080 instance construction
1082 * Moose::Meta::TypeConstraint
1083 * Moose::Meta::TypeCoercion
1084 - type constraints and coercions are now
1085 full fledges meta-objects
1087 0.01 Wed. March 15, 2006
1088 - Moooooooooooooooooose!!!