1 Revision history for Perl extension Moose
3 0.36 Sat. Jan. 26, 2008
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)
9 - couple extra tests to boost code coverage
11 * Moose::Meta::Method::Constructor
12 - improved fix for handling Class::MOP attributes
16 - handled the add_attribute($attribute_meta_object)
20 0.35 Tues. Jan. 22, 2008
21 * Moose::Meta::Method::Constructor
22 - fix to make sure even Class::MOP attributes
23 are handled correctly (Thanks to Dave Rolsky)
24 - added test for this (also Dave Rolsky)
27 - improved error message on _apply_all_roles,
28 you should now use Moose::Util::apply_all_roles
29 and you shouldnt have been using a _ prefixed
30 method in the first place ;)
32 0.34 Mon. Jan. 21, 2008
33 ~~~ more misc. doc. fixes ~~~
34 ~~ updated copyright dates ~~
36 Moose is now a postmodern object system :)
37 - (see the POD for details)
39 * <<Role System Refactoring>>
40 - this release contains a major reworking and
41 cleanup of the role system
42 - 100% backwards compat.
43 - Role application now restructured into seperate
44 classes based on type of applicants
45 - Role summation (combining of more than one role)
46 is much cleaner and anon-classes are no longer
48 - new Composite role metaclass
49 - runtime application of roles to instances
50 is now more efficient and re-uses generated
51 classes when applicable
53 * <<New Role composition features>>
54 - methods can now be excluded from a given role
56 - methods can now be aliased to another name (and
57 still retain the original as well)
59 * Moose::Util::TypeConstraints::OptimizedConstraints
60 - added this module (see above)
63 - fixed the &_process_attribute method to be called
64 by &add_attribute, so that the API is now correct
66 * Moose::Meta::Method::Accessor
67 - fixed bug when passing a list of values to
68 an accessor would get (incorrectly) ignored.
69 Thanks to Sartak for finding this ;)
70 - added tests for this (Sartak again)
72 * Moose::Meta::Method::Accessor
73 Moose::Meta::Method::Constructor
74 Moose::Meta::Attribute
75 Moose::Meta::TypeConstraint
76 Moose::Meta::TypeCoercion
77 - lots of cleanup of such things as:
79 - type constraint handling
80 - error handling/messages
81 (thanks to nothingmuch)
83 * Moose::Meta::TypeConstraint::Parameterizable
84 - added this module to support the refactor
85 in Moose::Meta::TypeConstraint::Parameterized
87 * Moose::Meta::TypeConstraint::Parameterized
88 - refactored how these types are handled so they
89 are more generic and not confined to ArrayRef
93 - shortened some file names for better VMS support (RT #32381)
95 0.33 Fri. Dec. 14, 2007
96 !! Moose now loads 2 x faster !!
97 !! with new Class::MOP 0.49 !!
99 ++ new oose.pm module to make command line
100 Moose-ness easier (see POD docs for more)
104 - several tweaks to take advantage of the
105 new method map caching in Class::MOP
107 * Moose::Meta::TypeConstraint::Parameterized
108 - allow subtypes of ArrayRef and HashRef to
109 be used as a container (sartak)
110 - added tests for this
111 - basic support for coercion to ArrayRef and
112 HashRef for containers (sartak)
113 - added tests for this
115 * Moose::Meta::TypeCoercion
116 - coercions will now create subtypes as needed
117 so you can now add coercions to parameterized
118 types without having to explictly define them
119 - added tests for this
121 * Moose::Meta::Method::Accessor
122 - allow subclasses to decide whether we need
123 to copy the value into a new variable (sartak)
125 0.32 Tues. Dec. 4, 2007
126 * Moose::Util::TypeConstraints
127 - fixing how subtype aliases of unions work
128 they should inherit the parent's coercion
129 - added tests for this
130 - you can now define multiple coercions on
131 a single type at different times instead of
132 having to do it all in one place
133 - added tests for this
135 * Moose::Meta::TypeConstraint
136 - there is now a default constraint of sub { 1 }
137 instead of Moose::Util::TypeConstraints setting
140 * Moose::Meta::TypeCoercion
141 * Moose::Meta::TypeCoercion::Union
142 - added the &has_coercion_for_type and
143 &add_type_coercions methods to support the
144 new features above (although you cannot add
145 more type coercions for Union types)
147 0.31 Mon. Nov. 26, 2007
148 * Moose::Meta::Attribute
149 - made the +attr syntax handle extending types with
150 parameters. So "has '+foo' => (isa => 'ArrayRef[Int]')"
151 now works if the original foo is an ArrayRef.
152 - added tests for this.
153 - delegation now works even if the attribute does not
154 have a reader method using the get_read_method_ref
155 method from Class::MOP::Attribute.
156 - added tests for this
157 - added docs for this
159 * Moose::Util::TypeConstraints
160 - passing no "additional attribute info" to
161 &find_or_create_type_constraint will no longer
162 attempt to create an __ANON__ type for you,
163 instead it will just return undef.
164 - added docs for this
166 0.30 Fri. Nov. 23, 2007
167 * Moose::Meta::Method::Constructor
168 -builder related bug in inlined constructor. (groditi)
170 * Moose::Meta::Method::Accessor
171 - genereate unnecessary calls to predicates and refactor
172 code generation for runtime speed (groditi)
174 * Moose::Util::TypeConstraints
175 - fix ClassName constraint to introspect symbol table (mst)
176 - added more tests for this (mst)
177 - fixed it so that subtype 'Foo' => as 'HashRef[Int]' ...
179 - added tests for this
182 - adding the link to Recipie 11 (written by Sartak)
183 - adding test for SYNOPSIS code
186 - New tests for builder bug. Upon instantiation, if an
187 attribute had a builder, no value and was not lazy the
188 builder default was not getting run, oops. (groditi)
190 0.29 Tues. Nov. 13, 2007
191 * Moose::Meta::Attribute
192 - Fix error message on missing builder method (groditi)
194 * Moose::Meta::Method::Accessor
195 - Fix error message on missing builder method (groditi)
198 - Add test to check for the correct error message when
199 builder method is missing (groditi)
201 0.28 Tues. Nov. 13, 2007
202 - 0.27 packaged incorrectly (groditi)
204 0.27 Tues. Nov. 13, 2007
205 * Moose::Meta::Attribute
206 - Added support for the new builder option (groditi)
207 - Added support for lazy_build option (groditi)
208 - Changed slot initialization for predicate changes (groditi)
210 * Moose::Meta::Method::Accessor
211 - Added support for lazy_build option (groditi)
212 - Fix inline methods to work with corrected predicate
215 * Moose::Meta::Method::Constructor
216 - Added support for lazy_build option (groditi)
219 - tests for builder and lazy_build (groditi)
221 * fixing some misc. bits in the docs that
222 got mentioned on CPAN Forum & perlmonks
225 - fixed how required methods are handled
226 when they encounter overriden or modified
227 methods from a class (thanks to confound).
228 - added tests for this
230 * Moose::Util::TypeConstraint
231 - fixed the type notation parser so that
232 the | always creates a union and so is
233 no longer a valid type char (thanks to
234 konobi, mugwump and #moose for working
236 - added more tests for this
238 0.26 Thurs. Sept. 27, 2007
241 * Parameterized Types
242 We now support parameterized collection types, such as:
243 ArrayRef[Int] # array or integers
244 HashRef[Object] # a hash with object values
245 They can also be nested:
246 ArrayRef[HashRef[RegExpr]] # an array of hashes with regexpr values
247 And work with the type unions as well:
248 ArrayRef[Int | Str] # array of integers of strings
250 * Better Framework Extendability
251 Moose.pm is now "extendable" such that it is now much
252 easier to extend the framework and add your own keywords
253 and customizations. See the "EXTENDING AND EMBEDDING MOOSE"
254 section of the Moose.pm docs.
257 In an effort to begin documenting some of the various
258 details of Moose as well as some common idioms, we have
259 created Moose::Cookbook::Snacks as a place to find
260 small (easily digestable) nuggets of Moose code.
263 ~ Several doc updates/cleanup thanks to castaway ~
265 - converted build system to use Module::Install instead of
266 Module::Build (thanks to jrockway)
269 - added all the meta classes to the immutable list and
270 set it to inline the accessors
271 - fix import to allow Sub::Exporter like { into => }
272 and { into_level => } (perigrin)
273 - exposed and documented init_meta() to allow better
274 embedding and extending of Moose (perigrin)
277 - complete re-organization of the test suite
278 - added some new tests as well
279 - finally re-enabled the Moose::POOP test since
280 the new version of DBM::Deep now works again
284 - fixed very odd and very nasty recursion bug with
286 - added tests for this (eilara)
288 * Moose::Meta::Attribute
289 Moose::Meta::Method::Constructor
290 Moose::Meta::Method::Accessor
291 - fixed issue with overload::Overloaded getting called
292 on non-blessed items. (RT #29269)
293 - added tests for this
295 * Moose::Meta::Method::Accessor
296 - fixed issue with generated accessor code making
297 assumptions about hash based classes (thanks to dexter)
299 * Moose::Coookbook::Snacks
300 - these are bits of documentation, not quite as big as
301 Recipes but which have no clear place in the module docs.
302 So they are Snacks! (horray for castaway++)
304 * Moose::Cookbook::Recipe4
305 - updated it to use the new ArrayRef[MyType] construct
306 - updated the accompanying test as well
308 +++ Major Refactor of the Type Constraint system +++
309 +++ with new features added as well +++
311 * Moose::Util::TypeConstraint
312 - no longer uses package variable to keep track of
313 the type constraints, now uses the an instance of
314 Moose::Meta::TypeConstraint::Registry to do it
315 - added more sophisticated type notation parsing
317 - added tests for this
319 * Moose::Meta::TypeConstraint
320 - some minor adjustments to make subclassing easier
321 - added the package_defined_in attribute so that we
322 can track where the type constraints are created
324 * Moose::Meta::TypeConstraint::Union
325 - this is now been refactored to be a subclass of
326 Moose::Meta::TypeConstraint
328 * Moose::Meta::TypeCoercion::Union
329 - this has been added to service the newly refactored
330 Moose::Meta::TypeConstraint::Union and is itself
331 a subclass of Moose::Meta::TypeCoercion
333 * Moose::Meta::TypeConstraint::Parameterized
334 - added this module (taken from MooseX::AttributeHelpers)
335 to help construct nested collection types
336 - added tests for this
338 * Moose::Meta::TypeConstraint::Registry
339 - added this class to keep track of type constraints
341 0.25 Mon. Aug. 13, 2007
343 - Documentation update to reference Moose::Util::TypeConstraints
344 under 'isa' in 'has' for how to define a new type
347 * Moose::Meta::Attribute
348 - required attributes now will no longer accept undef
349 from the constructor, even if there is a default and lazy
350 - added tests for this
351 - default subroutines must return a value which passes the
353 - added tests for this
355 * Moose::Meta::Attribute
356 * Moose::Meta::Method::Constructor
357 * Moose::Meta::Method::Accessor
358 - type-constraint tests now handle overloaded objects correctly
360 - added tests for this (thanks to EvanCarroll)
362 * Moose::Meta::TypeConstraint::Union
363 - added (has_)hand_optimized_constraint to this class so that
364 it behaves as the regular Moose::Meta::TypeConstraint does.
367 - large refactoring of this code
368 - added several more tests
369 - tests for subtle conflict resolition issues
370 added, but not currently running
373 * Moose::Cookbook::Recipe7
374 - added new recipe for augment/inner functionality
376 - added test for this
379 - a formal definition of roles (still in progress)
382 - utilities for easier working with Moose classes
383 - added tests for these
386 - This contains Moose specific test functions
387 - added tests for these
389 0.24 Tues. July 3, 2007
390 ~ Some doc updates/cleanup ~
392 * Moose::Meta::Attribute
393 - added support for roles to be given as parameters
394 to the 'handles' option.
395 - added tests and docs for this
396 - the has '+foo' attribute form now accepts changes to
397 the lazy option, and the addition of a handles option
398 (but not changing the handles option)
399 - added tests and docs for this
402 - required methods are now fetched using find_method_by_name
403 so that required methods can come from superclasses
404 - adjusted tests for this
406 0.23 Mon. June 18, 2007
407 * Moose::Meta::Method::Constructor
408 - fix inlined constructor for hierarchy with multiple BUILD methods (mst)
410 - Modify make_immutable to work with the new Class::MOP immutable
411 mechanism + POD + very basic test (groditi)
412 * Moose::Meta::Attribute
413 - Fix handles to use goto() so that caller() comes out properly on
414 the other side (perigrin)
416 0.22 Thurs. May 31, 2007
417 * Moose::Util::TypeConstraints
418 - fix for prototype undeclared issue when Moose::Util::TypeConstraints
419 loaded before consumers (e.g. Moose::Meta::Attribute) by predeclaring
420 prototypes for functions
421 - added the ClassName type constraint, this checks for strings
422 which will respond true to ->isa(UNIVERSAL).
423 - added tests and docs for this
424 - subtyping just in name now works correctly by making the
425 default for where be { 1 }
426 - added test for this
428 * Moose::Meta::Method::Accessor
429 - coerce and lazy now work together correctly, thanks to
430 merlyn for finding this bug
431 - tests added for this
432 - fix reader presedence bug in Moose::Meta::Attribute + tests
435 - Foo->new(undef) now gets ignored, it is assumed you meant to pass
436 a HASH-ref and missed. This produces better error messages then
437 having it die cause undef is not a HASH.
438 - added tests for this
440 0.21 Thursday, May 2nd, 2007
442 - added SUPER_SLOT and INNER_SLOT class hashes to support unimport
443 - modified unimport to remove super and inner along with the rest
444 - altered unimport tests to handle this
447 - altered super export to populate SUPER_SLOT
450 - altered augment and override modifier application to use *_SLOT
451 - modified tests for these to unimport one test class each to test
454 - fixed issue where custom attribute metaclasses
455 where not handled correctly in roles
456 - added tests for this
459 - fixed issue where extending metaclasses with
460 roles would blow up. Thanks to Aankhen`` for
461 finding this insidious error, and it's solution.
463 ~~ lots of spelling and grammer fixes in the docs,
464 many many thanks to rlb3 and Aankhen for these :)
466 0.20 Friday, April 6th, 2007
467 >> I messed up the SKIP logic in one test
468 so this release is just to fix that.
471 - 'has' now also accepts an ARRAY ref
472 to create multiple attrs (see docs)
473 (thanks to konobi for this)
474 - added tests and docs
476 0.19 Thurs. April 5th, 2007
477 ~~ More documentation updates ~~
479 * Moose::Util::TypeConstraints
480 - 'type' now supports messages as well
481 thanks to phaylon for finding this
482 - added tests for this
483 - added &list_all_type_constraints and
484 &list_all_builtin_type_constraints
485 functions to facilitate introspection.
487 * Moose::Meta::Attribute
488 - fixed regexp 'handles' declarations
489 to build the list of delegated methods
490 correctly (and not override important
491 things like &new) thanks to ashleyb
493 - added tests and docs for this
494 - added the 'documentation' attributes
495 so that you can actually document your
496 attributes and inspect them through the
498 - added tests and docs for this
501 - when loading custom attribute metaclasses
502 it will first look in for the class in the
503 Moose::Meta::Attribute::Custom::$name, and
504 then default to just loading $name.
505 - added tests and docs for this
507 * Moose::Meta::TypeConstraint
508 - type constraints now stringify to their names.
509 - added test for this
512 - added tests to assure we work with Module::Refresh
513 - added stricter test skip logic in the Moose POOP
514 test, ask Rob Kinyon why.
515 - *cough* DBM::Deep 1.0 backwards compatability sucks *cough* ;)
517 0.18 Sat. March 10, 2007
518 ~~ Many, many documentation updates ~~
521 - We now use Class::MOP::load_class to
523 - added tests to show types and subtypes
524 working with Declare::Constraints::Simple
525 and Test::Deep as constraint engines.
528 !! You must have Class::MOP 0.37_001 !!
529 !! for this developer release to work !!
531 This release was primarily adding the immutable
532 feature to Moose. An immutable class is one which
533 you promise not to alter. When you set the class
534 as immutable it will perform various bits of
535 memoization and inline certain part of the code
536 (constructors, destructors and accessors). This
537 minimizes (and in some cases totally eliminates)
538 one of Moose's biggest performance hits. This
539 feature is not on by default, and is 100% optional.
540 It has several configurable bits as well, so you
541 can pick and choose to your specific needs.
543 The changes involved in this were fairly wide and
544 highly specific, but 100% backwards compatible, so
545 I am not going to enumerate them here. If you are
546 truely interested in what was changed, please do
549 0.17 Tues. Nov. 14, 2006
550 * Moose::Meta::Method::Accessor
551 - bugfix for read-only accessors which
552 are have a type constraint and lazy.
553 Thanks to chansen for finding it.
555 0.16 Tues. Nov. 14, 2006
557 There are some speed improvements in this release,
558 but they are only the begining, so stay tuned.
561 - BUILDALL and DEMOLISHALL no longer get
562 called unless they actually need to be.
563 This gave us a signifigant speed boost
564 for the cases when there is no BUILD or
565 DEMOLISH method present.
567 * Moose::Util::TypeConstraints
568 * Moose::Meta::TypeConstraint
569 - added an 'optimize_as' option to the
570 type constraint, which allows for a
571 hand optimized version of the type
572 constraint to be used when possible.
573 - Any internally created type constraints
574 now provide an optimized version as well.
576 0.15 Sun. Nov. 5, 2006
578 This version of Moose *must* have Class::MOP 0.36 in order
579 to work correctly. A number of small internal tweaks have
580 been made in order to be compatible with that release.
582 * Moose::Util::TypeConstraints
583 - added &unimport so that you can clean out
584 your class namespace of these exported
588 - fixed minor issue which occasionally
589 comes up during global destruction
591 - moved Moose::Meta::Method::Overriden into
595 - moved Moose::Meta::Role::Method into
598 * Moose::Meta::Attribute
599 - changed how we do type checks so that
600 we reduce the overall cost, but still
603 - moved accessor generation methods to
604 Moose::Meta::Method::Accessor to
605 conform to the API changes from
608 * Moose::Meta::TypeConstraint
609 - changed how constraints are compiled
610 so that we do less recursion and more
611 iteration. This makes the type check
613 - moved Moose::Meta::TypeConstraint::Union
616 * Moose::Meta::Method::Accessor
617 - created this from methods formerly found in
618 Moose::Meta::Attribute
620 * Moose::Meta::Role::Method
621 - moved this from Moose::Meta::Role
623 * Moose::Meta::Method::Overriden
624 - moved this from Moose::Meta::Class
626 * Moose::Meta::TypeConstraint::Union
627 - moved this from Moose::Meta::TypeConstraint
629 0.14 Mon. Oct. 9, 2006
631 * Moose::Meta::Attribute
632 - fixed lazy attributes which were not getting
633 checked with the type constraint (thanks ashley)
634 - added tests for this
635 - removed the over-enthusiastic DWIMery of the
636 automatic ArrayRef and HashRef defaults, it
637 broke predicates in an ugly way.
638 - removed tests for this
640 0.13 Sat. Sept. 30, 2006
642 This version of Moose *must* have Class::MOP 0.35 in order
643 to work correctly. A number of small internal tweaks have
644 been made in order to be compatible with that release.
647 - Removed the use of UNIVERSAL::require to be a better
648 symbol table citizen and remove a dependency
649 (thanks Adam Kennedy)
651 **~~ removed experimental & undocumented feature ~~**
652 - commented out the 'method' and 'self' keywords, see the
653 comments for more info.
656 - added a FAQ and WTF files to document frequently
657 asked questions and common problems
659 * Moose::Util::TypeConstraints
660 - added GlobRef and FileHandle type constraint
661 - added tests for this
663 * Moose::Meta::Attribute
664 - if your attribute 'isa' ArrayRef of HashRef, and you have
665 not explicitly set a default, then make the default DWIM.
666 This will also work for subtypes of ArrayRef and HashRef
668 - you can now auto-deref subtypes of ArrayRef or HashRef too.
669 - new test added for this (thanks to ashley)
672 - added basic support for runtime role composition
673 but this is still *highly experimental*, so feedback
674 is much appreciated :)
675 - added tests for this
677 * Moose::Meta::TypeConstraint
678 - the type constraint now handles the coercion process
679 through delegation, this is to support the coercion
682 * Moose::Meta::TypeConstraint::Union
683 - it is now possible for coercions to be performed
685 - added tests for this (thanks to konobi)
687 * Moose::Meta::TypeCoercion
688 - properly capturing error when type constraint
692 - Scalar::Util 1.18 is bad on Win32, so temporarily
693 only require version 1.17 for Win32 and cygwin.
694 (thanks Adam Kennedy)
696 0.12 Sat. Sept. 1, 2006
698 - Recipe5 (subtypes & coercion) has been written
701 - fixed "bad meta" error message to be more descriptive
702 - fixed &unimport to not remove the &inner and &super
703 keywords because we need to localize them.
704 - fixed number of spelling/grammer issues, thanks Theory :)
706 **~~ experimental & undocumented feature ~~**
707 - added the method and self keywords, they are basically
708 just sugar, and they may not stay around.
711 - added &dump method to easily Data::Dumper
714 * Moose::Meta::TypeConstraint
715 - added the &is_a_type_of method to check both the current
716 and the subtype of a method (similar to &isa with classes)
719 - this is now a subclass of Class::MOP::Module, and no longer
720 creates the _role_meta ugliness of before.
721 - fixed tests to reflect this change
723 0.11 Wed. July 12, 2006
725 - added an &unimport method to remove all the keywords
726 that Moose will import, simply add 'no Moose' to the
727 bottom of your class file.
730 - fixed some test failures caused by a forgotten test
733 0.10 Thurs. July 6, 2006
735 - improved error message when loading modules so
736 it is less confusing when you load a role.
737 - added &calculate_all_roles method to
738 Moose::Meta::Class and Moose::Meta::Role
741 This module has been tested against Class::MOP 0.30
742 but it does not yet utilize the optimizations
743 it makes available. Stay tuned for that ;)
745 0.09_03 Fri. June 23, 2006
746 ++ DEVELOPER RELEASE ++
748 - 'use strict' and 'use warnings' are no longer
749 needed in Moose classes, Moose itself will
750 turn them on for you.
751 - added tests for this
752 - moved code from exported subs to private methods
753 in Moose::Meta::Class
756 - as with Moose, strict and warnings are
757 automatically turned on for you.
758 - added tests for this
761 - now handles an edge case for override errors
762 - added tests for this
763 - added some more edge case tests
765 0.09_02 Tues. May 16, 2006
766 ++ DEVELOPER RELEASE ++
768 - added prototypes to the exported subs
772 - added prototypes to the exported subs
775 * Moose::Util::TypeConstraints
776 - cleaned up prototypes for the subs
779 0.09_01 Fri. May 12, 2006
780 ++ DEVELOPER RELEASE ++
781 - This release works in combination with
782 Class::MOP 0.29_01, it is a developer
783 release because it uses the a new
784 instance sub-protocol and a fairly
785 complete Role implementation. It has
786 not yet been optimized, so it slower
787 the the previous CPAN version. This
788 release also lacks good updated docs,
789 the official release will have updated docs.
792 - refactored the keyword exports
793 - 'with' now checks Role validaity and
794 accepts more than one Role at a time
795 - 'extends' makes metaclass adjustments as
796 needed to ensure metaclass compatability
799 - refactored the keyword exports
800 - 'with' now checks Role validaity and
801 accepts more than one Role at a time
803 * Moose::Util::TypeConstraints
804 - added the 'enum' keyword for simple
805 string enumerations which can be used as
807 - see example of usage in t/202_example.t
810 - more careful checking of params to new()
813 - much work done on the role composition
814 - many new tests for conflict detection
815 and composition edge cases
816 - not enough documentation, I suggest
819 * Moose::Meta::Instance
820 - added new Instance metaclass to support
821 the new Class::MOP instance protocol
824 - some small changes to support the new
826 - some small additions to support Roles
828 * Moose::Meta::Attribute
829 - some improvements to the accessor generation code
831 - some small changes to support the new
833 - (still somewhat) experimental delegation support
834 with the 'handles' option
835 - added several tests for this
836 - no docs for this yet
838 0.05 Thurs. April 27, 2006
840 - keywords are now exported with Sub::Exporter
841 thanks to chansen for this commit
842 - has keyword now takes a 'metaclass' option
843 to support custom attribute meta-classes
844 on a per-attribute basis
845 - added tests for this
846 - the 'has' keyword not accepts inherited slot
847 specifications (has '+foo'). This is still an
848 experimental feature and probably not finished
849 see t/038_attribute_inherited_slot_specs.t for
850 more details, or ask about it on #moose
851 - added tests for this
854 - keywords are now exported with Sub::Exporter
856 * Moose::Utils::TypeConstraints
857 - reorganized the type constraint hierarchy, thanks
858 to nothingmuch and chansen for his help and advice
860 - added some tests for this
861 - keywords are now exported with Sub::Exporter
862 thanks to chansen for this commit
865 - due to changes in Class::MOP, we had to change
866 construct_instance (for the better)
868 * Moose::Meta::Attribute
869 - due to changes in Class::MOP, we had to add the
870 initialize_instance_slot method (it's a good thing)
872 * Moose::Meta::TypeConstraint
873 - added type constraint unions
874 - added tests for this
875 - added the is_subtype_of predicate method
876 - added tests for this
878 0.04 Sun. April 16th, 2006
880 - Roles can now consume other roles
881 - added tests for this
882 - Roles can specify required methods now with
883 the requires() keyword
884 - added tests for this
887 - ripped out much of it's guts ,.. much cleaner now
888 - added required methods and correct handling of
889 them in apply() for both classes and roles
890 - added tests for this
891 - no longer adds a does() method to consuming classes
892 it relys on the one in Moose::Object
893 - added roles attribute and some methods to support
894 roles consuming roles
896 * Moose::Meta::Attribute
897 - added support for triggers on attributes
898 - added tests for this
899 - added support for does option on an attribute
900 - added tests for this
903 - added support for attribute triggers in the
905 - added tests for this
908 - Moose no longer creates a subtype for your class
909 if a subtype of the same name already exists, this
910 should DWIM in 99.9999% of all cases
912 * Moose::Util::TypeConstraints
913 - fixed bug where incorrect subtype conflicts were
915 - added test for this
918 - this class can now be extended with 'use base' if
919 you need it, it properly loads the metaclass class now
920 - added test for this
922 0.03_02 Wed. April 12, 2006
924 - you must now explictly use Moose::Util::TypeConstraints
925 it no longer gets exported for you automatically
928 - new() now accepts hash-refs as well as key/value lists
929 - added does() method to check for Roles
930 - added tests for this
933 - added roles attribute along with the add_role() and
935 - added tests for this
938 - now adds a does() method to consuming classes
939 which tests the class's hierarchy for roles
940 - added tests for this
942 0.03_01 Mon. April 10, 2006
944 - added new Role recipe (no content yet, only code)
947 - added 'with' keyword for Role support
948 - added test and docs for this
949 - fixed subtype quoting bug
950 - added test for this
954 - added test and docs
956 * Moose::Util::TypeConstraints
957 - added the message keyword to add custom
958 error messages to type constraints
961 - the meta role to support Moose::Role
962 - added tests and docs
965 - moved a number of things from Moose.pm
966 to here, they should have been here
969 * Moose::Meta::Attribute
970 - moved the attribute option macros here
971 instead of putting them in Moose.pm
973 * Moose::Meta::TypeConstraint
974 - added the message attributes and the
976 - added tests and docs for this
978 0.03 Thurs. March 30, 2006
980 - added the Moose::Cookbook with 5 recipes,
981 describing all the stuff Moose can do.
984 - fixed an issue with &extends super class loading
985 it now captures errors and deals with inline
986 packages correctly (bug found by mst, solution
988 - added super/override & inner/augment features
989 - added tests and docs for these
992 - BUILDALL now takes a reference of the %params
993 that are passed to &new, and passes that to
996 * Moose::Util::TypeConstraints
997 - Type constraints now survive runtime reloading
998 - added test for this
1000 * Moose::Meta::Class
1001 - fixed the way attribute defaults are handled
1002 during instance construction (bug found by chansen)
1004 * Moose::Meta::Attribute
1005 - read-only attributes now actually enforce their
1006 read-only-ness (this corrected in Class::MOP as
1009 0.02 Tues. March 21, 2006
1011 - many more tests, fixing some bugs and
1013 - &extends now loads the base module with
1015 - added UNIVERSAL::require to the
1018 - each new Moose class will also create
1019 and register a subtype of Object which
1020 correspond to the new Moose class.
1021 - the 'isa' option in &has now only
1022 accepts strings, and will DWIM in
1025 * Moose::Util::TypeConstraints
1026 - added type coercion features
1027 - added tests for this
1028 - added support for this in attributes
1029 and instance construction
1031 - type construction no longer creates a
1032 function, it registers the type instead.
1033 - added several functions to get the
1037 - BUILDALL and DEMOLISHALL were broken
1038 because of a mis-named hash key, Whoops :)
1040 * Moose::Meta::Attribute
1041 - adding support for coercion in the
1042 autogenerated accessors
1044 * Moose::Meta::Class
1045 - adding support for coercion in the
1046 instance construction
1048 * Moose::Meta::TypeConstraint
1049 * Moose::Meta::TypeCoercion
1050 - type constraints and coercions are now
1051 full fledges meta-objects
1053 0.01 Wed. March 15, 2006
1054 - Moooooooooooooooooose!!!