Hello community,

here is the log from the commit of package perl-Moo for openSUSE:Factory 
checked in at 2015-08-01 11:36:48
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-Moo (Old)
 and      /work/SRC/openSUSE:Factory/.perl-Moo.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "perl-Moo"

Changes:
--------
--- /work/SRC/openSUSE:Factory/perl-Moo/perl-Moo.changes        2015-04-16 
14:14:28.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.perl-Moo.new/perl-Moo.changes   2015-08-01 
11:36:49.000000000 +0200
@@ -1,0 +2,25 @@
+Sat Jul 25 08:54:22 UTC 2015 - [email protected]
+
+- updated to 2.000002
+   see /usr/share/doc/packages/perl-Moo/Changes
+
+  2.000002 - 2015-07-24
+    - BUILDARGS will now always be called on object creation, even if no
+      attributes exist
+    - fix required attributes with spaces or other odd characters in init_arg
+    - fix (is => 'lazy', required => 1, init_arg => undef), which previously
+      didn't think it provided a builder
+    - under 'no Moo::sification', prevent automatic Moose metaclass inflation
+      from ->meta calls
+    - don't load Moo::Role for a ->does check if no roles could exist
+    - make global destruction test more robust from outside interference
+    - fix false default values satisfying required attributes
+    - Fix Moose attribute delegation to a Moo class via a wildcard
+    - work around case where Sub::Util is loadable but doesn't provide
+      Sub::Util::set_subname
+    - skip thread tests on perl 5.8.4 and below where threads are extremely
+      unreliable
+    - Allow stub methods (e.g. sub foo;) to be overwritten by accessors or 
other
+      generated methods. (RT#103804)
+
+-------------------------------------------------------------------

Old:
----
  Moo-2.000001.tar.gz

New:
----
  Moo-2.000002.tar.gz
  cpanspec.yml

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ perl-Moo.spec ++++++
--- /var/tmp/diff_new_pack.3z5gm4/_old  2015-08-01 11:36:50.000000000 +0200
+++ /var/tmp/diff_new_pack.3z5gm4/_new  2015-08-01 11:36:50.000000000 +0200
@@ -17,14 +17,15 @@
 
 
 Name:           perl-Moo
-Version:        2.000001
+Version:        2.000002
 Release:        0
 %define cpan_name Moo
 Summary:        Minimalist Object Orientation (with Moose compatibility)
 License:        Artistic-1.0 or GPL-1.0+
 Group:          Development/Libraries/Perl
 Url:            http://search.cpan.org/dist/Moo/
-Source:         
http://www.cpan.org/authors/id/H/HA/HAARG/%{cpan_name}-%{version}.tar.gz
+Source0:        
http://www.cpan.org/authors/id/H/HA/HAARG/%{cpan_name}-%{version}.tar.gz
+Source1:        cpanspec.yml
 BuildArch:      noarch
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
 BuildRequires:  perl
@@ -65,7 +66,6 @@
 
 %prep
 %setup -q -n %{cpan_name}-%{version}
-find . -type f -print0 | xargs -0 chmod 644
 
 %build
 %{__perl} Makefile.PL INSTALLDIRS=vendor

++++++ Moo-2.000001.tar.gz -> Moo-2.000002.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Moo-2.000001/Changes new/Moo-2.000002/Changes
--- old/Moo-2.000001/Changes    2015-03-16 20:12:50.000000000 +0100
+++ new/Moo-2.000002/Changes    2015-07-24 15:06:31.000000000 +0200
@@ -1,5 +1,24 @@
 Revision history for Moo
 
+2.000002 - 2015-07-24
+  - BUILDARGS will now always be called on object creation, even if no
+    attributes exist
+  - fix required attributes with spaces or other odd characters in init_arg
+  - fix (is => 'lazy', required => 1, init_arg => undef), which previously
+    didn't think it provided a builder
+  - under 'no Moo::sification', prevent automatic Moose metaclass inflation
+    from ->meta calls
+  - don't load Moo::Role for a ->does check if no roles could exist
+  - make global destruction test more robust from outside interference
+  - fix false default values satisfying required attributes
+  - Fix Moose attribute delegation to a Moo class via a wildcard
+  - work around case where Sub::Util is loadable but doesn't provide
+    Sub::Util::set_subname
+  - skip thread tests on perl 5.8.4 and below where threads are extremely
+    unreliable
+  - Allow stub methods (e.g. sub foo;) to be overwritten by accessors or other
+    generated methods. (RT#103804)
+
 2.000001 - 2015-03-16
   - Fix how we pick between Sub::Name and Sub::Util if they are both loaded.
     This fixes how we interact with Moose in some cases. (RT#102729) (GH#15)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Moo-2.000001/MANIFEST new/Moo-2.000002/MANIFEST
--- old/Moo-2.000001/MANIFEST   2015-03-16 20:13:23.000000000 +0100
+++ new/Moo-2.000002/MANIFEST   2015-07-24 15:06:47.000000000 +0200
@@ -17,7 +17,6 @@
 lib/oo.pm
 lib/Sub/Defer.pm
 lib/Sub/Quote.pm
-maint/fulltest
 maint/Makefile.PL.include
 Makefile.PL
 MANIFEST                       This list of files
@@ -48,6 +47,7 @@
 t/demolish-bugs-eats_mini.t
 t/demolish-global_destruction.t
 t/demolish-throw.t
+t/does.t
 t/extend-constructor.t
 t/extends-non-moo.t
 t/extends-role.t
@@ -122,6 +122,8 @@
 xt/moo-role-types.t
 xt/moo-roles-into-moose-class-attr-override-with-autoclean.t
 xt/moo-roles-into-moose-class.t
+xt/moo-sification-handlemoose.t
+xt/moo-sification-meta.t
 xt/moo-sification.t
 xt/moose-accessor-isa.t
 xt/moose-autoclean-lazy-attr-builders.t
@@ -129,6 +131,7 @@
 xt/moose-consume-moo-role-no-moo-loaded.t
 xt/moose-does-moo-role.t
 xt/moose-extend-moo.t
+xt/moose-handles-moo-class.t
 xt/moose-inflate-error-recurse.t
 xt/moose-lazy.t
 xt/moose-method-modifiers.t
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Moo-2.000001/META.json new/Moo-2.000002/META.json
--- old/Moo-2.000001/META.json  2015-03-16 20:13:22.000000000 +0100
+++ new/Moo-2.000002/META.json  2015-07-24 15:06:47.000000000 +0200
@@ -4,7 +4,7 @@
       "mst - Matt S. Trout (cpan:MSTROUT) <[email protected]>"
    ],
    "dynamic_config" : 1,
-   "generated_by" : "ExtUtils::MakeMaker version 7.04, CPAN::Meta::Converter 
version 2.143240",
+   "generated_by" : "ExtUtils::MakeMaker version 7.0401, CPAN::Meta::Converter 
version 2.150001",
    "license" : [
       "perl_5"
    ],
@@ -86,7 +86,7 @@
       },
       "x_IRC" : "irc://irc.perl.org/#moose"
    },
