Reorganized all the recipes so they're broken into subsections, and
[gitmo/Moose.git] / Changes
1 Revision history for Perl extension Moose
2
3 0.55
4     * Moose::Meta::Attribute
5       - breaking down the way 'handles' methods are 
6         created so that the process can be more easily 
7         overridden by subclasses (stevan)
8
9     * Moose::Meta::TypeConstraint
10       - fixing what is passed into a ->message with 
11         the type constraints (RT #37569)
12         - added tests for this (Charles Alderman)
13
14     * Moose::Cookbook
15       - reorganized the recipes into sections - Basics, Roles, Meta
16         (Dave Rolsky)
17
18     * Moose::Cookbook::Basics::Recipe10
19       - A new recipe that demonstrates operator overloading
20         in combination with Moose. (bluefeet)
21
22 0.54 Thurs. July 3, 2008
23     ... this is not my day today ...
24     
25     * Moose::Meta::Attribute
26       - fixed legal_options_for_inheritance such that 
27         clone_and_inherit options still works for 
28         Class::MOP::Attribute objects and therefore 
29         does not break MooseX::AttributeHelpers
30         (stevan)
31
32 0.53 Thurs. July 3, 2008
33     * Whoops, I guess I should run 'make manifest' before 
34       actually releasing the module. No actual changes 
35       in this release, except the fact that it includes
36       the changes that I didn't include in the last 
37       release. (stevan--)
38
39 0.52 Thurs. July 3, 2008
40     * Moose
41       - added "FEATURE REQUESTS" section to the Moose docs
42         to properly direct people (stevan) (RT #34333)
43       - making 'extends' croak if it is passed a Role since 
44         this is not ever something you want to do 
45         (fixed by stevan, found by obra)
46         - added tests for this (stevan)
47
48     * Moose::Object
49       - adding support for DOES (as in UNIVERSAL::DOES) 
50         (nothingmuch)
51         - added test for this
52
53     * Moose::Meta::Attribute
54       - added legal_options_for_inheritance (wreis)
55         - added tests for this (wreis)
56
57     * Moose::Cookbook::Snacks::*
58       - removed some of the unfinished snacks that should 
59         not have been released yet. Added some more examples
60         to the 'Keywords' snack. (stevan)
61
62     * Moose::Cookbook::Style
63       - added general Moose "style guide" of sorts to the 
64         cookbook (nothingmuch) (RT #34335)
65
66     * t/
67       - added more BUILDARGS tests (stevan)
68
69 0.51 Thurs. Jun 26, 2008
70     * Moose::Role
71       - add unimport so "no Moose::Role" actually does
72         something (sartak)
73
74     * Moose::Meta::Role::Application::ToRole
75       - when RoleA did RoleB, and RoleA aliased a method from RoleB in
76         order to provide its own implementation, that method still got
77         added to the list of required methods for consumers of
78         RoleB. Now an aliased method is only added to the list of
79         required methods if the role doing the aliasing does not
80         provide its own implementation. See Recipe 11 for an example
81         of all this. (Dave Rolsky)
82         - added tests for this
83
84     * Moose::Meta::Method::Constructor
85       - when a single argument that wasn't a hashref was provided to
86         an immutabilized constructor, the error message was very
87         unhelpful, as opposed to the non-immutable error. Reported by
88         dew. (Dave Rolsky)
89         - added test for this (Dave Rolsky)
90
91     * Moose::Meta::Attribute
92       - added support for meta_attr->does("ShortAlias") (sartak)
93         - added tests for this (sartak)
94       - moved the bulk of the `handles` handling to the new
95         install_delegation method (Stevan)
96
97     * Moose::Object
98       - Added BUILDARGS, a new step in new()
99
100     * Moose::Meta::Role::Application::RoleSummation
101       - fix typos no one ever sees (sartak)
102
103     * Moose::Util::TypeConstraints
104     * Moose::Meta::TypeConstraint
105     * Moose::Meta::TypeCoercion
106       - Attempt to work around the ??{ } vs. threads issue
107         (not yet fixed)
108       - Some null_constraint optimizations
109
110 0.50 Thurs. Jun 11, 2008
111     - Fixed a version number issue by bumping all modules
112       to 0.50.
113
114 0.49 Thurs. Jun 11, 2008
115     !! This version now approx. 20-25% !!
116     !! faster with new Class::MOP 0.59 !!
117
118     * Moose::Meta::Attribute
119       - fixed how the is => (ro|rw) works with 
120         custom defined reader, writer and accessor
121         options. 
122         - added docs for this (TODO).
123         - added tests for this (Thanks to Penfold)
124       - added the custom attribute alias for regular
125         Moose attributes which is "Moose"
126       - fix builder and default both being used
127         (groditi)
128
129     * Moose
130       Moose::Meta::Class
131       Moose::Meta::Attribute
132       Moose::Meta::Role
133       Moose::Meta::Role::Composite
134       Moose::Util::TypeConstraints
135       - switched usage of reftype to ref because 
136         it is much faster
137         
138     * Moose::Meta::Role
139       - changing add_package_symbol to use the new
140         HASH ref form
141     
142     * Moose::Object
143       - fixed how DEMOLISHALL is called so that it 
144         can be overrided in subclasses (thanks to Sartak)
145         - added test for this (thanks to Sartak)
146
147     * Moose::Util::TypeConstraints
148       - move the ClassName type check code to
149         Class::MOP::is_class_loaded (thanks to Sartak)
150
151     * Moose::Cookbook::Recipe11
152       - add tests for this (thanks to tokuhirom)
153
154 0.48 Thurs. May 29, 2008
155     (early morning release engineering)--
156
157     - fixing the version in Moose::Meta::Method::Destructor
158       which was causing the indexer to choke
159
160 0.47 Thurs. May 29, 2008
161     (late night release engineering)--
162
163     - fixing the version is META.yml, no functional 
164       changes in this release
165
166 0.46 Wed. May 28, 2008
167     !! This version now approx. 20-25% !!
168     !! faster with new Class::MOP 0.57 !!
169
170     * Moose::Meta::Class
171       - some optimizations of the &initialize method
172         since it is called so often by &meta    
173         
174     * Moose::Meta::Class
175       Moose::Meta::Role
176       - now use the get_all_package_symbols from the 
177         updated Class::MOP, test suite is now 10 seconds 
178         faster
179     
180     * Moose::Meta::Method::Destructor
181       - is_needed can now also be called as a class 
182         method for immutablization to check if the 
183         destructor object even needs to be created 
184         at all
185     
186     * Moose::Meta::Method::Destructor
187       Moose::Meta::Method::Constructor
188       - added more descriptive error message to help 
189         keep people from wasting time tracking an error
190         that is easily fixed by upgrading.
191
192 0.45 Saturday, May 24, 2008
193     * Moose
194       - Because of work in Class::MOP 0.56, all 
195         XS based functionality is now optional
196         and a Pure Perl version is supplied
197         - the CLASS_MOP_NO_XS environment variable
198           can now be used to force non-XS versions 
199           to always be used   
200         - several of the packages have been tweaked
201           to take care of this, mostly we added
202           support for the package_name and name 
203           variables in all the Method metaclasses
204       - before/around/after method modifiers now 
205         support regexp matching of names
206         (thanks to Takatoshi Kitano)
207         - tests added for this
208         - NOTE: this only works for classes, it 
209           is currently not supported in roles, 
210           but, ... patches welcome
211       - All usage of Carp::confess have been replaced
212         by Carp::croak in the "keyword" functions since
213         the stack trace is usually not helpful
214       
215     * Moose::Role
216       - All usage of Carp::confess have been replaced
217         by Carp::croak in the "keyword" functions since
218         the stack trace is usually not helpful  
219       - The 'has' keyword for roles now accepts the 
220         same array ref form that Moose.pm does 
221         (has [qw/foo bar/] => (is => 'rw', ...))
222         - added test for this
223       
224     * Moose::Meta::Attribute
225       - trigger on a ro-attribute is no longer an
226         error, as it's useful to trigger off of the
227         constructor
228
229     * Moose::Meta::Class
230       - added same 'add_package_symbol' fix as in 
231         Class::MOP 0.56
232
233     * Moose::Util
234       - does_role now handles non-Moose classes 
235         more gracefully
236         - added tests for this
237       - added the 'add_method_modifier' function 
238         (thanks to Takatoshi Kitano)
239
240     * Moose::Util::TypeConstraints
241       - subtypes of parameterizable types now are 
242         themselves parameterizable types
243
244     * Moose::Meta::Method::Constructor
245       - fixed bug where trigger was not being 
246         called by the inlined immutable 
247         constructors 
248         - added test for this (thanks to Caelum)
249     
250     * Moose::Meta::Role::Application::ToInstance
251       - now uses the metaclass of the instance
252         (if possible) to create the anon-class
253         (thanks Jonathan Rockway)
254     
255     * Moose::Cookbook::Recipe22
256       - added the meta-attribute trait recipe
257         (thanks to Sartak)
258     
259     * t/
260       - fixed hash-ordering test bug that was 
261         causing occasional cpantester failures
262       - renamed the t/000_recipe/*.t tests to be 
263         more descriptive (thanks to Sartak) 
264
265 0.44 Sat. May 10, 2008
266     * Moose
267       - made make_immutable warning cluck to 
268         show where the error is (thanks mst)
269     
270     * Moose::Object
271       - BUILDALL and DEMOLISHALL now call 
272         ->body when looping through the 
273         methods, to avoid the overloaded
274         method call.
275       - fixed issue where DEMOLISHALL was
276         eating the $@ values, and so not 
277         working correctly, it still kind of
278         eats them, but so does vanilla perl 
279         - added tests for this
280       
281     * Moose::Cookbook::Recipe7
282       - added new recipe for immutable 
283         functionality (thanks Dave Rolsky)
284       
285     * Moose::Cookbook::Recipe9
286       - added new recipe for builder and 
287         lazy_build (thanks Dave Rolsky)
288       
289     * Moose::Cookbook::Recipe11
290       - added new recipe for method aliasing 
291         and exclusion with Roles (thanks Dave Rolsky)
292
293     * t/
294       - fixed Win32 test failure (thanks spicyjack)
295
296     ~ removed Build.PL and Module::Build compat 
297       since Module::Install has done that.
298
299 0.43 Wed. April, 30, 2008
300     * NOTE TO SELF:
301         drink more coffee before 
302         doing release engineering
303       
304     - whoops, forgot to do the smolder tests, 
305       and we broke some of the custom meta-attr
306       modules. This fixes that.
307
308 0.42 Mon. April 28, 2008
309     - some bad tests slipped by, nothing else 
310       changed in this release (cpantesters++)
311       
312     - upped the Class::MOP dependency to 0.55 
313       since we have tests which need the C3 
314       support
315
316 0.41 Mon. April 28, 2008
317     ~~ numerous documentation updates ~~
318     
319     - Changed all usage of die to Carp::croak for better
320       error reporting (initial patch by Tod Hagan)
321
322     ** IMPORTANT NOTE **
323     - the make_immutable keyword is now deprecated, don't
324       use it in any new code and please fix your old code
325       as well. There will be 2 releases, and then it will
326       be removed.
327
328     * Moose
329       Moose::Role
330       Moose::Meta::Class
331       - refactored the way inner and super work to avoid
332         any method/@ISA cache penalty (nothingmuch)
333
334     * Moose::Meta::Class
335       - fixing &new_object to make sure trigger gets the 
336         coerced value (spotted by Charles Alderman on the 
337         mailing list)
338         - added test for this
339
340     * Moose::Meta::Method::Constructor
341       - immutable classes which had non-lazy attributes were calling
342         the default generating sub twice in the constructor. (bug
343         found by Jesse Luehrs, fixed by Dave Rolsky)
344         - added tests for this (Dave Rolsky)
345       - fix typo in initialize_body method (nothingmuch)
346       
347     * Moose::Meta::Method::Destructor
348       - fix typo in initialize_body method (nothingmuch)
349
350     * Moose::Meta::Method::Overriden
351       Moose::Meta::Method::Augmented
352       - moved the logic for these into their own 
353         classes (nothingmuch)
354
355     * Moose::Meta::Attribute
356       - inherited attributes may now be extended without 
357         restriction on the type ('isa', 'does') (Sartak)
358         - added tests for this (Sartak)
359       - when an attribute property is malformed (such as lazy without 
360         a default), give the name of the attribute in the error 
361         message (Sartak)
362       - added the &applied_traits and &has_applied_traits methods 
363         to allow introspection of traits
364         - added tests for this
365       - moved 'trait' and 'metaclass' argument handling to here from
366         Moose::Meta::Class
367       - clone_and_inherit_options now handles 'trait' and 'metaclass' (has
368         '+foo' syntax) (nothingmuch)
369         - added tests for this (t0m)
370      
371     * Moose::Object 
372       - localize $@ inside DEMOLISHALL to avoid it 
373         eating $@ (found by Ernesto)
374         - added test for this (thanks to Ernesto)
375
376     * Moose::Util::TypeConstraints
377       - &find_type_constraint now DWIMs when given an 
378         type constraint object or name (nothingmuch)
379       - &find_or_create_type_constraint superseded with a number of more
380         specific functions:
381         - find_or_create_{isa,does}_type_constraint
382         - find_or_parse_type_constraint
383
384     * Moose::Meta::TypeConstraint
385       Moose::Meta::TypeConstraint::Class
386       Moose::Meta::TypeConstraint::Role
387       Moose::Meta::TypeConstraint::Enum
388       Moose::Meta::TypeConstraint::Union
389       Moose::Meta::TypeConstraint::Parameterized
390         - added the &equals method for comparing two type 
391           constraints (nothingmuch)
392           - added tests for this (nothingmuch)
393
394     * Moose::Meta::TypeConstraint
395       - add the &parents method, which is just an alias to &parent. 
396         Useful for polymorphism with TC::{Class,Role,Union} (nothingmuch)
397
398     * Moose::Meta::TypeConstraint::Class
399       - added the class attribute for introspection purposes
400         (nothingmuch)
401         - added tests for this
402         
403     * Moose::Meta::TypeConstraint::Enum
404       Moose::Meta::TypeConstraint::Role
405       - broke these out into their own classes (nothingmuch)
406
407     * Moose::Cookbook::Recipe*
408       - fixed references to test file locations in the POD
409         and updated up some text for new Moose features
410         (Sartak)
411
412     * Moose::Util
413       - Added &resolve_metaclass_alias, a helper function for finding an actual
414         class for a short name (e.g. in the traits list)
415
416 0.40 Fri. March 14, 2008
417     - I hate Pod::Coverage
418
419 0.39 Fri. March 14, 2008
420     * Moose
421       - documenting the use of '+name' with attributes 
422         that come from recently composed roles. It makes
423         sense, people are using it, and so why not just 
424         officially support it.
425       - fixing the 'extends' keyword so that it will not 
426         trigger Ovid's bug (http://use.perl.org/~Ovid/journal/35763)
427       
428     * oose
429       - added the perl -Moose=+Class::Name feature to allow 
430         monkeypatching of classes in one liners
431       
432     * Moose::Util
433       - fixing the 'apply_all_roles' keyword so that it will not 
434         trigger Ovid's bug (http://use.perl.org/~Ovid/journal/35763)    
435     
436     * Moose::Meta::Class
437       - added ->create method which now supports roles (thanks to jrockway)
438         - added tests for this
439       - added ->create_anon_class which now supports roles and caching of 
440         the results (thanks to jrockway)
441         - added tests for this
442       - made ->does_role a little more forgiving when it is
443         checking a Class::MOP era metaclasses.
444     
445     * Moose::Meta::Role::Application::ToInstance
446       - it is now possible to pass extra params to be used when 
447         a role is applied to an the instance (rebless_params)
448         - added tests for this
449     
450     * Moose::Util::TypeConstraints
451       - class_type now accepts an optional second argument for a
452         custom message. POD anotated accordingly (groditi)
453         - added tests for this 
454       - it is now possible to make anon-enums by passing 'enum' an 
455         ARRAY ref instead of the $name => @values. Everything else 
456         works as before.
457         - added tests for this
458     
459     * t/
460       - making test for using '+name' on attributes consumed 
461         from a role, it works and makes sense too.    
462
463     * Moose::Meta::Attribute 
464       - fix handles so that it doesn't return nothing 
465         when the method cannot be found, not sure why 
466         it ever did this originally, this means we now
467         have slightly better support for AUTOLOADed 
468         objects
469         - added more delegation tests
470       - adding ->does method to this so as to better 
471         support traits and their introspection.
472         - added tests for this
473     
474     * Moose::Object
475       - localizing the Data::Dumper configurations so 
476         that it does not pollute others (RT #33509)
477       - made ->does a little more forgiving when it is
478         passed Class::MOP era metaclasses.
479
480 0.38 Fri. Feb. 15, 2008
481     * Moose::Meta::Attribute 
482       - fixed initializer to correctly do 
483         type checking and coercion in the 
484         callback 
485         - added tests for this
486
487     * t/
488       - fixed some finicky tests (thanks to konobi)
489
490 0.37 Thurs. Feb. 14, 2008
491     * Moose
492       - fixed some details in Moose::init_meta 
493         and its superclass handling (thanks thepler)
494         - added tests for this (thanks thepler)
495       - 'has' now dies if you don't pass in name 
496         value pairs
497       - added the 'make_immutable' keyword as a shortcut
498         to make_immutable
499
500     * Moose::Meta::Class
501       Moose::Meta::Method::Constructor
502       Moose::Meta::Attribute        
503       - making (init_arg => undef) work here too
504         (thanks to nothingmuch)
505         
506     * Moose::Meta::Attribute        
507       Moose::Meta::Method::Constructor
508       Moose::Meta::Method::Accessor                
509       - make lazy attributes respect attr initializers (rjbs)
510         - added tests for this
511     
512     * Moose::Util::TypeConstraints
513       Moose::Util::TypeConstraints::OptimizedConstraints
514       Moose::Meta::TypeConstraints
515       Moose::Meta::Attribute
516       Moose::Meta::Method::Constructor
517       Moose::Meta::Method::Accessor            
518       - making type errors use the 
519         assigned message (thanks to Sartak)
520         - added tests for this
521
522     * Moose::Meta::Method::Destructor
523       - making sure DESTROY gets inlined properly 
524         with successive DEMOLISH calls (thanks to manito)
525
526     * Moose::Meta::Attribute  
527       Moose::Meta::Method::Accessor 
528       - fixed handling of undef with type constraints 
529         (thanks to Ernesto)               
530         - added tests for this
531     
532     * Moose::Util
533       - added &get_all_init_args and &get_all_attribute_values 
534         (thanks to Sartak and nothingmuch)
535
536 0.36 Sat. Jan. 26, 2008
537     * Moose::Role
538       Moose::Meta::Attribute
539       - role type tests now support when roles are 
540         applied to non-Moose classes (found by ash)
541         - added tests for this (thanks to ash)
542       - couple extra tests to boost code coverage
543
544     * Moose::Meta::Method::Constructor    
545       - improved fix for handling Class::MOP attributes
546         - added test for this        
547       
548     * Moose::Meta::Class
549       - handled the add_attribute($attribute_meta_object)
550         case correctly
551         - added test for this
552
553 0.35 Tues. Jan. 22, 2008
554     * Moose::Meta::Method::Constructor
555       - fix to make sure even Class::MOP attributes 
556         are handled correctly (Thanks to Dave Rolsky)
557         - added test for this (also Dave Rolsky)
558     
559     * Moose::Meta::Class
560       - improved error message on _apply_all_roles, 
561         you should now use Moose::Util::apply_all_roles
562         and you shouldnt have been using a _ prefixed
563         method in the first place ;)
564
565 0.34 Mon. Jan. 21, 2008
566     ~~~ more misc. doc. fixes ~~~
567     ~~ updated copyright dates ~~
568
569     Moose is now a postmodern object system :)
570       - (see the POD for details)
571       
572     * <<Role System Refactoring>>    
573     - this release contains a major reworking and 
574       cleanup of the role system     
575       - 100% backwards compat.
576       - Role application now restructured into seperate
577         classes based on type of applicants
578       - Role summation (combining of more than one role)
579         is much cleaner and anon-classes are no longer 
580         used in this process
581       - new Composite role metaclass    
582       - runtime application of roles to instances
583         is now more efficient and re-uses generated
584         classes when applicable
585         
586     * <<New Role composition features>>
587       - methods can now be excluded from a given role 
588         during composition
589       - methods can now be aliased to another name (and 
590         still retain the original as well)        
591     
592     * Moose::Util::TypeConstraints::OptimizedConstraints
593       - added this module (see above)
594
595     * Moose::Meta::Class
596       - fixed the &_process_attribute method to be called
597         by &add_attribute, so that the API is now correct
598
599     * Moose::Meta::Method::Accessor
600       - fixed bug when passing a list of values to
601         an accessor would get (incorrectly) ignored.
602         Thanks to Sartak for finding this ;)
603         - added tests for this (Sartak again)
604
605     * Moose::Meta::Method::Accessor
606       Moose::Meta::Method::Constructor
607       Moose::Meta::Attribute
608       Moose::Meta::TypeConstraint      
609       Moose::Meta::TypeCoercion      
610       - lots of cleanup of such things as: 
611         - generated methods
612         - type constraint handling
613         - error handling/messages 
614         (thanks to nothingmuch)   
615     
616     * Moose::Meta::TypeConstraint::Parameterizable
617       - added this module to support the refactor 
618         in Moose::Meta::TypeConstraint::Parameterized
619
620     * Moose::Meta::TypeConstraint::Parameterized
621       - refactored how these types are handled so they 
622         are more generic and not confined to ArrayRef
623         and HashRef only
624
625     * t/
626       - shortened some file names for better VMS support (RT #32381)
627
628 0.33 Fri. Dec. 14, 2007
629     !! Moose now loads 2 x faster !!
630     !!  with new Class::MOP 0.49  !!
631
632     ++ new oose.pm module to make command line
633        Moose-ness easier (see POD docs for more)
634
635     * Moose::Meta::Class
636     * Moose::Meta::Role
637       - several tweaks to take advantage of the
638         new method map caching in Class::MOP
639
640     * Moose::Meta::TypeConstraint::Parameterized
641       - allow subtypes of ArrayRef and HashRef to
642         be used as a container (sartak)
643         - added tests for this
644       - basic support for coercion to ArrayRef and
645         HashRef for containers (sartak)
646         - added tests for this
647
648     * Moose::Meta::TypeCoercion
649       - coercions will now create subtypes as needed
650         so you can now add coercions to parameterized
651         types without having to explictly define them
652         - added tests for this
653
654     * Moose::Meta::Method::Accessor
655       - allow subclasses to decide whether we need
656         to copy the value into a new variable (sartak)
657
658 0.32 Tues. Dec. 4, 2007
659     * Moose::Util::TypeConstraints
660       - fixing how subtype aliases of unions work
661         they should inherit the parent's coercion
662         - added tests for this
663       - you can now define multiple coercions on
664         a single type at different times instead of
665         having to do it all in one place
666         - added tests for this
667
668     * Moose::Meta::TypeConstraint
669       - there is now a default constraint of sub { 1 }
670         instead of Moose::Util::TypeConstraints setting
671         this for us
672
673     * Moose::Meta::TypeCoercion
674     * Moose::Meta::TypeCoercion::Union
675       - added the &has_coercion_for_type and
676         &add_type_coercions methods to support the
677         new features above (although you cannot add
678         more type coercions for Union types)
679
680 0.31 Mon. Nov. 26, 2007
681     * Moose::Meta::Attribute
682       - made the +attr syntax handle extending types with
683         parameters. So "has '+foo' => (isa => 'ArrayRef[Int]')"
684         now works if the original foo is an ArrayRef.
685         - added tests for this.
686       - delegation now works even if the attribute does not
687         have a reader method using the get_read_method_ref
688         method from Class::MOP::Attribute.
689         - added tests for this
690         - added docs for this
691
692     * Moose::Util::TypeConstraints
693       - passing no "additional attribute info" to
694         &find_or_create_type_constraint will no longer
695         attempt to create an __ANON__ type for you,
696         instead it will just return undef.
697         - added docs for this
698
699 0.30 Fri. Nov. 23, 2007
700     * Moose::Meta::Method::Constructor
701       -builder related bug in inlined constructor. (groditi)
702
703     * Moose::Meta::Method::Accessor
704       - genereate unnecessary calls to predicates and refactor
705         code generation for runtime speed (groditi)
706
707     * Moose::Util::TypeConstraints
708       - fix ClassName constraint to introspect symbol table (mst)
709         - added more tests for this (mst)
710       - fixed it so that subtype 'Foo' => as 'HashRef[Int]' ...
711         with work correctly.
712         - added tests for this
713
714     * Moose::Cookbook
715       - adding the link to Recipie 11 (written by Sartak)
716         - adding test for SYNOPSIS code
717
718     * t/
719       - New tests for builder bug. Upon instantiation, if an
720         attribute had a builder, no value and was not lazy the
721         builder default was not getting run, oops. (groditi)
722
723 0.29 Tues. Nov. 13, 2007
724     * Moose::Meta::Attribute
725       - Fix error message on missing builder method (groditi)
726
727     * Moose::Meta::Method::Accessor
728       - Fix error message on missing builder method (groditi)
729
730     * t/
731       - Add test to check for the correct error message when
732         builder method is missing (groditi)
733
734 0.28 Tues. Nov. 13, 2007
735     - 0.27 packaged incorrectly (groditi)
736
737 0.27 Tues. Nov. 13, 2007
738     * Moose::Meta::Attribute
739       - Added support for the new builder option (groditi)
740       - Added support for lazy_build option (groditi)
741       - Changed slot initialization for predicate changes (groditi)
742
743     * Moose::Meta::Method::Accessor
744       - Added support for lazy_build option (groditi)
745       - Fix inline methods to work with corrected predicate
746         behavior (groditi)
747
748     * Moose::Meta::Method::Constructor
749       - Added support for lazy_build option (groditi)
750
751     * t/
752       - tests for builder and lazy_build (groditi)
753
754     * fixing some misc. bits in the docs that
755       got mentioned on CPAN Forum & perlmonks
756
757     * Moose::Meta::Role
758       - fixed how required methods are handled
759         when they encounter overriden or modified
760         methods from a class (thanks to confound).
761         - added tests for this
762
763     * Moose::Util::TypeConstraint
764       - fixed the type notation parser so that
765         the | always creates a union and so is
766         no longer a valid type char (thanks to
767         konobi, mugwump and #moose for working
768         this one out.)
769         - added more tests for this
770
771 0.26 Thurs. Sept. 27, 2007
772     == New Features ==
773
774     * Parameterized Types
775       We now support parameterized collection types, such as:
776           ArrayRef[Int]    # array or integers
777           HashRef[Object]  # a hash with object values
778       They can also be nested:
779           ArrayRef[HashRef[RegExpr]] # an array of hashes with regexpr values
780       And work with the type unions as well:
781           ArrayRef[Int | Str]  # array of integers of strings
782
783     * Better Framework Extendability
784       Moose.pm is now "extendable" such that it is now much
785       easier to extend the framework and add your own keywords
786       and customizations. See the "EXTENDING AND EMBEDDING MOOSE"
787       section of the Moose.pm docs.
788
789     * Moose Snacks!
790       In an effort to begin documenting some of the various
791       details of Moose as well as some common idioms, we have
792       created Moose::Cookbook::Snacks as a place to find
793       small (easily digestable) nuggets of Moose code.
794
795     ====
796     ~ Several doc updates/cleanup thanks to castaway ~
797
798     - converted build system to use Module::Install instead of
799       Module::Build (thanks to jrockway)
800
801     * Moose
802       - added all the meta classes to the immutable list and
803         set it to inline the accessors
804       - fix import to allow Sub::Exporter like { into => }
805             and { into_level => } (perigrin)
806       - exposed and documented init_meta() to allow better
807             embedding and extending of Moose (perigrin)
808
809         * t/
810           - complete re-organization of the test suite
811           - added some new tests as well
812           - finally re-enabled the Moose::POOP test since
813             the new version of DBM::Deep now works again
814             (thanks rob)
815
816     * Moose::Meta::Class
817       - fixed very odd and very nasty recursion bug with
818         inner/augment (mst)
819         - added tests for this (eilara)
820
821     * Moose::Meta::Attribute
822       Moose::Meta::Method::Constructor
823       Moose::Meta::Method::Accessor
824       - fixed issue with overload::Overloaded getting called
825         on non-blessed items. (RT #29269)
826         - added tests for this
827
828     * Moose::Meta::Method::Accessor
829       - fixed issue with generated accessor code making
830         assumptions about hash based classes (thanks to dexter)
831
832     * Moose::Coookbook::Snacks
833       - these are bits of documentation, not quite as big as
834         Recipes but which have no clear place in the module docs.
835         So they are Snacks! (horray for castaway++)
836
837     * Moose::Cookbook::Recipe4
838       - updated it to use the new ArrayRef[MyType] construct
839         - updated the accompanying test as well
840
841     +++ Major Refactor of the Type Constraint system +++
842     +++       with new features added as well        +++
843
844     * Moose::Util::TypeConstraint
845       - no longer uses package variable to keep track of
846         the type constraints, now uses the an instance of
847         Moose::Meta::TypeConstraint::Registry to do it
848       - added more sophisticated type notation parsing
849         (thanks to mugwump)
850         - added tests for this
851
852     * Moose::Meta::TypeConstraint
853       - some minor adjustments to make subclassing easier
854       - added the package_defined_in attribute so that we
855         can track where the type constraints are created
856
857     * Moose::Meta::TypeConstraint::Union
858       - this is now been refactored to be a subclass of
859         Moose::Meta::TypeConstraint
860
861     * Moose::Meta::TypeCoercion::Union
862       - this has been added to service the newly refactored
863         Moose::Meta::TypeConstraint::Union and is itself
864         a subclass of Moose::Meta::TypeCoercion
865
866     * Moose::Meta::TypeConstraint::Parameterized
867       - added this module (taken from MooseX::AttributeHelpers)
868         to help construct nested collection types
869         - added tests for this
870
871     * Moose::Meta::TypeConstraint::Registry
872       - added this class to keep track of type constraints
873
874 0.25 Mon. Aug. 13, 2007
875     * Moose
876       - Documentation update to reference Moose::Util::TypeConstraints
877         under 'isa' in 'has' for how to define a new type
878         (thanks to shlomif).
879
880     * Moose::Meta::Attribute
881       - required attributes now will no longer accept undef
882         from the constructor, even if there is a default and lazy
883         - added tests for this
884       - default subroutines must return a value which passes the
885         type constraint
886         - added tests for this
887
888     * Moose::Meta::Attribute
889     * Moose::Meta::Method::Constructor
890     * Moose::Meta::Method::Accessor
891       - type-constraint tests now handle overloaded objects correctly
892         in the error message
893         - added tests for this (thanks to EvanCarroll)
894
895     * Moose::Meta::TypeConstraint::Union
896       - added (has_)hand_optimized_constraint to this class so that
897         it behaves as the regular Moose::Meta::TypeConstraint does.
898
899     * Moose::Meta::Role
900       - large refactoring of this code
901       - added several more tests
902         - tests for subtle conflict resolition issues
903           added, but not currently running
904           (thanks to kolibre)
905
906     * Moose::Cookbook::Recipe7
907       - added new recipe for augment/inner functionality
908         (still in progress)
909         - added test for this
910
911     * Moose::Spec::Role
912       - a formal definition of roles (still in progress)
913
914     * Moose::Util
915       - utilities for easier working with Moose classes
916         - added tests for these
917
918     * Test::Moose
919       - This contains Moose specific test functions
920         - added tests for these
921
922 0.24 Tues. July 3, 2007
923     ~ Some doc updates/cleanup ~
924
925     * Moose::Meta::Attribute
926       - added support for roles to be given as parameters
927         to the 'handles' option.
928         - added tests and docs for this
929       - the has '+foo' attribute form now accepts changes to
930         the lazy option, and the addition of a handles option
931         (but not changing the handles option)
932         - added tests and docs for this
933
934     * Moose::Meta::Role
935       - required methods are now fetched using find_method_by_name
936         so that required methods can come from superclasses
937         - adjusted tests for this
938
939 0.23 Mon. June 18, 2007
940     * Moose::Meta::Method::Constructor
941       - fix inlined constructor for hierarchy with multiple BUILD methods (mst)
942     * Moose::Meta::Class
943       - Modify make_immutable to work with the new Class::MOP immutable
944         mechanism + POD + very basic test (groditi)
945     * Moose::Meta::Attribute
946       - Fix handles to use goto() so that caller() comes out properly on
947         the other side (perigrin)
948
949 0.22 Thurs. May 31, 2007
950     * Moose::Util::TypeConstraints
951       - fix for prototype undeclared issue when Moose::Util::TypeConstraints
952         loaded before consumers (e.g. Moose::Meta::Attribute) by predeclaring
953         prototypes for functions
954       - added the ClassName type constraint, this checks for strings
955         which will respond true to ->isa(UNIVERSAL).
956         - added tests and docs for this
957       - subtyping just in name now works correctly by making the
958         default for where be { 1 }
959         - added test for this
960
961     * Moose::Meta::Method::Accessor
962       - coerce and lazy now work together correctly, thanks to
963         merlyn for finding this bug
964         - tests added for this
965       - fix reader presedence bug in Moose::Meta::Attribute + tests
966
967     * Moose::Object
968       - Foo->new(undef) now gets ignored, it is assumed you meant to pass
969         a HASH-ref and missed. This produces better error messages then
970         having it die cause undef is not a HASH.
971         - added tests for this
972
973 0.21 Thursday, May 2nd, 2007
974     * Moose
975       - added SUPER_SLOT and INNER_SLOT class hashes to support unimport
976       - modified unimport to remove super and inner along with the rest
977         - altered unimport tests to handle this
978
979     * Moose::Role
980       - altered super export to populate SUPER_SLOT
981
982     * Moose::Meta::Class
983       - altered augment and override modifier application to use *_SLOT
984         - modified tests for these to unimport one test class each to test
985
986     * Moose::Meta::Role
987       - fixed issue where custom attribute metaclasses
988         where not handled correctly in roles
989         - added tests for this
990
991     * Moose::Meta::Class
992       - fixed issue where extending metaclasses with
993         roles would blow up. Thanks to Aankhen`` for
994         finding this insidious error, and it's solution.
995
996     ~~ lots of spelling and grammer fixes in the docs,
997        many many thanks to rlb3 and Aankhen for these :)
998
999 0.20 Friday, April 6th, 2007
1000     >> I messed up the SKIP logic in one test
1001        so this release is just to fix that.
1002
1003     * Moose
1004       - 'has' now also accepts an ARRAY ref
1005         to create multiple attrs (see docs)
1006         (thanks to konobi for this)
1007          - added tests and docs
1008
1009 0.19 Thurs. April 5th, 2007
1010     ~~ More documentation updates ~~
1011
1012     * Moose::Util::TypeConstraints
1013       - 'type' now supports messages as well
1014         thanks to phaylon for finding this
1015         - added tests for this
1016       - added &list_all_type_constraints and
1017         &list_all_builtin_type_constraints
1018         functions to facilitate introspection.
1019
1020     * Moose::Meta::Attribute
1021       - fixed regexp 'handles' declarations
1022         to build the list of delegated methods
1023         correctly (and not override important
1024         things like &new) thanks to ashleyb
1025         for finding this
1026         - added tests and docs for this
1027       - added the 'documentation' attributes
1028         so that you can actually document your
1029         attributes and inspect them through the
1030         meta-object.
1031         - added tests and docs for this
1032
1033     * Moose::Meta::Class
1034       - when loading custom attribute metaclasses
1035         it will first look in for the class in the
1036         Moose::Meta::Attribute::Custom::$name, and
1037         then default to just loading $name.
1038         - added tests and docs for this
1039
1040     * Moose::Meta::TypeConstraint
1041       - type constraints now stringify to their names.
1042         - added test for this
1043
1044     * misc.
1045       - added tests to assure we work with Module::Refresh
1046       - added stricter test skip logic in the Moose POOP
1047         test, ask Rob Kinyon why.
1048         - *cough* DBM::Deep 1.0 backwards compatability sucks *cough* ;)
1049
1050 0.18 Sat. March 10, 2007
1051     ~~ Many, many documentation updates ~~
1052
1053     * misc.
1054       - We now use Class::MOP::load_class to
1055         load all classes.
1056       - added tests to show types and subtypes
1057         working with Declare::Constraints::Simple
1058         and Test::Deep as constraint engines.
1059
1060 0.18_001
1061     !! You must have Class::MOP 0.37_001  !!
1062     !! for this developer release to work !!
1063
1064     This release was primarily adding the immutable
1065     feature to Moose. An immutable class is one which
1066     you promise not to alter. When you set the class
1067     as immutable it will perform various bits of
1068     memoization and inline certain part of the code
1069     (constructors, destructors and accessors). This
1070     minimizes (and in some cases totally eliminates)
1071     one of Moose's biggest performance hits. This
1072     feature is not on by default, and is 100% optional.
1073     It has several configurable bits as well, so you
1074     can pick and choose to your specific needs.
1075
1076     The changes involved in this were fairly wide and
1077     highly specific, but 100% backwards compatible, so
1078     I am not going to enumerate them here. If you are
1079     truely interested in what was changed, please do
1080     a diff :)
1081
1082 0.17 Tues. Nov. 14, 2006
1083     * Moose::Meta::Method::Accessor
1084       - bugfix for read-only accessors which
1085         are have a type constraint and lazy.
1086         Thanks to chansen for finding it.
1087
1088 0.16 Tues. Nov. 14, 2006
1089     ++ NOTE ++
1090     There are some speed improvements in this release,
1091     but they are only the begining, so stay tuned.
1092
1093     * Moose::Object
1094       - BUILDALL and DEMOLISHALL no longer get
1095         called unless they actually need to be.
1096         This gave us a signifigant speed boost
1097         for the cases when there is no BUILD or
1098         DEMOLISH method present.
1099
1100     * Moose::Util::TypeConstraints
1101     * Moose::Meta::TypeConstraint
1102       - added an 'optimize_as' option to the
1103         type constraint, which allows for a
1104         hand optimized version of the type
1105         constraint to be used when possible.
1106       - Any internally created type constraints
1107         now provide an optimized version as well.
1108
1109 0.15 Sun. Nov. 5, 2006
1110     ++ NOTE ++
1111     This version of Moose *must* have Class::MOP 0.36 in order
1112     to work correctly. A number of small internal tweaks have
1113     been made in order to be compatible with that release.
1114
1115     * Moose::Util::TypeConstraints
1116       - added &unimport so that you can clean out
1117         your class namespace of these exported
1118         keywords
1119
1120     * Moose::Meta::Class
1121       - fixed minor issue which occasionally
1122         comes up during global destruction
1123         (thanks omega)
1124       - moved Moose::Meta::Method::Overriden into
1125         its own file.
1126
1127     * Moose::Meta::Role
1128       - moved Moose::Meta::Role::Method into
1129         its own file.
1130
1131     * Moose::Meta::Attribute
1132       - changed how we do type checks so that
1133         we reduce the overall cost, but still
1134         retain correctness.
1135        *** API CHANGE ***
1136       - moved accessor generation methods to
1137         Moose::Meta::Method::Accessor to
1138         conform to the API changes from
1139         Class::MOP 0.36
1140
1141     * Moose::Meta::TypeConstraint
1142       - changed how constraints are compiled
1143         so that we do less recursion and more
1144         iteration. This makes the type check
1145         faster :)
1146       - moved Moose::Meta::TypeConstraint::Union
1147         into its own file
1148
1149     * Moose::Meta::Method::Accessor
1150       - created this from methods formerly found in
1151         Moose::Meta::Attribute
1152
1153     * Moose::Meta::Role::Method
1154       - moved this from Moose::Meta::Role
1155
1156     * Moose::Meta::Method::Overriden
1157       - moved this from Moose::Meta::Class
1158
1159     * Moose::Meta::TypeConstraint::Union
1160       - moved this from Moose::Meta::TypeConstraint
1161
1162 0.14 Mon. Oct. 9, 2006
1163
1164     * Moose::Meta::Attribute
1165       - fixed lazy attributes which were not getting
1166         checked with the type constraint (thanks ashley)
1167         - added tests for this
1168       - removed the over-enthusiastic DWIMery of the
1169         automatic ArrayRef and HashRef defaults, it
1170         broke predicates in an ugly way.
1171         - removed tests for this
1172
1173 0.13 Sat. Sept. 30, 2006
1174     ++ NOTE ++
1175     This version of Moose *must* have Class::MOP 0.35 in order
1176     to work correctly. A number of small internal tweaks have
1177     been made in order to be compatible with that release.
1178
1179     * Moose
1180       - Removed the use of UNIVERSAL::require to be a better
1181         symbol table citizen and remove a dependency
1182         (thanks Adam Kennedy)
1183
1184       **~~ removed experimental & undocumented feature ~~**
1185       - commented out the 'method' and 'self' keywords, see the
1186         comments for more info.
1187
1188     * Moose::Cookbook
1189       - added a FAQ and WTF files to document frequently
1190         asked questions and common problems
1191
1192     * Moose::Util::TypeConstraints
1193       - added GlobRef and FileHandle type constraint
1194         - added tests for this
1195
1196     * Moose::Meta::Attribute
1197       - if your attribute 'isa' ArrayRef of HashRef, and you have
1198         not explicitly set a default, then make the default DWIM.
1199         This will also work for subtypes of ArrayRef and HashRef
1200         as well.
1201       - you can now auto-deref subtypes of ArrayRef or HashRef too.
1202         - new test added for this (thanks to ashley)
1203
1204     * Moose::Meta::Role
1205       - added basic support for runtime role composition
1206         but this is still *highly experimental*, so feedback
1207         is much appreciated :)
1208         - added tests for this
1209
1210     * Moose::Meta::TypeConstraint
1211       - the type constraint now handles the coercion process
1212         through delegation, this is to support the coercion
1213         of unions
1214
1215     * Moose::Meta::TypeConstraint::Union
1216       - it is now possible for coercions to be performed
1217         on a type union
1218         - added tests for this (thanks to konobi)
1219
1220     * Moose::Meta::TypeCoercion
1221       - properly capturing error when type constraint
1222         is not found
1223
1224     * Build.PL
1225       - Scalar::Util 1.18 is bad on Win32, so temporarily
1226         only require version 1.17 for Win32 and cygwin.
1227         (thanks Adam Kennedy)
1228
1229 0.12 Sat. Sept. 1, 2006
1230     * Moose::Cookbook
1231       - Recipe5 (subtypes & coercion) has been written
1232
1233     * Moose
1234       - fixed "bad meta" error message to be more descriptive
1235       - fixed &unimport to not remove the &inner and &super
1236         keywords because we need to localize them.
1237       - fixed number of spelling/grammer issues, thanks Theory :)
1238
1239       **~~ experimental & undocumented feature ~~**
1240       - added the method and self keywords, they are basically
1241         just sugar, and they may not stay around.
1242
1243     * Moose::Object
1244       - added &dump method to easily Data::Dumper
1245         an object
1246
1247     * Moose::Meta::TypeConstraint
1248       - added the &is_a_type_of method to check both the current
1249         and the subtype of a method (similar to &isa with classes)
1250
1251     * Moose::Meta::Role
1252       - this is now a subclass of Class::MOP::Module, and no longer
1253         creates the _role_meta ugliness of before.
1254         - fixed tests to reflect this change
1255
1256 0.11 Wed. July 12, 2006
1257     * Moose
1258       - added an &unimport method to remove all the keywords
1259         that Moose will import, simply add 'no Moose' to the
1260         bottom of your class file.
1261
1262     * t/
1263       - fixed some test failures caused by a forgotten test
1264         dependency.
1265
1266 0.10 Thurs. July 6, 2006
1267     * Moose
1268       - improved error message when loading modules so
1269         it is less confusing when you load a role.
1270       - added &calculate_all_roles method to
1271         Moose::Meta::Class and Moose::Meta::Role
1272
1273     NOTE:
1274     This module has been tested against Class::MOP 0.30
1275     but it does not yet utilize the optimizations
1276     it makes available. Stay tuned for that ;)
1277
1278 0.09_03 Fri. June 23, 2006
1279     ++ DEVELOPER RELEASE ++
1280     * Moose
1281       - 'use strict' and 'use warnings' are no longer
1282          needed in Moose classes, Moose itself will
1283          turn them on for you.
1284          - added tests for this
1285       - moved code from exported subs to private methods
1286         in Moose::Meta::Class
1287
1288     * Moose::Role
1289       - as with Moose, strict and warnings are
1290         automatically turned on for you.
1291          - added tests for this
1292
1293     * Moose::Meta::Role
1294       - now handles an edge case for override errors
1295         - added tests for this
1296       - added some more edge case tests
1297
1298 0.09_02 Tues. May 16, 2006
1299     ++ DEVELOPER RELEASE ++
1300     * Moose
1301       - added prototypes to the exported subs
1302       - updated docs
1303
1304     * Moose::Role
1305       - added prototypes to the exported subs
1306       - updated docs
1307
1308     * Moose::Util::TypeConstraints
1309       - cleaned up prototypes for the subs
1310       - updated docs
1311
1312 0.09_01 Fri. May 12, 2006
1313     ++ DEVELOPER RELEASE ++
1314       - This release works in combination with
1315         Class::MOP 0.29_01, it is a developer
1316         release because it uses the a new
1317         instance sub-protocol and a fairly
1318         complete Role implementation. It has
1319         not yet been optimized, so it slower
1320         the the previous CPAN version. This
1321         release also lacks good updated docs,
1322         the official release will have updated docs.
1323
1324     * Moose
1325       - refactored the keyword exports
1326         - 'with' now checks Role validaity and
1327           accepts more than one Role at a time
1328         - 'extends' makes metaclass adjustments as
1329            needed to ensure metaclass compatability
1330
1331     * Moose::Role
1332       - refactored the keyword exports
1333         - 'with' now checks Role validaity and
1334           accepts more than one Role at a time
1335
1336     * Moose::Util::TypeConstraints
1337       - added the 'enum' keyword for simple
1338         string enumerations which can be used as
1339         type constraints
1340         - see example of usage in t/202_example.t
1341
1342     * Moose::Object
1343       - more careful checking of params to new()
1344
1345     * Moose::Meta::Role
1346       - much work done on the role composition
1347         - many new tests for conflict detection
1348           and composition edge cases
1349         - not enough documentation, I suggest
1350           looking at the tests
1351
1352     * Moose::Meta::Instance
1353       - added new Instance metaclass to support
1354         the new Class::MOP instance protocol
1355
1356     * Moose::Meta::Class
1357       - some small changes to support the new
1358         instance protocol
1359       - some small additions to support Roles
1360
1361     * Moose::Meta::Attribute
1362       - some improvements to the accessor generation code
1363         by nothingmuch
1364       - some small changes to support the new
1365         instance protocol
1366       - (still somewhat) experimental delegation support
1367         with the 'handles' option
1368         - added several tests for this
1369         - no docs for this yet
1370
1371 0.05 Thurs. April 27, 2006
1372     * Moose
1373       - keywords are now exported with Sub::Exporter
1374         thanks to chansen for this commit
1375       - has keyword now takes a 'metaclass' option
1376         to support custom attribute meta-classes
1377         on a per-attribute basis
1378         - added tests for this
1379       - the 'has' keyword not accepts inherited slot
1380         specifications (has '+foo'). This is still an
1381         experimental feature and probably not finished
1382         see t/038_attribute_inherited_slot_specs.t for
1383         more details, or ask about it on #moose
1384         - added tests for this
1385
1386     * Moose::Role
1387       - keywords are now exported with Sub::Exporter
1388
1389     * Moose::Utils::TypeConstraints
1390       - reorganized the type constraint hierarchy, thanks
1391         to nothingmuch and chansen for his help and advice
1392         on this
1393         - added some tests for this
1394       - keywords are now exported with Sub::Exporter
1395         thanks to chansen for this commit
1396
1397     * Moose::Meta::Class
1398       - due to changes in Class::MOP, we had to change
1399         construct_instance (for the better)
1400
1401     * Moose::Meta::Attribute
1402       - due to changes in Class::MOP, we had to add the
1403         initialize_instance_slot method (it's a good thing)
1404
1405     * Moose::Meta::TypeConstraint
1406       - added type constraint unions
1407         - added tests for this
1408       - added the is_subtype_of predicate method
1409         - added tests for this
1410
1411 0.04 Sun. April 16th, 2006
1412     * Moose::Role
1413       - Roles can now consume other roles
1414         - added tests for this
1415       - Roles can specify required methods now with
1416         the requires() keyword
1417         - added tests for this
1418
1419     * Moose::Meta::Role
1420       - ripped out much of it's guts ,.. much cleaner now
1421       - added required methods and correct handling of
1422         them in apply() for both classes and roles
1423         - added tests for this
1424       - no longer adds a does() method to consuming classes
1425         it relys on the one in Moose::Object
1426       - added roles attribute and some methods to support
1427         roles consuming roles
1428
1429     * Moose::Meta::Attribute
1430       - added support for triggers on attributes
1431         - added tests for this
1432       - added support for does option on an attribute
1433         - added tests for this
1434
1435     * Moose::Meta::Class
1436       - added support for attribute triggers in the
1437         object construction
1438         - added tests for this
1439
1440     * Moose
1441       - Moose no longer creates a subtype for your class
1442         if a subtype of the same name already exists, this
1443         should DWIM in 99.9999% of all cases
1444
1445     * Moose::Util::TypeConstraints
1446       - fixed bug where incorrect subtype conflicts were
1447         being reported
1448         - added test for this
1449
1450     * Moose::Object
1451       - this class can now be extended with 'use base' if
1452         you need it, it properly loads the metaclass class now
1453         - added test for this
1454
1455 0.03_02 Wed. April 12, 2006
1456     * Moose
1457       - you must now explictly use Moose::Util::TypeConstraints
1458         it no longer gets exported for you automatically
1459
1460     * Moose::Object
1461       - new() now accepts hash-refs as well as key/value lists
1462       - added does() method to check for Roles
1463         - added tests for this
1464
1465     * Moose::Meta::Class
1466       - added roles attribute along with the add_role() and
1467         does_role() methods
1468         - added tests for this
1469
1470     * Moose::Meta::Role
1471       - now adds a does() method to consuming classes
1472         which tests the class's hierarchy for roles
1473         - added tests for this
1474
1475 0.03_01 Mon. April 10, 2006
1476     * Moose::Cookbook
1477       - added new Role recipe (no content yet, only code)
1478
1479     * Moose
1480       - added 'with' keyword for Role support
1481         - added test and docs for this
1482       - fixed subtype quoting bug
1483         - added test for this
1484
1485     * Moose::Role
1486       - Roles for Moose
1487         - added test and docs
1488
1489     * Moose::Util::TypeConstraints
1490       - added the message keyword to add custom
1491         error messages to type constraints
1492
1493     * Moose::Meta::Role
1494       - the meta role to support Moose::Role
1495         - added tests and docs
1496
1497     * Moose::Meta::Class
1498       - moved a number of things from Moose.pm
1499         to here, they should have been here
1500         in the first place
1501
1502     * Moose::Meta::Attribute
1503       - moved the attribute option macros here
1504         instead of putting them in Moose.pm
1505
1506     * Moose::Meta::TypeConstraint
1507       - added the message attributes and the
1508         validate method
1509         - added tests and docs for this
1510
1511 0.03 Thurs. March 30, 2006
1512     * Moose::Cookbook
1513       - added the Moose::Cookbook with 5 recipes,
1514         describing all the stuff Moose can do.
1515
1516     * Moose
1517       - fixed an issue with &extends super class loading
1518         it now captures errors and deals with inline
1519         packages correctly (bug found by mst, solution
1520         stolen from alias)
1521       - added super/override & inner/augment features
1522         - added tests and docs for these
1523
1524     * Moose::Object
1525       - BUILDALL now takes a reference of the %params
1526         that are passed to &new, and passes that to
1527         each BUILD as well.
1528
1529     * Moose::Util::TypeConstraints
1530       - Type constraints now survive runtime reloading
1531         - added test for this
1532
1533         * Moose::Meta::Class
1534           - fixed the way attribute defaults are handled
1535             during instance construction (bug found by chansen)
1536
1537     * Moose::Meta::Attribute
1538       - read-only attributes now actually enforce their
1539         read-only-ness (this corrected in Class::MOP as
1540         well)
1541
1542 0.02 Tues. March 21, 2006
1543     * Moose
1544       - many more tests, fixing some bugs and
1545         edge cases
1546       - &extends now loads the base module with
1547         UNIVERSAL::require
1548         - added UNIVERSAL::require to the
1549           dependencies list
1550       ** API CHANGES **
1551       - each new Moose class will also create
1552         and register a subtype of Object which
1553         correspond to the new Moose class.
1554       - the 'isa' option in &has now only
1555         accepts strings, and will DWIM in
1556         almost all cases
1557
1558     * Moose::Util::TypeConstraints
1559       - added type coercion features
1560         - added tests for this
1561         - added support for this in attributes
1562           and instance construction
1563       ** API CHANGES **
1564       - type construction no longer creates a
1565         function, it registers the type instead.
1566         - added several functions to get the
1567           registered types
1568
1569     * Moose::Object
1570       - BUILDALL and DEMOLISHALL were broken
1571         because of a mis-named hash key, Whoops :)
1572
1573     * Moose::Meta::Attribute
1574       - adding support for coercion in the
1575         autogenerated accessors
1576
1577     * Moose::Meta::Class
1578       - adding support for coercion in the
1579         instance construction
1580
1581     * Moose::Meta::TypeConstraint
1582     * Moose::Meta::TypeCoercion
1583           - type constraints and coercions are now
1584             full fledges meta-objects
1585
1586 0.01 Wed. March 15, 2006
1587     - Moooooooooooooooooose!!!