Hello community, here is the log from the commit of package perl-Path-Class for openSUSE:Factory checked in at 2016-08-17 12:06:26 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/perl-Path-Class (Old) and /work/SRC/openSUSE:Factory/.perl-Path-Class.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-Path-Class" Changes: -------- --- /work/SRC/openSUSE:Factory/perl-Path-Class/perl-Path-Class.changes 2016-02-26 00:39:29.000000000 +0100 +++ /work/SRC/openSUSE:Factory/.perl-Path-Class.new/perl-Path-Class.changes 2016-08-17 12:06:27.000000000 +0200 @@ -1,0 +2,14 @@ +Mon Aug 15 05:41:54 UTC 2016 - [email protected] + +- updated to 0.37 + see /usr/share/doc/packages/perl-Path-Class/Changes + + 0.37 Sat Aug 13 21:33:23 CDT 2016 + + - Doc update for contains/subsumes [1916528] + - Fix "contains" when $self is a relative path - #43 [1c01e86] + - Handle case where $other evaluates false [70e4b6b] + - Add additional test cases for contains and subsumes [434f244] + - Test with Perl 5.24 [a4d2d73] + +------------------------------------------------------------------- Old: ---- Path-Class-0.36.tar.gz New: ---- Path-Class-0.37.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ perl-Path-Class.spec ++++++ --- /var/tmp/diff_new_pack.fRyTVi/_old 2016-08-17 12:06:28.000000000 +0200 +++ /var/tmp/diff_new_pack.fRyTVi/_new 2016-08-17 12:06:28.000000000 +0200 @@ -17,7 +17,7 @@ Name: perl-Path-Class -Version: 0.36 +Version: 0.37 Release: 0 %define cpan_name Path-Class Summary: Cross-platform path specification manipulation ++++++ Path-Class-0.36.tar.gz -> Path-Class-0.37.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Path-Class-0.36/Build.PL new/Path-Class-0.37/Build.PL --- old/Path-Class-0.36/Build.PL 2016-02-17 05:17:44.000000000 +0100 +++ new/Path-Class-0.37/Build.PL 2016-08-14 04:36:44.000000000 +0200 @@ -18,7 +18,7 @@ "Ken Williams <kwilliams\@cpan.org>" ], "dist_name" => "Path-Class", - "dist_version" => "0.36", + "dist_version" => "0.37", "license" => "perl", "module_name" => "Path::Class", "recommends" => {}, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Path-Class-0.36/Changes new/Path-Class-0.37/Changes --- old/Path-Class-0.36/Changes 2016-02-17 05:17:44.000000000 +0100 +++ new/Path-Class-0.37/Changes 2016-08-14 04:36:44.000000000 +0200 @@ -1,5 +1,13 @@ Revision history for Perl extension Path::Class. +0.37 Sat Aug 13 21:33:23 CDT 2016 + + - Doc update for contains/subsumes [1916528] + - Fix "contains" when $self is a relative path - #43 [1c01e86] + - Handle case where $other evaluates false [70e4b6b] + - Add additional test cases for contains and subsumes [434f244] + - Test with Perl 5.24 [a4d2d73] + 0.36 Tue Feb 16 22:16:21 CST 2016 - 117bd64 - Use croak instead of die; use eval syntax instead of universal::isa (as perlcritic wishes) <viviparous> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Path-Class-0.36/META.yml new/Path-Class-0.37/META.yml --- old/Path-Class-0.36/META.yml 2016-02-17 05:17:44.000000000 +0100 +++ new/Path-Class-0.37/META.yml 2016-08-14 04:36:44.000000000 +0200 @@ -36,4 +36,4 @@ resources: bugtracker: http://github.com/kenahoo/Path-Class/issues repository: git://github.com/kenahoo/Path-Class.git -version: 0.36 +version: 0.37 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Path-Class-0.36/Makefile.PL new/Path-Class-0.37/Makefile.PL --- old/Path-Class-0.36/Makefile.PL 2016-02-17 05:17:44.000000000 +0100 +++ new/Path-Class-0.37/Makefile.PL 2016-08-14 04:36:44.000000000 +0200 @@ -44,7 +44,7 @@ "Test::More" => 0, "warnings" => 0 }, - "VERSION" => "0.36", + "VERSION" => "0.37", "test" => { "TESTS" => "t/*.t" } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Path-Class-0.36/README new/Path-Class-0.37/README --- old/Path-Class-0.36/README 2016-02-17 05:17:44.000000000 +0100 +++ new/Path-Class-0.37/README 2016-08-14 04:36:44.000000000 +0200 @@ -1,7 +1,7 @@ This archive contains the distribution Path-Class, -version 0.36: +version 0.37: Cross-platform path specification manipulation diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Path-Class-0.36/SIGNATURE new/Path-Class-0.37/SIGNATURE --- old/Path-Class-0.36/SIGNATURE 2016-02-17 05:17:44.000000000 +0100 +++ new/Path-Class-0.37/SIGNATURE 2016-08-14 04:36:44.000000000 +0200 @@ -14,24 +14,24 @@ -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 -SHA1 bf80a75cfd93a681dfd2d935f71e8c6bb6e470d4 Build.PL -SHA1 eb1f0bb5f9fc75e7ce65b6111c4e0ef67a22aebb Changes +SHA1 9745be8a60de406fd86b4e8acd88274f0be5e5be Build.PL +SHA1 bc7fbbda15a9c3b99d75ef7c67f0a8f360f607ce Changes SHA1 771edd8859e502c500ae883cd9ebb7105c1b453d INSTALL SHA1 ce667e1cc573310ddb6d33fbcb07b993ba0c1562 LICENSE SHA1 78bde2759290c5e4b12079578f187a024e11dd16 MANIFEST -SHA1 35e851fcd8e1dd680af149f441eb0f7cff9a4a24 META.yml -SHA1 5da2ae34b6133646f462b1929368c25b90f8176a Makefile.PL -SHA1 bcfa8c26de9e118f7f5ff8120cd30a572ee55879 README +SHA1 9497db27ff2382babac39a0a8144b112ad096d9f META.yml +SHA1 694c89ba365a852773edec42f634b4590b2d2a96 Makefile.PL +SHA1 ab8ddeb1616d34bb94e466245d7353b1425a8457 README SHA1 767e92b9cc035fc40c62a7deda816efddd4c14f2 README.pod SHA1 18788b0ba358db9fe04c981452039f3bd62bcdb2 cpanfile -SHA1 1255cb0cd40faf2f25bbefdcee2edca2165a765e dist.ini -SHA1 f1b2969ba99ce3ca742bbb2265f9b798574dbe1d lib/Path/Class.pm -SHA1 71249e5dd01edc158cb6459cbd72bf202cf9e6df lib/Path/Class/Dir.pm -SHA1 b95919a3e61623ac90944f0c3ce367b01c6079fd lib/Path/Class/Entity.pm -SHA1 889062840dfda272b8ee981353bdcef258ab8eea lib/Path/Class/File.pm +SHA1 309d5bad8d0c4e19a9f9df866e926f971cf83be8 dist.ini +SHA1 f3271d889febf0197f0e0b5ab80b790b9e7777c0 lib/Path/Class.pm +SHA1 05216bca9d52148cbac12a466e41bde0d0fe9a08 lib/Path/Class/Dir.pm +SHA1 7f4a09e646fb11499cd6a18e32b3715fd8c15153 lib/Path/Class/Entity.pm +SHA1 9f5f7e98be5d4193406534e9f261cd2060fcc2ea lib/Path/Class/File.pm SHA1 5c0a4c26886b9f5f8447970e8ef1f8de17c8a156 t/01-basic.t SHA1 2dc6abce3b4c4601fe22bce9b0d58cb9484bcd0f t/02-foreign.t -SHA1 f4db2618b7012dd1cbaf5cd4d5a7b3886624b972 t/03-filesystem.t +SHA1 fd67af65f4ad8646183eb5a3bdd9ab8ccc1372fd t/03-filesystem.t SHA1 d18a55c06da766987268ad541578a03a17ecee41 t/04-subclass.t SHA1 a154070d2cb1369f6cebf4228742edea39c43c63 t/05-traverse.t SHA1 c71c41e78012d9577c47aa71b6d962e2c70d0e0e t/06-traverse_filt.t @@ -41,7 +41,7 @@ Version: GnuPG v1 Comment: GPGTools - http://gpgtools.org -iEYEARECAAYFAlbD9GUACgkQgrvMBLfvlHZHMQCg4nFNYUoIhc4b4iXfoUN2TzVD -vHcAn1ZFOllOZvqBKd+uxtNUoaz+cOSX -=NI6c +iEYEARECAAYFAlev2TgACgkQgrvMBLfvlHbNfwCguaBtTukbgrEvVxj6f+Bnvogc +t98An1YjDI/FNfpJUxLuOFzfrgHEEJzX +=ZvCj -----END PGP SIGNATURE----- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Path-Class-0.36/dist.ini new/Path-Class-0.37/dist.ini --- old/Path-Class-0.36/dist.ini 2016-02-17 05:17:44.000000000 +0100 +++ new/Path-Class-0.37/dist.ini 2016-08-14 04:36:44.000000000 +0200 @@ -1,5 +1,5 @@ name = Path-Class -version = 0.36 +version = 0.37 author = Ken Williams <[email protected]> license = Perl_5 copyright_holder = Ken Williams diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Path-Class-0.36/lib/Path/Class/Dir.pm new/Path-Class-0.37/lib/Path/Class/Dir.pm --- old/Path-Class-0.36/lib/Path/Class/Dir.pm 2016-02-17 05:17:44.000000000 +0100 +++ new/Path-Class-0.37/lib/Path/Class/Dir.pm 2016-08-14 04:36:44.000000000 +0200 @@ -2,7 +2,7 @@ package Path::Class::Dir; { - $Path::Class::Dir::VERSION = '0.36'; + $Path::Class::Dir::VERSION = '0.37'; } use Path::Class::File; @@ -272,9 +272,9 @@ sub subsumes { Carp::croak "Too many arguments given to subsumes()" if $#_ > 2; my ($self, $other) = @_; - Carp::croak( "No second entity given to subsumes()" ) unless $other; + Carp::croak( "No second entity given to subsumes()" ) unless defined $other; - $other = $self->new($other) unless eval{$other->isa( "Path::Class::Entity")} ; + $other = $self->new($other) unless eval{$other->isa( "Path::Class::Entity")}; $other = $other->dir unless $other->is_dir; if ($self->is_absolute) { @@ -311,11 +311,14 @@ sub contains { Carp::croak "Too many arguments given to contains()" if $#_ > 2; my ($self, $other) = @_; - Carp::croak "No second entity given to contains()" unless $other; + Carp::croak "No second entity given to contains()" unless defined $other; return unless -d $self and (-e $other or -l $other); - $other = $self->new($other) unless eval{$other->isa("Path::Class::Entity")}; - $other->resolve; + # We're going to resolve the path, and don't want side effects on the objects + # so clone them. This also handles strings passed as $other. + $self= $self->new($self)->resolve; + $other= $self->new($other)->resolve; + return $self->subsumes($other); } @@ -333,7 +336,7 @@ =head1 VERSION -version 0.36 +version 0.37 =head1 SYNOPSIS @@ -590,15 +593,17 @@ # Examples: dir('foo/bar' )->subsumes(dir('foo/bar/baz')) # True dir('/foo/bar')->subsumes(dir('/foo/bar/baz')) # True + dir('foo/..')->subsumes(dir('foo/../bar)) # True dir('foo/bar' )->subsumes(dir('bar/baz')) # False dir('/foo/bar')->subsumes(dir('foo/bar')) # False + dir('foo/..')->subsumes(dir('bar')) # False! Use C<contains> to resolve ".." =item $boolean = $dir->contains($other) Returns true if this directory actually contains C<$other> on the filesystem. C<$other> doesn't have to be a direct child of C<$dir>, -it just has to be subsumed. +it just has to be subsumed after both paths have been resolved. =item $foreign = $dir->as_foreign($type) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Path-Class-0.36/lib/Path/Class/Entity.pm new/Path-Class-0.37/lib/Path/Class/Entity.pm --- old/Path-Class-0.36/lib/Path/Class/Entity.pm 2016-02-17 05:17:44.000000000 +0100 +++ new/Path-Class-0.37/lib/Path/Class/Entity.pm 2016-08-14 04:36:44.000000000 +0200 @@ -2,7 +2,7 @@ package Path::Class::Entity; { - $Path::Class::Entity::VERSION = '0.36'; + $Path::Class::Entity::VERSION = '0.37'; } use File::Spec 3.26; @@ -99,7 +99,7 @@ =head1 VERSION -version 0.36 +version 0.37 =head1 DESCRIPTION diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Path-Class-0.36/lib/Path/Class/File.pm new/Path-Class-0.37/lib/Path/Class/File.pm --- old/Path-Class-0.36/lib/Path/Class/File.pm 2016-02-17 05:17:44.000000000 +0100 +++ new/Path-Class-0.37/lib/Path/Class/File.pm 2016-08-14 04:36:44.000000000 +0200 @@ -2,7 +2,7 @@ package Path::Class::File; { - $Path::Class::File::VERSION = '0.36'; + $Path::Class::File::VERSION = '0.37'; } use Path::Class::Dir; @@ -227,7 +227,7 @@ =head1 VERSION -version 0.36 +version 0.37 =head1 SYNOPSIS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Path-Class-0.36/lib/Path/Class.pm new/Path-Class-0.37/lib/Path/Class.pm --- old/Path-Class-0.36/lib/Path/Class.pm 2016-02-17 05:17:44.000000000 +0100 +++ new/Path-Class-0.37/lib/Path/Class.pm 2016-08-14 04:36:44.000000000 +0200 @@ -2,7 +2,7 @@ package Path::Class; { - $Path::Class::VERSION = '0.36'; + $Path::Class::VERSION = '0.37'; } { @@ -34,7 +34,7 @@ =head1 VERSION -version 0.36 +version 0.37 =head1 SYNOPSIS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Path-Class-0.36/t/03-filesystem.t new/Path-Class-0.37/t/03-filesystem.t --- old/Path-Class-0.36/t/03-filesystem.t 2016-02-17 05:17:44.000000000 +0100 +++ new/Path-Class-0.37/t/03-filesystem.t 2016-08-14 04:36:44.000000000 +0200 @@ -231,17 +231,29 @@ ok $cur->subsumes(dir("foo")); ok $cur->subsumes(dir("foo", "..", "bar")); ok !$cur->subsumes(".."); + ok $cur->subsumes("0"); } { # Some edge cases with updir my $c = dir(); - ok $c->contains(dir()); - ok $c->contains(dir("t")); - ok !$c->contains(dir("..")); - ok !$c->contains(dir("t", "..", "foo")); - ok $c->contains(dir("t", "..")); - ok !$c->contains(dir("t", "..", "..")); + ok $c->contains(dir()), ". contains ."; + ok $c->contains(dir("t")), ". contains t"; + ok !$c->contains(dir("..")), ". does not contain .."; + ok !$c->contains(dir("t", "..", "foo")), ". does not contains non-existent ./foo"; + ok $c->contains(dir("t", "..", "t")), ". contains t/../t"; + ok $c->contains(dir("t", "..")), ". contains t/.."; + ok !$c->contains(dir("t", "..", "..")), ". does not contain t/../.."; + ok $c->contains(dir("..", ($c->absolute->components)[-1])), "to .. and back"; + + $c= dir("t",".."); + ok $c->contains(dir("t")), "./t/../ contains t"; + + $c= dir("t","..","t","..","t"); + my $other= dir("t","..","t","03-filesystem.t"); + ok $c->contains($other), "./t/../t/../t contains t/03-filesystem.t"; + is( ($other->components)[-3], '..', "no side effect from contains()" ); + is( ($c->components)[-2], '..', "no side effect from contains()" ); } {