-   "version" : "2.000001",
+   "version" : "2.000002",
    "x_authority" : "cpan:MSTROUT",
    "x_breaks" : {
       "App::Commando" : "<= 0.012",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Moo-2.000001/META.yml new/Moo-2.000002/META.yml
--- old/Moo-2.000001/META.yml   2015-03-16 20:13:22.000000000 +0100
+++ new/Moo-2.000002/META.yml   2015-07-24 15:06:46.000000000 +0200
@@ -8,7 +8,7 @@
 configure_requires:
   ExtUtils::MakeMaker: '0'
 dynamic_config: 1
-generated_by: 'ExtUtils::MakeMaker version 7.04, CPAN::Meta::Converter version 
2.143240'
+generated_by: 'ExtUtils::MakeMaker version 7.0401, CPAN::Meta::Converter 
version 2.150001'
 license: perl
 meta-spec:
   url: http://module-build.sourceforge.net/META-spec-v1.4.html
@@ -35,7 +35,7 @@
   bugtracker: https://rt.cpan.org/Public/Dist/Display.html?Name=Moo
   license: http://dev.perl.org/licenses/
   repository: https://github.com/moose/Moo.git
-version: '2.000001'
+version: '2.000002'
 x_authority: cpan:MSTROUT
 x_breaks:
   App::Commando: '<= 0.012'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Moo-2.000001/README new/Moo-2.000002/README
--- old/Moo-2.000001/README     2015-03-16 20:13:23.000000000 +0100
+++ new/Moo-2.000002/README     2015-07-24 15:06:47.000000000 +0200
@@ -154,7 +154,7 @@
        unshift @args, "attr1" if @args % 2 == 1;
 
        return { @args };
-     };
+     }
 
      Foo::Bar->new( 3 );
 
@@ -722,6 +722,8 @@
 
     bubaflub - Bob Kuo (cpan:BUBAFLUB) <[email protected]>
 
+    ether = Karen Etheridge (cpan:ETHER) <[email protected]>
+
 COPYRIGHT
     Copyright (c) 2010-2015 the Moo "AUTHOR" and "CONTRIBUTORS" as listed
     above.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Moo-2.000001/lib/Method/Generate/Accessor.pm 
new/Moo-2.000002/lib/Method/Generate/Accessor.pm
--- old/Moo-2.000001/lib/Method/Generate/Accessor.pm    2015-02-26 
10:58:33.000000000 +0100
+++ new/Moo-2.000002/lib/Method/Generate/Accessor.pm    2015-07-23 
15:53:58.000000000 +0200
@@ -81,7 +81,7 @@
     }
   }
 
-  for my $setting (qw( isa coerce )) {
+  foreach my $setting (qw( isa coerce )) {
     next if !exists $spec->{$setting};
     $self->_validate_codulatable($setting, $spec->{$setting}, "$into->$name");
   }
@@ -98,7 +98,7 @@
       $spec->{moosify} = [$spec->{moosify}];
     }
 
-    for my $spec (@{$spec->{moosify}}) {
+    foreach my $spec (@{$spec->{moosify}}) {
       $self->_validate_codulatable('moosify', $spec, "$into->$name");
     }
   }
