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