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