@@ -106,7 +106,7 @@
   my %methods;
   if (my $reader = $spec->{reader}) {
     _die_overwrite($into, $reader, 'a reader')
-      if !$spec->{allow_overwrite} && *{_getglob("${into}::${reader}")}{CODE};
+      if !$spec->{allow_overwrite} && defined &{"${into}::${reader}"};
     if (our $CAN_HAZ_XS && $self->is_simple_get($name, $spec)) {
       $methods{$reader} = $self->_generate_xs(
         getters => $into, $reader, $name, $spec
@@ -123,7 +123,7 @@
   }
   if (my $accessor = $spec->{accessor}) {
     _die_overwrite($into, $accessor, 'an accessor')
-      if !$spec->{allow_overwrite} && 
*{_getglob("${into}::${accessor}")}{CODE};
+      if !$spec->{allow_overwrite} && defined &{"${into}::${accessor}"};
     if (
       our $CAN_HAZ_XS
       && $self->is_simple_get($name, $spec)
@@ -143,7 +143,7 @@
   }
   if (my $writer = $spec->{writer}) {
     _die_overwrite($into, $writer, 'a writer')
-      if !$spec->{allow_overwrite} && *{_getglob("${into}::${writer}")}{CODE};
+      if !$spec->{allow_overwrite} && defined &{"${into}::${writer}"};
     if (
       our $CAN_HAZ_XS
       && $self->is_simple_set($name, $spec)
@@ -162,7 +162,7 @@
   }
   if (my $pred = $spec->{predicate}) {
     _die_overwrite($into, $pred, 'a predicate')
-      if !$spec->{allow_overwrite} && *{_getglob("${into}::${pred}")}{CODE};
+      if !$spec->{allow_overwrite} && defined &{"${into}::${pred}"};
     if (our $CAN_HAZ_XS && our $CAN_HAZ_XS_PRED) {
       $methods{$pred} = $self->_generate_xs(
         exists_predicates => $into, $pred, $name, $spec
@@ -179,7 +179,7 @@
   }
   if (my $cl = $spec->{clearer}) {
     _die_overwrite($into, $cl, 'a clearer')
-      if !$spec->{allow_overwrite} && *{_getglob("${into}::${cl}")}{CODE};
+      if !$spec->{allow_overwrite} && defined &{"${into}::${cl}"};
     $methods{$cl} =
       quote_sub "${into}::${cl}" =>
         $self->_generate_simple_clear('$_[0]', $name, $spec)."\n"
@@ -202,7 +202,7 @@
     foreach my $delegation_spec (@specs) {
       my ($proxy, $target, @args) = @$delegation_spec;
       _die_overwrite($into, $proxy, 'a delegation')
-        if !$spec->{allow_overwrite} && *{_getglob("${into}::${proxy}")}{CODE};
+        if !$spec->{allow_overwrite} && defined &{"${into}::${proxy}"};
       $self->{captures} = {};
       $methods{$proxy} =
         quote_sub "${into}::${proxy}" =>
@@ -241,6 +241,11 @@
   !grep $spec->{$_}, qw(coerce isa trigger weak_ref);
 }
 
+sub has_default {
+  my ($self, $name, $spec) = @_;
+  $spec->{builder} or exists $spec->{default} or (($spec->{is}||'') eq 'lazy');
+}
+
 sub has_eager_default {
   my ($self, $name, $spec) = @_;
   (!$spec->{lazy} and (exists $spec->{default} or $spec->{builder}));
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Moo-2.000001/lib/Method/Generate/Constructor.pm 
new/Moo-2.000002/lib/Method/Generate/Constructor.pm
--- old/Moo-2.000001/lib/Method/Generate/Constructor.pm 2015-02-26 
10:58:33.000000000 +0100
+++ new/Moo-2.000002/lib/Method/Generate/Constructor.pm 2015-07-23 
15:53:58.000000000 +0200
@@ -29,8 +29,7 @@
     }
     if ($new_spec->{required}
       && !(
-        exists $new_spec->{default}
-        || $new_spec->{builder}
+        $self->accessor_generator->has_default($name, $new_spec)
         || !exists $new_spec->{init_arg}
         || defined $new_spec->{init_arg}
       )
@@ -228,11 +227,11 @@
     map $spec->{$_}{init_arg},
       grep {
         my %s = %{$spec->{$_}}; # ignore required if default or builder set
-        $s{required} and not($s{builder} or $s{default})
+        $s{required} and not($s{builder} or exists $s{default})
       } sort keys %$spec;
   return '' unless @required_init;
-  '    if (my @missing = grep !exists $args->{$_}, qw('
-    .join(' ',@required_init).')) {'."\n"
+  '    if (my @missing = grep !exists $args->{$_}, '
+    .join(', ', map quotify($_), @required_init).') {'."\n"
     .q{      die "Missing required arguments: ".join(', ', sort 
@missing);}."\n"
     ."    }\n";
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Moo-2.000001/lib/Moo/HandleMoose/FakeMetaClass.pm 
new/Moo-2.000002/lib/Moo/HandleMoose/FakeMetaClass.pm
--- old/Moo-2.000001/lib/Moo/HandleMoose/FakeMetaClass.pm       2015-03-04 
13:31:51.000000000 +0100
+++ new/Moo-2.000002/lib/Moo/HandleMoose/FakeMetaClass.pm       2015-07-23 
00:24:31.000000000 +0200
@@ -7,21 +7,23 @@
   my ($meth) = (our $AUTOLOAD =~ /([^:]+)$/);
   my $self = shift;
   die "Can't call $meth without object instance"
-    unless ref $self;
+    if !ref $self;
+  die "Can't inflate Moose metaclass with Moo::sification disabled"
+    if $Moo::sification::disabled;
   require Moo::HandleMoose;
   Moo::HandleMoose::inject_real_metaclass_for($self->{name})->$meth(@_)
 }
 sub can {
   my $self = shift;
   return $self->SUPER::can(@_)
-    unless ref $self;
+    if !ref $self or $Moo::sification::disabled;
   require Moo::HandleMoose;
   Moo::HandleMoose::inject_real_metaclass_for($self->{name})->can(@_)
 }
 sub isa {
   my $self = shift;
   return $self->SUPER::isa(@_)
-    unless ref $self;
+    if !ref $self or $Moo::sification::disabled;
   require Moo::HandleMoose;
   Moo::HandleMoose::inject_real_metaclass_for($self->{name})->isa(@_)
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Moo-2.000001/lib/Moo/HandleMoose.pm 
new/Moo-2.000002/lib/Moo/HandleMoose.pm
--- old/Moo-2.000001/lib/Moo/HandleMoose.pm     2015-02-27 10:14:56.000000000 
+0100
+++ new/Moo-2.000002/lib/Moo/HandleMoose.pm     2015-07-23 00:24:31.000000000 
+0200
@@ -1,6 +1,6 @@
 package Moo::HandleMoose;
-
 use Moo::_strictures;
+no warnings 'once';
 use Moo::_Utils;
 use Sub::Quote qw(quotify);
 
@@ -11,12 +11,15 @@
 sub import { return if $SETUP_DONE; inject_all(); $SETUP_DONE = 1; }
 
 sub inject_all {
+  die "Can't inflate Moose metaclass with Moo::sification disabled"
+    if $Moo::sification::disabled;
   require Class::MOP;
   inject_fake_metaclass_for($_)
     for grep $_ ne 'Moo::Object', do { no warnings 'once'; keys %Moo::MAKERS };
   inject_fake_metaclass_for($_) for keys %Moo::Role::INFO;
   require Moose::Meta::Method::Constructor;
   @Moo::HandleMoose::FakeConstructor::ISA = 'Moose::Meta::Method::Constructor';
+  @Moo::HandleMoose::FakeMeta::ISA = 'Moose::Meta::Method::Meta';
 }
 
 sub maybe_reinject_fake_metaclass_for {
@@ -75,7 +78,7 @@
     }
   };
 
-  for my $spec (values %$attr_specs) {
+  foreach my $spec (values %$attr_specs) {
     if (my $inflators = delete $spec->{moosify}) {
       $_->($spec) for @$inflators;
     }
@@ -172,7 +175,7 @@
       }
     }
   }
-  for my $meth_name (keys %methods) {
+  foreach my $meth_name (keys %methods) {
     my $meth_code = $methods{$meth_name};
     $meta->add_method($meth_name, $meth_code) if $meth_code;
   }
@@ -196,6 +199,13 @@
       $meta->find_method_by_name('new'),
       'Moo::HandleMoose::FakeConstructor',
     );
+    my $meta_meth;
+    if (
+      $meta_meth = $meta->find_method_by_name('meta')
+      and $meta_meth->body == \&Moo::Object::meta
+    ) {
+      bless($meta_meth, 'Moo::HandleMoose::FakeMeta');
+    }
     # a combination of Moo and Moose may bypass a Moo constructor but still
     # use a Moo DEMOLISHALL.  We need to make sure this is loaded before
     # global destruction.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Moo-2.000001/lib/Moo/Object.pm 
new/Moo-2.000002/lib/Moo/Object.pm
--- old/Moo-2.000001/lib/Moo/Object.pm  2015-02-26 10:58:33.000000000 +0100
+++ new/Moo-2.000002/lib/Moo/Object.pm  2015-07-23 15:56:17.000000000 +0200
@@ -17,15 +17,13 @@
       })->generate_method($class);
     }
   }
+  my $proto = $class->BUILDARGS(@_);
   $NO_BUILD{$class} and
     return bless({}, $class);
   $NO_BUILD{$class} = !$class->can('BUILD') unless exists $NO_BUILD{$class};
   $NO_BUILD{$class}
     ? bless({}, $class)
-    : do {
-        my $proto = ref($_[0]) eq 'HASH' ? $_[0] : { @_ };
-        bless({}, $class)->BUILDALL($proto);
-      };
+    : bless({}, $class)->BUILDALL($proto);
 }
 
 # Inlined into Method::Generate::Constructor::_generate_args() - keep in sync
@@ -64,6 +62,8 @@
 }
 
 sub does {
+  return !!0
+    unless ($INC{'Moose/Role.pm'} || $INC{'Role/Tiny.pm'});
   require Moo::Role;
   my $does = Moo::Role->can("does_role");
   { no warnings 'redefine'; *does = $does }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Moo-2.000001/lib/Moo/Role.pm 
new/Moo-2.000002/lib/Moo/Role.pm
--- old/Moo-2.000001/lib/Moo/Role.pm    2015-03-16 20:12:47.000000000 +0100
+++ new/Moo-2.000002/lib/Moo/Role.pm    2015-07-24 15:06:25.000000000 +0200
@@ -5,10 +5,11 @@
 use Role::Tiny ();
 our @ISA = qw(Role::Tiny);
 
-our $VERSION = '2.000001';
+our $VERSION = '2.000002';
 $VERSION = eval $VERSION;
 
 require Moo::sification;
+Moo::sification->import;
 
 BEGIN {
     *INFO = \%Role::Tiny::INFO;
@@ -379,6 +380,7 @@
   if ($INC{'Moose.pm'}
       and $meta = Class::MOP::class_of($proto)
       and ref $meta ne 'Moo::HandleMoose::FakeMetaClass'
+      and $meta->can('does_role')
   ) {
     return $meta->does_role($role);
   }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Moo-2.000001/lib/Moo/_Utils.pm 
new/Moo-2.000002/lib/Moo/_Utils.pm
--- old/Moo-2.000001/lib/Moo/_Utils.pm  2015-03-13 22:57:17.000000000 +0100
+++ new/Moo-2.000002/lib/Moo/_Utils.pm  2015-07-23 00:24:31.000000000 +0200
@@ -6,10 +6,14 @@
 sub _getstash { \%{"$_[0]::"} }
 
 use constant lt_5_8_3 => ( $] < 5.008003 or $ENV{MOO_TEST_PRE_583} ) ? 1 : 0;
-use constant can_haz_subutil => $INC{"Sub/Util.pm"}
-    || ( !$INC{"Sub/Name.pm"} && eval { require Sub::Util } );
-use constant can_haz_subname => $INC{"Sub/Name.pm"}
-    || ( !$INC{"Sub/Util.pm"} && eval { require Sub::Name } );
+use constant can_haz_subutil => (
+    $INC{"Sub/Util.pm"}
+    || ( !$INC{"Sub/Name.pm"} && eval { require Sub::Util } )
+  ) && defined &Sub::Util::set_subname;
+use constant can_haz_subname => (
+    $INC{"Sub/Name.pm"}
+    || ( !$INC{"Sub/Util.pm"} && eval { require Sub::Name } )
+  ) && defined &Sub::Name::subname;
 
 use Moo::_strictures;
 use Module::Runtime qw(use_package_optimistically module_notional_filename);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Moo-2.000001/lib/Moo/sification.pm 
new/Moo-2.000002/lib/Moo/sification.pm
--- old/Moo-2.000001/lib/Moo/sification.pm      2015-02-26 10:58:33.000000000 
+0100
+++ new/Moo-2.000002/lib/Moo/sification.pm      2015-07-23 00:24:31.000000000 
+0200
@@ -4,20 +4,29 @@
 no warnings 'once';
 use Devel::GlobalDestruction qw(in_global_destruction);
 
-sub unimport { our $disarmed = 1 }
+sub unimport {
+  die "Can't disable Moo::sification after inflation has been done"
+    if $Moo::HandleMoose::SETUP_DONE;
+  our $disabled = 1;
+}
 
 sub Moo::HandleMoose::AuthorityHack::DESTROY {
-  unless (our $disarmed or in_global_destruction) {
+  unless (our $disabled or in_global_destruction) {
     require Moo::HandleMoose;
     Moo::HandleMoose->import;
   }
 }
 
-if ($INC{"Moose.pm"}) {
-  require Moo::HandleMoose;
-  Moo::HandleMoose->import;
-} else {
-  $Moose::AUTHORITY = bless({}, 'Moo::HandleMoose::AuthorityHack');
+sub import {
+  return
+    if our $setup_done;
+  if ($INC{"Moose.pm"}) {
+    require Moo::HandleMoose;
+    Moo::HandleMoose->import;
+  } else {
+    $Moose::AUTHORITY = bless({}, 'Moo::HandleMoose::AuthorityHack');
+  }
+  $setup_done = 1;
 }
 
 1;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Moo-2.000001/lib/Moo.pm new/Moo-2.000002/lib/Moo.pm
--- old/Moo-2.000001/lib/Moo.pm 2015-03-16 20:12:47.000000000 +0100
+++ new/Moo-2.000002/lib/Moo.pm 2015-07-24 15:06:25.000000000 +0200
@@ -3,10 +3,11 @@
 use Moo::_strictures;
 use Moo::_Utils;
 
-our $VERSION = '2.000001';
+our $VERSION = '2.000002';
 $VERSION = eval $VERSION;
 
 require Moo::sification;
+Moo::sification->import;
 
 our %MAKERS;
 
@@ -405,7 +406,7 @@
    unshift @args, "attr1" if @args % 2 == 1;
 
    return { @args };
- };
+ }
 
  Foo::Bar->new( 3 );
 
@@ -988,6 +989,8 @@
 
 bubaflub - Bob Kuo (cpan:BUBAFLUB) <[email protected]>
 
+ether = Karen Etheridge (cpan:ETHER) <[email protected]>
+
 =head1 COPYRIGHT
 
 Copyright (c) 2010-2015 the Moo L</AUTHOR> and L</CONTRIBUTORS>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Moo-2.000001/lib/Sub/Defer.pm 
new/Moo-2.000002/lib/Sub/Defer.pm
--- old/Moo-2.000001/lib/Sub/Defer.pm   2015-03-16 20:12:47.000000000 +0100
+++ new/Moo-2.000002/lib/Sub/Defer.pm   2015-07-24 15:06:25.000000000 +0200
@@ -5,7 +5,7 @@
 use Moo::_Utils qw(_getglob _install_coderef);
 use Scalar::Util qw(weaken);
 
-our $VERSION = '2.000001';
+our $VERSION = '2.000002';
 $VERSION = eval $VERSION;
 
 our @EXPORT = qw(defer_sub undefer_sub undefer_all);
@@ -72,7 +72,7 @@
 
 sub CLONE {
   %DEFERRED = map { defined $_ && $_->[3] ? ($_->[3] => $_) : () } values 
%DEFERRED;
-  for my $info (values %DEFERRED) {
+  foreach my $info (values %DEFERRED) {
     weaken($info)
       unless $info->[0] && ${$info->[2]};
   }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Moo-2.000001/lib/Sub/Quote.pm 
new/Moo-2.000002/lib/Sub/Quote.pm
--- old/Moo-2.000001/lib/Sub/Quote.pm   2015-03-16 20:12:47.000000000 +0100
+++ new/Moo-2.000002/lib/Sub/Quote.pm   2015-07-24 15:06:25.000000000 +0200
@@ -12,7 +12,7 @@
   *_HAVE_PERLSTRING = defined &B::perlstring ? sub(){1} : sub(){0};
 }
 
-our $VERSION = '2.000001';
+our $VERSION = '2.000002';
 $VERSION = eval $VERSION;
 
 our @EXPORT = qw(quote_sub unquote_sub quoted_from_sub qsub);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Moo-2.000001/maint/fulltest 
new/Moo-2.000002/maint/fulltest
--- old/Moo-2.000001/maint/fulltest     2015-02-26 10:58:33.000000000 +0100
+++ new/Moo-2.000002/maint/fulltest     1970-01-01 01:00:00.000000000 +0100
@@ -1,24 +0,0 @@
-#!/bin/sh
-
-TEST_DIRS='t xt'
-
-while [ "$#" -gt "0" ]; do
-  case $1 in
-    --cover)
-      cover -delete -silent
-      export HARNESS_PERL_SWITCHES='-MDevel::Cover=-ignore,^x?t/,-blib,0'
-      ;;
-    *)
-      echo "Invalid option: $1"
-      exit 1
-      ;;
-    esac
-  shift
-done
-
-if [ -n "$AUTHOR_TESTING" ] && [ "$AUTHOR_TESTING" -eq 0 ]; then
-  TEST_DIRS='t'
-fi
-
-export MOO_FATAL_WARNINGS=1
-prove -l $TEST_DIRS && MOO_XS_DISABLE=1 prove -l $TEST_DIRS
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Moo-2.000001/t/accessor-default.t 
new/Moo-2.000002/t/accessor-default.t
--- old/Moo-2.000001/t/accessor-default.t       2015-02-26 10:58:33.000000000 
+0100
+++ new/Moo-2.000002/t/accessor-default.t       2015-07-23 00:24:31.000000000 
+0200
@@ -1,5 +1,6 @@
 use Moo::_strictures;
 use Test::More;
