Revision history for Perl extension Moose
+0.34
+ ~~~ more misc. doc. fixes ~~~
+ ~~ updated copyright dates ~~
+
+ Moose is now a postmodern object system
+ - (see the POD for details)
+
+ * Moose::Meta::Method::Accessor
+ - fixed bug when passing a list of values to
+ an accessor would get (incorrectly) ignored.
+ Thanks to Sartak for finding this ;)
+ - added tests for this (Sartak again)
+
+ * Moose::Meta::Method::Accessor
+ Moose::Meta::Method::Constructor
+ Moose::Meta::Attribute
+ Moose::Meta::TypeConstraint
+ Moose::Meta::TypeCoercion
+ - lots of cleanup of such things as:
+ - generated methods
+ - type constraint handling
+ - error handling/messages
+ (thanks to nothingmuch)
+
+ * Moose::Util::TypeConstraints
+ - all optimized type constraint subs are now
+ pulled from the Moose::Util::TypeConstraints::OptimizedConstraints
+ module (thanks to nothingmuch)
+
+ * Moose::Util::TypeConstraints::OptimizedConstraints
+ - added this module (see above)
+
+0.33 Fri. Dec. 14, 2007
+ !! Moose now loads 2 x faster !!
+ !! with new Class::MOP 0.49 !!
+
+ ++ new oose.pm module to make command line
+ Moose-ness easier (see POD docs for more)
+
+ * Moose::Meta::Class
+ * Moose::Meta::Role
+ - several tweaks to take advantage of the
+ new method map caching in Class::MOP
+
+ * Moose::Meta::TypeConstraint::Parameterized
+ - allow subtypes of ArrayRef and HashRef to
+ be used as a container (sartak)
+ - added tests for this
+ - basic support for coercion to ArrayRef and
+ HashRef for containers (sartak)
+ - added tests for this
+
+ * Moose::Meta::TypeCoercion
+ - coercions will now create subtypes as needed
+ so you can now add coercions to parameterized
+ types without having to explictly define them
+ - added tests for this
+
+ * Moose::Meta::Method::Accessor
+ - allow subclasses to decide whether we need
+ to copy the value into a new variable (sartak)
+
+0.32 Tues. Dec. 4, 2007
+ * Moose::Util::TypeConstraints
+ - fixing how subtype aliases of unions work
+ they should inherit the parent's coercion
+ - added tests for this
+ - you can now define multiple coercions on
+ a single type at different times instead of
+ having to do it all in one place
+ - added tests for this
+
+ * Moose::Meta::TypeConstraint
+ - there is now a default constraint of sub { 1 }
+ instead of Moose::Util::TypeConstraints setting
+ this for us
+
+ * Moose::Meta::TypeCoercion
+ * Moose::Meta::TypeCoercion::Union
+ - added the &has_coercion_for_type and
+ &add_type_coercions methods to support the
+ new features above (although you cannot add
+ more type coercions for Union types)
+
+0.31 Mon. Nov. 26, 2007
+ * Moose::Meta::Attribute
+ - made the +attr syntax handle extending types with
+ parameters. So "has '+foo' => (isa => 'ArrayRef[Int]')"
+ now works if the original foo is an ArrayRef.
+ - added tests for this.
+ - delegation now works even if the attribute does not
+ have a reader method using the get_read_method_ref
+ method from Class::MOP::Attribute.
+ - added tests for this
+ - added docs for this
+
+ * Moose::Util::TypeConstraints
+ - passing no "additional attribute info" to
+ &find_or_create_type_constraint will no longer
+ attempt to create an __ANON__ type for you,
+ instead it will just return undef.
+ - added docs for this
+
+0.30 Fri. Nov. 23, 2007
+ * Moose::Meta::Method::Constructor
+ -builder related bug in inlined constructor. (groditi)
+
+ * Moose::Meta::Method::Accessor
+ - genereate unnecessary calls to predicates and refactor
+ code generation for runtime speed (groditi)
+
+ * Moose::Util::TypeConstraints
+ - fix ClassName constraint to introspect symbol table (mst)
+ - added more tests for this (mst)
+ - fixed it so that subtype 'Foo' => as 'HashRef[Int]' ...
+ with work correctly.
+ - added tests for this
+
+ * Moose::Cookbook
+ - adding the link to Recipie 11 (written by Sartak)
+ - adding test for SYNOPSIS code
+
+ * t/
+ - New tests for builder bug. Upon instantiation, if an
+ attribute had a builder, no value and was not lazy the
+ builder default was not getting run, oops. (groditi)
+
+0.29 Tues. Nov. 13, 2007
+ * Moose::Meta::Attribute
+ - Fix error message on missing builder method (groditi)
+
+ * Moose::Meta::Method::Accessor
+ - Fix error message on missing builder method (groditi)
+
+ * t/
+ - Add test to check for the correct error message when
+ builder method is missing (groditi)
+
+0.28 Tues. Nov. 13, 2007
+ - 0.27 packaged incorrectly (groditi)
+
+0.27 Tues. Nov. 13, 2007
+ * Moose::Meta::Attribute
+ - Added support for the new builder option (groditi)
+ - Added support for lazy_build option (groditi)
+ - Changed slot initialization for predicate changes (groditi)
+
+ * Moose::Meta::Method::Accessor
+ - Added support for lazy_build option (groditi)
+ - Fix inline methods to work with corrected predicate
+ behavior (groditi)
+
+ * Moose::Meta::Method::Constructor
+ - Added support for lazy_build option (groditi)
+
+ * t/
+ - tests for builder and lazy_build (groditi)
+
+ * fixing some misc. bits in the docs that
+ got mentioned on CPAN Forum & perlmonks
+
+ * Moose::Meta::Role
+ - fixed how required methods are handled
+ when they encounter overriden or modified
+ methods from a class (thanks to confound).
+ - added tests for this
+
+ * Moose::Util::TypeConstraint
+ - fixed the type notation parser so that
+ the | always creates a union and so is
+ no longer a valid type char (thanks to
+ konobi, mugwump and #moose for working
+ this one out.)
+ - added more tests for this
+
+0.26 Thurs. Sept. 27, 2007
+ == New Features ==
+
+ * Parameterized Types
+ We now support parameterized collection types, such as:
+ ArrayRef[Int] # array or integers
+ HashRef[Object] # a hash with object values
+ They can also be nested:
+ ArrayRef[HashRef[RegExpr]] # an array of hashes with regexpr values
+ And work with the type unions as well:
+ ArrayRef[Int | Str] # array of integers of strings
+
+ * Better Framework Extendability
+ Moose.pm is now "extendable" such that it is now much
+ easier to extend the framework and add your own keywords
+ and customizations. See the "EXTENDING AND EMBEDDING MOOSE"
+ section of the Moose.pm docs.
+
+ * Moose Snacks!
+ In an effort to begin documenting some of the various
+ details of Moose as well as some common idioms, we have
+ created Moose::Cookbook::Snacks as a place to find
+ small (easily digestable) nuggets of Moose code.
+
+ ====
+ ~ Several doc updates/cleanup thanks to castaway ~
+
+ - converted build system to use Module::Install instead of
+ Module::Build (thanks to jrockway)
+
+ * Moose
+ - added all the meta classes to the immutable list and
+ set it to inline the accessors
+ - fix import to allow Sub::Exporter like { into => }
+ and { into_level => } (perigrin)
+ - exposed and documented init_meta() to allow better
+ embedding and extending of Moose (perigrin)
+
+ * t/
+ - complete re-organization of the test suite
+ - added some new tests as well
+ - finally re-enabled the Moose::POOP test since
+ the new version of DBM::Deep now works again
+ (thanks rob)
+
+ * Moose::Meta::Class
+ - fixed very odd and very nasty recursion bug with
+ inner/augment (mst)
+ - added tests for this (eilara)
+
+ * Moose::Meta::Attribute
+ Moose::Meta::Method::Constructor
+ Moose::Meta::Method::Accessor
+ - fixed issue with overload::Overloaded getting called
+ on non-blessed items. (RT #29269)
+ - added tests for this
+
+ * Moose::Meta::Method::Accessor
+ - fixed issue with generated accessor code making
+ assumptions about hash based classes (thanks to dexter)
+
+ * Moose::Coookbook::Snacks
+ - these are bits of documentation, not quite as big as
+ Recipes but which have no clear place in the module docs.
+ So they are Snacks! (horray for castaway++)
+
+ * Moose::Cookbook::Recipe4
+ - updated it to use the new ArrayRef[MyType] construct
+ - updated the accompanying test as well
+
+ +++ Major Refactor of the Type Constraint system +++
+ +++ with new features added as well +++
+
+ * Moose::Util::TypeConstraint
+ - no longer uses package variable to keep track of
+ the type constraints, now uses the an instance of
+ Moose::Meta::TypeConstraint::Registry to do it
+ - added more sophisticated type notation parsing
+ (thanks to mugwump)
+ - added tests for this
+
+ * Moose::Meta::TypeConstraint
+ - some minor adjustments to make subclassing easier
+ - added the package_defined_in attribute so that we
+ can track where the type constraints are created
+
+ * Moose::Meta::TypeConstraint::Union
+ - this is now been refactored to be a subclass of
+ Moose::Meta::TypeConstraint
+
+ * Moose::Meta::TypeCoercion::Union
+ - this has been added to service the newly refactored
+ Moose::Meta::TypeConstraint::Union and is itself
+ a subclass of Moose::Meta::TypeCoercion
+
+ * Moose::Meta::TypeConstraint::Parameterized
+ - added this module (taken from MooseX::AttributeHelpers)
+ to help construct nested collection types
+ - added tests for this
+
+ * Moose::Meta::TypeConstraint::Registry
+ - added this class to keep track of type constraints
+
+0.25 Mon. Aug. 13, 2007
+ * Moose
+ - Documentation update to reference Moose::Util::TypeConstraints
+ under 'isa' in 'has' for how to define a new type
+ (thanks to shlomif).
+
+ * Moose::Meta::Attribute
+ - required attributes now will no longer accept undef
+ from the constructor, even if there is a default and lazy
+ - added tests for this
+ - default subroutines must return a value which passes the
+ type constraint
+ - added tests for this
+
+ * Moose::Meta::Attribute
+ * Moose::Meta::Method::Constructor
+ * Moose::Meta::Method::Accessor
+ - type-constraint tests now handle overloaded objects correctly
+ in the error message
+ - added tests for this (thanks to EvanCarroll)
+
+ * Moose::Meta::TypeConstraint::Union
+ - added (has_)hand_optimized_constraint to this class so that
+ it behaves as the regular Moose::Meta::TypeConstraint does.
+
+ * Moose::Meta::Role
+ - large refactoring of this code
+ - added several more tests
+ - tests for subtle conflict resolition issues
+ added, but not currently running
+ (thanks to kolibre)
+
+ * Moose::Cookbook::Recipe7
+ - added new recipe for augment/inner functionality
+ (still in progress)
+ - added test for this
+
+ * Moose::Spec::Role
+ - a formal definition of roles (still in progress)
+
+ * Moose::Util
+ - utilities for easier working with Moose classes
+ - added tests for these
+
+ * Test::Moose
+ - This contains Moose specific test functions
+ - added tests for these
+
+0.24 Tues. July 3, 2007
+ ~ Some doc updates/cleanup ~
+
+ * Moose::Meta::Attribute
+ - added support for roles to be given as parameters
+ to the 'handles' option.
+ - added tests and docs for this
+ - the has '+foo' attribute form now accepts changes to
+ the lazy option, and the addition of a handles option
+ (but not changing the handles option)
+ - added tests and docs for this
+
+ * Moose::Meta::Role
+ - required methods are now fetched using find_method_by_name
+ so that required methods can come from superclasses
+ - adjusted tests for this
+
+0.23 Mon. June 18, 2007
+ * Moose::Meta::Method::Constructor
+ - fix inlined constructor for hierarchy with multiple BUILD methods (mst)
+ * Moose::Meta::Class
+ - Modify make_immutable to work with the new Class::MOP immutable
+ mechanism + POD + very basic test (groditi)
+ * Moose::Meta::Attribute
+ - Fix handles to use goto() so that caller() comes out properly on
+ the other side (perigrin)
+
0.22 Thurs. May 31, 2007
* Moose::Util::TypeConstraints
- fix for prototype undeclared issue when Moose::Util::TypeConstraints