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