last minute stupidness
[gitmo/Moose.git] / Changes
1 Revision history for Perl extension Moose
2
3 0.27 Tues. Nov. 13, 2007
4     * Moose::Meta::Attribute
5       - Added support for the new builder option (groditi)
6       - Added support for lazy_build option (groditi)
7
8     * Moose::Meta::Method::Accessor
9       - Added support for lazy_build option (groditi)
10       - Fix inline methods to work with corrected predicate 
11         behavior (groditi)
12
13     * Moose::Meta::Method::Constructor
14       - Added support for lazy_build option (groditi)
15
16     * t/
17       - tests for builder and lazy_build (groditi)
18
19     * fixing some misc. bits in the docs that 
20       got mentioned on CPAN Forum & perlmonks
21     
22     * Moose::Meta::Role
23       - fixed how required methods are handled 
24         when they encounter overriden or modified
25         methods from a class (thanks to confound).
26         - added tests for this
27
28     * Moose::Util::TypeConstraint
29       - fixed the type notation parser so that 
30         the | always creates a union and so is 
31         no longer a valid type char (thanks to 
32         konobi, mugwump and #moose for working 
33         this one out.)
34         - added more tests for this
35
36 0.26 Thurs. Sept. 27, 2007
37     == New Features ==
38     
39     * Parameterized Types
40       We now support parameterized collection types, such as: 
41           ArrayRef[Int]    # array or integers
42           HashRef[Object]  # a hash with object values
43       They can also be nested:
44           ArrayRef[HashRef[RegExpr]] # an array of hashes with regexpr values
45       And work with the type unions as well:
46           ArrayRef[Int | Str]  # array of integers of strings
47     
48     * Better Framework Extendability
49       Moose.pm is now "extendable" such that it is now much 
50       easier to extend the framework and add your own keywords 
51       and customizations. See the "EXTENDING AND EMBEDDING MOOSE"
52       section of the Moose.pm docs.
53     
54     * Moose Snacks!
55       In an effort to begin documenting some of the various 
56       details of Moose as well as some common idioms, we have 
57       created Moose::Cookbook::Snacks as a place to find 
58       small (easily digestable) nuggets of Moose code.
59     
60     ====
61     ~ Several doc updates/cleanup thanks to castaway ~
62     
63     - converted build system to use Module::Install instead of 
64       Module::Build (thanks to jrockway)
65
66     * Moose
67       - added all the meta classes to the immutable list and 
68         set it to inline the accessors
69       - fix import to allow Sub::Exporter like { into => } 
70             and { into_level => } (perigrin)
71       - exposed and documented init_meta() to allow better 
72             embedding and extending of Moose (perigrin)
73             
74         * t/
75           - complete re-organization of the test suite
76           - added some new tests as well 
77           - finally re-enabled the Moose::POOP test since
78             the new version of DBM::Deep now works again
79             (thanks rob)
80
81     * Moose::Meta::Class
82       - fixed very odd and very nasty recursion bug with 
83         inner/augment (mst)
84         - added tests for this (eilara)
85
86     * Moose::Meta::Attribute
87       Moose::Meta::Method::Constructor
88       Moose::Meta::Method::Accessor
89       - fixed issue with overload::Overloaded getting called 
90         on non-blessed items. (RT #29269)
91         - added tests for this
92     
93     * Moose::Meta::Method::Accessor
94       - fixed issue with generated accessor code making 
95         assumptions about hash based classes (thanks to dexter)
96     
97     * Moose::Coookbook::Snacks
98       - these are bits of documentation, not quite as big as 
99         Recipes but which have no clear place in the module docs. 
100         So they are Snacks! (horray for castaway++)
101
102     * Moose::Cookbook::Recipe4
103       - updated it to use the new ArrayRef[MyType] construct
104         - updated the accompanying test as well
105
106     +++ Major Refactor of the Type Constraint system +++
107     +++       with new features added as well        +++
108
109     * Moose::Util::TypeConstraint
110       - no longer uses package variable to keep track of 
111         the type constraints, now uses the an instance of
112         Moose::Meta::TypeConstraint::Registry to do it
113       - added more sophisticated type notation parsing
114         (thanks to mugwump)
115         - added tests for this
116
117     * Moose::Meta::TypeConstraint
118       - some minor adjustments to make subclassing easier
119       - added the package_defined_in attribute so that we 
120         can track where the type constraints are created
121       
122     * Moose::Meta::TypeConstraint::Union
123       - this is now been refactored to be a subclass of 
124         Moose::Meta::TypeConstraint
125         
126     * Moose::Meta::TypeCoercion::Union
127       - this has been added to service the newly refactored
128         Moose::Meta::TypeConstraint::Union and is itself 
129         a subclass of Moose::Meta::TypeCoercion
130       
131     * Moose::Meta::TypeConstraint::Parameterized
132       - added this module (taken from MooseX::AttributeHelpers)
133         to help construct nested collection types
134         - added tests for this
135     
136     * Moose::Meta::TypeConstraint::Registry
137       - added this class to keep track of type constraints
138
139 0.25 Mon. Aug. 13, 2007
140     * Moose
141       - Documentation update to reference Moose::Util::TypeConstraints 
142         under 'isa' in 'has' for how to define a new type 
143         (thanks to shlomif).
144
145     * Moose::Meta::Attribute
146       - required attributes now will no longer accept undef 
147         from the constructor, even if there is a default and lazy
148         - added tests for this
149       - default subroutines must return a value which passes the 
150         type constraint
151         - added tests for this
152     
153     * Moose::Meta::Attribute
154     * Moose::Meta::Method::Constructor
155     * Moose::Meta::Method::Accessor        
156       - type-constraint tests now handle overloaded objects correctly
157         in the error message
158         - added tests for this (thanks to EvanCarroll) 
159
160     * Moose::Meta::TypeConstraint::Union
161       - added (has_)hand_optimized_constraint to this class so that 
162         it behaves as the regular Moose::Meta::TypeConstraint does.
163
164     * Moose::Meta::Role
165       - large refactoring of this code
166       - added several more tests 
167         - tests for subtle conflict resolition issues 
168           added, but not currently running
169           (thanks to kolibre)
170
171     * Moose::Cookbook::Recipe7 
172       - added new recipe for augment/inner functionality 
173         (still in progress)
174         - added test for this
175
176     * Moose::Spec::Role
177       - a formal definition of roles (still in progress)
178
179     * Moose::Util
180       - utilities for easier working with Moose classes
181         - added tests for these
182
183     * Test::Moose
184       - This contains Moose specific test functions
185         - added tests for these
186
187 0.24 Tues. July 3, 2007
188     ~ Some doc updates/cleanup ~
189
190     * Moose::Meta::Attribute
191       - added support for roles to be given as parameters 
192         to the 'handles' option.
193         - added tests and docs for this
194       - the has '+foo' attribute form now accepts changes to 
195         the lazy option, and the addition of a handles option
196         (but not changing the handles option)
197         - added tests and docs for this
198
199     * Moose::Meta::Role
200       - required methods are now fetched using find_method_by_name
201         so that required methods can come from superclasses
202         - adjusted tests for this
203
204 0.23 Mon. June 18, 2007
205     * Moose::Meta::Method::Constructor
206       - fix inlined constructor for hierarchy with multiple BUILD methods (mst)
207     * Moose::Meta::Class
208       - Modify make_immutable to work with the new Class::MOP immutable
209         mechanism + POD + very basic test (groditi)
210     * Moose::Meta::Attribute
211       - Fix handles to use goto() so that caller() comes out properly on 
212         the other side (perigrin)
213
214 0.22 Thurs. May 31, 2007
215     * Moose::Util::TypeConstraints
216       - fix for prototype undeclared issue when Moose::Util::TypeConstraints 
217         loaded before consumers (e.g. Moose::Meta::Attribute) by predeclaring
218         prototypes for functions
219       - added the ClassName type constraint, this checks for strings 
220         which will respond true to ->isa(UNIVERSAL). 
221         - added tests and docs for this
222       - subtyping just in name now works correctly by making the 
223         default for where be { 1 }
224         - added test for this 
225
226     * Moose::Meta::Method::Accessor
227       - coerce and lazy now work together correctly, thanks to 
228         merlyn for finding this bug
229         - tests added for this
230       - fix reader presedence bug in Moose::Meta::Attribute + tests
231
232     * Moose::Object
233       - Foo->new(undef) now gets ignored, it is assumed you meant to pass
234         a HASH-ref and missed. This produces better error messages then 
235         having it die cause undef is not a HASH.
236         - added tests for this
237
238 0.21 Thursday, May 2nd, 2007
239     * Moose
240       - added SUPER_SLOT and INNER_SLOT class hashes to support unimport
241       - modified unimport to remove super and inner along with the rest
242         - altered unimport tests to handle this
243
244     * Moose::Role
245       - altered super export to populate SUPER_SLOT
246
247     * Moose::Meta::Class
248       - altered augment and override modifier application to use *_SLOT
249         - modified tests for these to unimport one test class each to test
250
251     * Moose::Meta::Role
252       - fixed issue where custom attribute metaclasses
253         where not handled correctly in roles
254         - added tests for this
255     
256     * Moose::Meta::Class
257       - fixed issue where extending metaclasses with 
258         roles would blow up. Thanks to Aankhen`` for
259         finding this insidious error, and it's solution.
260         
261     ~~ lots of spelling and grammer fixes in the docs, 
262        many many thanks to rlb3 and Aankhen for these :)
263
264 0.20 Friday, April 6th, 2007
265     >> I messed up the SKIP logic in one test
266        so this release is just to fix that.
267
268     * Moose
269       - 'has' now also accepts an ARRAY ref
270         to create multiple attrs (see docs)
271         (thanks to konobi for this)
272          - added tests and docs 
273
274 0.19 Thurs. April 5th, 2007
275     ~~ More documentation updates ~~
276
277     * Moose::Util::TypeConstraints
278       - 'type' now supports messages as well
279         thanks to phaylon for finding this
280         - added tests for this
281       - added &list_all_type_constraints and 
282         &list_all_builtin_type_constraints
283         functions to facilitate introspection.
284     
285     * Moose::Meta::Attribute
286       - fixed regexp 'handles' declarations 
287         to build the list of delegated methods
288         correctly (and not override important 
289         things like &new) thanks to ashleyb 
290         for finding this
291         - added tests and docs for this
292       - added the 'documentation' attributes
293         so that you can actually document your 
294         attributes and inspect them through the 
295         meta-object.
296         - added tests and docs for this
297
298     * Moose::Meta::Class
299       - when loading custom attribute metaclasses
300         it will first look in for the class in the 
301         Moose::Meta::Attribute::Custom::$name, and 
302         then default to just loading $name.
303         - added tests and docs for this
304
305     * Moose::Meta::TypeConstraint
306       - type constraints now stringify to their names.
307         - added test for this
308
309     * misc.
310       - added tests to assure we work with Module::Refresh 
311       - added stricter test skip logic in the Moose POOP 
312         test, ask Rob Kinyon why.
313         - *cough* DBM::Deep 1.0 backwards compatability sucks *cough* ;)
314
315 0.18 Sat. March 10, 2007
316     ~~ Many, many documentation updates ~~
317
318     * misc.
319       - We now use Class::MOP::load_class to 
320         load all classes.    
321       - added tests to show types and subtypes 
322         working with Declare::Constraints::Simple
323         and Test::Deep as constraint engines.
324
325 0.18_001
326     !! You must have Class::MOP 0.37_001  !!
327     !! for this developer release to work !!
328
329     This release was primarily adding the immutable
330     feature to Moose. An immutable class is one which 
331     you promise not to alter. When you set the class 
332     as immutable it will perform various bits of 
333     memoization and inline certain part of the code
334     (constructors, destructors and accessors). This 
335     minimizes (and in some cases totally eliminates)
336     one of Moose's biggest performance hits. This 
337     feature is not on by default, and is 100% optional.
338     It has several configurable bits as well, so you 
339     can pick and choose to your specific needs.
340     
341     The changes involved in this were fairly wide and 
342     highly specific, but 100% backwards compatible, so 
343     I am not going to enumerate them here. If you are 
344     truely interested in what was changed, please do 
345     a diff :)
346
347 0.17 Tues. Nov. 14, 2006
348     * Moose::Meta::Method::Accessor
349       - bugfix for read-only accessors which 
350         are have a type constraint and lazy.
351         Thanks to chansen for finding it.
352
353 0.16 Tues. Nov. 14, 2006
354     ++ NOTE ++
355     There are some speed improvements in this release, 
356     but they are only the begining, so stay tuned.
357     
358     * Moose::Object
359       - BUILDALL and DEMOLISHALL no longer get 
360         called unless they actually need to be.
361         This gave us a signifigant speed boost
362         for the cases when there is no BUILD or 
363         DEMOLISH method present.
364         
365     * Moose::Util::TypeConstraints
366     * Moose::Meta::TypeConstraint
367       - added an 'optimize_as' option to the 
368         type constraint, which allows for a
369         hand optimized version of the type 
370         constraint to be used when possible.
371       - Any internally created type constraints
372         now provide an optimized version as well.
373
374 0.15 Sun. Nov. 5, 2006
375     ++ NOTE ++
376     This version of Moose *must* have Class::MOP 0.36 in order 
377     to work correctly. A number of small internal tweaks have 
378     been made in order to be compatible with that release.
379
380     * Moose::Util::TypeConstraints
381       - added &unimport so that you can clean out 
382         your class namespace of these exported 
383         keywords
384     
385     * Moose::Meta::Class
386       - fixed minor issue which occasionally 
387         comes up during global destruction 
388         (thanks omega)
389       - moved Moose::Meta::Method::Overriden into 
390         its own file.
391       
392     * Moose::Meta::Role      
393       - moved Moose::Meta::Role::Method into 
394         its own file.
395               
396     * Moose::Meta::Attribute
397       - changed how we do type checks so that 
398         we reduce the overall cost, but still 
399         retain correctness.
400        *** API CHANGE ***
401       - moved accessor generation methods to 
402         Moose::Meta::Method::Accessor to 
403         conform to the API changes from 
404         Class::MOP 0.36
405           
406     * Moose::Meta::TypeConstraint
407       - changed how constraints are compiled
408         so that we do less recursion and more
409         iteration. This makes the type check 
410         faster :)
411       - moved Moose::Meta::TypeConstraint::Union
412         into its own file
413     
414     * Moose::Meta::Method::Accessor
415       - created this from methods formerly found in 
416         Moose::Meta::Attribute
417     
418     * Moose::Meta::Role::Method
419       - moved this from Moose::Meta::Role
420           
421     * Moose::Meta::Method::Overriden
422       - moved this from Moose::Meta::Class
423       
424     * Moose::Meta::TypeConstraint::Union
425       - moved this from Moose::Meta::TypeConstraint
426
427 0.14 Mon. Oct. 9, 2006
428
429     * Moose::Meta::Attribute
430       - fixed lazy attributes which were not getting 
431         checked with the type constraint (thanks ashley)
432         - added tests for this
433       - removed the over-enthusiastic DWIMery of the 
434         automatic ArrayRef and HashRef defaults, it 
435         broke predicates in an ugly way.
436         - removed tests for this
437
438 0.13 Sat. Sept. 30, 2006
439     ++ NOTE ++
440     This version of Moose *must* have Class::MOP 0.35 in order 
441     to work correctly. A number of small internal tweaks have 
442     been made in order to be compatible with that release.
443
444     * Moose
445       - Removed the use of UNIVERSAL::require to be a better
446         symbol table citizen and remove a dependency 
447         (thanks Adam Kennedy)
448
449       **~~ removed experimental & undocumented feature ~~**
450       - commented out the 'method' and 'self' keywords, see the 
451         comments for more info.
452
453     * Moose::Cookbook
454       - added a FAQ and WTF files to document frequently 
455         asked questions and common problems
456         
457     * Moose::Util::TypeConstraints
458       - added GlobRef and FileHandle type constraint
459         - added tests for this
460         
461     * Moose::Meta::Attribute
462       - if your attribute 'isa' ArrayRef of HashRef, and you have
463         not explicitly set a default, then make the default DWIM.
464         This will also work for subtypes of ArrayRef and HashRef 
465         as well.
466       - you can now auto-deref subtypes of ArrayRef or HashRef too.
467         - new test added for this (thanks to ashley)
468         
469     * Moose::Meta::Role
470       - added basic support for runtime role composition
471         but this is still *highly experimental*, so feedback 
472         is much appreciated :)
473         - added tests for this
474
475     * Moose::Meta::TypeConstraint
476       - the type constraint now handles the coercion process
477         through delegation, this is to support the coercion 
478         of unions
479         
480     * Moose::Meta::TypeConstraint::Union
481       - it is now possible for coercions to be performed 
482         on a type union
483         - added tests for this (thanks to konobi)
484
485     * Moose::Meta::TypeCoercion
486       - properly capturing error when type constraint 
487         is not found
488
489     * Build.PL
490       - Scalar::Util 1.18 is bad on Win32, so temporarily
491         only require version 1.17 for Win32 and cygwin.
492         (thanks Adam Kennedy)        
493
494 0.12 Sat. Sept. 1, 2006
495     * Moose::Cookbook
496       - Recipe5 (subtypes & coercion) has been written
497       
498     * Moose
499       - fixed "bad meta" error message to be more descriptive      
500       - fixed &unimport to not remove the &inner and &super  
501         keywords because we need to localize them.
502       - fixed number of spelling/grammer issues, thanks Theory :)
503       
504       **~~ experimental & undocumented feature ~~**
505       - added the method and self keywords, they are basically 
506         just sugar, and they may not stay around.
507         
508     * Moose::Object
509       - added &dump method to easily Data::Dumper 
510         an object
511         
512     * Moose::Meta::TypeConstraint
513       - added the &is_a_type_of method to check both the current
514         and the subtype of a method (similar to &isa with classes)
515
516     * Moose::Meta::Role
517       - this is now a subclass of Class::MOP::Module, and no longer
518         creates the _role_meta ugliness of before. 
519         - fixed tests to reflect this change
520     
521 0.11 Wed. July 12, 2006
522     * Moose
523       - added an &unimport method to remove all the keywords
524         that Moose will import, simply add 'no Moose' to the 
525         bottom of your class file. 
526         
527     * t/
528       - fixed some test failures caused by a forgotten test 
529         dependency.
530
531 0.10 Thurs. July 6, 2006
532     * Moose
533       - improved error message when loading modules so
534         it is less confusing when you load a role.
535       - added &calculate_all_roles method to 
536         Moose::Meta::Class and Moose::Meta::Role
537         
538     NOTE:
539     This module has been tested against Class::MOP 0.30
540     but it does not yet utilize the optimizations 
541     it makes available. Stay tuned for that ;)
542     
543 0.09_03 Fri. June 23, 2006
544     ++ DEVELOPER RELEASE ++
545     * Moose
546       - 'use strict' and 'use warnings' are no longer
547          needed in Moose classes, Moose itself will 
548          turn them on for you.
549          - added tests for this
550       - moved code from exported subs to private methods
551         in Moose::Meta::Class
552          
553     * Moose::Role
554       - as with Moose, strict and warnings are 
555         automatically turned on for you.
556          - added tests for this        
557         
558     * Moose::Meta::Role
559       - now handles an edge case for override errors
560         - added tests for this
561       - added some more edge case tests
562
563 0.09_02 Tues. May 16, 2006
564     ++ DEVELOPER RELEASE ++
565     * Moose
566       - added prototypes to the exported subs
567       - updated docs
568       
569     * Moose::Role
570       - added prototypes to the exported subs      
571       - updated docs
572       
573     * Moose::Util::TypeConstraints
574       - cleaned up prototypes for the subs      
575       - updated docs      
576
577 0.09_01 Fri. May 12, 2006
578     ++ DEVELOPER RELEASE ++
579       - This release works in combination with 
580         Class::MOP 0.29_01, it is a developer 
581         release because it uses the a new 
582         instance sub-protocol and a fairly
583         complete Role implementation. It has 
584         not yet been optimized, so it slower
585         the the previous CPAN version. This 
586         release also lacks good updated docs, 
587         the official release will have updated docs.
588
589     * Moose 
590       - refactored the keyword exports
591         - 'with' now checks Role validaity and 
592           accepts more than one Role at a time
593         - 'extends' makes metaclass adjustments as 
594            needed to ensure metaclass compatability
595           
596     * Moose::Role
597       - refactored the keyword exports
598         - 'with' now checks Role validaity and 
599           accepts more than one Role at a time
600           
601     * Moose::Util::TypeConstraints
602       - added the 'enum' keyword for simple 
603         string enumerations which can be used as 
604         type constraints
605         - see example of usage in t/202_example.t
606         
607     * Moose::Object
608       - more careful checking of params to new()
609       
610     * Moose::Meta::Role
611       - much work done on the role composition
612         - many new tests for conflict detection 
613           and composition edge cases
614         - not enough documentation, I suggest 
615           looking at the tests    
616       
617     * Moose::Meta::Instance
618       - added new Instance metaclass to support 
619         the new Class::MOP instance protocol
620         
621     * Moose::Meta::Class
622       - some small changes to support the new 
623         instance protocol
624       - some small additions to support Roles
625         
626     * Moose::Meta::Attribute
627       - some improvements to the accessor generation code
628         by nothingmuch
629       - some small changes to support the new 
630         instance protocol
631       - (still somewhat) experimental delegation support 
632         with the 'handles' option
633         - added several tests for this
634         - no docs for this yet
635
636 0.05 Thurs. April 27, 2006
637     * Moose
638       - keywords are now exported with Sub::Exporter
639         thanks to chansen for this commit
640       - has keyword now takes a 'metaclass' option 
641         to support custom attribute meta-classes 
642         on a per-attribute basis
643         - added tests for this  
644       - the 'has' keyword not accepts inherited slot
645         specifications (has '+foo'). This is still an 
646         experimental feature and probably not finished
647         see t/038_attribute_inherited_slot_specs.t for 
648         more details, or ask about it on #moose
649         - added tests for this
650         
651     * Moose::Role
652       - keywords are now exported with Sub::Exporter
653
654     * Moose::Utils::TypeConstraints
655       - reorganized the type constraint hierarchy, thanks
656         to nothingmuch and chansen for his help and advice 
657         on this
658         - added some tests for this
659       - keywords are now exported with Sub::Exporter
660         thanks to chansen for this commit
661
662     * Moose::Meta::Class
663       - due to changes in Class::MOP, we had to change
664         construct_instance (for the better)
665         
666     * Moose::Meta::Attribute
667       - due to changes in Class::MOP, we had to add the 
668         initialize_instance_slot method (it's a good thing)
669         
670     * Moose::Meta::TypeConstraint
671       - added type constraint unions 
672         - added tests for this
673       - added the is_subtype_of predicate method
674         - added tests for this
675
676 0.04 Sun. April 16th, 2006
677     * Moose::Role
678       - Roles can now consume other roles
679         - added tests for this
680       - Roles can specify required methods now with 
681         the requires() keyword
682         - added tests for this
683
684     * Moose::Meta::Role
685       - ripped out much of it's guts ,.. much cleaner now
686       - added required methods and correct handling of 
687         them in apply() for both classes and roles
688         - added tests for this
689       - no longer adds a does() method to consuming classes 
690         it relys on the one in Moose::Object
691       - added roles attribute and some methods to support 
692         roles consuming roles
693
694     * Moose::Meta::Attribute
695       - added support for triggers on attributes
696         - added tests for this
697       - added support for does option on an attribute 
698         - added tests for this
699         
700     * Moose::Meta::Class
701       - added support for attribute triggers in the 
702         object construction
703         - added tests for this
704     
705     * Moose
706       - Moose no longer creates a subtype for your class 
707         if a subtype of the same name already exists, this 
708         should DWIM in 99.9999% of all cases
709         
710     * Moose::Util::TypeConstraints
711       - fixed bug where incorrect subtype conflicts were 
712         being reported
713         - added test for this
714         
715     * Moose::Object
716       - this class can now be extended with 'use base' if
717         you need it, it properly loads the metaclass class now
718         - added test for this
719
720 0.03_02 Wed. April 12, 2006
721     * Moose
722       - you must now explictly use Moose::Util::TypeConstraints
723         it no longer gets exported for you automatically
724         
725     * Moose::Object
726       - new() now accepts hash-refs as well as key/value lists
727       - added does() method to check for Roles
728         - added tests for this
729
730     * Moose::Meta::Class
731       - added roles attribute along with the add_role() and 
732         does_role() methods
733         - added tests for this 
734
735     * Moose::Meta::Role
736       - now adds a does() method to consuming classes 
737         which tests the class's hierarchy for roles
738         - added tests for this
739
740 0.03_01 Mon. April 10, 2006
741     * Moose::Cookbook
742       - added new Role recipe (no content yet, only code)
743       
744     * Moose
745       - added 'with' keyword for Role support
746         - added test and docs for this
747       - fixed subtype quoting bug
748         - added test for this 
749
750     * Moose::Role
751       - Roles for Moose
752         - added test and docs
753
754     * Moose::Util::TypeConstraints
755       - added the message keyword to add custom
756         error messages to type constraints        
757       
758     * Moose::Meta::Role
759       - the meta role to support Moose::Role
760         - added tests and docs
761         
762     * Moose::Meta::Class
763       - moved a number of things from Moose.pm 
764         to here, they should have been here 
765         in the first place
766
767     * Moose::Meta::Attribute
768       - moved the attribute option macros here
769         instead of putting them in Moose.pm
770
771     * Moose::Meta::TypeConstraint
772       - added the message attributes and the 
773         validate method
774         - added tests and docs for this
775
776 0.03 Thurs. March 30, 2006
777     * Moose::Cookbook
778       - added the Moose::Cookbook with 5 recipes, 
779         describing all the stuff Moose can do.
780
781     * Moose
782       - fixed an issue with &extends super class loading
783         it now captures errors and deals with inline 
784         packages correctly (bug found by mst, solution 
785         stolen from alias)
786       - added super/override & inner/augment features
787         - added tests and docs for these
788     
789     * Moose::Object
790       - BUILDALL now takes a reference of the %params 
791         that are passed to &new, and passes that to 
792         each BUILD as well.
793         
794     * Moose::Util::TypeConstraints
795       - Type constraints now survive runtime reloading
796         - added test for this
797
798         * Moose::Meta::Class
799           - fixed the way attribute defaults are handled 
800             during instance construction (bug found by chansen)
801
802     * Moose::Meta::Attribute
803       - read-only attributes now actually enforce their
804         read-only-ness (this corrected in Class::MOP as 
805         well)
806
807 0.02 Tues. March 21, 2006
808     * Moose
809       - many more tests, fixing some bugs and  
810         edge cases
811       - &extends now loads the base module with
812         UNIVERSAL::require 
813         - added UNIVERSAL::require to the 
814           dependencies list
815       ** API CHANGES **
816       - each new Moose class will also create 
817         and register a subtype of Object which 
818         correspond to the new Moose class.      
819       - the 'isa' option in &has now only 
820         accepts strings, and will DWIM in 
821         almost all cases
822     
823     * Moose::Util::TypeConstraints
824       - added type coercion features
825         - added tests for this
826         - added support for this in attributes 
827           and instance construction
828       ** API CHANGES **
829       - type construction no longer creates a 
830         function, it registers the type instead.
831         - added several functions to get the 
832           registered types 
833
834     * Moose::Object
835       - BUILDALL and DEMOLISHALL were broken 
836         because of a mis-named hash key, Whoops :)
837     
838     * Moose::Meta::Attribute
839       - adding support for coercion in the
840         autogenerated accessors
841         
842     * Moose::Meta::Class
843       - adding support for coercion in the
844         instance construction  
845
846     * Moose::Meta::TypeConstraint
847     * Moose::Meta::TypeCoercion
848           - type constraints and coercions are now 
849             full fledges meta-objects
850
851 0.01 Wed. March 15, 2006
852     - Moooooooooooooooooose!!!