+use Test::Fatal;
 
 my $c_ran;
 {
@@ -83,7 +84,26 @@
 is($foo->fifteen, undef, 'undef default');
 ok(exists $foo->{fifteen}, 'undef default is stored');
 
-is( Foo->new->default_with_coerce, "blah\n" );
-is( Foo->new->default_no_coerce,   "blah\n" );
+is( Foo->new->default_with_coerce, "blah\n",
+  "exceptions in defaults not modified with coerce" );
+is( Foo->new->default_no_coerce,   "blah\n",
+  "exceptions in defaults not modified without coerce" );
+
+{
+  package Bar;
+  use Moo;
+  has required_false_default => (is => 'ro', required => 1, default => 0);
+
+  ::is ::exception {
+    has required_is_lazy_no_init_arg => (
+      is => 'lazy',
+      required => 1,
+      init_arg => undef,
+    );
+  }, undef, 'is => lazy satisfies requires';
+}
+
+is exception { Bar->new }, undef,
+  'required attributes with false defaults work';
 
 done_testing;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Moo-2.000001/t/accessor-handles.t 
new/Moo-2.000002/t/accessor-handles.t
--- old/Moo-2.000001/t/accessor-handles.t       2015-02-26 10:58:33.000000000 
+0100
+++ new/Moo-2.000002/t/accessor-handles.t       2015-07-23 00:24:31.000000000 
+0200
@@ -85,6 +85,13 @@
 like $e, qr{You cannot overwrite a locally defined method \(smash\) with a 
delegation},
   '... and has correct error message';
 
+is exception {
+  package Buzz;
+  use Moo;
+  has foo => ( is => 'ro', handles => 'Robot' );
+  sub smash;
+}, undef, 'handles can overwrite predeclared subs';
+
 ok(exception {
   package Fuzz;
   use Moo;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Moo-2.000001/t/buildargs.t 
new/Moo-2.000002/t/buildargs.t
--- old/Moo-2.000001/t/buildargs.t      2015-02-26 10:58:33.000000000 +0100
+++ new/Moo-2.000002/t/buildargs.t      2015-07-23 15:59:32.000000000 +0200
@@ -135,6 +135,9 @@
 {
   package NoAttr;
   use Moo;
+  before BUILDARGS => sub {
+    our $buildargs_called++;
+  };
 }
 
 eval {
@@ -143,7 +146,9 @@
 like( $@, qr/Single parameters to new\(\) must be a HASH ref/,
   "default BUILDARGS requires a list or a HASH ref"
 );
+$NoAttr::buildargs_called = 0;
 my $noattr = NoAttr->new({ foo => 'bar' });
 is $noattr->{foo}, undef, 'without attributes, no params are stored';
+is $NoAttr::buildargs_called, 1, 'BUILDARGS called even without attributes';
 
 done_testing;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Moo-2.000001/t/demolish-global_destruction.t 
new/Moo-2.000002/t/demolish-global_destruction.t
--- old/Moo-2.000001/t/demolish-global_destruction.t    2015-02-26 
10:58:33.000000000 +0100
+++ new/Moo-2.000002/t/demolish-global_destruction.t    2015-07-23 
00:24:31.000000000 +0200
@@ -1,10 +1,23 @@
 use Moo::_strictures;
 no warnings 'once';
-use Test::More tests => 2;
 use POSIX ();
-Test::More->builder->no_ending(1);
+
+$| = 1;
 
 our $fail = 2;
+our $tests = 0;
+sub ok {
+  my ($ok, $message) = @_;
+  print
+    +($ok ? '' : 'not ')
+    . 'ok ' . ++$tests
+    . ($message ? " - $message" : '')
+    . "\n";
+  return $ok;
+}
+
+print "1..2\n";
+
 BEGIN {
     package Foo;
     use Moo;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Moo-2.000001/t/does.t new/Moo-2.000002/t/does.t
--- old/Moo-2.000001/t/does.t   1970-01-01 01:00:00.000000000 +0100
+++ new/Moo-2.000002/t/does.t   2015-07-23 00:24:31.000000000 +0200
@@ -0,0 +1,48 @@
+use Moo::_strictures;
+use Test::More;
+
+BEGIN {
+  package TestParent;
+  use Moo;
+}
+
+BEGIN {
+  package TestClass;
+  use Moo;
+  extends 'TestParent';
+
+  has attr1 => (is => 'ro');
+}
+
+BEGIN {
+  ok !TestClass->does('TestRole'),
+    "->does returns false for arbitrary role";
+  ok !$INC{'Moo/Role.pm'},
+    "Moo::Role not loaded by does";
+}
+
+BEGIN {
+  package TestRole;
+  use Moo::Role;
+
+  has attr2 => (is => 'ro');
+}
+
+BEGIN {
+  package TestClass;
+  with 'TestRole';
+}
+
+BEGIN {
+  ok +TestClass->does('TestRole'),
+    "->does returns true for composed role";
+
+  ok +TestClass->DOES('TestRole'),
+    "->DOES returns true for composed role";
+
+  ok +TestClass->DOES('TestParent'),
+    "->DOES returns true for parent class";
+}
+
+done_testing;
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Moo-2.000001/t/init-arg.t 
new/Moo-2.000002/t/init-arg.t
--- old/Moo-2.000001/t/init-arg.t       2015-02-26 10:58:33.000000000 +0100
+++ new/Moo-2.000002/t/init-arg.t       2015-07-23 00:24:31.000000000 +0200
@@ -72,4 +72,37 @@
   "lazy init_arg",
 );
 
+{
+  package Bar;
+
+  use Moo;
+
+  has sane_key_name => (
+    is => 'rw',
+    init_arg => 'stupid key name',
+    isa => sub { die "isa" if $_[0] % 2 },
+    required => 1
+  );
+  has sane_key_name2 => (
+    is => 'rw',
+    init_arg => 'complete\nnonsense\\\'key',
+    isa => sub { die "isa" if $_[0] % 2 },
+    required => 1
+  );
+}
+
+my $bar;
+is(
+  exception {
+    $bar= Bar->new(
+      'stupid key name' => 4,
+      'complete\nnonsense\\\'key' => 6
+    )
+  },
+  undef, 'requiring init_arg with spaces and insanity',
+);
+
+is( $bar->sane_key_name,  4, 'key renamed correctly' );
+is( $bar->sane_key_name2, 6, 'key renamed correctly' );
+
 done_testing;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Moo-2.000001/t/moo-utils-_name_coderef.t 
new/Moo-2.000002/t/moo-utils-_name_coderef.t
--- old/Moo-2.000001/t/moo-utils-_name_coderef.t        2015-03-15 
02:45:27.000000000 +0100
+++ new/Moo-2.000002/t/moo-utils-_name_coderef.t        2015-07-23 
00:24:31.000000000 +0200
@@ -2,8 +2,11 @@
 use Test::More;
 
 BEGIN {
+  no warnings 'redefine';
   $INC{'Sub/Name.pm'} = 1;
+  defined &Sub::Name::subname or *Sub::Name::subname = sub {};
   $INC{'Sub/Util.pm'} = 1;
+  defined &Sub::Util::set_subname or *Sub::Util::set_subname = sub {};
 }
 
 use Moo::_Utils;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Moo-2.000001/t/sub-defer-threads.t 
new/Moo-2.000002/t/sub-defer-threads.t
--- old/Moo-2.000001/t/sub-defer-threads.t      2015-02-26 10:58:33.000000000 
+0100
+++ new/Moo-2.000002/t/sub-defer-threads.t      2015-07-23 00:24:31.000000000 
+0200
@@ -4,6 +4,10 @@
     print "1..0 # SKIP your perl does not support ithreads\n";
     exit 0;
   }
+  if ($] <= 5.008004) {
+    print "1..0 # SKIP threads not reliable enough on perl <= 5.8.4\n";
+    exit 0;
+  }
 }
 use threads;
 use Moo::_strictures;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Moo-2.000001/t/sub-quote-threads.t 
new/Moo-2.000002/t/sub-quote-threads.t
--- old/Moo-2.000001/t/sub-quote-threads.t      2015-02-26 10:58:33.000000000 
+0100
+++ new/Moo-2.000002/t/sub-quote-threads.t      2015-07-23 00:24:31.000000000 
+0200
@@ -4,6 +4,10 @@
     print "1..0 # SKIP your perl does not support ithreads\n";
     exit 0;
   }
