1 Revision history for Perl extension Moose
5 - documenting the use of '+name' with attributes
6 that come from recently composed roles. It makes
7 sense, people are using it, and so why not just
9 - fixing the 'extends' keyword so that it will not
10 trigger Ovid's bug (http://use.perl.org/~Ovid/journal/35763)
13 - added the perl -Moose=+Class::Name feature to allow
14 monkeypatching of classes in one liners
17 - fixing the 'apply_all_roles' keyword so that it will not
18 trigger Ovid's bug (http://use.perl.org/~Ovid/journal/35763)
21 - added ->create method which now supports roles (thanks to jrockway)
22 - added tests for this
23 - added ->create_anon_class which now supports roles and caching of
24 the results (thanks to jrockway)
25 - added tests for this
27 * Moose::Util::TypeConstraints
28 - it is now possible to make anon-enums by passing 'enum' an
29 ARRAY ref instead of the $name => @values. Everything else
31 - added tests for this
34 - making test for using '+name' on attributes consumed
35 from a role, it works and makes sense too.
37 * Moose::Meta::Attribute
38 - fix handles so that it doesn't return nothing
39 when the method cannot be found, not sure why
40 it ever did this originally, this means we now
41 have slightly better support for AUTOLOADed
43 - added more delegation tests
46 - localizing the Data::Dumper configurations so
47 that it does not pollute others (RT #33509)
49 0.38 Fri. Feb. 15, 2008
50 * Moose::Meta::Attribute
51 - fixed initializer to correctly do
52 type checking and coercion in the
54 - added tests for this
57 - fixed some finicky tests (thanks to konobi)
59 0.37 Thurs. Feb. 14, 2008
61 - fixed some details in Moose::init_meta
62 and its superclass handling (thanks thepler)
63 - added tests for this (thanks thepler)
64 - 'has' now dies if you don't pass in name
66 - added the 'make_immutable' keyword as a shortcut
70 Moose::Meta::Method::Constructor
71 Moose::Meta::Attribute
72 - making (init_arg => undef) work here too
73 (thanks to nothingmuch)
75 * Moose::Meta::Attribute
76 Moose::Meta::Method::Constructor
77 Moose::Meta::Method::Accessor
78 - make lazy attributes respect attr initializers (rjbs)
79 - added tests for this
81 * Moose::Util::TypeConstraints
82 Moose::Util::TypeConstraints::OptimizedConstraints
83 Moose::Meta::TypeConstraints
84 Moose::Meta::Attribute
85 Moose::Meta::Method::Constructor
86 Moose::Meta::Method::Accessor
87 - making type errors use the
88 assigned message (thanks to Sartak)
89 - added tests for this
91 * Moose::Meta::Method::Destructor
92 - making sure DESTROY gets inlined properly
93 with successive DEMOLISH calls (thanks to manito)
95 * Moose::Meta::Attribute
96 Moose::Meta::Method::Accessor
97 - fixed handling of undef with type constraints
99 - added tests for this
102 - added &get_all_init_args and &get_all_attribute_values
103 (thanks to Sartak and nothingmuch)
105 0.36 Sat. Jan. 26, 2008
107 Moose::Meta::Attribute
108 - role type tests now support when roles are
109 applied to non-Moose classes (found by ash)
110 - added tests for this (thanks to ash)
111 - couple extra tests to boost code coverage
113 * Moose::Meta::Method::Constructor
114 - improved fix for handling Class::MOP attributes
115 - added test for this
118 - handled the add_attribute($attribute_meta_object)
120 - added test for this
122 0.35 Tues. Jan. 22, 2008
123 * Moose::Meta::Method::Constructor
124 - fix to make sure even Class::MOP attributes
125 are handled correctly (Thanks to Dave Rolsky)
126 - added test for this (also Dave Rolsky)
129 - improved error message on _apply_all_roles,
130 you should now use Moose::Util::apply_all_roles
131 and you shouldnt have been using a _ prefixed
132 method in the first place ;)
134 0.34 Mon. Jan. 21, 2008
135 ~~~ more misc. doc. fixes ~~~
136 ~~ updated copyright dates ~~
138 Moose is now a postmodern object system :)
139 - (see the POD for details)
141 * <<Role System Refactoring>>
142 - this release contains a major reworking and
143 cleanup of the role system
144 - 100% backwards compat.
145 - Role application now restructured into seperate
146 classes based on type of applicants
147 - Role summation (combining of more than one role)
148 is much cleaner and anon-classes are no longer
150 - new Composite role metaclass
151 - runtime application of roles to instances
152 is now more efficient and re-uses generated
153 classes when applicable
155 * <<New Role composition features>>
156 - methods can now be excluded from a given role
158 - methods can now be aliased to another name (and
159 still retain the original as well)
161 * Moose::Util::TypeConstraints::OptimizedConstraints
162 - added this module (see above)
165 - fixed the &_process_attribute method to be called
166 by &add_attribute, so that the API is now correct
168 * Moose::Meta::Method::Accessor
169 - fixed bug when passing a list of values to
170 an accessor would get (incorrectly) ignored.
171 Thanks to Sartak for finding this ;)
172 - added tests for this (Sartak again)
174 * Moose::Meta::Method::Accessor
175 Moose::Meta::Method::Constructor
176 Moose::Meta::Attribute
177 Moose::Meta::TypeConstraint
178 Moose::Meta::TypeCoercion
179 - lots of cleanup of such things as:
181 - type constraint handling
182 - error handling/messages
183 (thanks to nothingmuch)
185 * Moose::Meta::TypeConstraint::Parameterizable
186 - added this module to support the refactor
187 in Moose::Meta::TypeConstraint::Parameterized
189 * Moose::Meta::TypeConstraint::Parameterized
190 - refactored how these types are handled so they
191 are more generic and not confined to ArrayRef
195 - shortened some file names for better VMS support (RT #32381)
197 0.33 Fri. Dec. 14, 2007
198 !! Moose now loads 2 x faster !!
199 !! with new Class::MOP 0.49 !!
201 ++ new oose.pm module to make command line
202 Moose-ness easier (see POD docs for more)
206 - several tweaks to take advantage of the
207 new method map caching in Class::MOP
209 * Moose::Meta::TypeConstraint::Parameterized
210 - allow subtypes of ArrayRef and HashRef to
211 be used as a container (sartak)
212 - added tests for this
213 - basic support for coercion to ArrayRef and
214 HashRef for containers (sartak)
215 - added tests for this
217 * Moose::Meta::TypeCoercion
218 - coercions will now create subtypes as needed
219 so you can now add coercions to parameterized
220 types without having to explictly define them
221 - added tests for this
223 * Moose::Meta::Method::Accessor
224 - allow subclasses to decide whether we need
225 to copy the value into a new variable (sartak)
227 0.32 Tues. Dec. 4, 2007
228 * Moose::Util::TypeConstraints
229 - fixing how subtype aliases of unions work
230 they should inherit the parent's coercion
231 - added tests for this
232 - you can now define multiple coercions on
233 a single type at different times instead of
234 having to do it all in one place
235 - added tests for this
237 * Moose::Meta::TypeConstraint
238 - there is now a default constraint of sub { 1 }
239 instead of Moose::Util::TypeConstraints setting
242 * Moose::Meta::TypeCoercion
243 * Moose::Meta::TypeCoercion::Union
244 - added the &has_coercion_for_type and
245 &add_type_coercions methods to support the
246 new features above (although you cannot add
247 more type coercions for Union types)
249 0.31 Mon. Nov. 26, 2007
250 * Moose::Meta::Attribute
251 - made the +attr syntax handle extending types with
252 parameters. So "has '+foo' => (isa => 'ArrayRef[Int]')"
253 now works if the original foo is an ArrayRef.
254 - added tests for this.
255 - delegation now works even if the attribute does not
256 have a reader method using the get_read_method_ref
257 method from Class::MOP::Attribute.
258 - added tests for this
259 - added docs for this
261 * Moose::Util::TypeConstraints
262 - passing no "additional attribute info" to
263 &find_or_create_type_constraint will no longer
264 attempt to create an __ANON__ type for you,
265 instead it will just return undef.
266 - added docs for this
268 0.30 Fri. Nov. 23, 2007
269 * Moose::Meta::Method::Constructor
270 -builder related bug in inlined constructor. (groditi)
272 * Moose::Meta::Method::Accessor
273 - genereate unnecessary calls to predicates and refactor
274 code generation for runtime speed (groditi)
276 * Moose::Util::TypeConstraints
277 - fix ClassName constraint to introspect symbol table (mst)
278 - added more tests for this (mst)
279 - fixed it so that subtype 'Foo' => as 'HashRef[Int]' ...
281 - added tests for this
284 - adding the link to Recipie 11 (written by Sartak)
285 - adding test for SYNOPSIS code
288 - New tests for builder bug. Upon instantiation, if an
289 attribute had a builder, no value and was not lazy the
290 builder default was not getting run, oops. (groditi)
292 0.29 Tues. Nov. 13, 2007
293 * Moose::Meta::Attribute
294 - Fix error message on missing builder method (groditi)
296 * Moose::Meta::Method::Accessor
297 - Fix error message on missing builder method (groditi)
300 - Add test to check for the correct error message when
301 builder method is missing (groditi)
303 0.28 Tues. Nov. 13, 2007
304 - 0.27 packaged incorrectly (groditi)
306 0.27 Tues. Nov. 13, 2007
307 * Moose::Meta::Attribute
308 - Added support for the new builder option (groditi)
309 - Added support for lazy_build option (groditi)
310 - Changed slot initialization for predicate changes (groditi)
312 * Moose::Meta::Method::Accessor
313 - Added support for lazy_build option (groditi)
314 - Fix inline methods to work with corrected predicate
317 * Moose::Meta::Method::Constructor
318 - Added support for lazy_build option (groditi)
321 - tests for builder and lazy_build (groditi)
323 * fixing some misc. bits in the docs that
324 got mentioned on CPAN Forum & perlmonks
327 - fixed how required methods are handled
328 when they encounter overriden or modified
329 methods from a class (thanks to confound).
330 - added tests for this
332 * Moose::Util::TypeConstraint
333 - fixed the type notation parser so that
334 the | always creates a union and so is
335 no longer a valid type char (thanks to
336 konobi, mugwump and #moose for working
338 - added more tests for this
340 0.26 Thurs. Sept. 27, 2007
343 * Parameterized Types
344 We now support parameterized collection types, such as:
345 ArrayRef[Int] # array or integers
346 HashRef[Object] # a hash with object values
347 They can also be nested:
348 ArrayRef[HashRef[RegExpr]] # an array of hashes with regexpr values
349 And work with the type unions as well:
350 ArrayRef[Int | Str] # array of integers of strings
352 * Better Framework Extendability
353 Moose.pm is now "extendable" such that it is now much
354 easier to extend the framework and add your own keywords
355 and customizations. See the "EXTENDING AND EMBEDDING MOOSE"
356 section of the Moose.pm docs.
359 In an effort to begin documenting some of the various
360 details of Moose as well as some common idioms, we have
361 created Moose::Cookbook::Snacks as a place to find
362 small (easily digestable) nuggets of Moose code.
365 ~ Several doc updates/cleanup thanks to castaway ~
367 - converted build system to use Module::Install instead of
368 Module::Build (thanks to jrockway)
371 - added all the meta classes to the immutable list and
372 set it to inline the accessors
373 - fix import to allow Sub::Exporter like { into => }
374 and { into_level => } (perigrin)
375 - exposed and documented init_meta() to allow better
376 embedding and extending of Moose (perigrin)
379 - complete re-organization of the test suite
380 - added some new tests as well
381 - finally re-enabled the Moose::POOP test since
382 the new version of DBM::Deep now works again
386 - fixed very odd and very nasty recursion bug with
388 - added tests for this (eilara)
390 * Moose::Meta::Attribute
391 Moose::Meta::Method::Constructor
392 Moose::Meta::Method::Accessor
393 - fixed issue with overload::Overloaded getting called
394 on non-blessed items. (RT #29269)
395 - added tests for this
397 * Moose::Meta::Method::Accessor
398 - fixed issue with generated accessor code making
399 assumptions about hash based classes (thanks to dexter)
401 * Moose::Coookbook::Snacks
402 - these are bits of documentation, not quite as big as
403 Recipes but which have no clear place in the module docs.
404 So they are Snacks! (horray for castaway++)
406 * Moose::Cookbook::Recipe4
407 - updated it to use the new ArrayRef[MyType] construct
408 - updated the accompanying test as well
410 +++ Major Refactor of the Type Constraint system +++
411 +++ with new features added as well +++
413 * Moose::Util::TypeConstraint
414 - no longer uses package variable to keep track of
415 the type constraints, now uses the an instance of
416 Moose::Meta::TypeConstraint::Registry to do it
417 - added more sophisticated type notation parsing
419 - added tests for this
421 * Moose::Meta::TypeConstraint
422 - some minor adjustments to make subclassing easier
423 - added the package_defined_in attribute so that we
424 can track where the type constraints are created
426 * Moose::Meta::TypeConstraint::Union
427 - this is now been refactored to be a subclass of
428 Moose::Meta::TypeConstraint
430 * Moose::Meta::TypeCoercion::Union
431 - this has been added to service the newly refactored
432 Moose::Meta::TypeConstraint::Union and is itself
433 a subclass of Moose::Meta::TypeCoercion
435 * Moose::Meta::TypeConstraint::Parameterized
436 - added this module (taken from MooseX::AttributeHelpers)
437 to help construct nested collection types
438 - added tests for this
440 * Moose::Meta::TypeConstraint::Registry
441 - added this class to keep track of type constraints
443 0.25 Mon. Aug. 13, 2007
445 - Documentation update to reference Moose::Util::TypeConstraints
446 under 'isa' in 'has' for how to define a new type
449 * Moose::Meta::Attribute
450 - required attributes now will no longer accept undef
451 from the constructor, even if there is a default and lazy
452 - added tests for this
453 - default subroutines must return a value which passes the
455 - added tests for this
457 * Moose::Meta::Attribute
458 * Moose::Meta::Method::Constructor
459 * Moose::Meta::Method::Accessor
460 - type-constraint tests now handle overloaded objects correctly
462 - added tests for this (thanks to EvanCarroll)
464 * Moose::Meta::TypeConstraint::Union
465 - added (has_)hand_optimized_constraint to this class so that
466 it behaves as the regular Moose::Meta::TypeConstraint does.
469 - large refactoring of this code
470 - added several more tests
471 - tests for subtle conflict resolition issues
472 added, but not currently running
475 * Moose::Cookbook::Recipe7
476 - added new recipe for augment/inner functionality
478 - added test for this
481 - a formal definition of roles (still in progress)
484 - utilities for easier working with Moose classes
485 - added tests for these
488 - This contains Moose specific test functions
489 - added tests for these
491 0.24 Tues. July 3, 2007
492 ~ Some doc updates/cleanup ~
494 * Moose::Meta::Attribute
495 - added support for roles to be given as parameters
496 to the 'handles' option.
497 - added tests and docs for this
498 - the has '+foo' attribute form now accepts changes to
499 the lazy option, and the addition of a handles option
500 (but not changing the handles option)
501 - added tests and docs for this
504 - required methods are now fetched using find_method_by_name
505 so that required methods can come from superclasses
506 - adjusted tests for this
508 0.23 Mon. June 18, 2007
509 * Moose::Meta::Method::Constructor
510 - fix inlined constructor for hierarchy with multiple BUILD methods (mst)
512 - Modify make_immutable to work with the new Class::MOP immutable
513 mechanism + POD + very basic test (groditi)
514 * Moose::Meta::Attribute
515 - Fix handles to use goto() so that caller() comes out properly on
516 the other side (perigrin)
518 0.22 Thurs. May 31, 2007
519 * Moose::Util::TypeConstraints
520 - fix for prototype undeclared issue when Moose::Util::TypeConstraints
521 loaded before consumers (e.g. Moose::Meta::Attribute) by predeclaring
522 prototypes for functions
523 - added the ClassName type constraint, this checks for strings
524 which will respond true to ->isa(UNIVERSAL).
525 - added tests and docs for this
526 - subtyping just in name now works correctly by making the
527 default for where be { 1 }
528 - added test for this
530 * Moose::Meta::Method::Accessor
531 - coerce and lazy now work together correctly, thanks to
532 merlyn for finding this bug
533 - tests added for this
534 - fix reader presedence bug in Moose::Meta::Attribute + tests
537 - Foo->new(undef) now gets ignored, it is assumed you meant to pass
538 a HASH-ref and missed. This produces better error messages then
539 having it die cause undef is not a HASH.
540 - added tests for this
542 0.21 Thursday, May 2nd, 2007
544 - added SUPER_SLOT and INNER_SLOT class hashes to support unimport
545 - modified unimport to remove super and inner along with the rest
546 - altered unimport tests to handle this
549 - altered super export to populate SUPER_SLOT
552 - altered augment and override modifier application to use *_SLOT
553 - modified tests for these to unimport one test class each to test
556 - fixed issue where custom attribute metaclasses
557 where not handled correctly in roles
558 - added tests for this
561 - fixed issue where extending metaclasses with
562 roles would blow up. Thanks to Aankhen`` for
563 finding this insidious error, and it's solution.
565 ~~ lots of spelling and grammer fixes in the docs,
566 many many thanks to rlb3 and Aankhen for these :)
568 0.20 Friday, April 6th, 2007
569 >> I messed up the SKIP logic in one test
570 so this release is just to fix that.
573 - 'has' now also accepts an ARRAY ref
574 to create multiple attrs (see docs)
575 (thanks to konobi for this)
576 - added tests and docs
578 0.19 Thurs. April 5th, 2007
579 ~~ More documentation updates ~~
581 * Moose::Util::TypeConstraints
582 - 'type' now supports messages as well
583 thanks to phaylon for finding this
584 - added tests for this
585 - added &list_all_type_constraints and
586 &list_all_builtin_type_constraints
587 functions to facilitate introspection.
589 * Moose::Meta::Attribute
590 - fixed regexp 'handles' declarations
591 to build the list of delegated methods
592 correctly (and not override important
593 things like &new) thanks to ashleyb
595 - added tests and docs for this
596 - added the 'documentation' attributes
597 so that you can actually document your
598 attributes and inspect them through the
600 - added tests and docs for this
603 - when loading custom attribute metaclasses
604 it will first look in for the class in the
605 Moose::Meta::Attribute::Custom::$name, and
606 then default to just loading $name.
607 - added tests and docs for this
609 * Moose::Meta::TypeConstraint
610 - type constraints now stringify to their names.
611 - added test for this
614 - added tests to assure we work with Module::Refresh
615 - added stricter test skip logic in the Moose POOP
616 test, ask Rob Kinyon why.
617 - *cough* DBM::Deep 1.0 backwards compatability sucks *cough* ;)
619 0.18 Sat. March 10, 2007
620 ~~ Many, many documentation updates ~~
623 - We now use Class::MOP::load_class to
625 - added tests to show types and subtypes
626 working with Declare::Constraints::Simple
627 and Test::Deep as constraint engines.
630 !! You must have Class::MOP 0.37_001 !!
631 !! for this developer release to work !!
633 This release was primarily adding the immutable
634 feature to Moose. An immutable class is one which
635 you promise not to alter. When you set the class
636 as immutable it will perform various bits of
637 memoization and inline certain part of the code
638 (constructors, destructors and accessors). This
639 minimizes (and in some cases totally eliminates)
640 one of Moose's biggest performance hits. This
641 feature is not on by default, and is 100% optional.
642 It has several configurable bits as well, so you
643 can pick and choose to your specific needs.
645 The changes involved in this were fairly wide and
646 highly specific, but 100% backwards compatible, so
647 I am not going to enumerate them here. If you are
648 truely interested in what was changed, please do
651 0.17 Tues. Nov. 14, 2006
652 * Moose::Meta::Method::Accessor
653 - bugfix for read-only accessors which
654 are have a type constraint and lazy.
655 Thanks to chansen for finding it.
657 0.16 Tues. Nov. 14, 2006
659 There are some speed improvements in this release,
660 but they are only the begining, so stay tuned.
663 - BUILDALL and DEMOLISHALL no longer get
664 called unless they actually need to be.
665 This gave us a signifigant speed boost
666 for the cases when there is no BUILD or
667 DEMOLISH method present.
669 * Moose::Util::TypeConstraints
670 * Moose::Meta::TypeConstraint
671 - added an 'optimize_as' option to the
672 type constraint, which allows for a
673 hand optimized version of the type
674 constraint to be used when possible.
675 - Any internally created type constraints
676 now provide an optimized version as well.
678 0.15 Sun. Nov. 5, 2006
680 This version of Moose *must* have Class::MOP 0.36 in order
681 to work correctly. A number of small internal tweaks have
682 been made in order to be compatible with that release.
684 * Moose::Util::TypeConstraints
685 - added &unimport so that you can clean out
686 your class namespace of these exported
690 - fixed minor issue which occasionally
691 comes up during global destruction
693 - moved Moose::Meta::Method::Overriden into
697 - moved Moose::Meta::Role::Method into
700 * Moose::Meta::Attribute
701 - changed how we do type checks so that
702 we reduce the overall cost, but still
705 - moved accessor generation methods to
706 Moose::Meta::Method::Accessor to
707 conform to the API changes from
710 * Moose::Meta::TypeConstraint
711 - changed how constraints are compiled
712 so that we do less recursion and more
713 iteration. This makes the type check
715 - moved Moose::Meta::TypeConstraint::Union
718 * Moose::Meta::Method::Accessor
719 - created this from methods formerly found in
720 Moose::Meta::Attribute
722 * Moose::Meta::Role::Method
723 - moved this from Moose::Meta::Role
725 * Moose::Meta::Method::Overriden
726 - moved this from Moose::Meta::Class
728 * Moose::Meta::TypeConstraint::Union
729 - moved this from Moose::Meta::TypeConstraint
731 0.14 Mon. Oct. 9, 2006
733 * Moose::Meta::Attribute
734 - fixed lazy attributes which were not getting
735 checked with the type constraint (thanks ashley)
736 - added tests for this
737 - removed the over-enthusiastic DWIMery of the
738 automatic ArrayRef and HashRef defaults, it
739 broke predicates in an ugly way.
740 - removed tests for this
742 0.13 Sat. Sept. 30, 2006
744 This version of Moose *must* have Class::MOP 0.35 in order
745 to work correctly. A number of small internal tweaks have
746 been made in order to be compatible with that release.
749 - Removed the use of UNIVERSAL::require to be a better
750 symbol table citizen and remove a dependency
751 (thanks Adam Kennedy)
753 **~~ removed experimental & undocumented feature ~~**
754 - commented out the 'method' and 'self' keywords, see the
755 comments for more info.
758 - added a FAQ and WTF files to document frequently
759 asked questions and common problems
761 * Moose::Util::TypeConstraints
762 - added GlobRef and FileHandle type constraint
763 - added tests for this
765 * Moose::Meta::Attribute
766 - if your attribute 'isa' ArrayRef of HashRef, and you have
767 not explicitly set a default, then make the default DWIM.
768 This will also work for subtypes of ArrayRef and HashRef
770 - you can now auto-deref subtypes of ArrayRef or HashRef too.
771 - new test added for this (thanks to ashley)
774 - added basic support for runtime role composition
775 but this is still *highly experimental*, so feedback
776 is much appreciated :)
777 - added tests for this
779 * Moose::Meta::TypeConstraint
780 - the type constraint now handles the coercion process
781 through delegation, this is to support the coercion
784 * Moose::Meta::TypeConstraint::Union
785 - it is now possible for coercions to be performed
787 - added tests for this (thanks to konobi)
789 * Moose::Meta::TypeCoercion
790 - properly capturing error when type constraint
794 - Scalar::Util 1.18 is bad on Win32, so temporarily
795 only require version 1.17 for Win32 and cygwin.
796 (thanks Adam Kennedy)
798 0.12 Sat. Sept. 1, 2006
800 - Recipe5 (subtypes & coercion) has been written
803 - fixed "bad meta" error message to be more descriptive
804 - fixed &unimport to not remove the &inner and &super
805 keywords because we need to localize them.
806 - fixed number of spelling/grammer issues, thanks Theory :)
808 **~~ experimental & undocumented feature ~~**
809 - added the method and self keywords, they are basically
810 just sugar, and they may not stay around.
813 - added &dump method to easily Data::Dumper
816 * Moose::Meta::TypeConstraint
817 - added the &is_a_type_of method to check both the current
818 and the subtype of a method (similar to &isa with classes)
821 - this is now a subclass of Class::MOP::Module, and no longer
822 creates the _role_meta ugliness of before.
823 - fixed tests to reflect this change
825 0.11 Wed. July 12, 2006
827 - added an &unimport method to remove all the keywords
828 that Moose will import, simply add 'no Moose' to the
829 bottom of your class file.
832 - fixed some test failures caused by a forgotten test
835 0.10 Thurs. July 6, 2006
837 - improved error message when loading modules so
838 it is less confusing when you load a role.
839 - added &calculate_all_roles method to
840 Moose::Meta::Class and Moose::Meta::Role
843 This module has been tested against Class::MOP 0.30
844 but it does not yet utilize the optimizations
845 it makes available. Stay tuned for that ;)
847 0.09_03 Fri. June 23, 2006
848 ++ DEVELOPER RELEASE ++
850 - 'use strict' and 'use warnings' are no longer
851 needed in Moose classes, Moose itself will
852 turn them on for you.
853 - added tests for this
854 - moved code from exported subs to private methods
855 in Moose::Meta::Class
858 - as with Moose, strict and warnings are
859 automatically turned on for you.
860 - added tests for this
863 - now handles an edge case for override errors
864 - added tests for this
865 - added some more edge case tests
867 0.09_02 Tues. May 16, 2006
868 ++ DEVELOPER RELEASE ++
870 - added prototypes to the exported subs
874 - added prototypes to the exported subs
877 * Moose::Util::TypeConstraints
878 - cleaned up prototypes for the subs
881 0.09_01 Fri. May 12, 2006
882 ++ DEVELOPER RELEASE ++
883 - This release works in combination with
884 Class::MOP 0.29_01, it is a developer
885 release because it uses the a new
886 instance sub-protocol and a fairly
887 complete Role implementation. It has
888 not yet been optimized, so it slower
889 the the previous CPAN version. This
890 release also lacks good updated docs,
891 the official release will have updated docs.
894 - refactored the keyword exports
895 - 'with' now checks Role validaity and
896 accepts more than one Role at a time
897 - 'extends' makes metaclass adjustments as
898 needed to ensure metaclass compatability
901 - refactored the keyword exports
902 - 'with' now checks Role validaity and
903 accepts more than one Role at a time
905 * Moose::Util::TypeConstraints
906 - added the 'enum' keyword for simple
907 string enumerations which can be used as
909 - see example of usage in t/202_example.t
912 - more careful checking of params to new()
915 - much work done on the role composition
916 - many new tests for conflict detection
917 and composition edge cases
918 - not enough documentation, I suggest
921 * Moose::Meta::Instance
922 - added new Instance metaclass to support
923 the new Class::MOP instance protocol
926 - some small changes to support the new
928 - some small additions to support Roles
930 * Moose::Meta::Attribute
931 - some improvements to the accessor generation code
933 - some small changes to support the new
935 - (still somewhat) experimental delegation support
936 with the 'handles' option
937 - added several tests for this
938 - no docs for this yet
940 0.05 Thurs. April 27, 2006
942 - keywords are now exported with Sub::Exporter
943 thanks to chansen for this commit
944 - has keyword now takes a 'metaclass' option
945 to support custom attribute meta-classes
946 on a per-attribute basis
947 - added tests for this
948 - the 'has' keyword not accepts inherited slot
949 specifications (has '+foo'). This is still an
950 experimental feature and probably not finished
951 see t/038_attribute_inherited_slot_specs.t for
952 more details, or ask about it on #moose
953 - added tests for this
956 - keywords are now exported with Sub::Exporter
958 * Moose::Utils::TypeConstraints
959 - reorganized the type constraint hierarchy, thanks
960 to nothingmuch and chansen for his help and advice
962 - added some tests for this
963 - keywords are now exported with Sub::Exporter
964 thanks to chansen for this commit
967 - due to changes in Class::MOP, we had to change
968 construct_instance (for the better)
970 * Moose::Meta::Attribute
971 - due to changes in Class::MOP, we had to add the
972 initialize_instance_slot method (it's a good thing)
974 * Moose::Meta::TypeConstraint
975 - added type constraint unions
976 - added tests for this
977 - added the is_subtype_of predicate method
978 - added tests for this
980 0.04 Sun. April 16th, 2006
982 - Roles can now consume other roles
983 - added tests for this
984 - Roles can specify required methods now with
985 the requires() keyword
986 - added tests for this
989 - ripped out much of it's guts ,.. much cleaner now
990 - added required methods and correct handling of
991 them in apply() for both classes and roles
992 - added tests for this
993 - no longer adds a does() method to consuming classes
994 it relys on the one in Moose::Object
995 - added roles attribute and some methods to support
996 roles consuming roles
998 * Moose::Meta::Attribute
999 - added support for triggers on attributes
1000 - added tests for this
1001 - added support for does option on an attribute
1002 - added tests for this
1004 * Moose::Meta::Class
1005 - added support for attribute triggers in the
1007 - added tests for this
1010 - Moose no longer creates a subtype for your class
1011 if a subtype of the same name already exists, this
1012 should DWIM in 99.9999% of all cases
1014 * Moose::Util::TypeConstraints
1015 - fixed bug where incorrect subtype conflicts were
1017 - added test for this
1020 - this class can now be extended with 'use base' if
1021 you need it, it properly loads the metaclass class now
1022 - added test for this
1024 0.03_02 Wed. April 12, 2006
1026 - you must now explictly use Moose::Util::TypeConstraints
1027 it no longer gets exported for you automatically
1030 - new() now accepts hash-refs as well as key/value lists
1031 - added does() method to check for Roles
1032 - added tests for this
1034 * Moose::Meta::Class
1035 - added roles attribute along with the add_role() and
1037 - added tests for this
1040 - now adds a does() method to consuming classes
1041 which tests the class's hierarchy for roles
1042 - added tests for this
1044 0.03_01 Mon. April 10, 2006
1046 - added new Role recipe (no content yet, only code)
1049 - added 'with' keyword for Role support
1050 - added test and docs for this
1051 - fixed subtype quoting bug
1052 - added test for this
1056 - added test and docs
1058 * Moose::Util::TypeConstraints
1059 - added the message keyword to add custom
1060 error messages to type constraints
1063 - the meta role to support Moose::Role
1064 - added tests and docs
1066 * Moose::Meta::Class
1067 - moved a number of things from Moose.pm
1068 to here, they should have been here
1071 * Moose::Meta::Attribute
1072 - moved the attribute option macros here
1073 instead of putting them in Moose.pm
1075 * Moose::Meta::TypeConstraint
1076 - added the message attributes and the
1078 - added tests and docs for this
1080 0.03 Thurs. March 30, 2006
1082 - added the Moose::Cookbook with 5 recipes,
1083 describing all the stuff Moose can do.
1086 - fixed an issue with &extends super class loading
1087 it now captures errors and deals with inline
1088 packages correctly (bug found by mst, solution
1090 - added super/override & inner/augment features
1091 - added tests and docs for these
1094 - BUILDALL now takes a reference of the %params
1095 that are passed to &new, and passes that to
1098 * Moose::Util::TypeConstraints
1099 - Type constraints now survive runtime reloading
1100 - added test for this
1102 * Moose::Meta::Class
1103 - fixed the way attribute defaults are handled
1104 during instance construction (bug found by chansen)
1106 * Moose::Meta::Attribute
1107 - read-only attributes now actually enforce their
1108 read-only-ness (this corrected in Class::MOP as
1111 0.02 Tues. March 21, 2006
1113 - many more tests, fixing some bugs and
1115 - &extends now loads the base module with
1117 - added UNIVERSAL::require to the
1120 - each new Moose class will also create
1121 and register a subtype of Object which
1122 correspond to the new Moose class.
1123 - the 'isa' option in &has now only
1124 accepts strings, and will DWIM in
1127 * Moose::Util::TypeConstraints
1128 - added type coercion features
1129 - added tests for this
1130 - added support for this in attributes
1131 and instance construction
1133 - type construction no longer creates a
1134 function, it registers the type instead.
1135 - added several functions to get the
1139 - BUILDALL and DEMOLISHALL were broken
1140 because of a mis-named hash key, Whoops :)
1142 * Moose::Meta::Attribute
1143 - adding support for coercion in the
1144 autogenerated accessors
1146 * Moose::Meta::Class
1147 - adding support for coercion in the
1148 instance construction
1150 * Moose::Meta::TypeConstraint
1151 * Moose::Meta::TypeCoercion
1152 - type constraints and coercions are now
1153 full fledges meta-objects
1155 0.01 Wed. March 15, 2006
1156 - Moooooooooooooooooose!!!