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::Meta::Role::Application::ToInstance
28 - it is now possible to pass extra params to be used when
29 a role is applied to an the instance (rebless_params)
30 - added tests for this
32 * Moose::Util::TypeConstraints
33 - class_type now accepts an optional second argument for a
34 custom message. POD anotated accordingly (groditi)
35 - added tests for this
36 - it is now possible to make anon-enums by passing 'enum' an
37 ARRAY ref instead of the $name => @values. Everything else
39 - added tests for this
42 - making test for using '+name' on attributes consumed
43 from a role, it works and makes sense too.
45 * Moose::Meta::Attribute
46 - fix handles so that it doesn't return nothing
47 when the method cannot be found, not sure why
48 it ever did this originally, this means we now
49 have slightly better support for AUTOLOADed
51 - added more delegation tests
52 - adding ->does method to this so as to better
53 support traits and their introspection.
54 - added tests for this
57 - localizing the Data::Dumper configurations so
58 that it does not pollute others (RT #33509)
59 - made ->does a little more forgiving when it is
60 passed Class::MOP era metaclasses.
62 0.38 Fri. Feb. 15, 2008
63 * Moose::Meta::Attribute
64 - fixed initializer to correctly do
65 type checking and coercion in the
67 - added tests for this
70 - fixed some finicky tests (thanks to konobi)
72 0.37 Thurs. Feb. 14, 2008
74 - fixed some details in Moose::init_meta
75 and its superclass handling (thanks thepler)
76 - added tests for this (thanks thepler)
77 - 'has' now dies if you don't pass in name
79 - added the 'make_immutable' keyword as a shortcut
83 Moose::Meta::Method::Constructor
84 Moose::Meta::Attribute
85 - making (init_arg => undef) work here too
86 (thanks to nothingmuch)
88 * Moose::Meta::Attribute
89 Moose::Meta::Method::Constructor
90 Moose::Meta::Method::Accessor
91 - make lazy attributes respect attr initializers (rjbs)
92 - added tests for this
94 * Moose::Util::TypeConstraints
95 Moose::Util::TypeConstraints::OptimizedConstraints
96 Moose::Meta::TypeConstraints
97 Moose::Meta::Attribute
98 Moose::Meta::Method::Constructor
99 Moose::Meta::Method::Accessor
100 - making type errors use the
101 assigned message (thanks to Sartak)
102 - added tests for this
104 * Moose::Meta::Method::Destructor
105 - making sure DESTROY gets inlined properly
106 with successive DEMOLISH calls (thanks to manito)
108 * Moose::Meta::Attribute
109 Moose::Meta::Method::Accessor
110 - fixed handling of undef with type constraints
112 - added tests for this
115 - added &get_all_init_args and &get_all_attribute_values
116 (thanks to Sartak and nothingmuch)
118 0.36 Sat. Jan. 26, 2008
120 Moose::Meta::Attribute
121 - role type tests now support when roles are
122 applied to non-Moose classes (found by ash)
123 - added tests for this (thanks to ash)
124 - couple extra tests to boost code coverage
126 * Moose::Meta::Method::Constructor
127 - improved fix for handling Class::MOP attributes
128 - added test for this
131 - handled the add_attribute($attribute_meta_object)
133 - added test for this
135 0.35 Tues. Jan. 22, 2008
136 * Moose::Meta::Method::Constructor
137 - fix to make sure even Class::MOP attributes
138 are handled correctly (Thanks to Dave Rolsky)
139 - added test for this (also Dave Rolsky)
142 - improved error message on _apply_all_roles,
143 you should now use Moose::Util::apply_all_roles
144 and you shouldnt have been using a _ prefixed
145 method in the first place ;)
147 0.34 Mon. Jan. 21, 2008
148 ~~~ more misc. doc. fixes ~~~
149 ~~ updated copyright dates ~~
151 Moose is now a postmodern object system :)
152 - (see the POD for details)
154 * <<Role System Refactoring>>
155 - this release contains a major reworking and
156 cleanup of the role system
157 - 100% backwards compat.
158 - Role application now restructured into seperate
159 classes based on type of applicants
160 - Role summation (combining of more than one role)
161 is much cleaner and anon-classes are no longer
163 - new Composite role metaclass
164 - runtime application of roles to instances
165 is now more efficient and re-uses generated
166 classes when applicable
168 * <<New Role composition features>>
169 - methods can now be excluded from a given role
171 - methods can now be aliased to another name (and
172 still retain the original as well)
174 * Moose::Util::TypeConstraints::OptimizedConstraints
175 - added this module (see above)
178 - fixed the &_process_attribute method to be called
179 by &add_attribute, so that the API is now correct
181 * Moose::Meta::Method::Accessor
182 - fixed bug when passing a list of values to
183 an accessor would get (incorrectly) ignored.
184 Thanks to Sartak for finding this ;)
185 - added tests for this (Sartak again)
187 * Moose::Meta::Method::Accessor
188 Moose::Meta::Method::Constructor
189 Moose::Meta::Attribute
190 Moose::Meta::TypeConstraint
191 Moose::Meta::TypeCoercion
192 - lots of cleanup of such things as:
194 - type constraint handling
195 - error handling/messages
196 (thanks to nothingmuch)
198 * Moose::Meta::TypeConstraint::Parameterizable
199 - added this module to support the refactor
200 in Moose::Meta::TypeConstraint::Parameterized
202 * Moose::Meta::TypeConstraint::Parameterized
203 - refactored how these types are handled so they
204 are more generic and not confined to ArrayRef
208 - shortened some file names for better VMS support (RT #32381)
210 0.33 Fri. Dec. 14, 2007
211 !! Moose now loads 2 x faster !!
212 !! with new Class::MOP 0.49 !!
214 ++ new oose.pm module to make command line
215 Moose-ness easier (see POD docs for more)
219 - several tweaks to take advantage of the
220 new method map caching in Class::MOP
222 * Moose::Meta::TypeConstraint::Parameterized
223 - allow subtypes of ArrayRef and HashRef to
224 be used as a container (sartak)
225 - added tests for this
226 - basic support for coercion to ArrayRef and
227 HashRef for containers (sartak)
228 - added tests for this
230 * Moose::Meta::TypeCoercion
231 - coercions will now create subtypes as needed
232 so you can now add coercions to parameterized
233 types without having to explictly define them
234 - added tests for this
236 * Moose::Meta::Method::Accessor
237 - allow subclasses to decide whether we need
238 to copy the value into a new variable (sartak)
240 0.32 Tues. Dec. 4, 2007
241 * Moose::Util::TypeConstraints
242 - fixing how subtype aliases of unions work
243 they should inherit the parent's coercion
244 - added tests for this
245 - you can now define multiple coercions on
246 a single type at different times instead of
247 having to do it all in one place
248 - added tests for this
250 * Moose::Meta::TypeConstraint
251 - there is now a default constraint of sub { 1 }
252 instead of Moose::Util::TypeConstraints setting
255 * Moose::Meta::TypeCoercion
256 * Moose::Meta::TypeCoercion::Union
257 - added the &has_coercion_for_type and
258 &add_type_coercions methods to support the
259 new features above (although you cannot add
260 more type coercions for Union types)
262 0.31 Mon. Nov. 26, 2007
263 * Moose::Meta::Attribute
264 - made the +attr syntax handle extending types with
265 parameters. So "has '+foo' => (isa => 'ArrayRef[Int]')"
266 now works if the original foo is an ArrayRef.
267 - added tests for this.
268 - delegation now works even if the attribute does not
269 have a reader method using the get_read_method_ref
270 method from Class::MOP::Attribute.
271 - added tests for this
272 - added docs for this
274 * Moose::Util::TypeConstraints
275 - passing no "additional attribute info" to
276 &find_or_create_type_constraint will no longer
277 attempt to create an __ANON__ type for you,
278 instead it will just return undef.
279 - added docs for this
281 0.30 Fri. Nov. 23, 2007
282 * Moose::Meta::Method::Constructor
283 -builder related bug in inlined constructor. (groditi)
285 * Moose::Meta::Method::Accessor
286 - genereate unnecessary calls to predicates and refactor
287 code generation for runtime speed (groditi)
289 * Moose::Util::TypeConstraints
290 - fix ClassName constraint to introspect symbol table (mst)
291 - added more tests for this (mst)
292 - fixed it so that subtype 'Foo' => as 'HashRef[Int]' ...
294 - added tests for this
297 - adding the link to Recipie 11 (written by Sartak)
298 - adding test for SYNOPSIS code
301 - New tests for builder bug. Upon instantiation, if an
302 attribute had a builder, no value and was not lazy the
303 builder default was not getting run, oops. (groditi)
305 0.29 Tues. Nov. 13, 2007
306 * Moose::Meta::Attribute
307 - Fix error message on missing builder method (groditi)
309 * Moose::Meta::Method::Accessor
310 - Fix error message on missing builder method (groditi)
313 - Add test to check for the correct error message when
314 builder method is missing (groditi)
316 0.28 Tues. Nov. 13, 2007
317 - 0.27 packaged incorrectly (groditi)
319 0.27 Tues. Nov. 13, 2007
320 * Moose::Meta::Attribute
321 - Added support for the new builder option (groditi)
322 - Added support for lazy_build option (groditi)
323 - Changed slot initialization for predicate changes (groditi)
325 * Moose::Meta::Method::Accessor
326 - Added support for lazy_build option (groditi)
327 - Fix inline methods to work with corrected predicate
330 * Moose::Meta::Method::Constructor
331 - Added support for lazy_build option (groditi)
334 - tests for builder and lazy_build (groditi)
336 * fixing some misc. bits in the docs that
337 got mentioned on CPAN Forum & perlmonks
340 - fixed how required methods are handled
341 when they encounter overriden or modified
342 methods from a class (thanks to confound).
343 - added tests for this
345 * Moose::Util::TypeConstraint
346 - fixed the type notation parser so that
347 the | always creates a union and so is
348 no longer a valid type char (thanks to
349 konobi, mugwump and #moose for working
351 - added more tests for this
353 0.26 Thurs. Sept. 27, 2007
356 * Parameterized Types
357 We now support parameterized collection types, such as:
358 ArrayRef[Int] # array or integers
359 HashRef[Object] # a hash with object values
360 They can also be nested:
361 ArrayRef[HashRef[RegExpr]] # an array of hashes with regexpr values
362 And work with the type unions as well:
363 ArrayRef[Int | Str] # array of integers of strings
365 * Better Framework Extendability
366 Moose.pm is now "extendable" such that it is now much
367 easier to extend the framework and add your own keywords
368 and customizations. See the "EXTENDING AND EMBEDDING MOOSE"
369 section of the Moose.pm docs.
372 In an effort to begin documenting some of the various
373 details of Moose as well as some common idioms, we have
374 created Moose::Cookbook::Snacks as a place to find
375 small (easily digestable) nuggets of Moose code.
378 ~ Several doc updates/cleanup thanks to castaway ~
380 - converted build system to use Module::Install instead of
381 Module::Build (thanks to jrockway)
384 - added all the meta classes to the immutable list and
385 set it to inline the accessors
386 - fix import to allow Sub::Exporter like { into => }
387 and { into_level => } (perigrin)
388 - exposed and documented init_meta() to allow better
389 embedding and extending of Moose (perigrin)
392 - complete re-organization of the test suite
393 - added some new tests as well
394 - finally re-enabled the Moose::POOP test since
395 the new version of DBM::Deep now works again
399 - fixed very odd and very nasty recursion bug with
401 - added tests for this (eilara)
403 * Moose::Meta::Attribute
404 Moose::Meta::Method::Constructor
405 Moose::Meta::Method::Accessor
406 - fixed issue with overload::Overloaded getting called
407 on non-blessed items. (RT #29269)
408 - added tests for this
410 * Moose::Meta::Method::Accessor
411 - fixed issue with generated accessor code making
412 assumptions about hash based classes (thanks to dexter)
414 * Moose::Coookbook::Snacks
415 - these are bits of documentation, not quite as big as
416 Recipes but which have no clear place in the module docs.
417 So they are Snacks! (horray for castaway++)
419 * Moose::Cookbook::Recipe4
420 - updated it to use the new ArrayRef[MyType] construct
421 - updated the accompanying test as well
423 +++ Major Refactor of the Type Constraint system +++
424 +++ with new features added as well +++
426 * Moose::Util::TypeConstraint
427 - no longer uses package variable to keep track of
428 the type constraints, now uses the an instance of
429 Moose::Meta::TypeConstraint::Registry to do it
430 - added more sophisticated type notation parsing
432 - added tests for this
434 * Moose::Meta::TypeConstraint
435 - some minor adjustments to make subclassing easier
436 - added the package_defined_in attribute so that we
437 can track where the type constraints are created
439 * Moose::Meta::TypeConstraint::Union
440 - this is now been refactored to be a subclass of
441 Moose::Meta::TypeConstraint
443 * Moose::Meta::TypeCoercion::Union
444 - this has been added to service the newly refactored
445 Moose::Meta::TypeConstraint::Union and is itself
446 a subclass of Moose::Meta::TypeCoercion
448 * Moose::Meta::TypeConstraint::Parameterized
449 - added this module (taken from MooseX::AttributeHelpers)
450 to help construct nested collection types
451 - added tests for this
453 * Moose::Meta::TypeConstraint::Registry
454 - added this class to keep track of type constraints
456 0.25 Mon. Aug. 13, 2007
458 - Documentation update to reference Moose::Util::TypeConstraints
459 under 'isa' in 'has' for how to define a new type
462 * Moose::Meta::Attribute
463 - required attributes now will no longer accept undef
464 from the constructor, even if there is a default and lazy
465 - added tests for this
466 - default subroutines must return a value which passes the
468 - added tests for this
470 * Moose::Meta::Attribute
471 * Moose::Meta::Method::Constructor
472 * Moose::Meta::Method::Accessor
473 - type-constraint tests now handle overloaded objects correctly
475 - added tests for this (thanks to EvanCarroll)
477 * Moose::Meta::TypeConstraint::Union
478 - added (has_)hand_optimized_constraint to this class so that
479 it behaves as the regular Moose::Meta::TypeConstraint does.
482 - large refactoring of this code
483 - added several more tests
484 - tests for subtle conflict resolition issues
485 added, but not currently running
488 * Moose::Cookbook::Recipe7
489 - added new recipe for augment/inner functionality
491 - added test for this
494 - a formal definition of roles (still in progress)
497 - utilities for easier working with Moose classes
498 - added tests for these
501 - This contains Moose specific test functions
502 - added tests for these
504 0.24 Tues. July 3, 2007
505 ~ Some doc updates/cleanup ~
507 * Moose::Meta::Attribute
508 - added support for roles to be given as parameters
509 to the 'handles' option.
510 - added tests and docs for this
511 - the has '+foo' attribute form now accepts changes to
512 the lazy option, and the addition of a handles option
513 (but not changing the handles option)
514 - added tests and docs for this
517 - required methods are now fetched using find_method_by_name
518 so that required methods can come from superclasses
519 - adjusted tests for this
521 0.23 Mon. June 18, 2007
522 * Moose::Meta::Method::Constructor
523 - fix inlined constructor for hierarchy with multiple BUILD methods (mst)
525 - Modify make_immutable to work with the new Class::MOP immutable
526 mechanism + POD + very basic test (groditi)
527 * Moose::Meta::Attribute
528 - Fix handles to use goto() so that caller() comes out properly on
529 the other side (perigrin)
531 0.22 Thurs. May 31, 2007
532 * Moose::Util::TypeConstraints
533 - fix for prototype undeclared issue when Moose::Util::TypeConstraints
534 loaded before consumers (e.g. Moose::Meta::Attribute) by predeclaring
535 prototypes for functions
536 - added the ClassName type constraint, this checks for strings
537 which will respond true to ->isa(UNIVERSAL).
538 - added tests and docs for this
539 - subtyping just in name now works correctly by making the
540 default for where be { 1 }
541 - added test for this
543 * Moose::Meta::Method::Accessor
544 - coerce and lazy now work together correctly, thanks to
545 merlyn for finding this bug
546 - tests added for this
547 - fix reader presedence bug in Moose::Meta::Attribute + tests
550 - Foo->new(undef) now gets ignored, it is assumed you meant to pass
551 a HASH-ref and missed. This produces better error messages then
552 having it die cause undef is not a HASH.
553 - added tests for this
555 0.21 Thursday, May 2nd, 2007
557 - added SUPER_SLOT and INNER_SLOT class hashes to support unimport
558 - modified unimport to remove super and inner along with the rest
559 - altered unimport tests to handle this
562 - altered super export to populate SUPER_SLOT
565 - altered augment and override modifier application to use *_SLOT
566 - modified tests for these to unimport one test class each to test
569 - fixed issue where custom attribute metaclasses
570 where not handled correctly in roles
571 - added tests for this
574 - fixed issue where extending metaclasses with
575 roles would blow up. Thanks to Aankhen`` for
576 finding this insidious error, and it's solution.
578 ~~ lots of spelling and grammer fixes in the docs,
579 many many thanks to rlb3 and Aankhen for these :)
581 0.20 Friday, April 6th, 2007
582 >> I messed up the SKIP logic in one test
583 so this release is just to fix that.
586 - 'has' now also accepts an ARRAY ref
587 to create multiple attrs (see docs)
588 (thanks to konobi for this)
589 - added tests and docs
591 0.19 Thurs. April 5th, 2007
592 ~~ More documentation updates ~~
594 * Moose::Util::TypeConstraints
595 - 'type' now supports messages as well
596 thanks to phaylon for finding this
597 - added tests for this
598 - added &list_all_type_constraints and
599 &list_all_builtin_type_constraints
600 functions to facilitate introspection.
602 * Moose::Meta::Attribute
603 - fixed regexp 'handles' declarations
604 to build the list of delegated methods
605 correctly (and not override important
606 things like &new) thanks to ashleyb
608 - added tests and docs for this
609 - added the 'documentation' attributes
610 so that you can actually document your
611 attributes and inspect them through the
613 - added tests and docs for this
616 - when loading custom attribute metaclasses
617 it will first look in for the class in the
618 Moose::Meta::Attribute::Custom::$name, and
619 then default to just loading $name.
620 - added tests and docs for this
622 * Moose::Meta::TypeConstraint
623 - type constraints now stringify to their names.
624 - added test for this
627 - added tests to assure we work with Module::Refresh
628 - added stricter test skip logic in the Moose POOP
629 test, ask Rob Kinyon why.
630 - *cough* DBM::Deep 1.0 backwards compatability sucks *cough* ;)
632 0.18 Sat. March 10, 2007
633 ~~ Many, many documentation updates ~~
636 - We now use Class::MOP::load_class to
638 - added tests to show types and subtypes
639 working with Declare::Constraints::Simple
640 and Test::Deep as constraint engines.
643 !! You must have Class::MOP 0.37_001 !!
644 !! for this developer release to work !!
646 This release was primarily adding the immutable
647 feature to Moose. An immutable class is one which
648 you promise not to alter. When you set the class
649 as immutable it will perform various bits of
650 memoization and inline certain part of the code
651 (constructors, destructors and accessors). This
652 minimizes (and in some cases totally eliminates)
653 one of Moose's biggest performance hits. This
654 feature is not on by default, and is 100% optional.
655 It has several configurable bits as well, so you
656 can pick and choose to your specific needs.
658 The changes involved in this were fairly wide and
659 highly specific, but 100% backwards compatible, so
660 I am not going to enumerate them here. If you are
661 truely interested in what was changed, please do
664 0.17 Tues. Nov. 14, 2006
665 * Moose::Meta::Method::Accessor
666 - bugfix for read-only accessors which
667 are have a type constraint and lazy.
668 Thanks to chansen for finding it.
670 0.16 Tues. Nov. 14, 2006
672 There are some speed improvements in this release,
673 but they are only the begining, so stay tuned.
676 - BUILDALL and DEMOLISHALL no longer get
677 called unless they actually need to be.
678 This gave us a signifigant speed boost
679 for the cases when there is no BUILD or
680 DEMOLISH method present.
682 * Moose::Util::TypeConstraints
683 * Moose::Meta::TypeConstraint
684 - added an 'optimize_as' option to the
685 type constraint, which allows for a
686 hand optimized version of the type
687 constraint to be used when possible.
688 - Any internally created type constraints
689 now provide an optimized version as well.
691 0.15 Sun. Nov. 5, 2006
693 This version of Moose *must* have Class::MOP 0.36 in order
694 to work correctly. A number of small internal tweaks have
695 been made in order to be compatible with that release.
697 * Moose::Util::TypeConstraints
698 - added &unimport so that you can clean out
699 your class namespace of these exported
703 - fixed minor issue which occasionally
704 comes up during global destruction
706 - moved Moose::Meta::Method::Overriden into
710 - moved Moose::Meta::Role::Method into
713 * Moose::Meta::Attribute
714 - changed how we do type checks so that
715 we reduce the overall cost, but still
718 - moved accessor generation methods to
719 Moose::Meta::Method::Accessor to
720 conform to the API changes from
723 * Moose::Meta::TypeConstraint
724 - changed how constraints are compiled
725 so that we do less recursion and more
726 iteration. This makes the type check
728 - moved Moose::Meta::TypeConstraint::Union
731 * Moose::Meta::Method::Accessor
732 - created this from methods formerly found in
733 Moose::Meta::Attribute
735 * Moose::Meta::Role::Method
736 - moved this from Moose::Meta::Role
738 * Moose::Meta::Method::Overriden
739 - moved this from Moose::Meta::Class
741 * Moose::Meta::TypeConstraint::Union
742 - moved this from Moose::Meta::TypeConstraint
744 0.14 Mon. Oct. 9, 2006
746 * Moose::Meta::Attribute
747 - fixed lazy attributes which were not getting
748 checked with the type constraint (thanks ashley)
749 - added tests for this
750 - removed the over-enthusiastic DWIMery of the
751 automatic ArrayRef and HashRef defaults, it
752 broke predicates in an ugly way.
753 - removed tests for this
755 0.13 Sat. Sept. 30, 2006
757 This version of Moose *must* have Class::MOP 0.35 in order
758 to work correctly. A number of small internal tweaks have
759 been made in order to be compatible with that release.
762 - Removed the use of UNIVERSAL::require to be a better
763 symbol table citizen and remove a dependency
764 (thanks Adam Kennedy)
766 **~~ removed experimental & undocumented feature ~~**
767 - commented out the 'method' and 'self' keywords, see the
768 comments for more info.
771 - added a FAQ and WTF files to document frequently
772 asked questions and common problems
774 * Moose::Util::TypeConstraints
775 - added GlobRef and FileHandle type constraint
776 - added tests for this
778 * Moose::Meta::Attribute
779 - if your attribute 'isa' ArrayRef of HashRef, and you have
780 not explicitly set a default, then make the default DWIM.
781 This will also work for subtypes of ArrayRef and HashRef
783 - you can now auto-deref subtypes of ArrayRef or HashRef too.
784 - new test added for this (thanks to ashley)
787 - added basic support for runtime role composition
788 but this is still *highly experimental*, so feedback
789 is much appreciated :)
790 - added tests for this
792 * Moose::Meta::TypeConstraint
793 - the type constraint now handles the coercion process
794 through delegation, this is to support the coercion
797 * Moose::Meta::TypeConstraint::Union
798 - it is now possible for coercions to be performed
800 - added tests for this (thanks to konobi)
802 * Moose::Meta::TypeCoercion
803 - properly capturing error when type constraint
807 - Scalar::Util 1.18 is bad on Win32, so temporarily
808 only require version 1.17 for Win32 and cygwin.
809 (thanks Adam Kennedy)
811 0.12 Sat. Sept. 1, 2006
813 - Recipe5 (subtypes & coercion) has been written
816 - fixed "bad meta" error message to be more descriptive
817 - fixed &unimport to not remove the &inner and &super
818 keywords because we need to localize them.
819 - fixed number of spelling/grammer issues, thanks Theory :)
821 **~~ experimental & undocumented feature ~~**
822 - added the method and self keywords, they are basically
823 just sugar, and they may not stay around.
826 - added &dump method to easily Data::Dumper
829 * Moose::Meta::TypeConstraint
830 - added the &is_a_type_of method to check both the current
831 and the subtype of a method (similar to &isa with classes)
834 - this is now a subclass of Class::MOP::Module, and no longer
835 creates the _role_meta ugliness of before.
836 - fixed tests to reflect this change
838 0.11 Wed. July 12, 2006
840 - added an &unimport method to remove all the keywords
841 that Moose will import, simply add 'no Moose' to the
842 bottom of your class file.
845 - fixed some test failures caused by a forgotten test
848 0.10 Thurs. July 6, 2006
850 - improved error message when loading modules so
851 it is less confusing when you load a role.
852 - added &calculate_all_roles method to
853 Moose::Meta::Class and Moose::Meta::Role
856 This module has been tested against Class::MOP 0.30
857 but it does not yet utilize the optimizations
858 it makes available. Stay tuned for that ;)
860 0.09_03 Fri. June 23, 2006
861 ++ DEVELOPER RELEASE ++
863 - 'use strict' and 'use warnings' are no longer
864 needed in Moose classes, Moose itself will
865 turn them on for you.
866 - added tests for this
867 - moved code from exported subs to private methods
868 in Moose::Meta::Class
871 - as with Moose, strict and warnings are
872 automatically turned on for you.
873 - added tests for this
876 - now handles an edge case for override errors
877 - added tests for this
878 - added some more edge case tests
880 0.09_02 Tues. May 16, 2006
881 ++ DEVELOPER RELEASE ++
883 - added prototypes to the exported subs
887 - added prototypes to the exported subs
890 * Moose::Util::TypeConstraints
891 - cleaned up prototypes for the subs
894 0.09_01 Fri. May 12, 2006
895 ++ DEVELOPER RELEASE ++
896 - This release works in combination with
897 Class::MOP 0.29_01, it is a developer
898 release because it uses the a new
899 instance sub-protocol and a fairly
900 complete Role implementation. It has
901 not yet been optimized, so it slower
902 the the previous CPAN version. This
903 release also lacks good updated docs,
904 the official release will have updated docs.
907 - refactored the keyword exports
908 - 'with' now checks Role validaity and
909 accepts more than one Role at a time
910 - 'extends' makes metaclass adjustments as
911 needed to ensure metaclass compatability
914 - refactored the keyword exports
915 - 'with' now checks Role validaity and
916 accepts more than one Role at a time
918 * Moose::Util::TypeConstraints
919 - added the 'enum' keyword for simple
920 string enumerations which can be used as
922 - see example of usage in t/202_example.t
925 - more careful checking of params to new()
928 - much work done on the role composition
929 - many new tests for conflict detection
930 and composition edge cases
931 - not enough documentation, I suggest
934 * Moose::Meta::Instance
935 - added new Instance metaclass to support
936 the new Class::MOP instance protocol
939 - some small changes to support the new
941 - some small additions to support Roles
943 * Moose::Meta::Attribute
944 - some improvements to the accessor generation code
946 - some small changes to support the new
948 - (still somewhat) experimental delegation support
949 with the 'handles' option
950 - added several tests for this
951 - no docs for this yet
953 0.05 Thurs. April 27, 2006
955 - keywords are now exported with Sub::Exporter
956 thanks to chansen for this commit
957 - has keyword now takes a 'metaclass' option
958 to support custom attribute meta-classes
959 on a per-attribute basis
960 - added tests for this
961 - the 'has' keyword not accepts inherited slot
962 specifications (has '+foo'). This is still an
963 experimental feature and probably not finished
964 see t/038_attribute_inherited_slot_specs.t for
965 more details, or ask about it on #moose
966 - added tests for this
969 - keywords are now exported with Sub::Exporter
971 * Moose::Utils::TypeConstraints
972 - reorganized the type constraint hierarchy, thanks
973 to nothingmuch and chansen for his help and advice
975 - added some tests for this
976 - keywords are now exported with Sub::Exporter
977 thanks to chansen for this commit
980 - due to changes in Class::MOP, we had to change
981 construct_instance (for the better)
983 * Moose::Meta::Attribute
984 - due to changes in Class::MOP, we had to add the
985 initialize_instance_slot method (it's a good thing)
987 * Moose::Meta::TypeConstraint
988 - added type constraint unions
989 - added tests for this
990 - added the is_subtype_of predicate method
991 - added tests for this
993 0.04 Sun. April 16th, 2006
995 - Roles can now consume other roles
996 - added tests for this
997 - Roles can specify required methods now with
998 the requires() keyword
999 - added tests for this
1002 - ripped out much of it's guts ,.. much cleaner now
1003 - added required methods and correct handling of
1004 them in apply() for both classes and roles
1005 - added tests for this
1006 - no longer adds a does() method to consuming classes
1007 it relys on the one in Moose::Object
1008 - added roles attribute and some methods to support
1009 roles consuming roles
1011 * Moose::Meta::Attribute
1012 - added support for triggers on attributes
1013 - added tests for this
1014 - added support for does option on an attribute
1015 - added tests for this
1017 * Moose::Meta::Class
1018 - added support for attribute triggers in the
1020 - added tests for this
1023 - Moose no longer creates a subtype for your class
1024 if a subtype of the same name already exists, this
1025 should DWIM in 99.9999% of all cases
1027 * Moose::Util::TypeConstraints
1028 - fixed bug where incorrect subtype conflicts were
1030 - added test for this
1033 - this class can now be extended with 'use base' if
1034 you need it, it properly loads the metaclass class now
1035 - added test for this
1037 0.03_02 Wed. April 12, 2006
1039 - you must now explictly use Moose::Util::TypeConstraints
1040 it no longer gets exported for you automatically
1043 - new() now accepts hash-refs as well as key/value lists
1044 - added does() method to check for Roles
1045 - added tests for this
1047 * Moose::Meta::Class
1048 - added roles attribute along with the add_role() and
1050 - added tests for this
1053 - now adds a does() method to consuming classes
1054 which tests the class's hierarchy for roles
1055 - added tests for this
1057 0.03_01 Mon. April 10, 2006
1059 - added new Role recipe (no content yet, only code)
1062 - added 'with' keyword for Role support
1063 - added test and docs for this
1064 - fixed subtype quoting bug
1065 - added test for this
1069 - added test and docs
1071 * Moose::Util::TypeConstraints
1072 - added the message keyword to add custom
1073 error messages to type constraints
1076 - the meta role to support Moose::Role
1077 - added tests and docs
1079 * Moose::Meta::Class
1080 - moved a number of things from Moose.pm
1081 to here, they should have been here
1084 * Moose::Meta::Attribute
1085 - moved the attribute option macros here
1086 instead of putting them in Moose.pm
1088 * Moose::Meta::TypeConstraint
1089 - added the message attributes and the
1091 - added tests and docs for this
1093 0.03 Thurs. March 30, 2006
1095 - added the Moose::Cookbook with 5 recipes,
1096 describing all the stuff Moose can do.
1099 - fixed an issue with &extends super class loading
1100 it now captures errors and deals with inline
1101 packages correctly (bug found by mst, solution
1103 - added super/override & inner/augment features
1104 - added tests and docs for these
1107 - BUILDALL now takes a reference of the %params
1108 that are passed to &new, and passes that to
1111 * Moose::Util::TypeConstraints
1112 - Type constraints now survive runtime reloading
1113 - added test for this
1115 * Moose::Meta::Class
1116 - fixed the way attribute defaults are handled
1117 during instance construction (bug found by chansen)
1119 * Moose::Meta::Attribute
1120 - read-only attributes now actually enforce their
1121 read-only-ness (this corrected in Class::MOP as
1124 0.02 Tues. March 21, 2006
1126 - many more tests, fixing some bugs and
1128 - &extends now loads the base module with
1130 - added UNIVERSAL::require to the
1133 - each new Moose class will also create
1134 and register a subtype of Object which
1135 correspond to the new Moose class.
1136 - the 'isa' option in &has now only
1137 accepts strings, and will DWIM in
1140 * Moose::Util::TypeConstraints
1141 - added type coercion features
1142 - added tests for this
1143 - added support for this in attributes
1144 and instance construction
1146 - type construction no longer creates a
1147 function, it registers the type instead.
1148 - added several functions to get the
1152 - BUILDALL and DEMOLISHALL were broken
1153 because of a mis-named hash key, Whoops :)
1155 * Moose::Meta::Attribute
1156 - adding support for coercion in the
1157 autogenerated accessors
1159 * Moose::Meta::Class
1160 - adding support for coercion in the
1161 instance construction
1163 * Moose::Meta::TypeConstraint
1164 * Moose::Meta::TypeCoercion
1165 - type constraints and coercions are now
1166 full fledges meta-objects
1168 0.01 Wed. March 15, 2006
1169 - Moooooooooooooooooose!!!