1 Revision history for Perl extension Moose
4 ~~ numerous documentation updates ~~
6 - Changed all usage of die to Carp::croak for better
7 error reporting (initial patch by Tod Hagan)
10 - the make_immutable keyword is now deprecated, don't
11 use it in any new code and please fix your old code
12 as well. There will be 2 releases, and then it will
15 * Moose::Meta::Method::Constructor
16 - immutable classes which had non-lazy attributes were calling
17 the default generating sub twice in the constructor. (bug
18 found by Jesse Luehrs, fixed by Dave Rolsky)
19 - added tests for this (Dave Rolsky)
20 - fix typo in initialize_body method (nothingmuch)
22 * Moose::Meta::Method::Destructor
23 - fix typo in initialize_body method (nothingmuch)
25 * Moose::Meta::Attribute
26 - inherited attributes may now be extended without
27 restriction on the type ('isa', 'does') (Sartak)
28 - added tests for this (Sartak)
29 - when an attribute property is malformed (such as lazy without
30 a default), give the name of the attribute in the error
34 - localize $@ inside DEMOLISHALL to avoid it
35 eating $@ (found by Ernesto)
36 - added test for this (thanks to Ernesto)
38 * Moose::Util::TypeConstraints
39 - &find_type_constraint now DWIMs when given an
40 type constraint object (nothingmuch)
42 * Moose::Meta::TypeConstraint
43 - added the &equals method for comparing two type
44 constraints (nothingmuch)
45 - added tests for this (nothingmuch)
46 - add the &parents method, which is just an alias to &parent.
47 Useful for polymorphism with TC::Class (nothingmuch)
49 * Moose::Meta::TypeConstraint::Class
50 - added the &equals method for comparing two type
51 constraints (nothingmuch)
52 - added the class attribute for introspection purposes
54 - added tests for this
56 * Moose::Cookbook::Recipe*
57 - fixed references to test file locations in the POD
58 and updated up some text for new Moose features
61 0.40 Fri. March 14, 2008
62 - I hate Pod::Coverage
64 0.39 Fri. March 14, 2008
66 - documenting the use of '+name' with attributes
67 that come from recently composed roles. It makes
68 sense, people are using it, and so why not just
69 officially support it.
70 - fixing the 'extends' keyword so that it will not
71 trigger Ovid's bug (http://use.perl.org/~Ovid/journal/35763)
74 - added the perl -Moose=+Class::Name feature to allow
75 monkeypatching of classes in one liners
78 - fixing the 'apply_all_roles' keyword so that it will not
79 trigger Ovid's bug (http://use.perl.org/~Ovid/journal/35763)
82 - added ->create method which now supports roles (thanks to jrockway)
83 - added tests for this
84 - added ->create_anon_class which now supports roles and caching of
85 the results (thanks to jrockway)
86 - added tests for this
87 - made ->does_role a little more forgiving when it is
88 checking a Class::MOP era metaclasses.
90 * Moose::Meta::Role::Application::ToInstance
91 - it is now possible to pass extra params to be used when
92 a role is applied to an the instance (rebless_params)
93 - added tests for this
95 * Moose::Util::TypeConstraints
96 - class_type now accepts an optional second argument for a
97 custom message. POD anotated accordingly (groditi)
98 - added tests for this
99 - it is now possible to make anon-enums by passing 'enum' an
100 ARRAY ref instead of the $name => @values. Everything else
102 - added tests for this
105 - making test for using '+name' on attributes consumed
106 from a role, it works and makes sense too.
108 * Moose::Meta::Attribute
109 - fix handles so that it doesn't return nothing
110 when the method cannot be found, not sure why
111 it ever did this originally, this means we now
112 have slightly better support for AUTOLOADed
114 - added more delegation tests
115 - adding ->does method to this so as to better
116 support traits and their introspection.
117 - added tests for this
120 - localizing the Data::Dumper configurations so
121 that it does not pollute others (RT #33509)
122 - made ->does a little more forgiving when it is
123 passed Class::MOP era metaclasses.
125 0.38 Fri. Feb. 15, 2008
126 * Moose::Meta::Attribute
127 - fixed initializer to correctly do
128 type checking and coercion in the
130 - added tests for this
133 - fixed some finicky tests (thanks to konobi)
135 0.37 Thurs. Feb. 14, 2008
137 - fixed some details in Moose::init_meta
138 and its superclass handling (thanks thepler)
139 - added tests for this (thanks thepler)
140 - 'has' now dies if you don't pass in name
142 - added the 'make_immutable' keyword as a shortcut
146 Moose::Meta::Method::Constructor
147 Moose::Meta::Attribute
148 - making (init_arg => undef) work here too
149 (thanks to nothingmuch)
151 * Moose::Meta::Attribute
152 Moose::Meta::Method::Constructor
153 Moose::Meta::Method::Accessor
154 - make lazy attributes respect attr initializers (rjbs)
155 - added tests for this
157 * Moose::Util::TypeConstraints
158 Moose::Util::TypeConstraints::OptimizedConstraints
159 Moose::Meta::TypeConstraints
160 Moose::Meta::Attribute
161 Moose::Meta::Method::Constructor
162 Moose::Meta::Method::Accessor
163 - making type errors use the
164 assigned message (thanks to Sartak)
165 - added tests for this
167 * Moose::Meta::Method::Destructor
168 - making sure DESTROY gets inlined properly
169 with successive DEMOLISH calls (thanks to manito)
171 * Moose::Meta::Attribute
172 Moose::Meta::Method::Accessor
173 - fixed handling of undef with type constraints
175 - added tests for this
178 - added &get_all_init_args and &get_all_attribute_values
179 (thanks to Sartak and nothingmuch)
181 0.36 Sat. Jan. 26, 2008
183 Moose::Meta::Attribute
184 - role type tests now support when roles are
185 applied to non-Moose classes (found by ash)
186 - added tests for this (thanks to ash)
187 - couple extra tests to boost code coverage
189 * Moose::Meta::Method::Constructor
190 - improved fix for handling Class::MOP attributes
191 - added test for this
194 - handled the add_attribute($attribute_meta_object)
196 - added test for this
198 0.35 Tues. Jan. 22, 2008
199 * Moose::Meta::Method::Constructor
200 - fix to make sure even Class::MOP attributes
201 are handled correctly (Thanks to Dave Rolsky)
202 - added test for this (also Dave Rolsky)
205 - improved error message on _apply_all_roles,
206 you should now use Moose::Util::apply_all_roles
207 and you shouldnt have been using a _ prefixed
208 method in the first place ;)
210 0.34 Mon. Jan. 21, 2008
211 ~~~ more misc. doc. fixes ~~~
212 ~~ updated copyright dates ~~
214 Moose is now a postmodern object system :)
215 - (see the POD for details)
217 * <<Role System Refactoring>>
218 - this release contains a major reworking and
219 cleanup of the role system
220 - 100% backwards compat.
221 - Role application now restructured into seperate
222 classes based on type of applicants
223 - Role summation (combining of more than one role)
224 is much cleaner and anon-classes are no longer
226 - new Composite role metaclass
227 - runtime application of roles to instances
228 is now more efficient and re-uses generated
229 classes when applicable
231 * <<New Role composition features>>
232 - methods can now be excluded from a given role
234 - methods can now be aliased to another name (and
235 still retain the original as well)
237 * Moose::Util::TypeConstraints::OptimizedConstraints
238 - added this module (see above)
241 - fixed the &_process_attribute method to be called
242 by &add_attribute, so that the API is now correct
244 * Moose::Meta::Method::Accessor
245 - fixed bug when passing a list of values to
246 an accessor would get (incorrectly) ignored.
247 Thanks to Sartak for finding this ;)
248 - added tests for this (Sartak again)
250 * Moose::Meta::Method::Accessor
251 Moose::Meta::Method::Constructor
252 Moose::Meta::Attribute
253 Moose::Meta::TypeConstraint
254 Moose::Meta::TypeCoercion
255 - lots of cleanup of such things as:
257 - type constraint handling
258 - error handling/messages
259 (thanks to nothingmuch)
261 * Moose::Meta::TypeConstraint::Parameterizable
262 - added this module to support the refactor
263 in Moose::Meta::TypeConstraint::Parameterized
265 * Moose::Meta::TypeConstraint::Parameterized
266 - refactored how these types are handled so they
267 are more generic and not confined to ArrayRef
271 - shortened some file names for better VMS support (RT #32381)
273 0.33 Fri. Dec. 14, 2007
274 !! Moose now loads 2 x faster !!
275 !! with new Class::MOP 0.49 !!
277 ++ new oose.pm module to make command line
278 Moose-ness easier (see POD docs for more)
282 - several tweaks to take advantage of the
283 new method map caching in Class::MOP
285 * Moose::Meta::TypeConstraint::Parameterized
286 - allow subtypes of ArrayRef and HashRef to
287 be used as a container (sartak)
288 - added tests for this
289 - basic support for coercion to ArrayRef and
290 HashRef for containers (sartak)
291 - added tests for this
293 * Moose::Meta::TypeCoercion
294 - coercions will now create subtypes as needed
295 so you can now add coercions to parameterized
296 types without having to explictly define them
297 - added tests for this
299 * Moose::Meta::Method::Accessor
300 - allow subclasses to decide whether we need
301 to copy the value into a new variable (sartak)
303 0.32 Tues. Dec. 4, 2007
304 * Moose::Util::TypeConstraints
305 - fixing how subtype aliases of unions work
306 they should inherit the parent's coercion
307 - added tests for this
308 - you can now define multiple coercions on
309 a single type at different times instead of
310 having to do it all in one place
311 - added tests for this
313 * Moose::Meta::TypeConstraint
314 - there is now a default constraint of sub { 1 }
315 instead of Moose::Util::TypeConstraints setting
318 * Moose::Meta::TypeCoercion
319 * Moose::Meta::TypeCoercion::Union
320 - added the &has_coercion_for_type and
321 &add_type_coercions methods to support the
322 new features above (although you cannot add
323 more type coercions for Union types)
325 0.31 Mon. Nov. 26, 2007
326 * Moose::Meta::Attribute
327 - made the +attr syntax handle extending types with
328 parameters. So "has '+foo' => (isa => 'ArrayRef[Int]')"
329 now works if the original foo is an ArrayRef.
330 - added tests for this.
331 - delegation now works even if the attribute does not
332 have a reader method using the get_read_method_ref
333 method from Class::MOP::Attribute.
334 - added tests for this
335 - added docs for this
337 * Moose::Util::TypeConstraints
338 - passing no "additional attribute info" to
339 &find_or_create_type_constraint will no longer
340 attempt to create an __ANON__ type for you,
341 instead it will just return undef.
342 - added docs for this
344 0.30 Fri. Nov. 23, 2007
345 * Moose::Meta::Method::Constructor
346 -builder related bug in inlined constructor. (groditi)
348 * Moose::Meta::Method::Accessor
349 - genereate unnecessary calls to predicates and refactor
350 code generation for runtime speed (groditi)
352 * Moose::Util::TypeConstraints
353 - fix ClassName constraint to introspect symbol table (mst)
354 - added more tests for this (mst)
355 - fixed it so that subtype 'Foo' => as 'HashRef[Int]' ...
357 - added tests for this
360 - adding the link to Recipie 11 (written by Sartak)
361 - adding test for SYNOPSIS code
364 - New tests for builder bug. Upon instantiation, if an
365 attribute had a builder, no value and was not lazy the
366 builder default was not getting run, oops. (groditi)
368 0.29 Tues. Nov. 13, 2007
369 * Moose::Meta::Attribute
370 - Fix error message on missing builder method (groditi)
372 * Moose::Meta::Method::Accessor
373 - Fix error message on missing builder method (groditi)
376 - Add test to check for the correct error message when
377 builder method is missing (groditi)
379 0.28 Tues. Nov. 13, 2007
380 - 0.27 packaged incorrectly (groditi)
382 0.27 Tues. Nov. 13, 2007
383 * Moose::Meta::Attribute
384 - Added support for the new builder option (groditi)
385 - Added support for lazy_build option (groditi)
386 - Changed slot initialization for predicate changes (groditi)
388 * Moose::Meta::Method::Accessor
389 - Added support for lazy_build option (groditi)
390 - Fix inline methods to work with corrected predicate
393 * Moose::Meta::Method::Constructor
394 - Added support for lazy_build option (groditi)
397 - tests for builder and lazy_build (groditi)
399 * fixing some misc. bits in the docs that
400 got mentioned on CPAN Forum & perlmonks
403 - fixed how required methods are handled
404 when they encounter overriden or modified
405 methods from a class (thanks to confound).
406 - added tests for this
408 * Moose::Util::TypeConstraint
409 - fixed the type notation parser so that
410 the | always creates a union and so is
411 no longer a valid type char (thanks to
412 konobi, mugwump and #moose for working
414 - added more tests for this
416 0.26 Thurs. Sept. 27, 2007
419 * Parameterized Types
420 We now support parameterized collection types, such as:
421 ArrayRef[Int] # array or integers
422 HashRef[Object] # a hash with object values
423 They can also be nested:
424 ArrayRef[HashRef[RegExpr]] # an array of hashes with regexpr values
425 And work with the type unions as well:
426 ArrayRef[Int | Str] # array of integers of strings
428 * Better Framework Extendability
429 Moose.pm is now "extendable" such that it is now much
430 easier to extend the framework and add your own keywords
431 and customizations. See the "EXTENDING AND EMBEDDING MOOSE"
432 section of the Moose.pm docs.
435 In an effort to begin documenting some of the various
436 details of Moose as well as some common idioms, we have
437 created Moose::Cookbook::Snacks as a place to find
438 small (easily digestable) nuggets of Moose code.
441 ~ Several doc updates/cleanup thanks to castaway ~
443 - converted build system to use Module::Install instead of
444 Module::Build (thanks to jrockway)
447 - added all the meta classes to the immutable list and
448 set it to inline the accessors
449 - fix import to allow Sub::Exporter like { into => }
450 and { into_level => } (perigrin)
451 - exposed and documented init_meta() to allow better
452 embedding and extending of Moose (perigrin)
455 - complete re-organization of the test suite
456 - added some new tests as well
457 - finally re-enabled the Moose::POOP test since
458 the new version of DBM::Deep now works again
462 - fixed very odd and very nasty recursion bug with
464 - added tests for this (eilara)
466 * Moose::Meta::Attribute
467 Moose::Meta::Method::Constructor
468 Moose::Meta::Method::Accessor
469 - fixed issue with overload::Overloaded getting called
470 on non-blessed items. (RT #29269)
471 - added tests for this
473 * Moose::Meta::Method::Accessor
474 - fixed issue with generated accessor code making
475 assumptions about hash based classes (thanks to dexter)
477 * Moose::Coookbook::Snacks
478 - these are bits of documentation, not quite as big as
479 Recipes but which have no clear place in the module docs.
480 So they are Snacks! (horray for castaway++)
482 * Moose::Cookbook::Recipe4
483 - updated it to use the new ArrayRef[MyType] construct
484 - updated the accompanying test as well
486 +++ Major Refactor of the Type Constraint system +++
487 +++ with new features added as well +++
489 * Moose::Util::TypeConstraint
490 - no longer uses package variable to keep track of
491 the type constraints, now uses the an instance of
492 Moose::Meta::TypeConstraint::Registry to do it
493 - added more sophisticated type notation parsing
495 - added tests for this
497 * Moose::Meta::TypeConstraint
498 - some minor adjustments to make subclassing easier
499 - added the package_defined_in attribute so that we
500 can track where the type constraints are created
502 * Moose::Meta::TypeConstraint::Union
503 - this is now been refactored to be a subclass of
504 Moose::Meta::TypeConstraint
506 * Moose::Meta::TypeCoercion::Union
507 - this has been added to service the newly refactored
508 Moose::Meta::TypeConstraint::Union and is itself
509 a subclass of Moose::Meta::TypeCoercion
511 * Moose::Meta::TypeConstraint::Parameterized
512 - added this module (taken from MooseX::AttributeHelpers)
513 to help construct nested collection types
514 - added tests for this
516 * Moose::Meta::TypeConstraint::Registry
517 - added this class to keep track of type constraints
519 0.25 Mon. Aug. 13, 2007
521 - Documentation update to reference Moose::Util::TypeConstraints
522 under 'isa' in 'has' for how to define a new type
525 * Moose::Meta::Attribute
526 - required attributes now will no longer accept undef
527 from the constructor, even if there is a default and lazy
528 - added tests for this
529 - default subroutines must return a value which passes the
531 - added tests for this
533 * Moose::Meta::Attribute
534 * Moose::Meta::Method::Constructor
535 * Moose::Meta::Method::Accessor
536 - type-constraint tests now handle overloaded objects correctly
538 - added tests for this (thanks to EvanCarroll)
540 * Moose::Meta::TypeConstraint::Union
541 - added (has_)hand_optimized_constraint to this class so that
542 it behaves as the regular Moose::Meta::TypeConstraint does.
545 - large refactoring of this code
546 - added several more tests
547 - tests for subtle conflict resolition issues
548 added, but not currently running
551 * Moose::Cookbook::Recipe7
552 - added new recipe for augment/inner functionality
554 - added test for this
557 - a formal definition of roles (still in progress)
560 - utilities for easier working with Moose classes
561 - added tests for these
564 - This contains Moose specific test functions
565 - added tests for these
567 0.24 Tues. July 3, 2007
568 ~ Some doc updates/cleanup ~
570 * Moose::Meta::Attribute
571 - added support for roles to be given as parameters
572 to the 'handles' option.
573 - added tests and docs for this
574 - the has '+foo' attribute form now accepts changes to
575 the lazy option, and the addition of a handles option
576 (but not changing the handles option)
577 - added tests and docs for this
580 - required methods are now fetched using find_method_by_name
581 so that required methods can come from superclasses
582 - adjusted tests for this
584 0.23 Mon. June 18, 2007
585 * Moose::Meta::Method::Constructor
586 - fix inlined constructor for hierarchy with multiple BUILD methods (mst)
588 - Modify make_immutable to work with the new Class::MOP immutable
589 mechanism + POD + very basic test (groditi)
590 * Moose::Meta::Attribute
591 - Fix handles to use goto() so that caller() comes out properly on
592 the other side (perigrin)
594 0.22 Thurs. May 31, 2007
595 * Moose::Util::TypeConstraints
596 - fix for prototype undeclared issue when Moose::Util::TypeConstraints
597 loaded before consumers (e.g. Moose::Meta::Attribute) by predeclaring
598 prototypes for functions
599 - added the ClassName type constraint, this checks for strings
600 which will respond true to ->isa(UNIVERSAL).
601 - added tests and docs for this
602 - subtyping just in name now works correctly by making the
603 default for where be { 1 }
604 - added test for this
606 * Moose::Meta::Method::Accessor
607 - coerce and lazy now work together correctly, thanks to
608 merlyn for finding this bug
609 - tests added for this
610 - fix reader presedence bug in Moose::Meta::Attribute + tests
613 - Foo->new(undef) now gets ignored, it is assumed you meant to pass
614 a HASH-ref and missed. This produces better error messages then
615 having it die cause undef is not a HASH.
616 - added tests for this
618 0.21 Thursday, May 2nd, 2007
620 - added SUPER_SLOT and INNER_SLOT class hashes to support unimport
621 - modified unimport to remove super and inner along with the rest
622 - altered unimport tests to handle this
625 - altered super export to populate SUPER_SLOT
628 - altered augment and override modifier application to use *_SLOT
629 - modified tests for these to unimport one test class each to test
632 - fixed issue where custom attribute metaclasses
633 where not handled correctly in roles
634 - added tests for this
637 - fixed issue where extending metaclasses with
638 roles would blow up. Thanks to Aankhen`` for
639 finding this insidious error, and it's solution.
641 ~~ lots of spelling and grammer fixes in the docs,
642 many many thanks to rlb3 and Aankhen for these :)
644 0.20 Friday, April 6th, 2007
645 >> I messed up the SKIP logic in one test
646 so this release is just to fix that.
649 - 'has' now also accepts an ARRAY ref
650 to create multiple attrs (see docs)
651 (thanks to konobi for this)
652 - added tests and docs
654 0.19 Thurs. April 5th, 2007
655 ~~ More documentation updates ~~
657 * Moose::Util::TypeConstraints
658 - 'type' now supports messages as well
659 thanks to phaylon for finding this
660 - added tests for this
661 - added &list_all_type_constraints and
662 &list_all_builtin_type_constraints
663 functions to facilitate introspection.
665 * Moose::Meta::Attribute
666 - fixed regexp 'handles' declarations
667 to build the list of delegated methods
668 correctly (and not override important
669 things like &new) thanks to ashleyb
671 - added tests and docs for this
672 - added the 'documentation' attributes
673 so that you can actually document your
674 attributes and inspect them through the
676 - added tests and docs for this
679 - when loading custom attribute metaclasses
680 it will first look in for the class in the
681 Moose::Meta::Attribute::Custom::$name, and
682 then default to just loading $name.
683 - added tests and docs for this
685 * Moose::Meta::TypeConstraint
686 - type constraints now stringify to their names.
687 - added test for this
690 - added tests to assure we work with Module::Refresh
691 - added stricter test skip logic in the Moose POOP
692 test, ask Rob Kinyon why.
693 - *cough* DBM::Deep 1.0 backwards compatability sucks *cough* ;)
695 0.18 Sat. March 10, 2007
696 ~~ Many, many documentation updates ~~
699 - We now use Class::MOP::load_class to
701 - added tests to show types and subtypes
702 working with Declare::Constraints::Simple
703 and Test::Deep as constraint engines.
706 !! You must have Class::MOP 0.37_001 !!
707 !! for this developer release to work !!
709 This release was primarily adding the immutable
710 feature to Moose. An immutable class is one which
711 you promise not to alter. When you set the class
712 as immutable it will perform various bits of
713 memoization and inline certain part of the code
714 (constructors, destructors and accessors). This
715 minimizes (and in some cases totally eliminates)
716 one of Moose's biggest performance hits. This
717 feature is not on by default, and is 100% optional.
718 It has several configurable bits as well, so you
719 can pick and choose to your specific needs.
721 The changes involved in this were fairly wide and
722 highly specific, but 100% backwards compatible, so
723 I am not going to enumerate them here. If you are
724 truely interested in what was changed, please do
727 0.17 Tues. Nov. 14, 2006
728 * Moose::Meta::Method::Accessor
729 - bugfix for read-only accessors which
730 are have a type constraint and lazy.
731 Thanks to chansen for finding it.
733 0.16 Tues. Nov. 14, 2006
735 There are some speed improvements in this release,
736 but they are only the begining, so stay tuned.
739 - BUILDALL and DEMOLISHALL no longer get
740 called unless they actually need to be.
741 This gave us a signifigant speed boost
742 for the cases when there is no BUILD or
743 DEMOLISH method present.
745 * Moose::Util::TypeConstraints
746 * Moose::Meta::TypeConstraint
747 - added an 'optimize_as' option to the
748 type constraint, which allows for a
749 hand optimized version of the type
750 constraint to be used when possible.
751 - Any internally created type constraints
752 now provide an optimized version as well.
754 0.15 Sun. Nov. 5, 2006
756 This version of Moose *must* have Class::MOP 0.36 in order
757 to work correctly. A number of small internal tweaks have
758 been made in order to be compatible with that release.
760 * Moose::Util::TypeConstraints
761 - added &unimport so that you can clean out
762 your class namespace of these exported
766 - fixed minor issue which occasionally
767 comes up during global destruction
769 - moved Moose::Meta::Method::Overriden into
773 - moved Moose::Meta::Role::Method into
776 * Moose::Meta::Attribute
777 - changed how we do type checks so that
778 we reduce the overall cost, but still
781 - moved accessor generation methods to
782 Moose::Meta::Method::Accessor to
783 conform to the API changes from
786 * Moose::Meta::TypeConstraint
787 - changed how constraints are compiled
788 so that we do less recursion and more
789 iteration. This makes the type check
791 - moved Moose::Meta::TypeConstraint::Union
794 * Moose::Meta::Method::Accessor
795 - created this from methods formerly found in
796 Moose::Meta::Attribute
798 * Moose::Meta::Role::Method
799 - moved this from Moose::Meta::Role
801 * Moose::Meta::Method::Overriden
802 - moved this from Moose::Meta::Class
804 * Moose::Meta::TypeConstraint::Union
805 - moved this from Moose::Meta::TypeConstraint
807 0.14 Mon. Oct. 9, 2006
809 * Moose::Meta::Attribute
810 - fixed lazy attributes which were not getting
811 checked with the type constraint (thanks ashley)
812 - added tests for this
813 - removed the over-enthusiastic DWIMery of the
814 automatic ArrayRef and HashRef defaults, it
815 broke predicates in an ugly way.
816 - removed tests for this
818 0.13 Sat. Sept. 30, 2006
820 This version of Moose *must* have Class::MOP 0.35 in order
821 to work correctly. A number of small internal tweaks have
822 been made in order to be compatible with that release.
825 - Removed the use of UNIVERSAL::require to be a better
826 symbol table citizen and remove a dependency
827 (thanks Adam Kennedy)
829 **~~ removed experimental & undocumented feature ~~**
830 - commented out the 'method' and 'self' keywords, see the
831 comments for more info.
834 - added a FAQ and WTF files to document frequently
835 asked questions and common problems
837 * Moose::Util::TypeConstraints
838 - added GlobRef and FileHandle type constraint
839 - added tests for this
841 * Moose::Meta::Attribute
842 - if your attribute 'isa' ArrayRef of HashRef, and you have
843 not explicitly set a default, then make the default DWIM.
844 This will also work for subtypes of ArrayRef and HashRef
846 - you can now auto-deref subtypes of ArrayRef or HashRef too.
847 - new test added for this (thanks to ashley)
850 - added basic support for runtime role composition
851 but this is still *highly experimental*, so feedback
852 is much appreciated :)
853 - added tests for this
855 * Moose::Meta::TypeConstraint
856 - the type constraint now handles the coercion process
857 through delegation, this is to support the coercion
860 * Moose::Meta::TypeConstraint::Union
861 - it is now possible for coercions to be performed
863 - added tests for this (thanks to konobi)
865 * Moose::Meta::TypeCoercion
866 - properly capturing error when type constraint
870 - Scalar::Util 1.18 is bad on Win32, so temporarily
871 only require version 1.17 for Win32 and cygwin.
872 (thanks Adam Kennedy)
874 0.12 Sat. Sept. 1, 2006
876 - Recipe5 (subtypes & coercion) has been written
879 - fixed "bad meta" error message to be more descriptive
880 - fixed &unimport to not remove the &inner and &super
881 keywords because we need to localize them.
882 - fixed number of spelling/grammer issues, thanks Theory :)
884 **~~ experimental & undocumented feature ~~**
885 - added the method and self keywords, they are basically
886 just sugar, and they may not stay around.
889 - added &dump method to easily Data::Dumper
892 * Moose::Meta::TypeConstraint
893 - added the &is_a_type_of method to check both the current
894 and the subtype of a method (similar to &isa with classes)
897 - this is now a subclass of Class::MOP::Module, and no longer
898 creates the _role_meta ugliness of before.
899 - fixed tests to reflect this change
901 0.11 Wed. July 12, 2006
903 - added an &unimport method to remove all the keywords
904 that Moose will import, simply add 'no Moose' to the
905 bottom of your class file.
908 - fixed some test failures caused by a forgotten test
911 0.10 Thurs. July 6, 2006
913 - improved error message when loading modules so
914 it is less confusing when you load a role.
915 - added &calculate_all_roles method to
916 Moose::Meta::Class and Moose::Meta::Role
919 This module has been tested against Class::MOP 0.30
920 but it does not yet utilize the optimizations
921 it makes available. Stay tuned for that ;)
923 0.09_03 Fri. June 23, 2006
924 ++ DEVELOPER RELEASE ++
926 - 'use strict' and 'use warnings' are no longer
927 needed in Moose classes, Moose itself will
928 turn them on for you.
929 - added tests for this
930 - moved code from exported subs to private methods
931 in Moose::Meta::Class
934 - as with Moose, strict and warnings are
935 automatically turned on for you.
936 - added tests for this
939 - now handles an edge case for override errors
940 - added tests for this
941 - added some more edge case tests
943 0.09_02 Tues. May 16, 2006
944 ++ DEVELOPER RELEASE ++
946 - added prototypes to the exported subs
950 - added prototypes to the exported subs
953 * Moose::Util::TypeConstraints
954 - cleaned up prototypes for the subs
957 0.09_01 Fri. May 12, 2006
958 ++ DEVELOPER RELEASE ++
959 - This release works in combination with
960 Class::MOP 0.29_01, it is a developer
961 release because it uses the a new
962 instance sub-protocol and a fairly
963 complete Role implementation. It has
964 not yet been optimized, so it slower
965 the the previous CPAN version. This
966 release also lacks good updated docs,
967 the official release will have updated docs.
970 - refactored the keyword exports
971 - 'with' now checks Role validaity and
972 accepts more than one Role at a time
973 - 'extends' makes metaclass adjustments as
974 needed to ensure metaclass compatability
977 - refactored the keyword exports
978 - 'with' now checks Role validaity and
979 accepts more than one Role at a time
981 * Moose::Util::TypeConstraints
982 - added the 'enum' keyword for simple
983 string enumerations which can be used as
985 - see example of usage in t/202_example.t
988 - more careful checking of params to new()
991 - much work done on the role composition
992 - many new tests for conflict detection
993 and composition edge cases
994 - not enough documentation, I suggest
997 * Moose::Meta::Instance
998 - added new Instance metaclass to support
999 the new Class::MOP instance protocol
1001 * Moose::Meta::Class
1002 - some small changes to support the new
1004 - some small additions to support Roles
1006 * Moose::Meta::Attribute
1007 - some improvements to the accessor generation code
1009 - some small changes to support the new
1011 - (still somewhat) experimental delegation support
1012 with the 'handles' option
1013 - added several tests for this
1014 - no docs for this yet
1016 0.05 Thurs. April 27, 2006
1018 - keywords are now exported with Sub::Exporter
1019 thanks to chansen for this commit
1020 - has keyword now takes a 'metaclass' option
1021 to support custom attribute meta-classes
1022 on a per-attribute basis
1023 - added tests for this
1024 - the 'has' keyword not accepts inherited slot
1025 specifications (has '+foo'). This is still an
1026 experimental feature and probably not finished
1027 see t/038_attribute_inherited_slot_specs.t for
1028 more details, or ask about it on #moose
1029 - added tests for this
1032 - keywords are now exported with Sub::Exporter
1034 * Moose::Utils::TypeConstraints
1035 - reorganized the type constraint hierarchy, thanks
1036 to nothingmuch and chansen for his help and advice
1038 - added some tests for this
1039 - keywords are now exported with Sub::Exporter
1040 thanks to chansen for this commit
1042 * Moose::Meta::Class
1043 - due to changes in Class::MOP, we had to change
1044 construct_instance (for the better)
1046 * Moose::Meta::Attribute
1047 - due to changes in Class::MOP, we had to add the
1048 initialize_instance_slot method (it's a good thing)
1050 * Moose::Meta::TypeConstraint
1051 - added type constraint unions
1052 - added tests for this
1053 - added the is_subtype_of predicate method
1054 - added tests for this
1056 0.04 Sun. April 16th, 2006
1058 - Roles can now consume other roles
1059 - added tests for this
1060 - Roles can specify required methods now with
1061 the requires() keyword
1062 - added tests for this
1065 - ripped out much of it's guts ,.. much cleaner now
1066 - added required methods and correct handling of
1067 them in apply() for both classes and roles
1068 - added tests for this
1069 - no longer adds a does() method to consuming classes
1070 it relys on the one in Moose::Object
1071 - added roles attribute and some methods to support
1072 roles consuming roles
1074 * Moose::Meta::Attribute
1075 - added support for triggers on attributes
1076 - added tests for this
1077 - added support for does option on an attribute
1078 - added tests for this
1080 * Moose::Meta::Class
1081 - added support for attribute triggers in the
1083 - added tests for this
1086 - Moose no longer creates a subtype for your class
1087 if a subtype of the same name already exists, this
1088 should DWIM in 99.9999% of all cases
1090 * Moose::Util::TypeConstraints
1091 - fixed bug where incorrect subtype conflicts were
1093 - added test for this
1096 - this class can now be extended with 'use base' if
1097 you need it, it properly loads the metaclass class now
1098 - added test for this
1100 0.03_02 Wed. April 12, 2006
1102 - you must now explictly use Moose::Util::TypeConstraints
1103 it no longer gets exported for you automatically
1106 - new() now accepts hash-refs as well as key/value lists
1107 - added does() method to check for Roles
1108 - added tests for this
1110 * Moose::Meta::Class
1111 - added roles attribute along with the add_role() and
1113 - added tests for this
1116 - now adds a does() method to consuming classes
1117 which tests the class's hierarchy for roles
1118 - added tests for this
1120 0.03_01 Mon. April 10, 2006
1122 - added new Role recipe (no content yet, only code)
1125 - added 'with' keyword for Role support
1126 - added test and docs for this
1127 - fixed subtype quoting bug
1128 - added test for this
1132 - added test and docs
1134 * Moose::Util::TypeConstraints
1135 - added the message keyword to add custom
1136 error messages to type constraints
1139 - the meta role to support Moose::Role
1140 - added tests and docs
1142 * Moose::Meta::Class
1143 - moved a number of things from Moose.pm
1144 to here, they should have been here
1147 * Moose::Meta::Attribute
1148 - moved the attribute option macros here
1149 instead of putting them in Moose.pm
1151 * Moose::Meta::TypeConstraint
1152 - added the message attributes and the
1154 - added tests and docs for this
1156 0.03 Thurs. March 30, 2006
1158 - added the Moose::Cookbook with 5 recipes,
1159 describing all the stuff Moose can do.
1162 - fixed an issue with &extends super class loading
1163 it now captures errors and deals with inline
1164 packages correctly (bug found by mst, solution
1166 - added super/override & inner/augment features
1167 - added tests and docs for these
1170 - BUILDALL now takes a reference of the %params
1171 that are passed to &new, and passes that to
1174 * Moose::Util::TypeConstraints
1175 - Type constraints now survive runtime reloading
1176 - added test for this
1178 * Moose::Meta::Class
1179 - fixed the way attribute defaults are handled
1180 during instance construction (bug found by chansen)
1182 * Moose::Meta::Attribute
1183 - read-only attributes now actually enforce their
1184 read-only-ness (this corrected in Class::MOP as
1187 0.02 Tues. March 21, 2006
1189 - many more tests, fixing some bugs and
1191 - &extends now loads the base module with
1193 - added UNIVERSAL::require to the
1196 - each new Moose class will also create
1197 and register a subtype of Object which
1198 correspond to the new Moose class.
1199 - the 'isa' option in &has now only
1200 accepts strings, and will DWIM in
1203 * Moose::Util::TypeConstraints
1204 - added type coercion features
1205 - added tests for this
1206 - added support for this in attributes
1207 and instance construction
1209 - type construction no longer creates a
1210 function, it registers the type instead.
1211 - added several functions to get the
1215 - BUILDALL and DEMOLISHALL were broken
1216 because of a mis-named hash key, Whoops :)
1218 * Moose::Meta::Attribute
1219 - adding support for coercion in the
1220 autogenerated accessors
1222 * Moose::Meta::Class
1223 - adding support for coercion in the
1224 instance construction
1226 * Moose::Meta::TypeConstraint
1227 * Moose::Meta::TypeCoercion
1228 - type constraints and coercions are now
1229 full fledges meta-objects
1231 0.01 Wed. March 15, 2006
1232 - Moooooooooooooooooose!!!