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