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 * Moose::Meta::Method::Accessor
11 - fixed bug when passing a list of values to
12 an accessor would get (incorrectly) ignored.
13 Thanks to Sartak for finding this ;)
14 - added tests for this (Sartak again)
16 * Moose::Meta::Method::Accessor
17 Moose::Meta::Method::Constructor
18 Moose::Meta::Method::Attribute
19 - cleanup of some of the generated methods
20 (thanks to nothingmuch)
22 * Moose::Util::TypeConstraints
23 - all optimized type constraint subs are now
24 pulled from the Moose::Util::TypeConstraints::OptimizedConstraints
25 module (thanks to nothingmuch)
27 * Moose::Util::TypeConstraints::OptimizedConstraints
28 - added this module (see above)
30 0.33 Fri. Dec. 14, 2007
31 !! Moose now loads 2 x faster !!
32 !! with new Class::MOP 0.49 !!
34 ++ new oose.pm module to make command line
35 Moose-ness easier (see POD docs for more)
39 - several tweaks to take advantage of the
40 new method map caching in Class::MOP
42 * Moose::Meta::TypeConstraint::Parameterized
43 - allow subtypes of ArrayRef and HashRef to
44 be used as a container (sartak)
45 - added tests for this
46 - basic support for coercion to ArrayRef and
47 HashRef for containers (sartak)
48 - added tests for this
50 * Moose::Meta::TypeCoercion
51 - coercions will now create subtypes as needed
52 so you can now add coercions to parameterized
53 types without having to explictly define them
54 - added tests for this
56 * Moose::Meta::Method::Accessor
57 - allow subclasses to decide whether we need
58 to copy the value into a new variable (sartak)
60 0.32 Tues. Dec. 4, 2007
61 * Moose::Util::TypeConstraints
62 - fixing how subtype aliases of unions work
63 they should inherit the parent's coercion
64 - added tests for this
65 - you can now define multiple coercions on
66 a single type at different times instead of
67 having to do it all in one place
68 - added tests for this
70 * Moose::Meta::TypeConstraint
71 - there is now a default constraint of sub { 1 }
72 instead of Moose::Util::TypeConstraints setting
75 * Moose::Meta::TypeCoercion
76 * Moose::Meta::TypeCoercion::Union
77 - added the &has_coercion_for_type and
78 &add_type_coercions methods to support the
79 new features above (although you cannot add
80 more type coercions for Union types)
82 0.31 Mon. Nov. 26, 2007
83 * Moose::Meta::Attribute
84 - made the +attr syntax handle extending types with
85 parameters. So "has '+foo' => (isa => 'ArrayRef[Int]')"
86 now works if the original foo is an ArrayRef.
87 - added tests for this.
88 - delegation now works even if the attribute does not
89 have a reader method using the get_read_method_ref
90 method from Class::MOP::Attribute.
91 - added tests for this
94 * Moose::Util::TypeConstraints
95 - passing no "additional attribute info" to
96 &find_or_create_type_constraint will no longer
97 attempt to create an __ANON__ type for you,
98 instead it will just return undef.
101 0.30 Fri. Nov. 23, 2007
102 * Moose::Meta::Method::Constructor
103 -builder related bug in inlined constructor. (groditi)
105 * Moose::Meta::Method::Accessor
106 - genereate unnecessary calls to predicates and refactor
107 code generation for runtime speed (groditi)
109 * Moose::Util::TypeConstraints
110 - fix ClassName constraint to introspect symbol table (mst)
111 - added more tests for this (mst)
112 - fixed it so that subtype 'Foo' => as 'HashRef[Int]' ...
114 - added tests for this
117 - adding the link to Recipie 11 (written by Sartak)
118 - adding test for SYNOPSIS code
121 - New tests for builder bug. Upon instantiation, if an
122 attribute had a builder, no value and was not lazy the
123 builder default was not getting run, oops. (groditi)
125 0.29 Tues. Nov. 13, 2007
126 * Moose::Meta::Attribute
127 - Fix error message on missing builder method (groditi)
129 * Moose::Meta::Method::Accessor
130 - Fix error message on missing builder method (groditi)
133 - Add test to check for the correct error message when
134 builder method is missing (groditi)
136 0.28 Tues. Nov. 13, 2007
137 - 0.27 packaged incorrectly (groditi)
139 0.27 Tues. Nov. 13, 2007
140 * Moose::Meta::Attribute
141 - Added support for the new builder option (groditi)
142 - Added support for lazy_build option (groditi)
143 - Changed slot initialization for predicate changes (groditi)
145 * Moose::Meta::Method::Accessor
146 - Added support for lazy_build option (groditi)
147 - Fix inline methods to work with corrected predicate
150 * Moose::Meta::Method::Constructor
151 - Added support for lazy_build option (groditi)
154 - tests for builder and lazy_build (groditi)
156 * fixing some misc. bits in the docs that
157 got mentioned on CPAN Forum & perlmonks
160 - fixed how required methods are handled
161 when they encounter overriden or modified
162 methods from a class (thanks to confound).
163 - added tests for this
165 * Moose::Util::TypeConstraint
166 - fixed the type notation parser so that
167 the | always creates a union and so is
168 no longer a valid type char (thanks to
169 konobi, mugwump and #moose for working
171 - added more tests for this
173 0.26 Thurs. Sept. 27, 2007
176 * Parameterized Types
177 We now support parameterized collection types, such as:
178 ArrayRef[Int] # array or integers
179 HashRef[Object] # a hash with object values
180 They can also be nested:
181 ArrayRef[HashRef[RegExpr]] # an array of hashes with regexpr values
182 And work with the type unions as well:
183 ArrayRef[Int | Str] # array of integers of strings
185 * Better Framework Extendability
186 Moose.pm is now "extendable" such that it is now much
187 easier to extend the framework and add your own keywords
188 and customizations. See the "EXTENDING AND EMBEDDING MOOSE"
189 section of the Moose.pm docs.
192 In an effort to begin documenting some of the various
193 details of Moose as well as some common idioms, we have
194 created Moose::Cookbook::Snacks as a place to find
195 small (easily digestable) nuggets of Moose code.
198 ~ Several doc updates/cleanup thanks to castaway ~
200 - converted build system to use Module::Install instead of
201 Module::Build (thanks to jrockway)
204 - added all the meta classes to the immutable list and
205 set it to inline the accessors
206 - fix import to allow Sub::Exporter like { into => }
207 and { into_level => } (perigrin)
208 - exposed and documented init_meta() to allow better
209 embedding and extending of Moose (perigrin)
212 - complete re-organization of the test suite
213 - added some new tests as well
214 - finally re-enabled the Moose::POOP test since
215 the new version of DBM::Deep now works again
219 - fixed very odd and very nasty recursion bug with
221 - added tests for this (eilara)
223 * Moose::Meta::Attribute
224 Moose::Meta::Method::Constructor
225 Moose::Meta::Method::Accessor
226 - fixed issue with overload::Overloaded getting called
227 on non-blessed items. (RT #29269)
228 - added tests for this
230 * Moose::Meta::Method::Accessor
231 - fixed issue with generated accessor code making
232 assumptions about hash based classes (thanks to dexter)
234 * Moose::Coookbook::Snacks
235 - these are bits of documentation, not quite as big as
236 Recipes but which have no clear place in the module docs.
237 So they are Snacks! (horray for castaway++)
239 * Moose::Cookbook::Recipe4
240 - updated it to use the new ArrayRef[MyType] construct
241 - updated the accompanying test as well
243 +++ Major Refactor of the Type Constraint system +++
244 +++ with new features added as well +++
246 * Moose::Util::TypeConstraint
247 - no longer uses package variable to keep track of
248 the type constraints, now uses the an instance of
249 Moose::Meta::TypeConstraint::Registry to do it
250 - added more sophisticated type notation parsing
252 - added tests for this
254 * Moose::Meta::TypeConstraint
255 - some minor adjustments to make subclassing easier
256 - added the package_defined_in attribute so that we
257 can track where the type constraints are created
259 * Moose::Meta::TypeConstraint::Union
260 - this is now been refactored to be a subclass of
261 Moose::Meta::TypeConstraint
263 * Moose::Meta::TypeCoercion::Union
264 - this has been added to service the newly refactored
265 Moose::Meta::TypeConstraint::Union and is itself
266 a subclass of Moose::Meta::TypeCoercion
268 * Moose::Meta::TypeConstraint::Parameterized
269 - added this module (taken from MooseX::AttributeHelpers)
270 to help construct nested collection types
271 - added tests for this
273 * Moose::Meta::TypeConstraint::Registry
274 - added this class to keep track of type constraints
276 0.25 Mon. Aug. 13, 2007
278 - Documentation update to reference Moose::Util::TypeConstraints
279 under 'isa' in 'has' for how to define a new type
282 * Moose::Meta::Attribute
283 - required attributes now will no longer accept undef
284 from the constructor, even if there is a default and lazy
285 - added tests for this
286 - default subroutines must return a value which passes the
288 - added tests for this
290 * Moose::Meta::Attribute
291 * Moose::Meta::Method::Constructor
292 * Moose::Meta::Method::Accessor
293 - type-constraint tests now handle overloaded objects correctly
295 - added tests for this (thanks to EvanCarroll)
297 * Moose::Meta::TypeConstraint::Union
298 - added (has_)hand_optimized_constraint to this class so that
299 it behaves as the regular Moose::Meta::TypeConstraint does.
302 - large refactoring of this code
303 - added several more tests
304 - tests for subtle conflict resolition issues
305 added, but not currently running
308 * Moose::Cookbook::Recipe7
309 - added new recipe for augment/inner functionality
311 - added test for this
314 - a formal definition of roles (still in progress)
317 - utilities for easier working with Moose classes
318 - added tests for these
321 - This contains Moose specific test functions
322 - added tests for these
324 0.24 Tues. July 3, 2007
325 ~ Some doc updates/cleanup ~
327 * Moose::Meta::Attribute
328 - added support for roles to be given as parameters
329 to the 'handles' option.
330 - added tests and docs for this
331 - the has '+foo' attribute form now accepts changes to
332 the lazy option, and the addition of a handles option
333 (but not changing the handles option)
334 - added tests and docs for this
337 - required methods are now fetched using find_method_by_name
338 so that required methods can come from superclasses
339 - adjusted tests for this
341 0.23 Mon. June 18, 2007
342 * Moose::Meta::Method::Constructor
343 - fix inlined constructor for hierarchy with multiple BUILD methods (mst)
345 - Modify make_immutable to work with the new Class::MOP immutable
346 mechanism + POD + very basic test (groditi)
347 * Moose::Meta::Attribute
348 - Fix handles to use goto() so that caller() comes out properly on
349 the other side (perigrin)
351 0.22 Thurs. May 31, 2007
352 * Moose::Util::TypeConstraints
353 - fix for prototype undeclared issue when Moose::Util::TypeConstraints
354 loaded before consumers (e.g. Moose::Meta::Attribute) by predeclaring
355 prototypes for functions
356 - added the ClassName type constraint, this checks for strings
357 which will respond true to ->isa(UNIVERSAL).
358 - added tests and docs for this
359 - subtyping just in name now works correctly by making the
360 default for where be { 1 }
361 - added test for this
363 * Moose::Meta::Method::Accessor
364 - coerce and lazy now work together correctly, thanks to
365 merlyn for finding this bug
366 - tests added for this
367 - fix reader presedence bug in Moose::Meta::Attribute + tests
370 - Foo->new(undef) now gets ignored, it is assumed you meant to pass
371 a HASH-ref and missed. This produces better error messages then
372 having it die cause undef is not a HASH.
373 - added tests for this
375 0.21 Thursday, May 2nd, 2007
377 - added SUPER_SLOT and INNER_SLOT class hashes to support unimport
378 - modified unimport to remove super and inner along with the rest
379 - altered unimport tests to handle this
382 - altered super export to populate SUPER_SLOT
385 - altered augment and override modifier application to use *_SLOT
386 - modified tests for these to unimport one test class each to test
389 - fixed issue where custom attribute metaclasses
390 where not handled correctly in roles
391 - added tests for this
394 - fixed issue where extending metaclasses with
395 roles would blow up. Thanks to Aankhen`` for
396 finding this insidious error, and it's solution.
398 ~~ lots of spelling and grammer fixes in the docs,
399 many many thanks to rlb3 and Aankhen for these :)
401 0.20 Friday, April 6th, 2007
402 >> I messed up the SKIP logic in one test
403 so this release is just to fix that.
406 - 'has' now also accepts an ARRAY ref
407 to create multiple attrs (see docs)
408 (thanks to konobi for this)
409 - added tests and docs
411 0.19 Thurs. April 5th, 2007
412 ~~ More documentation updates ~~
414 * Moose::Util::TypeConstraints
415 - 'type' now supports messages as well
416 thanks to phaylon for finding this
417 - added tests for this
418 - added &list_all_type_constraints and
419 &list_all_builtin_type_constraints
420 functions to facilitate introspection.
422 * Moose::Meta::Attribute
423 - fixed regexp 'handles' declarations
424 to build the list of delegated methods
425 correctly (and not override important
426 things like &new) thanks to ashleyb
428 - added tests and docs for this
429 - added the 'documentation' attributes
430 so that you can actually document your
431 attributes and inspect them through the
433 - added tests and docs for this
436 - when loading custom attribute metaclasses
437 it will first look in for the class in the
438 Moose::Meta::Attribute::Custom::$name, and
439 then default to just loading $name.
440 - added tests and docs for this
442 * Moose::Meta::TypeConstraint
443 - type constraints now stringify to their names.
444 - added test for this
447 - added tests to assure we work with Module::Refresh
448 - added stricter test skip logic in the Moose POOP
449 test, ask Rob Kinyon why.
450 - *cough* DBM::Deep 1.0 backwards compatability sucks *cough* ;)
452 0.18 Sat. March 10, 2007
453 ~~ Many, many documentation updates ~~
456 - We now use Class::MOP::load_class to
458 - added tests to show types and subtypes
459 working with Declare::Constraints::Simple
460 and Test::Deep as constraint engines.
463 !! You must have Class::MOP 0.37_001 !!
464 !! for this developer release to work !!
466 This release was primarily adding the immutable
467 feature to Moose. An immutable class is one which
468 you promise not to alter. When you set the class
469 as immutable it will perform various bits of
470 memoization and inline certain part of the code
471 (constructors, destructors and accessors). This
472 minimizes (and in some cases totally eliminates)
473 one of Moose's biggest performance hits. This
474 feature is not on by default, and is 100% optional.
475 It has several configurable bits as well, so you
476 can pick and choose to your specific needs.
478 The changes involved in this were fairly wide and
479 highly specific, but 100% backwards compatible, so
480 I am not going to enumerate them here. If you are
481 truely interested in what was changed, please do
484 0.17 Tues. Nov. 14, 2006
485 * Moose::Meta::Method::Accessor
486 - bugfix for read-only accessors which
487 are have a type constraint and lazy.
488 Thanks to chansen for finding it.
490 0.16 Tues. Nov. 14, 2006
492 There are some speed improvements in this release,
493 but they are only the begining, so stay tuned.
496 - BUILDALL and DEMOLISHALL no longer get
497 called unless they actually need to be.
498 This gave us a signifigant speed boost
499 for the cases when there is no BUILD or
500 DEMOLISH method present.
502 * Moose::Util::TypeConstraints
503 * Moose::Meta::TypeConstraint
504 - added an 'optimize_as' option to the
505 type constraint, which allows for a
506 hand optimized version of the type
507 constraint to be used when possible.
508 - Any internally created type constraints
509 now provide an optimized version as well.
511 0.15 Sun. Nov. 5, 2006
513 This version of Moose *must* have Class::MOP 0.36 in order
514 to work correctly. A number of small internal tweaks have
515 been made in order to be compatible with that release.
517 * Moose::Util::TypeConstraints
518 - added &unimport so that you can clean out
519 your class namespace of these exported
523 - fixed minor issue which occasionally
524 comes up during global destruction
526 - moved Moose::Meta::Method::Overriden into
530 - moved Moose::Meta::Role::Method into
533 * Moose::Meta::Attribute
534 - changed how we do type checks so that
535 we reduce the overall cost, but still
538 - moved accessor generation methods to
539 Moose::Meta::Method::Accessor to
540 conform to the API changes from
543 * Moose::Meta::TypeConstraint
544 - changed how constraints are compiled
545 so that we do less recursion and more
546 iteration. This makes the type check
548 - moved Moose::Meta::TypeConstraint::Union
551 * Moose::Meta::Method::Accessor
552 - created this from methods formerly found in
553 Moose::Meta::Attribute
555 * Moose::Meta::Role::Method
556 - moved this from Moose::Meta::Role
558 * Moose::Meta::Method::Overriden
559 - moved this from Moose::Meta::Class
561 * Moose::Meta::TypeConstraint::Union
562 - moved this from Moose::Meta::TypeConstraint
564 0.14 Mon. Oct. 9, 2006
566 * Moose::Meta::Attribute
567 - fixed lazy attributes which were not getting
568 checked with the type constraint (thanks ashley)
569 - added tests for this
570 - removed the over-enthusiastic DWIMery of the
571 automatic ArrayRef and HashRef defaults, it
572 broke predicates in an ugly way.
573 - removed tests for this
575 0.13 Sat. Sept. 30, 2006
577 This version of Moose *must* have Class::MOP 0.35 in order
578 to work correctly. A number of small internal tweaks have
579 been made in order to be compatible with that release.
582 - Removed the use of UNIVERSAL::require to be a better
583 symbol table citizen and remove a dependency
584 (thanks Adam Kennedy)
586 **~~ removed experimental & undocumented feature ~~**
587 - commented out the 'method' and 'self' keywords, see the
588 comments for more info.
591 - added a FAQ and WTF files to document frequently
592 asked questions and common problems
594 * Moose::Util::TypeConstraints
595 - added GlobRef and FileHandle type constraint
596 - added tests for this
598 * Moose::Meta::Attribute
599 - if your attribute 'isa' ArrayRef of HashRef, and you have
600 not explicitly set a default, then make the default DWIM.
601 This will also work for subtypes of ArrayRef and HashRef
603 - you can now auto-deref subtypes of ArrayRef or HashRef too.
604 - new test added for this (thanks to ashley)
607 - added basic support for runtime role composition
608 but this is still *highly experimental*, so feedback
609 is much appreciated :)
610 - added tests for this
612 * Moose::Meta::TypeConstraint
613 - the type constraint now handles the coercion process
614 through delegation, this is to support the coercion
617 * Moose::Meta::TypeConstraint::Union
618 - it is now possible for coercions to be performed
620 - added tests for this (thanks to konobi)
622 * Moose::Meta::TypeCoercion
623 - properly capturing error when type constraint
627 - Scalar::Util 1.18 is bad on Win32, so temporarily
628 only require version 1.17 for Win32 and cygwin.
629 (thanks Adam Kennedy)
631 0.12 Sat. Sept. 1, 2006
633 - Recipe5 (subtypes & coercion) has been written
636 - fixed "bad meta" error message to be more descriptive
637 - fixed &unimport to not remove the &inner and &super
638 keywords because we need to localize them.
639 - fixed number of spelling/grammer issues, thanks Theory :)
641 **~~ experimental & undocumented feature ~~**
642 - added the method and self keywords, they are basically
643 just sugar, and they may not stay around.
646 - added &dump method to easily Data::Dumper
649 * Moose::Meta::TypeConstraint
650 - added the &is_a_type_of method to check both the current
651 and the subtype of a method (similar to &isa with classes)
654 - this is now a subclass of Class::MOP::Module, and no longer
655 creates the _role_meta ugliness of before.
656 - fixed tests to reflect this change
658 0.11 Wed. July 12, 2006
660 - added an &unimport method to remove all the keywords
661 that Moose will import, simply add 'no Moose' to the
662 bottom of your class file.
665 - fixed some test failures caused by a forgotten test
668 0.10 Thurs. July 6, 2006
670 - improved error message when loading modules so
671 it is less confusing when you load a role.
672 - added &calculate_all_roles method to
673 Moose::Meta::Class and Moose::Meta::Role
676 This module has been tested against Class::MOP 0.30
677 but it does not yet utilize the optimizations
678 it makes available. Stay tuned for that ;)
680 0.09_03 Fri. June 23, 2006
681 ++ DEVELOPER RELEASE ++
683 - 'use strict' and 'use warnings' are no longer
684 needed in Moose classes, Moose itself will
685 turn them on for you.
686 - added tests for this
687 - moved code from exported subs to private methods
688 in Moose::Meta::Class
691 - as with Moose, strict and warnings are
692 automatically turned on for you.
693 - added tests for this
696 - now handles an edge case for override errors
697 - added tests for this
698 - added some more edge case tests
700 0.09_02 Tues. May 16, 2006
701 ++ DEVELOPER RELEASE ++
703 - added prototypes to the exported subs
707 - added prototypes to the exported subs
710 * Moose::Util::TypeConstraints
711 - cleaned up prototypes for the subs
714 0.09_01 Fri. May 12, 2006
715 ++ DEVELOPER RELEASE ++
716 - This release works in combination with
717 Class::MOP 0.29_01, it is a developer
718 release because it uses the a new
719 instance sub-protocol and a fairly
720 complete Role implementation. It has
721 not yet been optimized, so it slower
722 the the previous CPAN version. This
723 release also lacks good updated docs,
724 the official release will have updated docs.
727 - refactored the keyword exports
728 - 'with' now checks Role validaity and
729 accepts more than one Role at a time
730 - 'extends' makes metaclass adjustments as
731 needed to ensure metaclass compatability
734 - refactored the keyword exports
735 - 'with' now checks Role validaity and
736 accepts more than one Role at a time
738 * Moose::Util::TypeConstraints
739 - added the 'enum' keyword for simple
740 string enumerations which can be used as
742 - see example of usage in t/202_example.t
745 - more careful checking of params to new()
748 - much work done on the role composition
749 - many new tests for conflict detection
750 and composition edge cases
751 - not enough documentation, I suggest
754 * Moose::Meta::Instance
755 - added new Instance metaclass to support
756 the new Class::MOP instance protocol
759 - some small changes to support the new
761 - some small additions to support Roles
763 * Moose::Meta::Attribute
764 - some improvements to the accessor generation code
766 - some small changes to support the new
768 - (still somewhat) experimental delegation support
769 with the 'handles' option
770 - added several tests for this
771 - no docs for this yet
773 0.05 Thurs. April 27, 2006
775 - keywords are now exported with Sub::Exporter
776 thanks to chansen for this commit
777 - has keyword now takes a 'metaclass' option
778 to support custom attribute meta-classes
779 on a per-attribute basis
780 - added tests for this
781 - the 'has' keyword not accepts inherited slot
782 specifications (has '+foo'). This is still an
783 experimental feature and probably not finished
784 see t/038_attribute_inherited_slot_specs.t for
785 more details, or ask about it on #moose
786 - added tests for this
789 - keywords are now exported with Sub::Exporter
791 * Moose::Utils::TypeConstraints
792 - reorganized the type constraint hierarchy, thanks
793 to nothingmuch and chansen for his help and advice
795 - added some tests for this
796 - keywords are now exported with Sub::Exporter
797 thanks to chansen for this commit
800 - due to changes in Class::MOP, we had to change
801 construct_instance (for the better)
803 * Moose::Meta::Attribute
804 - due to changes in Class::MOP, we had to add the
805 initialize_instance_slot method (it's a good thing)
807 * Moose::Meta::TypeConstraint
808 - added type constraint unions
809 - added tests for this
810 - added the is_subtype_of predicate method
811 - added tests for this
813 0.04 Sun. April 16th, 2006
815 - Roles can now consume other roles
816 - added tests for this
817 - Roles can specify required methods now with
818 the requires() keyword
819 - added tests for this
822 - ripped out much of it's guts ,.. much cleaner now
823 - added required methods and correct handling of
824 them in apply() for both classes and roles
825 - added tests for this
826 - no longer adds a does() method to consuming classes
827 it relys on the one in Moose::Object
828 - added roles attribute and some methods to support
829 roles consuming roles
831 * Moose::Meta::Attribute
832 - added support for triggers on attributes
833 - added tests for this
834 - added support for does option on an attribute
835 - added tests for this
838 - added support for attribute triggers in the
840 - added tests for this
843 - Moose no longer creates a subtype for your class
844 if a subtype of the same name already exists, this
845 should DWIM in 99.9999% of all cases
847 * Moose::Util::TypeConstraints
848 - fixed bug where incorrect subtype conflicts were
850 - added test for this
853 - this class can now be extended with 'use base' if
854 you need it, it properly loads the metaclass class now
855 - added test for this
857 0.03_02 Wed. April 12, 2006
859 - you must now explictly use Moose::Util::TypeConstraints
860 it no longer gets exported for you automatically
863 - new() now accepts hash-refs as well as key/value lists
864 - added does() method to check for Roles
865 - added tests for this
868 - added roles attribute along with the add_role() and
870 - added tests for this
873 - now adds a does() method to consuming classes
874 which tests the class's hierarchy for roles
875 - added tests for this
877 0.03_01 Mon. April 10, 2006
879 - added new Role recipe (no content yet, only code)
882 - added 'with' keyword for Role support
883 - added test and docs for this
884 - fixed subtype quoting bug
885 - added test for this
889 - added test and docs
891 * Moose::Util::TypeConstraints
892 - added the message keyword to add custom
893 error messages to type constraints
896 - the meta role to support Moose::Role
897 - added tests and docs
900 - moved a number of things from Moose.pm
901 to here, they should have been here
904 * Moose::Meta::Attribute
905 - moved the attribute option macros here
906 instead of putting them in Moose.pm
908 * Moose::Meta::TypeConstraint
909 - added the message attributes and the
911 - added tests and docs for this
913 0.03 Thurs. March 30, 2006
915 - added the Moose::Cookbook with 5 recipes,
916 describing all the stuff Moose can do.
919 - fixed an issue with &extends super class loading
920 it now captures errors and deals with inline
921 packages correctly (bug found by mst, solution
923 - added super/override & inner/augment features
924 - added tests and docs for these
927 - BUILDALL now takes a reference of the %params
928 that are passed to &new, and passes that to
931 * Moose::Util::TypeConstraints
932 - Type constraints now survive runtime reloading
933 - added test for this
936 - fixed the way attribute defaults are handled
937 during instance construction (bug found by chansen)
939 * Moose::Meta::Attribute
940 - read-only attributes now actually enforce their
941 read-only-ness (this corrected in Class::MOP as
944 0.02 Tues. March 21, 2006
946 - many more tests, fixing some bugs and
948 - &extends now loads the base module with
950 - added UNIVERSAL::require to the
953 - each new Moose class will also create
954 and register a subtype of Object which
955 correspond to the new Moose class.
956 - the 'isa' option in &has now only
957 accepts strings, and will DWIM in
960 * Moose::Util::TypeConstraints
961 - added type coercion features
962 - added tests for this
963 - added support for this in attributes
964 and instance construction
966 - type construction no longer creates a
967 function, it registers the type instead.
968 - added several functions to get the
972 - BUILDALL and DEMOLISHALL were broken
973 because of a mis-named hash key, Whoops :)
975 * Moose::Meta::Attribute
976 - adding support for coercion in the
977 autogenerated accessors
980 - adding support for coercion in the
981 instance construction
983 * Moose::Meta::TypeConstraint
984 * Moose::Meta::TypeCoercion
985 - type constraints and coercions are now
986 full fledges meta-objects
988 0.01 Wed. March 15, 2006
989 - Moooooooooooooooooose!!!