Revision history for Perl extension Moose
-0.46
+0.58
+ !! This release has an incompatible change regarding !!
+ !! how roles add methods to a class !!
+
+ * Roles and role application
+ ! Roles now add methods by calling add_method, not
+ alias_method. They make sure to always provide a method
+ object, which will be cloned internally. This means that it is
+ now possible to track the source of a method provided by a
+ role, and even follow its history through intermediate roles.
+
+ This means that methods added by a role now show up when
+ looking at a class's method list/map. (Dave Rolsky)
+
+ * Makefile.PL
+ - From this release on, we'll try to maintain a list of
+ conflicting modules, and warn you if you have one
+ installed. For example, this release conflicts with ...
+ - MooseX::Singleton <= 0.11
+ - MooseX::Params::Validate <= 0.05
+ - Fey::ORM <= 0.10
+
+ In general, we try to not break backwards compatibility for
+ most Moose users, but MooseX modules and other code which
+ extends Moose's metaclasses is often affected by very small
+ changes in the Moose internals.
+
+ * Moose::Meta::Method::Delegation
+ * Moose::Meta::Attribute
+ - Delegation methods now have their own method class. (Dave
+ Rolsky)
+
+ * Moose::Meta::TypeConstraint::Parameterizable
+ - Added a new method 'parameterize' which is basically a factory
+ for the containing constraint. This makes it easier to create
+ new types of parameterized constraints. (jnapiorkowski)
+
+ * Moose::Meta::TypeConstraint::Union
+ - Changed the way Union types canonicalize their names to follow
+ the normalized TC naming rules, which means we strip all
+ whitespace. (jnapiorkowski)
+
+ * Moose::Util::TypeConstraints
+ - Parameter and Union args are now sorted, this makes Int|Str
+ the same constraint as Str|Int. (jnapiorkowski)
+ - Changes to the way Union types are parsed to more correctly
+ stringify their names. (jnapiorkowski)
+ - When creating a parameterized type, we now use the new
+ parameterize method. (jnapiorkowski)
+ - Incoming type constraint strings are now normalized to remove
+ all whitespace differences. (jnapiorkowski)
+ - Changed the way we parse type constraint strings so that we now
+ match TC[Int,Int,...] and TC[name=>Str] as parameterized type
+ constraints. This lays the foundation for more flexible type
+ constraint implementations.
+
+ * Tests and docs for all the above. (jnapiorkowski)
+
+ * Moose::Exporter
+ * Moose
+ - Moose::Exporter will no longer remove a subroutine that the
+ exporting package re-exports. Moose re-exports the
+ Carp::confess function, among others. The reasoning is that we
+ cannot know whether you have also explicitly imported those
+ functions for your own use, so we err on the safe side and
+ always keep them. (Dave Rolsky)
+ - added tests for this (rafl)
+
+ * Moose::Meta::Class
+ - Changes to how we fix metaclass compatibility that are much
+ too complicated to go into. The summary is that Moose is much
+ less likely to complain about metaclass incompatibility
+ now. In particular, if two metaclasses differ because
+ Moose::Util::MetaRole was used on the two corresponding
+ classes, then the difference in roles is reconciled for the
+ subclass's metaclass. (Dave Rolsky)
+ - Squashed an warning in _process_attribute (thepler)
+
+ * Moose::Meta::Role
+ - throw exceptions (sooner) for invalid attribute names (thepler)
+ - added tests for this (thepler)
+
+ * Moose::Util::MetaRole
+ - If you explicitly set a constructor or destructor class for a
+ metaclass object, and then applied roles to the metaclass,
+ that explicitly set class would be lost and replaced with the
+ default.
+
+ * Moose::Meta::Class
+ * Moose::Meta::Attribute
+ * Moose::Meta::Method
+ * Moose
+ * Moose::Object
+ * Moose::Error::Default
+ * Moose::Error::Croak
+ * Moose::Error::Confess
+ - All instances of confess() changed to use overridable
+ C<throw_error> method. This method ultimately calls a class
+ constructor, and you can change the class being called. In
+ addition, errors now pass more information than just a string.
+ The default C<error_class> behaves like C<Carp::confess>, so
+ the behavior is not visibly different for end users.
+
+0.57 Wed September 3, 2008
+ * Moose::Intro
+ - A new bit of doc intended to introduce folks familiar with
+ "standard" Perl 5 OO to Moose concepts. (Dave Rolsky)
+
+ * Moose::Unsweetened
+ - Shows examples of two classes, each done first with and then
+ without Moose. This makes a nice parallel to
+ Moose::Intro. (Dave Rolsky)
+
+ * Moose::Util::TypeConstraints
+ - Fixed a bug in find_or_parse_type_constraint so that it
+ accepts a Moose::Meta::TypeConstraint object as the parent
+ type, not just a name (jnapiorkowski)
+ - added tests (jnapiorkowski)
+
+ * Moose::Exporter
+ - If Sub::Name was not present, unimporting failed to actually
+ remove some sugar subs, causing test failures (Dave Rolsky)
+
+0.56 Mon September 1, 2008
+ For those not following the series of dev releases, there are
+ several major changes in this release of Moose.
+ ! Moose::init_meta should now be called as a method. See the
+ docs for details.
+
+ - Major performance improvements by nothingmuch.
+
+ - New modules for extension writers, Moose::Exporter and
+ Moose::Util::MetaRole by Dave Rolsky.
+
+ - Lots of doc improvements and additions, especially in the
+ cookbook sections.
+
+ - Various bug fixes.
+
+ * Removed all references to the experimental-but-no-longer-needed
+ Moose::Meta::Role::Application::ToMetaclassInstance.
+
+ * Require Class::MOP 0.65.
+
+0.55_04 Sat August 30, 2008
+ * Moose::Util::MetaRole
+ * Moose::Cookbook::Extending::Recipe2
+ - This simplifies the application of roles to any meta class, as
+ well as the base object class. Reimplemented metaclass traits
+ using this module. (Dave Rolsky)
+
+ * Moose::Cookbook::Extending::Recipe1
+ - This a new recipe, an overview of various ways to write Moose
+ extensions (Dave Rolsky)
+
+ * Moose::Cookbook::Extending::Recipe3
+ * Moose::Cookbook::Extending::Recipe4
+ - These used to be Extending::Recipe1 and Extending::Recipe2,
+ respectively.
+
+0.55_03 Fri August 29, 2008
+ * No changes from 0.55_02 except increasing the Class::MOP
+ dependency to 0.64_07.
+
+0.55_02 Fri August 29, 2008
+ * Makefile.PL and Moose.pm
+ - explicitly require Perl 5.8.0+ (Dave Rolsky)
+
+ * Moose::Util::TypeConstraints
+ - Fix warnings from find_type_constraint if the type is not
+ found (t0m).
+
+ * Moose::Meta::TypeConstraint
+ - Predicate methods (equals/is_a_type_of/is_subtype_of) now
+ return false if the type you specify cannot be found in the
+ type registry, rather than throwing an unhelpful and
+ coincidental exception. (t0m).
+ - added docs & test for this (t0m)
+
+ * Moose::Meta::TypeConstraint::Registry
+ - add_type_constraint now throws an exception if a parameter is
+ not supplied (t0m).
+ - added docs & test for this (t0m)
+
+ * Moose::Cookbook::FAQ
+ - Added a faq entry on the difference between "role" and "trait"
+ (t0m)
+
+ * Moose::Meta::Role
+ - Fixed a bug that caused role composition to not see a required
+ method when that method was provided by another role being
+ composed at the same time. (Dave Rolsky)
+ - test and bug finding (tokuhirom)
+
+0.55_01 Wed August 20, 2008
+
+ !! Calling Moose::init_meta as a function is now !!
+ !! deprecated. Please see the Moose.pm docs for details. !!
+
+ * Moose::Meta::Method::Constructor
+ - Fix inlined constructor so that values produced by default
+ or builder methods are coerced as required. (t0m)
+ - added test for this (t0m)
+
+ * Moose::Meta::Attribute
+ - A lazy attribute with a default or builder did not attempt to
+ coerce the default value. The immutable code _did_
+ coerce. (t0m)
+ - added test for this (t0m)
+
+ * Moose::Exporter
+ - This is a new helper module for writing "Moose-alike"
+ modules. This should make the lives of MooseX module authors
+ much easier. (Dave Rolsky)
+
+ * Moose
+ * Moose::Cookbook::Meta::Recipe5
+ - Implemented metaclass traits (and wrote a recipe for it):
+
+ use Moose -traits => 'Foo'
+
+ This should make writing small Moose extensions a little
+ easier (Dave Rolsky)
+
+ * Moose::Cookbook::Basics::Recipe1
+ - Removed any examples of direct hashref access, and applied an
+ editorial axe to reduce verbosity. (Dave Rolsky)
+
+ * Moose::Cookbook::Basics::Recipe1
+ - Also applied an editorial axe here. (Dave Rolsky)
+
+ * Moose
+ * Moose::Cookbook::Extending::Recipe1
+ * Moose::Cookbook::Extending::Recipe2
+ - Rewrote extending and embedding moose documentation and
+ recipes to use Moose::Exporter (Dave Rolsky)
+
+ * Moose
+ * Moose::Role
+ - These two modules now warn when you load them from the main
+ package "main" package, because we will not export sugar to
+ main. Previously it just did nothing. (Dave Rolsky)
+
+ * Moose::Role
+ - Now provide an init_meta method just like Moose.pm, and you
+ can call this to provide an alternate role metaclass. (Dave
+ Rolsky and nothingmuch)
+ - get_method_map now respects the package cache flag (nothingmuch)
+
+ * Moose::Meta::Role
+ - Two new methods - add_method and wrap_method_body
+ (nothingmuch)
+
+ * many modules
+ - Optimizations including allowing constructors to accept hash
+ refs, making many more classes immutable, and making
+ constructors immutable. (nothingmuch)
+
+0.55 Sun August 3, 2008
+ * Moose::Meta::Attribute
+ - breaking down the way 'handles' methods are
+ created so that the process can be more easily
+ overridden by subclasses (stevan)
+
+ * Moose::Meta::TypeConstraint
+ - fixing what is passed into a ->message with
+ the type constraints (RT #37569)
+ - added tests for this (Charles Alderman)
+
+ * Moose::Util::TypeConstraints
+ - fix coerce to accept anon types like subtype can (mst)
+
+ * Moose::Cookbook
+ - reorganized the recipes into sections - Basics, Roles, Meta,
+ Extending - and wrote abstracts for each section (Dave Rolsky)
+
+ * Moose::Cookbook::Basics::Recipe10
+ - A new recipe that demonstrates operator overloading
+ in combination with Moose. (bluefeet)
+
+ * Moose::Cookbook::Meta::Recipe1
+ - an introduction to what meta is and why you'd want to make
+ your own metaclass extensions (Dave Rolsky)
+
+ * Moose::Cookbook::Meta::Recipe4
+ - a very simple metaclass example (Dave Rolsky)
+
+ * Moose::Cookbook::Extending::Recipe1
+ - how to write a Moose-alike module to use your own object base
+ class (Dave Rolsky)
+
+ * Moose::Cookbook::Extending::Recipe2
+ - how to write modules with an API just like C<Moose.pm> (Dave
+ Rolsky)
+
+ * all documentation
+ - Tons of fixes, both syntactical and grammatical (Dave
+ Rolsky, Paul Fenwick)
+
+0.54 Thurs. July 3, 2008
+ ... this is not my day today ...
+
+ * Moose::Meta::Attribute
+ - fixed legal_options_for_inheritance such that
+ clone_and_inherit options still works for
+ Class::MOP::Attribute objects and therefore
+ does not break MooseX::AttributeHelpers
+ (stevan)
+
+0.53 Thurs. July 3, 2008
+ * Whoops, I guess I should run 'make manifest' before
+ actually releasing the module. No actual changes
+ in this release, except the fact that it includes
+ the changes that I didn't include in the last
+ release. (stevan--)
+
+0.52 Thurs. July 3, 2008
+ * Moose
+ - added "FEATURE REQUESTS" section to the Moose docs
+ to properly direct people (stevan) (RT #34333)
+ - making 'extends' croak if it is passed a Role since
+ this is not ever something you want to do
+ (fixed by stevan, found by obra)
+ - added tests for this (stevan)
+
+ * Moose::Object
+ - adding support for DOES (as in UNIVERSAL::DOES)
+ (nothingmuch)
+ - added test for this
+
+ * Moose::Meta::Attribute
+ - added legal_options_for_inheritance (wreis)
+ - added tests for this (wreis)
+
+ * Moose::Cookbook::Snacks::*
+ - removed some of the unfinished snacks that should
+ not have been released yet. Added some more examples
+ to the 'Keywords' snack. (stevan)
+
+ * Moose::Cookbook::Style
+ - added general Moose "style guide" of sorts to the
+ cookbook (nothingmuch) (RT #34335)
+
+ * t/
+ - added more BUILDARGS tests (stevan)
+
+0.51 Thurs. Jun 26, 2008
+ * Moose::Role
+ - add unimport so "no Moose::Role" actually does
+ something (sartak)
+
+ * Moose::Meta::Role::Application::ToRole
+ - when RoleA did RoleB, and RoleA aliased a method from RoleB in
+ order to provide its own implementation, that method still got
+ added to the list of required methods for consumers of
+ RoleB. Now an aliased method is only added to the list of
+ required methods if the role doing the aliasing does not
+ provide its own implementation. See Recipe 11 for an example
+ of all this. (Dave Rolsky)
+ - added tests for this
+
+ * Moose::Meta::Method::Constructor
+ - when a single argument that wasn't a hashref was provided to
+ an immutabilized constructor, the error message was very
+ unhelpful, as opposed to the non-immutable error. Reported by
+ dew. (Dave Rolsky)
+ - added test for this (Dave Rolsky)
+
+ * Moose::Meta::Attribute
+ - added support for meta_attr->does("ShortAlias") (sartak)
+ - added tests for this (sartak)
+ - moved the bulk of the `handles` handling to the new
+ install_delegation method (Stevan)
+
+ * Moose::Object
+ - Added BUILDARGS, a new step in new()
+
+ * Moose::Meta::Role::Application::RoleSummation
+ - fix typos no one ever sees (sartak)
+
+ * Moose::Util::TypeConstraints
+ * Moose::Meta::TypeConstraint
+ * Moose::Meta::TypeCoercion
+ - Attempt to work around the ??{ } vs. threads issue
+ (not yet fixed)
+ - Some null_constraint optimizations
+
+0.50 Thurs. Jun 11, 2008
+ - Fixed a version number issue by bumping all modules
+ to 0.50.
+
+0.49 Thurs. Jun 11, 2008
+ !! This version now approx. 20-25% !!
+ !! faster with new Class::MOP 0.59 !!
+
+ * Moose::Meta::Attribute
+ - fixed how the is => (ro|rw) works with
+ custom defined reader, writer and accessor
+ options.
+ - added docs for this (TODO).
+ - added tests for this (Thanks to Penfold)
+ - added the custom attribute alias for regular
+ Moose attributes which is "Moose"
+ - fix builder and default both being used
+ (groditi)
+
+ * Moose
+ Moose::Meta::Class
+ Moose::Meta::Attribute
+ Moose::Meta::Role
+ Moose::Meta::Role::Composite
+ Moose::Util::TypeConstraints
+ - switched usage of reftype to ref because
+ it is much faster
+
+ * Moose::Meta::Role
+ - changing add_package_symbol to use the new
+ HASH ref form
+
+ * Moose::Object
+ - fixed how DEMOLISHALL is called so that it
+ can be overrided in subclasses (thanks to Sartak)
+ - added test for this (thanks to Sartak)
+
+ * Moose::Util::TypeConstraints
+ - move the ClassName type check code to
+ Class::MOP::is_class_loaded (thanks to Sartak)
+
+ * Moose::Cookbook::Recipe11
+ - add tests for this (thanks to tokuhirom)
+
+0.48 Thurs. May 29, 2008
+ (early morning release engineering)--
+
+ - fixing the version in Moose::Meta::Method::Destructor
+ which was causing the indexer to choke
+
+0.47 Thurs. May 29, 2008
+ (late night release engineering)--
+
+ - fixing the version is META.yml, no functional
+ changes in this release
+
+0.46 Wed. May 28, 2008
+ !! This version now approx. 20-25% !!
+ !! faster with new Class::MOP 0.57 !!
+
+ * Moose::Meta::Class
+ - some optimizations of the &initialize method
+ since it is called so often by &meta
+
* Moose::Meta::Class
Moose::Meta::Role
- now use the get_all_package_symbols from the
updated Class::MOP, test suite is now 10 seconds
faster
+
+ * Moose::Meta::Method::Destructor
+ - is_needed can now also be called as a class
+ method for immutablization to check if the
+ destructor object even needs to be created
+ at all
+
+ * Moose::Meta::Method::Destructor
+ Moose::Meta::Method::Constructor
+ - added more descriptive error message to help
+ keep people from wasting time tracking an error
+ that is easily fixed by upgrading.
0.45 Saturday, May 24, 2008
* Moose
- - Because of work in Class::MOP 0.56, all
+ - Because of work in Class::MOP 0.57, all
XS based functionality is now optional
and a Pure Perl version is supplied
- the CLASS_MOP_NO_XS environment variable
* Moose::Meta::Class
- added same 'add_package_symbol' fix as in
- Class::MOP 0.56
+ Class::MOP 0.57
* Moose::Util
- does_role now handles non-Moose classes
- added tests to assure we work with Module::Refresh
- added stricter test skip logic in the Moose POOP
test, ask Rob Kinyon why.
- - *cough* DBM::Deep 1.0 backwards compatability sucks *cough* ;)
+ - *cough* DBM::Deep 1.0 backwards compatibility sucks *cough* ;)
0.18 Sat. March 10, 2007
~~ Many, many documentation updates ~~
- 'with' now checks Role validaity and
accepts more than one Role at a time
- 'extends' makes metaclass adjustments as
- needed to ensure metaclass compatability
+ needed to ensure metaclass compatibility
* Moose::Role
- refactored the keyword exports