Documenting that 'has' comes before 'with' when satisfying role requirements
[gitmo/Moose.git] / lib / Moose / Manual / Delta.pod
index a3b5951..717b3cd 100644 (file)
@@ -16,9 +16,17 @@ feature.  If you encounter a problem and have a solution but don't see
 it documented here, or think we missed an important feature, please
 send us a patch.
 
-=head1 Version 0.85
+=head1 Version XX
 
-L<Moose::AttributeHelpers> has been moved into the Moose core from
+=item New Native delegation methods from L<List::Util> and L<List::MoreUtils>
+
+In particular, we now have C<reduce>, C<shuffle>, C<uniq>, and C<natatime>.
+
+=back
+
+=head1 Version 0.89_01
+
+L<Moose::Meta::Attribute::Native> has been moved into the Moose core from
 L<MooseX::AttributeHelpers>.  Major changes include:
 
 =over
@@ -40,15 +48,56 @@ generalized to apply to all cases of C<< handles => HASHREF >>, though
 not every piece of functionality has been ported (currying with a
 CODEREF is not supported).
 
-=back
+=item C<empty> is now C<is_empty>, and means empty, not non-empty
+
+Previously, the C<empty> method provided by Arrays and Hashes returned true if
+the attribute was B<not> empty (no elements).  Now it returns true if the
+attribute B<is> empty. It was also renamed to C<is_empty>, to reflect this.
+
+=item C<find> was renamed to C<first>, and C<first> and C<last> were removed
+
+L<List::Util> refers to the functionality that we used to provide under C<find>
+as L<first|List::Util/first>, so that will likely be more familiar (and will
+fit in better if we decide to add more List::Util functions). C<first> and
+C<last> were removed, since their functionality is easily duplicated with
+curries of C<get>.
 
-See L<Moose::AttributeHelpers> for the new documentation.
+=item Helpers that take a coderef of one argument now use C<$_>
+
+Subroutines passed as the first argument to C<first>, C<map>, and C<grep> now
+receive their argument in C<$_> rather than as a parameter to the subroutine.
+Helpers that take a coderef of two or more arguments remain using the argument
+list (there are technical limitations to using C<$a> and C<$b> like C<sort>
+does).
+
+See L<Moose::Meta::Attribute::Native> for the new documentation.
+
+=head1 Version 0.89
+
+C<< use Moose -metaclass => 'Foo' >> now does alias resolution, just like
+C<-traits> (and the C<metaclass> and C<traits> options to C<has>).
+
+Added two functions C<meta_class_alias> and C<meta_attribute_alias> to
+L<Moose::Util>, to simplify aliasing metaclasses and metatraits. This is
+a wrapper around the old
+
+  package Moose::Meta::Class::Custom::Trait::FooTrait;
+  sub register_implementation { 'My::Meta::Trait' }
+
+way of doing this.
+
+The C<alias> and C<excludes> role parameters have been renamed to C<-alias>
+and C<-excludes>. The old names still work, but new code should use the new
+names, and eventually the old ones will be deprecated and removed.
 
 =head1 Version 0.84
 
 When an attribute generates I<no> accessors, we now warn. This is to help
 users who forget the C<is> option. If you really do not want any accessors,
-you can use C<< is => 'bare' >>.
+you can use C<< is => 'bare' >>. You can maintain back compat with older
+versions of Moose by using something like:
+
+    ($Moose::VERSION >= 0.84 ? is => 'bare' : ())
 
 When an accessor overwrites an existing method, we now warn. To work around
 this warning (if you really must have this behavior), you can explicitly