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