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