1 Revision history for Perl extension Moose
4 ~~~ more misc. doc. fixes ~~~
5 ~~ updated copyright dates ~~
7 Moose is now a postmodern object system :)
8 - (see the POD for details)
10 * <<Role System Refactoring>>
11 - this release contains a major reworking and
12 cleanup of the role system
13 - 100% backwards compat.
14 - Role application now restructured into seperate
15 classes based on type of applicants
16 - Role summation (combining of more than one role)
17 is much cleaner and anon-classes are no longer
19 - new Composite role metaclass
20 - runtime application of roles to instances
21 is now more efficient and re-uses generated
22 classes when applicable
24 * <<New Role composition features>>
25 - methods can now be excluded from a given role
28 with 'My::Role' => { excludes => [qw/method1 method2/] };
30 - methods can now be aliased to another name (and
31 still retain the original as well)
33 with 'My::Role' => { alias => {
34 method1 => method1_aliased
38 * <<New Attribute traits>>
39 - allows arbitrary roles to be applied to attribute metaobjects
40 to allow better combination of custom attribute features. Docs
41 are coming soon for this feature.
43 * <<New Maybe[$type] parameterized type>>
44 - added this new type which basically means the value is
45 of $type or it is undef
51 - now uses the Moose::Util::apply_all_roles to deal
55 - added the &apply_all_roles function
57 * Moose::Util::TypeConstraints
58 - all optimized type constraint subs are now
59 pulled from the Moose::Util::TypeConstraints::OptimizedConstraints
60 module (thanks to nothingmuch)
61 - improved support for the IO:: family of modules within the
62 FileHandle type constraint
64 * Moose::Util::TypeConstraints::OptimizedConstraints
65 - added this module (see above)
68 - fixed the &_process_attribute method to be called
69 by &add_attribute, so that the API is now correct
71 * Moose::Meta::Method::Accessor
72 - fixed bug when passing a list of values to
73 an accessor would get (incorrectly) ignored.
74 Thanks to Sartak for finding this ;)
75 - added tests for this (Sartak again)
77 * Moose::Meta::Method::Accessor
78 Moose::Meta::Method::Constructor
79 Moose::Meta::Attribute
80 Moose::Meta::TypeConstraint
81 Moose::Meta::TypeCoercion
82 - lots of cleanup of such things as:
84 - type constraint handling
85 - error handling/messages
86 (thanks to nothingmuch)
88 * Moose::Meta::TypeConstraint::Parameterizable
89 - added this module to support the refactor
90 in Moose::Meta::TypeConstraint::Parameterized
92 * Moose::Meta::TypeConstraint::Parameterized
93 - refactored how these types are handled so they
94 are more generic and not confined to ArrayRef
98 - shortened some file names for better VMS support (RT #32381)
100 0.33 Fri. Dec. 14, 2007
101 !! Moose now loads 2 x faster !!
102 !! with new Class::MOP 0.49 !!
104 ++ new oose.pm module to make command line
105 Moose-ness easier (see POD docs for more)
109 - several tweaks to take advantage of the
110 new method map caching in Class::MOP
112 * Moose::Meta::TypeConstraint::Parameterized
113 - allow subtypes of ArrayRef and HashRef to
114 be used as a container (sartak)
115 - added tests for this
116 - basic support for coercion to ArrayRef and
117 HashRef for containers (sartak)
118 - added tests for this
120 * Moose::Meta::TypeCoercion
121 - coercions will now create subtypes as needed
122 so you can now add coercions to parameterized
123 types without having to explictly define them
124 - added tests for this
126 * Moose::Meta::Method::Accessor
127 - allow subclasses to decide whether we need
128 to copy the value into a new variable (sartak)
130 0.32 Tues. Dec. 4, 2007
131 * Moose::Util::TypeConstraints
132 - fixing how subtype aliases of unions work
133 they should inherit the parent's coercion
134 - added tests for this
135 - you can now define multiple coercions on
136 a single type at different times instead of
137 having to do it all in one place
138 - added tests for this
140 * Moose::Meta::TypeConstraint
141 - there is now a default constraint of sub { 1 }
142 instead of Moose::Util::TypeConstraints setting
145 * Moose::Meta::TypeCoercion
146 * Moose::Meta::TypeCoercion::Union
147 - added the &has_coercion_for_type and
148 &add_type_coercions methods to support the
149 new features above (although you cannot add
150 more type coercions for Union types)
152 0.31 Mon. Nov. 26, 2007
153 * Moose::Meta::Attribute
154 - made the +attr syntax handle extending types with
155 parameters. So "has '+foo' => (isa => 'ArrayRef[Int]')"
156 now works if the original foo is an ArrayRef.
157 - added tests for this.
158 - delegation now works even if the attribute does not
159 have a reader method using the get_read_method_ref
160 method from Class::MOP::Attribute.
161 - added tests for this
162 - added docs for this
164 * Moose::Util::TypeConstraints
165 - passing no "additional attribute info" to
166 &find_or_create_type_constraint will no longer
167 attempt to create an __ANON__ type for you,
168 instead it will just return undef.
169 - added docs for this
171 0.30 Fri. Nov. 23, 2007
172 * Moose::Meta::Method::Constructor
173 -builder related bug in inlined constructor. (groditi)
175 * Moose::Meta::Method::Accessor
176 - genereate unnecessary calls to predicates and refactor
177 code generation for runtime speed (groditi)
179 * Moose::Util::TypeConstraints
180 - fix ClassName constraint to introspect symbol table (mst)
181 - added more tests for this (mst)
182 - fixed it so that subtype 'Foo' => as 'HashRef[Int]' ...
184 - added tests for this
187 - adding the link to Recipie 11 (written by Sartak)
188 - adding test for SYNOPSIS code
191 - New tests for builder bug. Upon instantiation, if an
192 attribute had a builder, no value and was not lazy the
193 builder default was not getting run, oops. (groditi)
195 0.29 Tues. Nov. 13, 2007
196 * Moose::Meta::Attribute
197 - Fix error message on missing builder method (groditi)
199 * Moose::Meta::Method::Accessor
200 - Fix error message on missing builder method (groditi)
203 - Add test to check for the correct error message when
204 builder method is missing (groditi)
206 0.28 Tues. Nov. 13, 2007
207 - 0.27 packaged incorrectly (groditi)
209 0.27 Tues. Nov. 13, 2007
210 * Moose::Meta::Attribute
211 - Added support for the new builder option (groditi)
212 - Added support for lazy_build option (groditi)
213 - Changed slot initialization for predicate changes (groditi)
215 * Moose::Meta::Method::Accessor
216 - Added support for lazy_build option (groditi)
217 - Fix inline methods to work with corrected predicate
220 * Moose::Meta::Method::Constructor
221 - Added support for lazy_build option (groditi)
224 - tests for builder and lazy_build (groditi)
226 * fixing some misc. bits in the docs that
227 got mentioned on CPAN Forum & perlmonks
230 - fixed how required methods are handled
231 when they encounter overriden or modified
232 methods from a class (thanks to confound).
233 - added tests for this
235 * Moose::Util::TypeConstraint
236 - fixed the type notation parser so that
237 the | always creates a union and so is
238 no longer a valid type char (thanks to
239 konobi, mugwump and #moose for working
241 - added more tests for this
243 0.26 Thurs. Sept. 27, 2007
246 * Parameterized Types
247 We now support parameterized collection types, such as:
248 ArrayRef[Int] # array or integers
249 HashRef[Object] # a hash with object values
250 They can also be nested:
251 ArrayRef[HashRef[RegExpr]] # an array of hashes with regexpr values
252 And work with the type unions as well:
253 ArrayRef[Int | Str] # array of integers of strings
255 * Better Framework Extendability
256 Moose.pm is now "extendable" such that it is now much
257 easier to extend the framework and add your own keywords
258 and customizations. See the "EXTENDING AND EMBEDDING MOOSE"
259 section of the Moose.pm docs.
262 In an effort to begin documenting some of the various
263 details of Moose as well as some common idioms, we have
264 created Moose::Cookbook::Snacks as a place to find
265 small (easily digestable) nuggets of Moose code.
268 ~ Several doc updates/cleanup thanks to castaway ~
270 - converted build system to use Module::Install instead of
271 Module::Build (thanks to jrockway)
274 - added all the meta classes to the immutable list and
275 set it to inline the accessors
276 - fix import to allow Sub::Exporter like { into => }
277 and { into_level => } (perigrin)
278 - exposed and documented init_meta() to allow better
279 embedding and extending of Moose (perigrin)
282 - complete re-organization of the test suite
283 - added some new tests as well
284 - finally re-enabled the Moose::POOP test since
285 the new version of DBM::Deep now works again
289 - fixed very odd and very nasty recursion bug with
291 - added tests for this (eilara)
293 * Moose::Meta::Attribute
294 Moose::Meta::Method::Constructor
295 Moose::Meta::Method::Accessor
296 - fixed issue with overload::Overloaded getting called
297 on non-blessed items. (RT #29269)
298 - added tests for this
300 * Moose::Meta::Method::Accessor
301 - fixed issue with generated accessor code making
302 assumptions about hash based classes (thanks to dexter)
304 * Moose::Coookbook::Snacks
305 - these are bits of documentation, not quite as big as
306 Recipes but which have no clear place in the module docs.
307 So they are Snacks! (horray for castaway++)
309 * Moose::Cookbook::Recipe4
310 - updated it to use the new ArrayRef[MyType] construct
311 - updated the accompanying test as well
313 +++ Major Refactor of the Type Constraint system +++
314 +++ with new features added as well +++
316 * Moose::Util::TypeConstraint
317 - no longer uses package variable to keep track of
318 the type constraints, now uses the an instance of
319 Moose::Meta::TypeConstraint::Registry to do it
320 - added more sophisticated type notation parsing
322 - added tests for this
324 * Moose::Meta::TypeConstraint
325 - some minor adjustments to make subclassing easier
326 - added the package_defined_in attribute so that we
327 can track where the type constraints are created
329 * Moose::Meta::TypeConstraint::Union
330 - this is now been refactored to be a subclass of
331 Moose::Meta::TypeConstraint
333 * Moose::Meta::TypeCoercion::Union
334 - this has been added to service the newly refactored
335 Moose::Meta::TypeConstraint::Union and is itself
336 a subclass of Moose::Meta::TypeCoercion
338 * Moose::Meta::TypeConstraint::Parameterized
339 - added this module (taken from MooseX::AttributeHelpers)
340 to help construct nested collection types
341 - added tests for this
343 * Moose::Meta::TypeConstraint::Registry
344 - added this class to keep track of type constraints
346 0.25 Mon. Aug. 13, 2007
348 - Documentation update to reference Moose::Util::TypeConstraints
349 under 'isa' in 'has' for how to define a new type
352 * Moose::Meta::Attribute
353 - required attributes now will no longer accept undef
354 from the constructor, even if there is a default and lazy
355 - added tests for this
356 - default subroutines must return a value which passes the
358 - added tests for this
360 * Moose::Meta::Attribute
361 * Moose::Meta::Method::Constructor
362 * Moose::Meta::Method::Accessor
363 - type-constraint tests now handle overloaded objects correctly
365 - added tests for this (thanks to EvanCarroll)
367 * Moose::Meta::TypeConstraint::Union
368 - added (has_)hand_optimized_constraint to this class so that
369 it behaves as the regular Moose::Meta::TypeConstraint does.
372 - large refactoring of this code
373 - added several more tests
374 - tests for subtle conflict resolition issues
375 added, but not currently running
378 * Moose::Cookbook::Recipe7
379 - added new recipe for augment/inner functionality
381 - added test for this
384 - a formal definition of roles (still in progress)
387 - utilities for easier working with Moose classes
388 - added tests for these
391 - This contains Moose specific test functions
392 - added tests for these
394 0.24 Tues. July 3, 2007
395 ~ Some doc updates/cleanup ~
397 * Moose::Meta::Attribute
398 - added support for roles to be given as parameters
399 to the 'handles' option.
400 - added tests and docs for this
401 - the has '+foo' attribute form now accepts changes to
402 the lazy option, and the addition of a handles option
403 (but not changing the handles option)
404 - added tests and docs for this
407 - required methods are now fetched using find_method_by_name
408 so that required methods can come from superclasses
409 - adjusted tests for this
411 0.23 Mon. June 18, 2007
412 * Moose::Meta::Method::Constructor
413 - fix inlined constructor for hierarchy with multiple BUILD methods (mst)
415 - Modify make_immutable to work with the new Class::MOP immutable
416 mechanism + POD + very basic test (groditi)
417 * Moose::Meta::Attribute
418 - Fix handles to use goto() so that caller() comes out properly on
419 the other side (perigrin)
421 0.22 Thurs. May 31, 2007
422 * Moose::Util::TypeConstraints
423 - fix for prototype undeclared issue when Moose::Util::TypeConstraints
424 loaded before consumers (e.g. Moose::Meta::Attribute) by predeclaring
425 prototypes for functions
426 - added the ClassName type constraint, this checks for strings
427 which will respond true to ->isa(UNIVERSAL).
428 - added tests and docs for this
429 - subtyping just in name now works correctly by making the
430 default for where be { 1 }
431 - added test for this
433 * Moose::Meta::Method::Accessor
434 - coerce and lazy now work together correctly, thanks to
435 merlyn for finding this bug
436 - tests added for this
437 - fix reader presedence bug in Moose::Meta::Attribute + tests
440 - Foo->new(undef) now gets ignored, it is assumed you meant to pass
441 a HASH-ref and missed. This produces better error messages then
442 having it die cause undef is not a HASH.
443 - added tests for this
445 0.21 Thursday, May 2nd, 2007
447 - added SUPER_SLOT and INNER_SLOT class hashes to support unimport
448 - modified unimport to remove super and inner along with the rest
449 - altered unimport tests to handle this
452 - altered super export to populate SUPER_SLOT
455 - altered augment and override modifier application to use *_SLOT
456 - modified tests for these to unimport one test class each to test
459 - fixed issue where custom attribute metaclasses
460 where not handled correctly in roles
461 - added tests for this
464 - fixed issue where extending metaclasses with
465 roles would blow up. Thanks to Aankhen`` for
466 finding this insidious error, and it's solution.
468 ~~ lots of spelling and grammer fixes in the docs,
469 many many thanks to rlb3 and Aankhen for these :)
471 0.20 Friday, April 6th, 2007
472 >> I messed up the SKIP logic in one test
473 so this release is just to fix that.
476 - 'has' now also accepts an ARRAY ref
477 to create multiple attrs (see docs)
478 (thanks to konobi for this)
479 - added tests and docs
481 0.19 Thurs. April 5th, 2007
482 ~~ More documentation updates ~~
484 * Moose::Util::TypeConstraints
485 - 'type' now supports messages as well
486 thanks to phaylon for finding this
487 - added tests for this
488 - added &list_all_type_constraints and
489 &list_all_builtin_type_constraints
490 functions to facilitate introspection.
492 * Moose::Meta::Attribute
493 - fixed regexp 'handles' declarations
494 to build the list of delegated methods
495 correctly (and not override important
496 things like &new) thanks to ashleyb
498 - added tests and docs for this
499 - added the 'documentation' attributes
500 so that you can actually document your
501 attributes and inspect them through the
503 - added tests and docs for this
506 - when loading custom attribute metaclasses
507 it will first look in for the class in the
508 Moose::Meta::Attribute::Custom::$name, and
509 then default to just loading $name.
510 - added tests and docs for this
512 * Moose::Meta::TypeConstraint
513 - type constraints now stringify to their names.
514 - added test for this
517 - added tests to assure we work with Module::Refresh
518 - added stricter test skip logic in the Moose POOP
519 test, ask Rob Kinyon why.
520 - *cough* DBM::Deep 1.0 backwards compatability sucks *cough* ;)
522 0.18 Sat. March 10, 2007
523 ~~ Many, many documentation updates ~~
526 - We now use Class::MOP::load_class to
528 - added tests to show types and subtypes
529 working with Declare::Constraints::Simple
530 and Test::Deep as constraint engines.
533 !! You must have Class::MOP 0.37_001 !!
534 !! for this developer release to work !!
536 This release was primarily adding the immutable
537 feature to Moose. An immutable class is one which
538 you promise not to alter. When you set the class
539 as immutable it will perform various bits of
540 memoization and inline certain part of the code
541 (constructors, destructors and accessors). This
542 minimizes (and in some cases totally eliminates)
543 one of Moose's biggest performance hits. This
544 feature is not on by default, and is 100% optional.
545 It has several configurable bits as well, so you
546 can pick and choose to your specific needs.
548 The changes involved in this were fairly wide and
549 highly specific, but 100% backwards compatible, so
550 I am not going to enumerate them here. If you are
551 truely interested in what was changed, please do
554 0.17 Tues. Nov. 14, 2006
555 * Moose::Meta::Method::Accessor
556 - bugfix for read-only accessors which
557 are have a type constraint and lazy.
558 Thanks to chansen for finding it.
560 0.16 Tues. Nov. 14, 2006
562 There are some speed improvements in this release,
563 but they are only the begining, so stay tuned.
566 - BUILDALL and DEMOLISHALL no longer get
567 called unless they actually need to be.
568 This gave us a signifigant speed boost
569 for the cases when there is no BUILD or
570 DEMOLISH method present.
572 * Moose::Util::TypeConstraints
573 * Moose::Meta::TypeConstraint
574 - added an 'optimize_as' option to the
575 type constraint, which allows for a
576 hand optimized version of the type
577 constraint to be used when possible.
578 - Any internally created type constraints
579 now provide an optimized version as well.
581 0.15 Sun. Nov. 5, 2006
583 This version of Moose *must* have Class::MOP 0.36 in order
584 to work correctly. A number of small internal tweaks have
585 been made in order to be compatible with that release.
587 * Moose::Util::TypeConstraints
588 - added &unimport so that you can clean out
589 your class namespace of these exported
593 - fixed minor issue which occasionally
594 comes up during global destruction
596 - moved Moose::Meta::Method::Overriden into
600 - moved Moose::Meta::Role::Method into
603 * Moose::Meta::Attribute
604 - changed how we do type checks so that
605 we reduce the overall cost, but still
608 - moved accessor generation methods to
609 Moose::Meta::Method::Accessor to
610 conform to the API changes from
613 * Moose::Meta::TypeConstraint
614 - changed how constraints are compiled
615 so that we do less recursion and more
616 iteration. This makes the type check
618 - moved Moose::Meta::TypeConstraint::Union
621 * Moose::Meta::Method::Accessor
622 - created this from methods formerly found in
623 Moose::Meta::Attribute
625 * Moose::Meta::Role::Method
626 - moved this from Moose::Meta::Role
628 * Moose::Meta::Method::Overriden
629 - moved this from Moose::Meta::Class
631 * Moose::Meta::TypeConstraint::Union
632 - moved this from Moose::Meta::TypeConstraint
634 0.14 Mon. Oct. 9, 2006
636 * Moose::Meta::Attribute
637 - fixed lazy attributes which were not getting
638 checked with the type constraint (thanks ashley)
639 - added tests for this
640 - removed the over-enthusiastic DWIMery of the
641 automatic ArrayRef and HashRef defaults, it
642 broke predicates in an ugly way.
643 - removed tests for this
645 0.13 Sat. Sept. 30, 2006
647 This version of Moose *must* have Class::MOP 0.35 in order
648 to work correctly. A number of small internal tweaks have
649 been made in order to be compatible with that release.
652 - Removed the use of UNIVERSAL::require to be a better
653 symbol table citizen and remove a dependency
654 (thanks Adam Kennedy)
656 **~~ removed experimental & undocumented feature ~~**
657 - commented out the 'method' and 'self' keywords, see the
658 comments for more info.
661 - added a FAQ and WTF files to document frequently
662 asked questions and common problems
664 * Moose::Util::TypeConstraints
665 - added GlobRef and FileHandle type constraint
666 - added tests for this
668 * Moose::Meta::Attribute
669 - if your attribute 'isa' ArrayRef of HashRef, and you have
670 not explicitly set a default, then make the default DWIM.
671 This will also work for subtypes of ArrayRef and HashRef
673 - you can now auto-deref subtypes of ArrayRef or HashRef too.
674 - new test added for this (thanks to ashley)
677 - added basic support for runtime role composition
678 but this is still *highly experimental*, so feedback
679 is much appreciated :)
680 - added tests for this
682 * Moose::Meta::TypeConstraint
683 - the type constraint now handles the coercion process
684 through delegation, this is to support the coercion
687 * Moose::Meta::TypeConstraint::Union
688 - it is now possible for coercions to be performed
690 - added tests for this (thanks to konobi)
692 * Moose::Meta::TypeCoercion
693 - properly capturing error when type constraint
697 - Scalar::Util 1.18 is bad on Win32, so temporarily
698 only require version 1.17 for Win32 and cygwin.
699 (thanks Adam Kennedy)
701 0.12 Sat. Sept. 1, 2006
703 - Recipe5 (subtypes & coercion) has been written
706 - fixed "bad meta" error message to be more descriptive
707 - fixed &unimport to not remove the &inner and &super
708 keywords because we need to localize them.
709 - fixed number of spelling/grammer issues, thanks Theory :)
711 **~~ experimental & undocumented feature ~~**
712 - added the method and self keywords, they are basically
713 just sugar, and they may not stay around.
716 - added &dump method to easily Data::Dumper
719 * Moose::Meta::TypeConstraint
720 - added the &is_a_type_of method to check both the current
721 and the subtype of a method (similar to &isa with classes)
724 - this is now a subclass of Class::MOP::Module, and no longer
725 creates the _role_meta ugliness of before.
726 - fixed tests to reflect this change
728 0.11 Wed. July 12, 2006
730 - added an &unimport method to remove all the keywords
731 that Moose will import, simply add 'no Moose' to the
732 bottom of your class file.
735 - fixed some test failures caused by a forgotten test
738 0.10 Thurs. July 6, 2006
740 - improved error message when loading modules so
741 it is less confusing when you load a role.
742 - added &calculate_all_roles method to
743 Moose::Meta::Class and Moose::Meta::Role
746 This module has been tested against Class::MOP 0.30
747 but it does not yet utilize the optimizations
748 it makes available. Stay tuned for that ;)
750 0.09_03 Fri. June 23, 2006
751 ++ DEVELOPER RELEASE ++
753 - 'use strict' and 'use warnings' are no longer
754 needed in Moose classes, Moose itself will
755 turn them on for you.
756 - added tests for this
757 - moved code from exported subs to private methods
758 in Moose::Meta::Class
761 - as with Moose, strict and warnings are
762 automatically turned on for you.
763 - added tests for this
766 - now handles an edge case for override errors
767 - added tests for this
768 - added some more edge case tests
770 0.09_02 Tues. May 16, 2006
771 ++ DEVELOPER RELEASE ++
773 - added prototypes to the exported subs
777 - added prototypes to the exported subs
780 * Moose::Util::TypeConstraints
781 - cleaned up prototypes for the subs
784 0.09_01 Fri. May 12, 2006
785 ++ DEVELOPER RELEASE ++
786 - This release works in combination with
787 Class::MOP 0.29_01, it is a developer
788 release because it uses the a new
789 instance sub-protocol and a fairly
790 complete Role implementation. It has
791 not yet been optimized, so it slower
792 the the previous CPAN version. This
793 release also lacks good updated docs,
794 the official release will have updated docs.
797 - refactored the keyword exports
798 - 'with' now checks Role validaity and
799 accepts more than one Role at a time
800 - 'extends' makes metaclass adjustments as
801 needed to ensure metaclass compatability
804 - refactored the keyword exports
805 - 'with' now checks Role validaity and
806 accepts more than one Role at a time
808 * Moose::Util::TypeConstraints
809 - added the 'enum' keyword for simple
810 string enumerations which can be used as
812 - see example of usage in t/202_example.t
815 - more careful checking of params to new()
818 - much work done on the role composition
819 - many new tests for conflict detection
820 and composition edge cases
821 - not enough documentation, I suggest
824 * Moose::Meta::Instance
825 - added new Instance metaclass to support
826 the new Class::MOP instance protocol
829 - some small changes to support the new
831 - some small additions to support Roles
833 * Moose::Meta::Attribute
834 - some improvements to the accessor generation code
836 - some small changes to support the new
838 - (still somewhat) experimental delegation support
839 with the 'handles' option
840 - added several tests for this
841 - no docs for this yet
843 0.05 Thurs. April 27, 2006
845 - keywords are now exported with Sub::Exporter
846 thanks to chansen for this commit
847 - has keyword now takes a 'metaclass' option
848 to support custom attribute meta-classes
849 on a per-attribute basis
850 - added tests for this
851 - the 'has' keyword not accepts inherited slot
852 specifications (has '+foo'). This is still an
853 experimental feature and probably not finished
854 see t/038_attribute_inherited_slot_specs.t for
855 more details, or ask about it on #moose
856 - added tests for this
859 - keywords are now exported with Sub::Exporter
861 * Moose::Utils::TypeConstraints
862 - reorganized the type constraint hierarchy, thanks
863 to nothingmuch and chansen for his help and advice
865 - added some tests for this
866 - keywords are now exported with Sub::Exporter
867 thanks to chansen for this commit
870 - due to changes in Class::MOP, we had to change
871 construct_instance (for the better)
873 * Moose::Meta::Attribute
874 - due to changes in Class::MOP, we had to add the
875 initialize_instance_slot method (it's a good thing)
877 * Moose::Meta::TypeConstraint
878 - added type constraint unions
879 - added tests for this
880 - added the is_subtype_of predicate method
881 - added tests for this
883 0.04 Sun. April 16th, 2006
885 - Roles can now consume other roles
886 - added tests for this
887 - Roles can specify required methods now with
888 the requires() keyword
889 - added tests for this
892 - ripped out much of it's guts ,.. much cleaner now
893 - added required methods and correct handling of
894 them in apply() for both classes and roles
895 - added tests for this
896 - no longer adds a does() method to consuming classes
897 it relys on the one in Moose::Object
898 - added roles attribute and some methods to support
899 roles consuming roles
901 * Moose::Meta::Attribute
902 - added support for triggers on attributes
903 - added tests for this
904 - added support for does option on an attribute
905 - added tests for this
908 - added support for attribute triggers in the
910 - added tests for this
913 - Moose no longer creates a subtype for your class
914 if a subtype of the same name already exists, this
915 should DWIM in 99.9999% of all cases
917 * Moose::Util::TypeConstraints
918 - fixed bug where incorrect subtype conflicts were
920 - added test for this
923 - this class can now be extended with 'use base' if
924 you need it, it properly loads the metaclass class now
925 - added test for this
927 0.03_02 Wed. April 12, 2006
929 - you must now explictly use Moose::Util::TypeConstraints
930 it no longer gets exported for you automatically
933 - new() now accepts hash-refs as well as key/value lists
934 - added does() method to check for Roles
935 - added tests for this
938 - added roles attribute along with the add_role() and
940 - added tests for this
943 - now adds a does() method to consuming classes
944 which tests the class's hierarchy for roles
945 - added tests for this
947 0.03_01 Mon. April 10, 2006
949 - added new Role recipe (no content yet, only code)
952 - added 'with' keyword for Role support
953 - added test and docs for this
954 - fixed subtype quoting bug
955 - added test for this
959 - added test and docs
961 * Moose::Util::TypeConstraints
962 - added the message keyword to add custom
963 error messages to type constraints
966 - the meta role to support Moose::Role
967 - added tests and docs
970 - moved a number of things from Moose.pm
971 to here, they should have been here
974 * Moose::Meta::Attribute
975 - moved the attribute option macros here
976 instead of putting them in Moose.pm
978 * Moose::Meta::TypeConstraint
979 - added the message attributes and the
981 - added tests and docs for this
983 0.03 Thurs. March 30, 2006
985 - added the Moose::Cookbook with 5 recipes,
986 describing all the stuff Moose can do.
989 - fixed an issue with &extends super class loading
990 it now captures errors and deals with inline
991 packages correctly (bug found by mst, solution
993 - added super/override & inner/augment features
994 - added tests and docs for these
997 - BUILDALL now takes a reference of the %params
998 that are passed to &new, and passes that to
1001 * Moose::Util::TypeConstraints
1002 - Type constraints now survive runtime reloading
1003 - added test for this
1005 * Moose::Meta::Class
1006 - fixed the way attribute defaults are handled
1007 during instance construction (bug found by chansen)
1009 * Moose::Meta::Attribute
1010 - read-only attributes now actually enforce their
1011 read-only-ness (this corrected in Class::MOP as
1014 0.02 Tues. March 21, 2006
1016 - many more tests, fixing some bugs and
1018 - &extends now loads the base module with
1020 - added UNIVERSAL::require to the
1023 - each new Moose class will also create
1024 and register a subtype of Object which
1025 correspond to the new Moose class.
1026 - the 'isa' option in &has now only
1027 accepts strings, and will DWIM in
1030 * Moose::Util::TypeConstraints
1031 - added type coercion features
1032 - added tests for this
1033 - added support for this in attributes
1034 and instance construction
1036 - type construction no longer creates a
1037 function, it registers the type instead.
1038 - added several functions to get the
1042 - BUILDALL and DEMOLISHALL were broken
1043 because of a mis-named hash key, Whoops :)
1045 * Moose::Meta::Attribute
1046 - adding support for coercion in the
1047 autogenerated accessors
1049 * Moose::Meta::Class
1050 - adding support for coercion in the
1051 instance construction
1053 * Moose::Meta::TypeConstraint
1054 * Moose::Meta::TypeCoercion
1055 - type constraints and coercions are now
1056 full fledges meta-objects
1058 0.01 Wed. March 15, 2006
1059 - Moooooooooooooooooose!!!