Revision history for Perl extension Moose

0.05 Thurs. April 27, 2006
    * Moose
      - keywords are now exported with Sub::Exporter
        thanks to chansen for this commit
      - has keyword now takes a 'metaclass' option 
        to support custom attribute meta-classes 
        on a per-attribute basis
        - added tests for this  
      - the 'has' keyword not accepts inherited slot
        specifications (has '+foo'). This is still an 
        experimental feature and probably not finished
        see t/038_attribute_inherited_slot_specs.t for 
        more details, or ask about it on #moose
        - added tests for this
        
    * Moose::Role
      - keywords are now exported with Sub::Exporter

    * Moose::Utils::TypeConstraints
      - reorganized the type constraint hierarchy, thanks
        to nothingmuch and chansen for his help and advice 
        on this
        - added some tests for this
      - keywords are now exported with Sub::Exporter
        thanks to chansen for this commit

    * Moose::Meta::Class
      - due to changes in Class::MOP, we had to change
        construct_instance (for the better)
        
    * Moose::Meta::Attribute
      - due to changes in Class::MOP, we had to add the 
        initialize_instance_slot method (it's a good thing)
        
    * Moose::Meta::TypeConstraint
      - added type constraint unions 
        - added tests for this
      - added the is_subtype_of predicate method
        - added tests for this

0.04 Sun. April 16th, 2006
    * Moose::Role
      - Roles can now consume other roles
        - added tests for this
      - Roles can specify required methods now with 
        the requires() keyword
        - added tests for this

    * Moose::Meta::Role
      - ripped out much of it's guts ,.. much cleaner now
      - added required methods and correct handling of 
        them in apply() for both classes and roles
        - added tests for this
      - no longer adds a does() method to consuming classes 
        it relys on the one in Moose::Object
      - added roles attribute and some methods to support 
        roles consuming roles

    * Moose::Meta::Attribute
      - added support for triggers on attributes
        - added tests for this
      - added support for does option on an attribute 
        - added tests for this
        
    * Moose::Meta::Class
      - added support for attribute triggers in the 
        object construction
        - added tests for this
    
    * Moose
      - Moose no longer creates a subtype for your class 
        if a subtype of the same name already exists, this 
        should DWIM in 99.9999% of all cases
        
    * Moose::Util::TypeConstraints
      - fixed bug where incorrect subtype conflicts were 
        being reported
        - added test for this
        
    * Moose::Object
      - this class can now be extended with 'use base' if
        you need it, it properly loads the metaclass class now
        - added test for this

0.03_02 Wed. April 12, 2006
    * Moose
      - you must now explictly use Moose::Util::TypeConstraints
        it no longer gets exported for you automatically
        
    * Moose::Object
      - new() now accepts hash-refs as well as key/value lists
      - added does() method to check for Roles
        - added tests for this

    * Moose::Meta::Class
      - added roles attribute along with the add_role() and 
        does_role() methods
        - added tests for this 

    * Moose::Meta::Role
      - now adds a does() method to consuming classes 
        which tests the class's hierarchy for roles
        - added tests for this

0.03_01 Mon. April 10, 2006
    * Moose::Cookbook
      - added new Role recipe (no content yet, only code)
      
    * Moose
      - added 'with' keyword for Role support
        - added test and docs for this
      - fixed subtype quoting bug
        - added test for this 

    * Moose::Role
      - Roles for Moose
        - added test and docs

    * Moose::Util::TypeConstraints
      - added the message keyword to add custom
        error messages to type constraints        
      
    * Moose::Meta::Role
      - the meta role to support Moose::Role
        - added tests and docs
        
    * Moose::Meta::Class
      - moved a number of things from Moose.pm 
        to here, they should have been here 
        in the first place

    * Moose::Meta::Attribute
      - moved the attribute option macros here
        instead of putting them in Moose.pm

    * Moose::Meta::TypeConstraint
      - added the message attributes and the 
        validate method
        - added tests and docs for this

0.03 Thurs. March 30, 2006
    * Moose::Cookbook
      - added the Moose::Cookbook with 5 recipes, 
        describing all the stuff Moose can do.

    * Moose
      - fixed an issue with &extends super class loading
        it now captures errors and deals with inline 
        packages correctly (bug found by mst, solution 
        stolen from alias)
      - added super/override & inner/augment features
        - added tests and docs for these
    
    * Moose::Object
      - BUILDALL now takes a reference of the %params 
        that are passed to &new, and passes that to 
        each BUILD as well.
        
    * Moose::Util::TypeConstraints
      - Type constraints now survive runtime reloading
        - added test for this

	* Moose::Meta::Class
	  - fixed the way attribute defaults are handled 
	    during instance construction (bug found by chansen)

    * Moose::Meta::Attribute
      - read-only attributes now actually enforce their
        read-only-ness (this corrected in Class::MOP as 
        well)

0.02 Tues. March 21, 2006
    * Moose
      - many more tests, fixing some bugs and  
        edge cases
      - &extends now loads the base module with
        UNIVERSAL::require 
        - added UNIVERSAL::require to the 
          dependencies list
      ** API CHANGES **
      - each new Moose class will also create 
        and register a subtype of Object which 
        correspond to the new Moose class.      
      - the 'isa' option in &has now only 
        accepts strings, and will DWIM in 
        almost all cases
    
    * Moose::Util::TypeConstraints
      - added type coercion features
        - added tests for this
        - added support for this in attributes 
          and instance construction
      ** API CHANGES **
      - type construction no longer creates a 
        function, it registers the type instead.
        - added several functions to get the 
          registered types 

    * Moose::Object
      - BUILDALL and DEMOLISHALL were broken 
        because of a mis-named hash key, Whoops :)
    
    * Moose::Meta::Attribute
      - adding support for coercion in the
        autogenerated accessors
        
    * Moose::Meta::Class
      - adding support for coercion in the
        instance construction  

    * Moose::Meta::TypeConstraint
    * Moose::Meta::TypeCoercion
	  - type constraints and coercions are now 
	    full fledges meta-objects

0.01 Wed. March 15, 2006
    - Moooooooooooooooooose!!!