+  if ($] <= 5.008004) {
+    print "1..0 # SKIP threads not reliable enough on perl <= 5.8.4\n";
+    exit 0;
+  }
 }
 use threads;
 use Moo::_strictures;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Moo-2.000001/t/zzz-check-breaks.t 
new/Moo-2.000002/t/zzz-check-breaks.t
--- old/Moo-2.000001/t/zzz-check-breaks.t       2015-02-26 10:58:33.000000000 
+0100
+++ new/Moo-2.000002/t/zzz-check-breaks.t       2015-07-23 00:24:31.000000000 
+0200
@@ -2,17 +2,19 @@
 use warnings;
 use Test::More;
 
+my $meta_file;
 BEGIN {
   eval { require CPAN::Meta }
     or plan skip_all => 'CPAN::Meta required for checking breakages';
   eval { require CPAN::Meta::Requirements }
     or plan skip_all => 'CPAN::Meta::Requirements required for checking 
breakages';
+  ($meta_file) = grep -f, qw(MYMETA.json MYMETA.yml META.json META.yml)
+    or plan skip_all => 'no META file exists';
 }
 
 use ExtUtils::MakeMaker;
 use Module::Runtime qw(module_notional_filename);
 
-my ($meta_file) = grep -f, qw(MYMETA.json MYMETA.yml META.json META.yml);
 my $meta = CPAN::Meta->load_file($meta_file)->as_struct;
 my $req = CPAN::Meta::Requirements->from_string_hash( $meta->{x_breaks} );
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Moo-2.000001/xt/moo-sification-handlemoose.t 
new/Moo-2.000002/xt/moo-sification-handlemoose.t
--- old/Moo-2.000001/xt/moo-sification-handlemoose.t    1970-01-01 
01:00:00.000000000 +0100
+++ new/Moo-2.000002/xt/moo-sification-handlemoose.t    2015-07-23 
00:24:31.000000000 +0200
@@ -0,0 +1,19 @@
+use Moo::_strictures;
+use Test::More;
+use Test::Fatal;
+
+BEGIN {
+  package Foo;
+  use Moo;
+  has one => (is => 'ro');
+}
+
+use Moo::HandleMoose;
+
+require Moo::sification;
+
+like exception { Moo::sification->unimport },
+  qr/Can't disable Moo::sification after inflation has been done/,
+  'Moo::sification can\'t be disabled after inflation';
+
+done_testing;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Moo-2.000001/xt/moo-sification-meta.t 
new/Moo-2.000002/xt/moo-sification-meta.t
--- old/Moo-2.000001/xt/moo-sification-meta.t   1970-01-01 01:00:00.000000000 
+0100
+++ new/Moo-2.000002/xt/moo-sification-meta.t   2015-07-23 00:24:31.000000000 
+0200
@@ -0,0 +1,40 @@
+use Moo::_strictures;
+use Test::More;
+use Test::Fatal;
+
+BEGIN {
+  package Foo;
+  use Moo;
+  has one => (is => 'ro');
+}
+
+no Moo::sification;
+is exception { Foo->meta->make_immutable }, undef,
+  'make_immutable allowed under no Moo::sification';
+
+like exception { Foo->meta->get_methods_list },
+  qr/^Can't inflate Moose metaclass with Moo::sification disabled/,
+  'meta methods blocked under no Moo::sification';
+
+is exception {
+  is +Foo->meta->can('can'), \&Moo::HandleMoose::FakeMetaClass::can,
+    '->meta->can falls back to default under no Moo::sification';
+}, undef,
+  '->meta->can works under no Moo::sification';
+
+is exception {
+  ok +Foo->meta->isa('Moo::HandleMoose::FakeMetaClass'),
+    '->meta->isa falls back to default under no Moo::sification';
+}, undef,
+  '->meta->isa works under no Moo::sification';
+
+like exception { Foo->meta->get_methods_list },
+  qr/^Can't inflate Moose metaclass with Moo::sification disabled/,
+  'meta methods blocked under no Moo::sification';
+
+require Moo::HandleMoose;
+like exception { Moo::HandleMoose->import },
+  qr/^Can't inflate Moose metaclass with Moo::sification disabled/,
+  'Moo::HandleMoose->import blocked under no Moo::sification';
+
+done_testing;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Moo-2.000001/xt/moose-handles-moo-class.t 
new/Moo-2.000002/xt/moose-handles-moo-class.t
--- old/Moo-2.000001/xt/moose-handles-moo-class.t       1970-01-01 
01:00:00.000000000 +0100
+++ new/Moo-2.000002/xt/moose-handles-moo-class.t       2015-07-23 
00:24:31.000000000 +0200
@@ -0,0 +1,23 @@
+use strict;
+use warnings;
+use Test::More;
+use Test::Fatal;
+
+{
+  package Foo;
+  use Moo;
+  sub sub1 { 1 }
+}
+{
+  package Bar;
+  use Moose;
+  ::is ::exception {
+    has attr => (
+      is => 'ro',
+      isa => 'Foo',
+      handles => qr/.*/,
+    );
+  }, undef, 'regex handles in Moose with Moo class isa';
+}
+
+done_testing;

++++++ cpanspec.yml ++++++
---
#description_paragraphs: 3
#no_testing: broken upstream
#sources:
#  - source1
#  - source2
#patches:
#  foo.patch: -p1
#  bar.patch:
#preamble: |-
# BuildRequires:  gcc-c++
#post_prep: |-
# hunspell=`pkg-config --libs hunspell | sed -e 's,-l,,; s,  *,,g'`
# sed -i -e "s,hunspell-X,$hunspell," t/00-prereq.t Makefile.PL 
#post_install: |-
# sed on %{name}.files
#license: SUSE-NonFree
#skip_noarch: 1
#custom_build: |-
#./Build build flags=%{?_smp_mflags} --myflag
#custom_test: |-
#startserver && make test
#ignore_requires: Bizarre::Module

Reply via email to