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