cleaned up log
[gitmo/Moose.git] / Changes
diff --git a/Changes b/Changes
index 37cfd6f..0b5049d 100644 (file)
--- a/Changes
+++ b/Changes
 Revision history for Perl extension Moose
 
-0.56
+0.60
+    * Moose::Exporter
+      - Passing "-traits" when loading Moose caused the Moose.pm
+        exports to be broken. Reported by t0m. (Dave Rolsky)
+        - Tests for this bug. (t0m)
+    * Moose::Util::TypeConstraint
+      - Put back the changes for parameterized constraints that
+        shouldn't have been removed in 0.59. We still cannot parse
+        them, but MooseX modules can create them in some other
+        way. See the 0.58 changes for more details. (jnapiorkowski)
+      - changed the way subtypes are created so that the job is delegated to a
+        type constraint parent.  This clears up some hardcoded checking and
+        should allow correct subtypes of Moose::Meta::Type::Constraint
+    * Moose::Meta::TypeConstraint
+      - added new method 'create_childtype' so that a parent can now be in
+        charge of creating and influencing it's own children.
+    * Moose::Meta::TypeConstraint::Union
+      - more careful sorting of the type constraints that make up a name string
+      - support for create_childtype customization
+    * Moose::Meta::TypeConstraint::Parameterized
+      - support for create_childtype customization
+    * Moose::Meta::TypeConstraint::Parameterizable
+      - new parameterize method which is a type of factory method to make a new
+        type constraint with a given parameterized type.
+    * Moose::Util
+      - Change resolve_metaclass alias to use the new
+        load_first_existing_class function. This makes it a lot
+        simpler, and also around 5 times faster. (t0m)
+      - Add caching to resolve_metaclass_alias, which gives an order
+        of magnitude speedup to things which repeatedly call the
+        Moose::Meta::Attribute->does method, notably MooseX::Storage
+        (t0m)
+    * /t/040_type_constraints/027_parameterize_from.t
+      - test to make sure the new parameterize method works.
+    * /t/040_type_constraints/030-class_subtypes.t
+      - test to make sure we can properly subclass Moose::Meta::TypeConstraint
+
+0.59 Tue October 14, 2008
+    * Moose
+      - Add abridged documentation for builder/default/initializer/
+        predicate, and link to more details sections in 
+        Class::MOP::Attribute. (t0m)
+
+    * Moose::Util::TypeConstraints
+      - removed prototypes from all but the &-based stuff (mst)
+
+    * Moose::Util::TypeConstraints
+      - Creating a anonymous subtype with both a constraint and a
+        message failed with a very unhelpful error, but should just
+        work. Reported by t0m. (Dave Rolsky)
+
+    * Tests
+      - Some tests that used Test::Warn if it was available failed
+        with older versions of Test::Warn. Reported by Fayland. (Dave
+        Rolsky)
+      - Test firing behavior of triggers in relation to builder/default/
+        lazy_build. (t0m)
+      - Test behavior of equals/is_a_type_of/is_a_subtype_of for all
+        kinds of supported type. (t0m)
+
+    * Moose::Meta::Class
+      - In create(), do not pass "roles" option to the superclass
+        - added related test that creates an anon metaclass with
+          a required attribute
+
+    * Moose::Meta::TypeConstraint::Class
+    * Moose::Meta::TypeConstraint::Role
+      - Unify behavior of equals/is_a_type_of/is_a_subtype_of with
+        other types (as per change in 0.55_02). (t0m)
+
+    * Moose::Meta::TypeConstraint::Registry
+      - Fix warning when dealing with unknown type names (t0m)
+
+    * Moose::Util::TypeConstraints
+      - Reverted changes from 0.58 related to handle parameterized
+        types. This caused random failures on BSD and Win32 systems,
+        apparently related to the regex engine. This means that Moose
+        can no longer parse structured type constraints like
+        ArrayRef[Int,Int] or HashRef[name=>Str]. This will be
+        supported in a slightly different way via MooseX::Types some
+        time in the future. (Dave Rolsky)
+
+0.58 Sat September 20, 2008
+    !! 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 + test (t0m)
+        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
-    * Moose::Cookbook::Basics::Recipe2
-      - Editing and content changes to simplify these recipes (Dave
-        Rolsky)
+      - 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
-      - Add a _remove_keywords function so if you extend Moose
-        you don't have to cargo cult Moose's unimport (Sartak)
+      - Rewrote extending and embedding moose documentation and
+        recipes to use Moose::Exporter (Dave Rolsky)
 
     * Moose
-      - Moose now warns when you try to have it export its sugar
-        functions into the "main" package. Previously it silently did
-        nothing. (Dave Rolsky)
+    * 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
@@ -233,7 +553,7 @@ Revision history for Perl extension Moose
 
 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
@@ -270,7 +590,7 @@ Revision history for Perl extension Moose
 
     * 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 
@@ -1087,7 +1407,7 @@ Revision history for Perl extension Moose
       - 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 ~~
@@ -1368,7 +1688,7 @@ Revision history for Perl extension Moose
         - '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