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