Changes and date for 1.10 release
[gitmo/Moose.git] / Changes
diff --git a/Changes b/Changes
index 8c16840..213e099 100644 (file)
--- a/Changes
+++ b/Changes
@@ -1,7 +1,516 @@
 Also see Moose::Manual::Delta for more details of, and workarounds
 for, noteworthy changes.
 
-next version
+1.10 Sun, Aug 22, 2010
+
+  [API CHANGES]
+
+  * The long-deprecated alias and excludes options for role applications now
+    issue a deprecation warning. Use -alias and -excludes instead. (Dave
+    Rolsky)
+
+  [BUG FIXES]
+
+  * Inlined code no longer stringifies numeric attribute defaults. (vg, doy)
+
+  * default => undef now works properly. (doy)
+
+  * Enum type constraints now throw errors if their values are nonsensical.
+    (Sartak)
+
+  [ENHANCEMENTS]
+
+  * Optimizations that should help speed up compilation time (Dave Rolsky).
+
+1.09 Tue, Jul 25, 2010
+
+  [API CHANGES]
+
+  * You can no longer pass "coerce => 1" for an attribute unless its type
+    constraint has a coercion defined. Doing so will issue a deprecation
+    warning. (Dave Rolsky)
+
+  * Previously, '+foo' only allowed a specific set of options to be
+    overridden, which made it impossible to change attribute options related
+    to extensions. Now we blacklist some options, and anything else is
+    allowed. (doy, Tuomas Jormola)
+
+  * Most features which have been declared deprecated now issue a warning using
+    Moose::Deprecated. Warnings are issued once per calling package, not
+    repeatedly. See Moose::Deprecated for information on how you can shut
+    these warnings up entirely. Note that deprecated features will eventually
+    be removed, so shutting up the warnings may not be the best idea. (Dave
+    Rolsky)
+
+  * Removed the long-deprecated Moose::Meta::Role->alias_method method. (Dave
+    Rolsky).
+
+  [NEW FEATURES]
+
+  * We no longer unimport strict and warnings when Moose, Moose::Role, or
+    Moose::Exporter are unimported. Doing this was broken if the user
+    explicitly loaded strict and warnings themself, and the results could be
+    generally surprising. We decided that it was best to err on the side of
+    safety and leave these on. Reported by David Wheeler. RT #58310. (Dave
+    Rolsky)
+
+  * New with_traits helper function in Moose::Util. (doy)
+
+  [BUG FIXES]
+
+  * Accessors will no longer be inlined if the instance metaclass isn't
+    inlinable. (doy)
+
+  * Use Perl 5.10's new recursive regex features, if possible, for the type
+    constraint parser. (doy, nothingmuch)
+
+  [ENHANCEMENTS]
+
+  * Attributes now warn if their accessors overwrite a locally defined
+    function (not just method). (doy)
+
+  [OTHER]
+
+  * Bump our required perl version to 5.8.3, since earlier versions fail tests
+    and aren't easily installable/testable.
+
+1.08 Tue, Jun 15, 2010
+
+  [ENHANCEMENTS]
+
+  * Refactored a small amount of Moose::Meta::Method::Constructor to allow it
+    to be overridden more easily (doy).
+
+1.07 Sat, Jun 05, 2010
+
+  [BUG FIXES]
+
+  * Fixed a minor metaclass compatibility fixing bug dealing with immutable
+    classes and non-class metaclass traits (doy, dougdude).
+
+1.06 Tue, Jun 01, 2010
+
+  [NEW FEATURES]
+
+  * Added '0+' overloading in Moose::Meta::TypeConstraint so that we can
+    more uniformly compare type constraints between 'classic' Moose type
+    constraints and MooseX::Types based type constraints.
+
+1.05 Thu, May 20, 2010
+
+  [API CHANGES]
+
+  * Packages and modules no longer have methods - this functionality was
+    moved back up into Moose::Meta::Class and Moose::Meta::Role individually
+    (through the Class::MOP::Mixin::HasMethods mixin) (doy).
+
+  * BUILDALL is now called by Moose::Meta::Class::new_object, rather than by
+    Moose::Object::new. (doy)
+
+  [NEW FEATURES]
+
+  * strict and warnings are now unimported when Moose, Moose::Role, or
+    Moose::Exporter are unimported. (doy, Adam Kennedy)
+
+  * Added a 'consumers' method to Moose::Meta::Role for finding all
+    classes/roles which consume the given role. (doy)
+
+  [BUG FIXES]
+
+  * Fix has '+attr' in Roles to explode immediately, rather than when the role
+    is applied to a class (t0m).
+
+  * Fix type constraint validation messages to not include the string 'failed'
+    twice in the same sentence (Florian Ragwitz).
+
+  * New type constraints will default to being unequal, rather than equal
+    (rjbs).
+
+  * The tests no longer check for perl's behavior of clobbering $@, which has
+    been fixed in perl-5.13.1 (Florian Ragwitz).
+
+  * Metaclass compatibility fixing has been completely rewritten, and should
+    be much more robust. (doy)
+
+1.04 Thu, May 20, 2010
+
+  * This release was broken and has been deleted from CPAN shortly after its
+    upload.
+
+1.03 Thu, May 06, 2010
+
+  [NEW FEATURES]
+
+  * Allow specifying required versions when setting superclasses or applying
+    roles (Florian Ragwitz).
+
+1.02 Sat, May 01, 2010
+
+  [BUG FIXES]
+
+  * Stop the natatime method provided by the native Array trait from returning
+    an exhausted iterator when being called with a callback. (Florian Ragwitz)
+
+  * Make Moose::Meta::TypeConstraint::Class correctly reject RegexpRefs.
+    (Florian Ragwitz)
+
+  * Calling is_subtype_of on a Moose::Meta::TypeConstraint::Class with itself or
+    the class the TC represents as an argument incorrectly returned true. This
+    behavior is correct for is_type_of, not is_subtype_of. (Guillermo Roditi)
+
+  * Use File::Temp for temp files created during tests. Previously, files were
+    written to the t/ dir, which could cause problems of the user running the
+    tests did not have write access to that directory.. (Chris Weyl, Ævar
+    Arnfjörð Bjarmason)
+
+  * Pass role arguments along when applying roles to instances. (doy, lsm)
+
+1.01 Fri, Mar 26, 2010
+
+  [NEW FEATURES]
+
+  * The handles option now also accepts a role type constraint in addition to a
+    plain role name. (Florian Ragwitz)
+
+  [OTHER]
+
+  * Record the Sartak/doy debt properly in Changes (perigrin)
+
+1.00 Tue, Mar 25, 2010
+
+  [BUG FIXES]
+
+  * Moose::Meta::Attribute::Native::Trait::Code no longer creates reader
+    methods by default. (Florian Ragwitz)
+
+  [DOCUMENTATION]
+
+  * Improve various parts of the documentation and fix many typos.
+    (Dave Rolsky, Mateu Hunter, Graham Knop, Robin V, Jay Hannah, Jesse Luehrs)
+
+  [OTHER]
+
+  * Paid the $10 debt to doy from 0.80 Sat, Jun 6, 2009 (Sartak)
+
+0.99 Mon, Mar 8, 2010
+
+  [NEW FEATURES]
+
+  * New method find_type_for in Moose::Meta::TypeConstraint::Union, for finding
+    which member of the union a given value validates for. (Cory Watson)
+
+  [BUG FIXES]
+
+  * DEMOLISH methods in mutable subclasses of immutable classes are now called
+    properly (Chia-liang Kao, Jesse Luehrs)
+
+  [NEW DOCUMENTATION]
+
+  * Added Moose::Manual::Support that defines the support, compatiblity, and
+    release policies for Moose. (Chris Prather)
+
+0.98 Wed, Feb 10, 2010
+
+  [BUG FIXES]
+
+  * An internals change in 0.97 broke role application to an instance in some
+    cases. The bug occurred when two different roles were applied to different
+    instances of the same class. (Rafael Kitover)
+
+
+0.97 Tue, Feb 9, 2010
+
+  [BUG FIXES]
+
+  * Calling ->reinitialize on a cached anonymous class effectively uncached
+    the metaclass object, causing the metaclass to go out of scope
+    unexpectedly. This could easily happen at a distance by applying a
+    metarole to an anonymous class. (Dave Rolsky).
+
+0.96 Sat, Feb 6, 2010
+
+  [NEW FEATURES]
+
+  * ScalarRef is now a parameterized type. You can now specify a type
+    constraint for whatever the reference points to. (Closes RT#50857)
+    (Michael G. Schwern, Florian Ragwitz)
+
+  [BUG FIXES]
+
+  * ScalarRef now accepts references to other references. (Closes RT#50934)
+    (Michael G. Schwern)
+
+0.95 Thu, Feb 4, 2010
+
+  [NEW FEATURES]
+
+  * Moose::Meta::Attribute::Native::Trait::Code now provides execute_method as
+    a delegation option. This allows the code reference to be called as a
+    method on the object. (Florian Ragwitz)
+
+  [ENHANCEMENTS]
+
+  * Moose::Object::does no longer checks the entire inheritance tree, since
+    Moose::Meta::Class::does_role already does this. (doy)
+
+  * Moose::Util::add_method_modifier (and subsequently the sugar functions
+    Moose::before, Moose::after, and Moose::around) can now accept arrayrefs,
+    with the same behavior as lists. Types other than arrayref and regexp
+    result in an error.  (Dylan Hardison)
+
+0.94 Mon, Jan 18, 2010
+
+  [API CHANGES]
+
+  * Please see the changes listed for 0.93_01 and Moose::Manual::Delta.
+
+  [ENHANCEMENTS]
+
+  * Improved support for anonymous roles by changing various APIs to take
+    Moose::Meta::Role objects as well as role names. This included
+
+  - Moose::Meta::Class->does_role
+  - Moose::Meta::Role->does_role
+  - Moose::Util::does_role
+  - Moose::Util::apply_all_roles
+  - Moose::Util::ensure_all_roles
+  - Moose::Util::search_class_by_role
+
+  Requested by Shawn Moore. Addresses RT #51143 (and then some). (Dave Rolsky)
+
+  [BUG FIXES]
+
+  * Fix handling of non-alphanumeric attributes names like '@foo'. This should
+    work as long as the accessor method names are explicitly set to valid Perl
+    method names. Reported by Doug Treder. RT #53731. (Dave Rolsky)
+
+
+0.93_03 Tue, Jan 5, 2010
+
+  [BUG FIXES]
+
+  * Portability fixes to our XS code so we compile with 5.8.8 and Visual
+    C++. Fixes RT #53391. Reported by Taro Nishino. (rafl)
+
+
+0.93_02 Tue, Jan 5, 2010
+
+ [BUG FIXES]
+
+  * Depend on Class::MOP 0.97_01 so we can get useful results from CPAN
+    testers. (Dave Rolsky)
+
+
+0.93_01 Mon, Jan 4, 2010
+
+  [API CHANGES]
+
+  See Moose::Manual::Delta for more details on backwards compatiblity issues.
+
+  * Role attributes are now objects of the Moose::Meta::Role::Attribute
+    class. (Dave Rolsky).
+
+  * There were major changes to how metaroles are applied. We now distinguish
+    between metaroles for classes vs those for roles. See the
+    Moose::Util::MetaRole docs for details. (Dave Rolsky)
+
+  * The old MetaRole API has been deprecated, but will continue to
+    work. However, if you are applying an attribute metaclass role, this may
+    break because of the fact that roles now have an attribute metaclass
+    too. (Dave Rolsky)
+
+  * Moose::Util::MetaRole::apply_metaclass_roles is now called
+    apply_metaroles. The old name is deprecated. Dave Rolsky>
+
+  * The unimport subs created by Moose::Exporter now clean up re-exported
+    functions like blessed and confess, unless the caller imported them from
+    somewhere else too. See Moose::Manua::Delta for backcompat details. (rafl)
+
+  [ENHANCEMENTS AND BUG FIXES]
+
+  * Changed the Str constraint to accept magic lvalue strings like one gets from
+    substr et al, again. (sorear)
+
+  * Sped up the type constraint parsing regex. (Sam Vilain)
+
+  * The Moose::Cookbook::Extending::Recipe2 recipe was broken. Fix suggested by
+    jrey.
+
+  * Added Moose::Util::TypeConstraints exports when using oose.pm to allow
+    easier testing of TypeConstraints from the command line. (perigrin)
+
+  * Added a with_immutable test function to Test::Moose, to run a block of tests
+    with and without certain classes being immutable. (doy)
+
+  * We now use Module::Install extensions explicitly to avoid confusing errors
+    if they're not installed. We use Module::Install::AuthorRequires to stop
+    test extraction and general failures if you don't have the author side
+    dependencies installed.
+
+  * Fixed a grammar error in Moose::Cookbook::Basics::Recipe4. rt.cpan.org
+    #51791. (Amir E. Aharoni)
+
+
+0.93 Thu, Nov 19, 2009
+    * Moose::Object
+      - Calling $object->new() is no longer deprecated, and no longer
+        warns. (doy)
+
+    * Moose::Meta::Role
+      - The get_attribute_map method is now deprecated. (Dave Rolsky)
+
+    * Moose::Meta::Method::Delegation
+      - Preserve variable aliasing in @_ for delegated methods, so that
+        altering @_ affects the passed value. (doy)
+
+    * Moose::Util::TypeConstraints
+      - Allow array refs for non-anonymous form of enum and duck_type, not
+        just anonymous. The non-arrayref forms may be removed in the
+        future. (doy)
+      - Changed Str constraint to not accept globs (*STDIN or *FOO). (chansen)
+      - Properly document Int being a subtype of Str. (doy)
+
+    * Moose::Exporter
+      - Moose::Exporter using modules can now export their functions to the
+        main package. This applied to Moose and Moose::Role, among
+        others. (nothingmuch)
+
+    * Moose::Meta::Attribute
+      - Don't remove attribute accessors we never installed, during
+        remove_accessors. (doy)
+
+    * Moose::Meta::Attribute::Native::Trait::Array
+      - Don't bypass prototype checking when calling List::Util::first, to
+        avoid a segfault when it is called with a non-code argument. (doy)
+
+    * Moose::Meta::Attribute::Native::Trait::Code
+      - Fix passing arguments to code execute helpers. (doy)
+
+0.92 Tue, Sep 22, 2009
+    * Moose::Util::TypeConstraints
+      - added the match_on_type operator (Stevan)
+        - added tests and docs for this (Stevan)
+
+    * Moose::Meta::Class
+      - Metaclass compat fixing should already happen recursively, there's no
+        need to explicitly walk up the inheritance tree. (doy)
+
+    * Moose::Meta::Attribute
+      - Add tests for set_raw_value and get_raw_value. (nothingmuch)
+
+0.91 Thu, Sep 17, 2009
+    * Moose::Object
+      - Don't import any functions, in order to avoid polluting our namespace
+        with things that can look like methods (blessed, try, etc)
+        (nothingmuch)
+
+    * Moose::Meta::Method::Constructor
+      - The generated code needs to called Scalar::Util::blessed by its
+        fully-qualified name or else Perl can interpret the call to blessed as
+        an indirect method call. This broke Search::GIN, which in turn broke
+        KiokuDB. (nothingmuch)
+
+0.90 Tue, Sep 15, 2009
+    * Moose::Meta::Attribute::Native::Trait::Counter
+    * Moose::Meta::Attribute::Native::Trait::String
+      - For these two traits, an attribute which did not explicitly provide
+        methods to handles magically ended up delegating *all* the helper
+        methods. This has been removed. You must be explicit in your handles
+        declaration for all Native Traits. (Dave Rolsky)
+
+    * Moose::Object
+      - DEMOLISHALL behavior has changed. If any DEMOLISH method dies, we make
+        sure to rethrow its error message. However, we also localize $@ before
+        this so that if all the DEMOLISH methods success, the value of $@ will
+        be preserved. (nothingmuch and Dave Rolsky)
+      - We now also localize $? during object destruction. (nothingmuch and
+        Dave Rolsky)
+      - The handling of DEMOLISH methods was broken for immutablized classes,
+        which were not receiving the value of
+        Devel::GlobalDestruction::in_global_destruction.
+      - These two fixes address some of RT #48271, reported by Zefram.
+      - This is all now documented in Moose::Manual::Construction.
+      - Calling $object->new() is now deprecated. A warning will be
+        issued. (perigrin)
+
+    * Moose::Meta::Role
+      - Added more hooks to customize how roles are applied. The role
+        summation class, used to create composite roles, can now be changed
+        and/or have meta-roles applied to it. (rafl)
+      - The get_method_list method no longer explicitly excludes the "meta"
+        method. This was a hack that has been replaced by better hacks. (Dave
+        Rolsky)
+
+    * Moose::Meta::Method::Delegation
+      - fixed delegated methods to make sure that any modifiers attached to
+        the accessor being delegated on will be called (Stevan)
+        - added tests for this (Stevan)
+
+    * Moose::Meta::Class
+      - Moose no longer warns when a class that is being made immutable has
+        mutable ancestors. While in theory this is a good thing to warn about,
+        we found so many exceptions to this that doing this properly became
+        quite problematic.
+
+0.89_02 Thu, Sep 10, 2009
+    * Moose::Meta::Attribute::Native
+      - Fix Hash, which still had 'empty' instead of 'is_empty'. (hdp)
+
+    * Moose::Meta::Attribute::Native::Trait::Array
+      - Added a number of functions from List::Util and List::MoreUtils,
+        including reduce, shuffle, uniq, and natatime. (doy)
+
+    * Moose::Exporter
+      - This module will now generate an init_meta method for your exporting
+        class if you pass it options for
+        Moose::Util::MetaRole::apply_metaclass_roles or
+        apply_base_class_roles. This eliminates a lot of repetitive
+        boilerplate for typical MooseX modules. (doy).
+      - Documented the with_meta feature, which is a replacement for
+        with_caller. This feature was added by josh a while ago.
+      - The with_caller feature is now deprecated, but will not issue a
+        warning yet. (Dave Rolsky)
+      - If you try to wrap/export a subroutine which doesn't actually exist,
+        Moose::Exporter will warn you about this. (doy)
+
+    * Moose::Meta::Role::Application::ToRole
+      - When a role aliased a method from another role, it was only getting
+        the new (aliased) name, not the original name. This differed from what
+        happens when a class aliases a role's methods. If you _only_ want the
+        aliased name, make sure to also exclue the original name. (Dave
+        Rolsky)
+
+0.89_01 Wed Sep 2, 2009
+    * Moose::Meta::Attribute
+      - Added the currying syntax for delegation from AttributeHelpers to the
+        existing delegation API. (hdp)
+
+    * Moose::Meta::Attribute::Native
+      - We have merged the functionality of MooseX::AttributeHelpers into the
+        Moose core with some API tweaks. You can continue to use
+        MooseX::AttributeHelpers, but it will not be maintained except
+        (perhaps) for critical bug fixes in the future. See
+        Moose::Manual::Delta for details. (hdp, jhannah, rbuels, Sartak,
+        perigrin, doy)
+
+    * Moose::Error::Croak
+    * Moose::Error::Confess
+      - Clarify documentation on how to use different error-throwing
+        modules. (Curtis Jewell)
+
+    * Moose
+      - Correct POD for builder to point to Recipe8, not 9. (gphat)
+
+    * Moose::Exporter
+      - When a nonexistent sub name is passed to as_is, with_caller, or
+        with_meta, throw a warning and skip the exporting, rather than
+        installing a broken sub. (doy)
+
+    * Moose::Meta::Class
+      - Moose now warns if you call C<make_immutable> for a class with mutable
+        ancestors. (doy)
+
+0.89 Thu Aug 13, 2009
     * Moose::Manual::Attributes
       - Clarify "is", include discussion of "bare". (Sartak)
 
@@ -26,14 +535,19 @@ next version
 
     * Moose::Meta::Attribute
     * Moose::Meta::Method::Accessor
-      - A trigger now receives the old value as a second argument, if
-        the attribute had one. (Dave Rolsky)
+      - A trigger now receives the old value as a second argument, if the
+        attribute had one. (Dave Rolsky)
 
     * Moose::Meta::Method::Constructor
       - Fix a bug with $obj->new when $obj has stringify overloading.
         Reported by Andrew Suffield [rt.cpan.org #47882] (Sartak)
-        - However, we will probably deprecate $obj->new, so please don't
-          start using it for new code!
+        - However, we will probably deprecate $obj->new, so please don't start
+          using it for new code!
+
+    * Moose::Meta::Role::Application
+    * Moose::Meta::Role::Application::RoleSummation
+      - Rename alias and excludes to -alias and -excludes (but keep the old
+        names for now, for backcompat) (doy)
 
 0.88 Fri Jul 24, 2009
     * Moose::Manual::Contributing
@@ -135,7 +649,7 @@ next version
       that's what we need.
 
 0.80 Sat, Jun 6, 2009
-    * Moose::Manual::FAQ 
+    * Moose::Manual::FAQ
       - Add FAQ about the coercion change from 0.76 because it came up
         three times today (perigrin)
         - Win doy $10 dollars because Sartak didn't think anybody