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
97 0.33 Fri. Dec. 14, 2007
98 !! Moose now loads 2 x faster !!
99 !! with new Class::MOP 0.49 !!
101 ++ new oose.pm module to make command line
102 Moose-ness easier (see POD docs for more)
106 - several tweaks to take advantage of the
107 new method map caching in Class::MOP
109 * Moose::Meta::TypeConstraint::Parameterized
110 - allow subtypes of ArrayRef and HashRef to
111 be used as a container (sartak)
112 - added tests for this
113 - basic support for coercion to ArrayRef and
114 HashRef for containers (sartak)
115 - added tests for this
117 * Moose::Meta::TypeCoercion
118 - coercions will now create subtypes as needed
119 so you can now add coercions to parameterized
120 types without having to explictly define them
121 - added tests for this
123 * Moose::Meta::Method::Accessor
124 - allow subclasses to decide whether we need
125 to copy the value into a new variable (sartak)
127 0.32 Tues. Dec. 4, 2007
128 * Moose::Util::TypeConstraints
129 - fixing how subtype aliases of unions work
130 they should inherit the parent's coercion
131 - added tests for this
132 - you can now define multiple coercions on
133 a single type at different times instead of
134 having to do it all in one place
135 - added tests for this
137 * Moose::Meta::TypeConstraint
138 - there is now a default constraint of sub { 1 }
139 instead of Moose::Util::TypeConstraints setting
142 * Moose::Meta::TypeCoercion
143 * Moose::Meta::TypeCoercion::Union
144 - added the &has_coercion_for_type and
145 &add_type_coercions methods to support the
146 new features above (although you cannot add
147 more type coercions for Union types)
149 0.31 Mon. Nov. 26, 2007
150 * Moose::Meta::Attribute
151 - made the +attr syntax handle extending types with
152 parameters. So "has '+foo' => (isa => 'ArrayRef[Int]')"
153 now works if the original foo is an ArrayRef.
154 - added tests for this.
155 - delegation now works even if the attribute does not
156 have a reader method using the get_read_method_ref
157 method from Class::MOP::Attribute.
158 - added tests for this
159 - added docs for this
161 * Moose::Util::TypeConstraints
162 - passing no "additional attribute info" to
163 &find_or_create_type_constraint will no longer
164 attempt to create an __ANON__ type for you,
165 instead it will just return undef.
166 - added docs for this
168 0.30 Fri. Nov. 23, 2007
169 * Moose::Meta::Method::Constructor
170 -builder related bug in inlined constructor. (groditi)
172 * Moose::Meta::Method::Accessor
173 - genereate unnecessary calls to predicates and refactor
174 code generation for runtime speed (groditi)
176 * Moose::Util::TypeConstraints
177 - fix ClassName constraint to introspect symbol table (mst)
178 - added more tests for this (mst)
179 - fixed it so that subtype 'Foo' => as 'HashRef[Int]' ...
181 - added tests for this
184 - adding the link to Recipie 11 (written by Sartak)
185 - adding test for SYNOPSIS code
188 - New tests for builder bug. Upon instantiation, if an
189 attribute had a builder, no value and was not lazy the
190 builder default was not getting run, oops. (groditi)
192 0.29 Tues. Nov. 13, 2007
193 * Moose::Meta::Attribute
194 - Fix error message on missing builder method (groditi)
196 * Moose::Meta::Method::Accessor
197 - Fix error message on missing builder method (groditi)
200 - Add test to check for the correct error message when
201 builder method is missing (groditi)
203 0.28 Tues. Nov. 13, 2007
204 - 0.27 packaged incorrectly (groditi)
206 0.27 Tues. Nov. 13, 2007
207 * Moose::Meta::Attribute
208 - Added support for the new builder option (groditi)
209 - Added support for lazy_build option (groditi)
210 - Changed slot initialization for predicate changes (groditi)
212 * Moose::Meta::Method::Accessor
213 - Added support for lazy_build option (groditi)
214 - Fix inline methods to work with corrected predicate
217 * Moose::Meta::Method::Constructor
218 - Added support for lazy_build option (groditi)
221 - tests for builder and lazy_build (groditi)
223 * fixing some misc. bits in the docs that
224 got mentioned on CPAN Forum & perlmonks
227 - fixed how required methods are handled
228 when they encounter overriden or modified
229 methods from a class (thanks to confound).
230 - added tests for this
232 * Moose::Util::TypeConstraint
233 - fixed the type notation parser so that
234 the | always creates a union and so is
235 no longer a valid type char (thanks to
236 konobi, mugwump and #moose for working
238 - added more tests for this
240 0.26 Thurs. Sept. 27, 2007
243 * Parameterized Types
244 We now support parameterized collection types, such as:
245 ArrayRef[Int] # array or integers
246 HashRef[Object] # a hash with object values
247 They can also be nested:
248 ArrayRef[HashRef[RegExpr]] # an array of hashes with regexpr values
249 And work with the type unions as well:
250 ArrayRef[Int | Str] # array of integers of strings
252 * Better Framework Extendability
253 Moose.pm is now "extendable" such that it is now much
254 easier to extend the framework and add your own keywords
255 and customizations. See the "EXTENDING AND EMBEDDING MOOSE"
256 section of the Moose.pm docs.
259 In an effort to begin documenting some of the various
260 details of Moose as well as some common idioms, we have
261 created Moose::Cookbook::Snacks as a place to find
262 small (easily digestable) nuggets of Moose code.
265 ~ Several doc updates/cleanup thanks to castaway ~
267 - converted build system to use Module::Install instead of
268 Module::Build (thanks to jrockway)
271 - added all the meta classes to the immutable list and
272 set it to inline the accessors
273 - fix import to allow Sub::Exporter like { into => }
274 and { into_level => } (perigrin)
275 - exposed and documented init_meta() to allow better
276 embedding and extending of Moose (perigrin)
279 - complete re-organization of the test suite
280 - added some new tests as well
281 - finally re-enabled the Moose::POOP test since
282 the new version of DBM::Deep now works again
286 - fixed very odd and very nasty recursion bug with
288 - added tests for this (eilara)
290 * Moose::Meta::Attribute
291 Moose::Meta::Method::Constructor
292 Moose::Meta::Method::Accessor
293 - fixed issue with overload::Overloaded getting called
294 on non-blessed items. (RT #29269)
295 - added tests for this
297 * Moose::Meta::Method::Accessor
298 - fixed issue with generated accessor code making
299 assumptions about hash based classes (thanks to dexter)
301 * Moose::Coookbook::Snacks
302 - these are bits of documentation, not quite as big as
303 Recipes but which have no clear place in the module docs.
304 So they are Snacks! (horray for castaway++)
306 * Moose::Cookbook::Recipe4
307 - updated it to use the new ArrayRef[MyType] construct
308 - updated the accompanying test as well
310 +++ Major Refactor of the Type Constraint system +++
311 +++ with new features added as well +++
313 * Moose::Util::TypeConstraint
314 - no longer uses package variable to keep track of
315 the type constraints, now uses the an instance of
316 Moose::Meta::TypeConstraint::Registry to do it
317 - added more sophisticated type notation parsing
319 - added tests for this
321 * Moose::Meta::TypeConstraint
322 - some minor adjustments to make subclassing easier
323 - added the package_defined_in attribute so that we
324 can track where the type constraints are created
326 * Moose::Meta::TypeConstraint::Union
327 - this is now been refactored to be a subclass of
328 Moose::Meta::TypeConstraint
330 * Moose::Meta::TypeCoercion::Union
331 - this has been added to service the newly refactored
332 Moose::Meta::TypeConstraint::Union and is itself
333 a subclass of Moose::Meta::TypeCoercion
335 * Moose::Meta::TypeConstraint::Parameterized
336 - added this module (taken from MooseX::AttributeHelpers)
337 to help construct nested collection types
338 - added tests for this
340 * Moose::Meta::TypeConstraint::Registry
341 - added this class to keep track of type constraints
343 0.25 Mon. Aug. 13, 2007
345 - Documentation update to reference Moose::Util::TypeConstraints
346 under 'isa' in 'has' for how to define a new type
349 * Moose::Meta::Attribute
350 - required attributes now will no longer accept undef
351 from the constructor, even if there is a default and lazy
352 - added tests for this
353 - default subroutines must return a value which passes the
355 - added tests for this
357 * Moose::Meta::Attribute
358 * Moose::Meta::Method::Constructor
359 * Moose::Meta::Method::Accessor
360 - type-constraint tests now handle overloaded objects correctly
362 - added tests for this (thanks to EvanCarroll)
364 * Moose::Meta::TypeConstraint::Union
365 - added (has_)hand_optimized_constraint to this class so that
366 it behaves as the regular Moose::Meta::TypeConstraint does.
369 - large refactoring of this code
370 - added several more tests
371 - tests for subtle conflict resolition issues
372 added, but not currently running
375 * Moose::Cookbook::Recipe7
376 - added new recipe for augment/inner functionality
378 - added test for this
381 - a formal definition of roles (still in progress)
384 - utilities for easier working with Moose classes
385 - added tests for these
388 - This contains Moose specific test functions
389 - added tests for these
391 0.24 Tues. July 3, 2007
392 ~ Some doc updates/cleanup ~
394 * Moose::Meta::Attribute
395 - added support for roles to be given as parameters
396 to the 'handles' option.
397 - added tests and docs for this
398 - the has '+foo' attribute form now accepts changes to
399 the lazy option, and the addition of a handles option
400 (but not changing the handles option)
401 - added tests and docs for this
404 - required methods are now fetched using find_method_by_name
405 so that required methods can come from superclasses
406 - adjusted tests for this
408 0.23 Mon. June 18, 2007
409 * Moose::Meta::Method::Constructor
410 - fix inlined constructor for hierarchy with multiple BUILD methods (mst)
412 - Modify make_immutable to work with the new Class::MOP immutable
413 mechanism + POD + very basic test (groditi)
414 * Moose::Meta::Attribute
415 - Fix handles to use goto() so that caller() comes out properly on
416 the other side (perigrin)
418 0.22 Thurs. May 31, 2007
419 * Moose::Util::TypeConstraints
420 - fix for prototype undeclared issue when Moose::Util::TypeConstraints
421 loaded before consumers (e.g. Moose::Meta::Attribute) by predeclaring
422 prototypes for functions
423 - added the ClassName type constraint, this checks for strings
424 which will respond true to ->isa(UNIVERSAL).
425 - added tests and docs for this
426 - subtyping just in name now works correctly by making the
427 default for where be { 1 }
428 - added test for this
430 * Moose::Meta::Method::Accessor
431 - coerce and lazy now work together correctly, thanks to
432 merlyn for finding this bug
433 - tests added for this
434 - fix reader presedence bug in Moose::Meta::Attribute + tests
437 - Foo->new(undef) now gets ignored, it is assumed you meant to pass
438 a HASH-ref and missed. This produces better error messages then
439 having it die cause undef is not a HASH.
440 - added tests for this
442 0.21 Thursday, May 2nd, 2007
444 - added SUPER_SLOT and INNER_SLOT class hashes to support unimport
445 - modified unimport to remove super and inner along with the rest
446 - altered unimport tests to handle this
449 - altered super export to populate SUPER_SLOT
452 - altered augment and override modifier application to use *_SLOT
453 - modified tests for these to unimport one test class each to test
456 - fixed issue where custom attribute metaclasses
457 where not handled correctly in roles
458 - added tests for this
461 - fixed issue where extending metaclasses with
462 roles would blow up. Thanks to Aankhen`` for
463 finding this insidious error, and it's solution.
465 ~~ lots of spelling and grammer fixes in the docs,
466 many many thanks to rlb3 and Aankhen for these :)
468 0.20 Friday, April 6th, 2007
469 >> I messed up the SKIP logic in one test
470 so this release is just to fix that.
473 - 'has' now also accepts an ARRAY ref
474 to create multiple attrs (see docs)
475 (thanks to konobi for this)
476 - added tests and docs
478 0.19 Thurs. April 5th, 2007
479 ~~ More documentation updates ~~
481 * Moose::Util::TypeConstraints
482 - 'type' now supports messages as well
483 thanks to phaylon for finding this
484 - added tests for this
485 - added &list_all_type_constraints and
486 &list_all_builtin_type_constraints
487 functions to facilitate introspection.
489 * Moose::Meta::Attribute
490 - fixed regexp 'handles' declarations
491 to build the list of delegated methods
492 correctly (and not override important
493 things like &new) thanks to ashleyb
495 - added tests and docs for this
496 - added the 'documentation' attributes
497 so that you can actually document your
498 attributes and inspect them through the
500 - added tests and docs for this
503 - when loading custom attribute metaclasses
504 it will first look in for the class in the
505 Moose::Meta::Attribute::Custom::$name, and
506 then default to just loading $name.
507 - added tests and docs for this
509 * Moose::Meta::TypeConstraint
510 - type constraints now stringify to their names.
511 - added test for this
514 - added tests to assure we work with Module::Refresh
515 - added stricter test skip logic in the Moose POOP
516 test, ask Rob Kinyon why.
517 - *cough* DBM::Deep 1.0 backwards compatability sucks *cough* ;)
519 0.18 Sat. March 10, 2007
520 ~~ Many, many documentation updates ~~
523 - We now use Class::MOP::load_class to
525 - added tests to show types and subtypes
526 working with Declare::Constraints::Simple
527 and Test::Deep as constraint engines.
530 !! You must have Class::MOP 0.37_001 !!
531 !! for this developer release to work !!
533 This release was primarily adding the immutable
534 feature to Moose. An immutable class is one which
535 you promise not to alter. When you set the class
536 as immutable it will perform various bits of
537 memoization and inline certain part of the code
538 (constructors, destructors and accessors). This
539 minimizes (and in some cases totally eliminates)
540 one of Moose's biggest performance hits. This
541 feature is not on by default, and is 100% optional.
542 It has several configurable bits as well, so you
543 can pick and choose to your specific needs.
545 The changes involved in this were fairly wide and
546 highly specific, but 100% backwards compatible, so
547 I am not going to enumerate them here. If you are
548 truely interested in what was changed, please do
551 0.17 Tues. Nov. 14, 2006
552 * Moose::Meta::Method::Accessor
553 - bugfix for read-only accessors which
554 are have a type constraint and lazy.
555 Thanks to chansen for finding it.
557 0.16 Tues. Nov. 14, 2006
559 There are some speed improvements in this release,
560 but they are only the begining, so stay tuned.
563 - BUILDALL and DEMOLISHALL no longer get
564 called unless they actually need to be.
565 This gave us a signifigant speed boost
566 for the cases when there is no BUILD or
567 DEMOLISH method present.
569 * Moose::Util::TypeConstraints
570 * Moose::Meta::TypeConstraint
571 - added an 'optimize_as' option to the
572 type constraint, which allows for a
573 hand optimized version of the type
574 constraint to be used when possible.
575 - Any internally created type constraints
576 now provide an optimized version as well.
578 0.15 Sun. Nov. 5, 2006
580 This version of Moose *must* have Class::MOP 0.36 in order
581 to work correctly. A number of small internal tweaks have
582 been made in order to be compatible with that release.
584 * Moose::Util::TypeConstraints
585 - added &unimport so that you can clean out
586 your class namespace of these exported
590 - fixed minor issue which occasionally
591 comes up during global destruction
593 - moved Moose::Meta::Method::Overriden into
597 - moved Moose::Meta::Role::Method into
600 * Moose::Meta::Attribute
601 - changed how we do type checks so that
602 we reduce the overall cost, but still
605 - moved accessor generation methods to
606 Moose::Meta::Method::Accessor to
607 conform to the API changes from
610 * Moose::Meta::TypeConstraint
611 - changed how constraints are compiled
612 so that we do less recursion and more
613 iteration. This makes the type check
615 - moved Moose::Meta::TypeConstraint::Union
618 * Moose::Meta::Method::Accessor
619 - created this from methods formerly found in
620 Moose::Meta::Attribute
622 * Moose::Meta::Role::Method
623 - moved this from Moose::Meta::Role
625 * Moose::Meta::Method::Overriden
626 - moved this from Moose::Meta::Class
628 * Moose::Meta::TypeConstraint::Union
629 - moved this from Moose::Meta::TypeConstraint
631 0.14 Mon. Oct. 9, 2006
633 * Moose::Meta::Attribute
634 - fixed lazy attributes which were not getting
635 checked with the type constraint (thanks ashley)
636 - added tests for this
637 - removed the over-enthusiastic DWIMery of the
638 automatic ArrayRef and HashRef defaults, it
639 broke predicates in an ugly way.
640 - removed tests for this
642 0.13 Sat. Sept. 30, 2006
644 This version of Moose *must* have Class::MOP 0.35 in order
645 to work correctly. A number of small internal tweaks have
646 been made in order to be compatible with that release.
649 - Removed the use of UNIVERSAL::require to be a better
650 symbol table citizen and remove a dependency
651 (thanks Adam Kennedy)
653 **~~ removed experimental & undocumented feature ~~**
654 - commented out the 'method' and 'self' keywords, see the
655 comments for more info.
658 - added a FAQ and WTF files to document frequently
659 asked questions and common problems
661 * Moose::Util::TypeConstraints
662 - added GlobRef and FileHandle type constraint
663 - added tests for this
665 * Moose::Meta::Attribute
666 - if your attribute 'isa' ArrayRef of HashRef, and you have
667 not explicitly set a default, then make the default DWIM.
668 This will also work for subtypes of ArrayRef and HashRef
670 - you can now auto-deref subtypes of ArrayRef or HashRef too.
671 - new test added for this (thanks to ashley)
674 - added basic support for runtime role composition
675 but this is still *highly experimental*, so feedback
676 is much appreciated :)
677 - added tests for this
679 * Moose::Meta::TypeConstraint
680 - the type constraint now handles the coercion process
681 through delegation, this is to support the coercion
684 * Moose::Meta::TypeConstraint::Union
685 - it is now possible for coercions to be performed
687 - added tests for this (thanks to konobi)
689 * Moose::Meta::TypeCoercion
690 - properly capturing error when type constraint
694 - Scalar::Util 1.18 is bad on Win32, so temporarily
695 only require version 1.17 for Win32 and cygwin.
696 (thanks Adam Kennedy)
698 0.12 Sat. Sept. 1, 2006
700 - Recipe5 (subtypes & coercion) has been written
703 - fixed "bad meta" error message to be more descriptive
704 - fixed &unimport to not remove the &inner and &super
705 keywords because we need to localize them.
706 - fixed number of spelling/grammer issues, thanks Theory :)
708 **~~ experimental & undocumented feature ~~**
709 - added the method and self keywords, they are basically
710 just sugar, and they may not stay around.
713 - added &dump method to easily Data::Dumper
716 * Moose::Meta::TypeConstraint
717 - added the &is_a_type_of method to check both the current
718 and the subtype of a method (similar to &isa with classes)
721 - this is now a subclass of Class::MOP::Module, and no longer
722 creates the _role_meta ugliness of before.
723 - fixed tests to reflect this change
725 0.11 Wed. July 12, 2006
727 - added an &unimport method to remove all the keywords
728 that Moose will import, simply add 'no Moose' to the
729 bottom of your class file.
732 - fixed some test failures caused by a forgotten test
735 0.10 Thurs. July 6, 2006
737 - improved error message when loading modules so
738 it is less confusing when you load a role.
739 - added &calculate_all_roles method to
740 Moose::Meta::Class and Moose::Meta::Role
743 This module has been tested against Class::MOP 0.30
744 but it does not yet utilize the optimizations
745 it makes available. Stay tuned for that ;)
747 0.09_03 Fri. June 23, 2006
748 ++ DEVELOPER RELEASE ++
750 - 'use strict' and 'use warnings' are no longer
751 needed in Moose classes, Moose itself will
752 turn them on for you.
753 - added tests for this
754 - moved code from exported subs to private methods
755 in Moose::Meta::Class
758 - as with Moose, strict and warnings are
759 automatically turned on for you.
760 - added tests for this
763 - now handles an edge case for override errors
764 - added tests for this
765 - added some more edge case tests
767 0.09_02 Tues. May 16, 2006
768 ++ DEVELOPER RELEASE ++
770 - added prototypes to the exported subs
774 - added prototypes to the exported subs
777 * Moose::Util::TypeConstraints
778 - cleaned up prototypes for the subs
781 0.09_01 Fri. May 12, 2006
782 ++ DEVELOPER RELEASE ++
783 - This release works in combination with
784 Class::MOP 0.29_01, it is a developer
785 release because it uses the a new
786 instance sub-protocol and a fairly
787 complete Role implementation. It has
788 not yet been optimized, so it slower
789 the the previous CPAN version. This
790 release also lacks good updated docs,
791 the official release will have updated docs.
794 - refactored the keyword exports
795 - 'with' now checks Role validaity and
796 accepts more than one Role at a time
797 - 'extends' makes metaclass adjustments as
798 needed to ensure metaclass compatability
801 - refactored the keyword exports
802 - 'with' now checks Role validaity and
803 accepts more than one Role at a time
805 * Moose::Util::TypeConstraints
806 - added the 'enum' keyword for simple
807 string enumerations which can be used as
809 - see example of usage in t/202_example.t
812 - more careful checking of params to new()
815 - much work done on the role composition
816 - many new tests for conflict detection
817 and composition edge cases
818 - not enough documentation, I suggest
821 * Moose::Meta::Instance
822 - added new Instance metaclass to support
823 the new Class::MOP instance protocol
826 - some small changes to support the new
828 - some small additions to support Roles
830 * Moose::Meta::Attribute
831 - some improvements to the accessor generation code
833 - some small changes to support the new
835 - (still somewhat) experimental delegation support
836 with the 'handles' option
837 - added several tests for this
838 - no docs for this yet
840 0.05 Thurs. April 27, 2006
842 - keywords are now exported with Sub::Exporter
843 thanks to chansen for this commit
844 - has keyword now takes a 'metaclass' option
845 to support custom attribute meta-classes
846 on a per-attribute basis
847 - added tests for this
848 - the 'has' keyword not accepts inherited slot
849 specifications (has '+foo'). This is still an
850 experimental feature and probably not finished
851 see t/038_attribute_inherited_slot_specs.t for
852 more details, or ask about it on #moose
853 - added tests for this
856 - keywords are now exported with Sub::Exporter
858 * Moose::Utils::TypeConstraints
859 - reorganized the type constraint hierarchy, thanks
860 to nothingmuch and chansen for his help and advice
862 - added some tests for this
863 - keywords are now exported with Sub::Exporter
864 thanks to chansen for this commit
867 - due to changes in Class::MOP, we had to change
868 construct_instance (for the better)
870 * Moose::Meta::Attribute
871 - due to changes in Class::MOP, we had to add the
872 initialize_instance_slot method (it's a good thing)
874 * Moose::Meta::TypeConstraint
875 - added type constraint unions
876 - added tests for this
877 - added the is_subtype_of predicate method
878 - added tests for this
880 0.04 Sun. April 16th, 2006
882 - Roles can now consume other roles
883 - added tests for this
884 - Roles can specify required methods now with
885 the requires() keyword
886 - added tests for this
889 - ripped out much of it's guts ,.. much cleaner now
890 - added required methods and correct handling of
891 them in apply() for both classes and roles
892 - added tests for this
893 - no longer adds a does() method to consuming classes
894 it relys on the one in Moose::Object
895 - added roles attribute and some methods to support
896 roles consuming roles
898 * Moose::Meta::Attribute
899 - added support for triggers on attributes
900 - added tests for this
901 - added support for does option on an attribute
902 - added tests for this
905 - added support for attribute triggers in the
907 - added tests for this
910 - Moose no longer creates a subtype for your class
911 if a subtype of the same name already exists, this
912 should DWIM in 99.9999% of all cases
914 * Moose::Util::TypeConstraints
915 - fixed bug where incorrect subtype conflicts were
917 - added test for this
920 - this class can now be extended with 'use base' if
921 you need it, it properly loads the metaclass class now
922 - added test for this
924 0.03_02 Wed. April 12, 2006
926 - you must now explictly use Moose::Util::TypeConstraints
927 it no longer gets exported for you automatically
930 - new() now accepts hash-refs as well as key/value lists
931 - added does() method to check for Roles
932 - added tests for this
935 - added roles attribute along with the add_role() and
937 - added tests for this
940 - now adds a does() method to consuming classes
941 which tests the class's hierarchy for roles
942 - added tests for this
944 0.03_01 Mon. April 10, 2006
946 - added new Role recipe (no content yet, only code)
949 - added 'with' keyword for Role support
950 - added test and docs for this
951 - fixed subtype quoting bug
952 - added test for this
956 - added test and docs
958 * Moose::Util::TypeConstraints
959 - added the message keyword to add custom
960 error messages to type constraints
963 - the meta role to support Moose::Role
964 - added tests and docs
967 - moved a number of things from Moose.pm
968 to here, they should have been here
971 * Moose::Meta::Attribute
972 - moved the attribute option macros here
973 instead of putting them in Moose.pm
975 * Moose::Meta::TypeConstraint
976 - added the message attributes and the
978 - added tests and docs for this
980 0.03 Thurs. March 30, 2006
982 - added the Moose::Cookbook with 5 recipes,
983 describing all the stuff Moose can do.
986 - fixed an issue with &extends super class loading
987 it now captures errors and deals with inline
988 packages correctly (bug found by mst, solution
990 - added super/override & inner/augment features
991 - added tests and docs for these
994 - BUILDALL now takes a reference of the %params
995 that are passed to &new, and passes that to
998 * Moose::Util::TypeConstraints
999 - Type constraints now survive runtime reloading
1000 - added test for this
1002 * Moose::Meta::Class
1003 - fixed the way attribute defaults are handled
1004 during instance construction (bug found by chansen)
1006 * Moose::Meta::Attribute
1007 - read-only attributes now actually enforce their
1008 read-only-ness (this corrected in Class::MOP as
1011 0.02 Tues. March 21, 2006
1013 - many more tests, fixing some bugs and
1015 - &extends now loads the base module with
1017 - added UNIVERSAL::require to the
1020 - each new Moose class will also create
1021 and register a subtype of Object which
1022 correspond to the new Moose class.
1023 - the 'isa' option in &has now only
1024 accepts strings, and will DWIM in
1027 * Moose::Util::TypeConstraints
1028 - added type coercion features
1029 - added tests for this
1030 - added support for this in attributes
1031 and instance construction
1033 - type construction no longer creates a
1034 function, it registers the type instead.
1035 - added several functions to get the
1039 - BUILDALL and DEMOLISHALL were broken
1040 because of a mis-named hash key, Whoops :)
1042 * Moose::Meta::Attribute
1043 - adding support for coercion in the
1044 autogenerated accessors
1046 * Moose::Meta::Class
1047 - adding support for coercion in the
1048 instance construction
1050 * Moose::Meta::TypeConstraint
1051 * Moose::Meta::TypeCoercion
1052 - type constraints and coercions are now
1053 full fledges meta-objects
1055 0.01 Wed. March 15, 2006
1056 - Moooooooooooooooooose!!!