commit perl-Test-Pod-Coverage for openSUSE:Factory
Hello community, here is the log from the commit of package perl-Test-Pod-Coverage for openSUSE:Factory checked in at 2014-07-28 06:31:06 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/perl-Test-Pod-Coverage (Old) and /work/SRC/openSUSE:Factory/.perl-Test-Pod-Coverage.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Package is "perl-Test-Pod-Coverage" Changes: -------- --- /work/SRC/openSUSE:Factory/perl-Test-Pod-Coverage/perl-Test-Pod-Coverage.changes 2012-01-04 08:01:15.000000000 +0100 +++ /work/SRC/openSUSE:Factory/.perl-Test-Pod-Coverage.new/perl-Test-Pod-Coverage.changes 2014-07-28 06:31:07.000000000 +0200 @@ -1,0 +2,27 @@ +Fri Jul 25 09:31:59 UTC 2014 - coolo@suse.com + +- updated to 1.10 + - Changed license to Artistic 2.0, at PETDANCE's request. + - Added README + - Moved Coverage.pm to lib/Test/Pod/Coverage.pm + - Min perl version now set to 5.006 in both code and dist metadata. + Addresses RT#21564 from ANDK++ + - Added DESCRIPTION section to pod (RT#28715 JEREMIAH++), + and changed to a minimal SYNOPSIS, with everything else moved + to the DESCRIPTION. + - The "no verbose" tests in t/nosymbols.t weren't ensuring that the + tests were running with HARNESS_VERBOSE set to false. You could set + that true in your environment and break the test. + RT#53947 - thanks to Pete Armstrong. + - Makefile.PL: Ensured all prereqs listed in PREREQ_PM, + and TEST_REQUIRES set if a recent enough ExtUtils::MakeMaker. + - Added github repo to pod and dist metadata + - Deleted the old META.yml, so new MYMETA.{yml,json} will be generated. + - Reformatted as per CPAN::Changes::Spec + + 1.09_01 2014-07-08 NEILB + - Specified license as 'Perl' in metadata, to match doc. + - All of the changes in 1.10 were first done in this developer release, + apart from the change to Artistic License 2.0. + +------------------------------------------------------------------- Old: ---- Test-Pod-Coverage-1.08.tar.gz New: ---- Test-Pod-Coverage-1.10.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ perl-Test-Pod-Coverage.spec ++++++ --- /var/tmp/diff_new_pack.70RVnj/_old 2014-07-28 06:31:08.000000000 +0200 +++ /var/tmp/diff_new_pack.70RVnj/_new 2014-07-28 06:31:08.000000000 +0200 @@ -1,7 +1,7 @@ # # spec file for package perl-Test-Pod-Coverage # -# Copyright (c) 2011 SUSE LINUX Products GmbH, Nuernberg, Germany. +# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -17,25 +17,78 @@ Name: perl-Test-Pod-Coverage +Version: 1.10 +Release: 0 %define cpan_name Test-Pod-Coverage -Summary: Test::Pod::Coverage Perl module +Summary: Check for pod coverage in your distribution. License: Artistic-1.0 or GPL-1.0+ Group: Development/Libraries/Perl -Version: 1.08 -Release: 0 Url: http://search.cpan.org/dist/Test-Pod-Coverage/ -Source: http://www.cpan.org/authors/id/P/PE/PETDANCE/Test-Pod-Coverage-%{version}.tar.gz +Source: http://www.cpan.org/authors/id/N/NE/NEILB/%{cpan_name}-%{version}.tar.gz BuildArch: noarch BuildRoot: %{_tmppath}/%{name}-%{version}-build -%{perl_requires} BuildRequires: perl -BuildRequires: perl(Pod::Coverage) -BuildRequires: perl(Test::Pod) BuildRequires: perl-macros +BuildRequires: perl(Pod::Coverage) Requires: perl(Pod::Coverage) +%{perl_requires} %description -Test::Pod::Coverage Perl module +Test::Pod::Coverage is used to create a test for your distribution, to +ensure that all relevant files in your distribution are appropriately +documented in pod. + +Can also be called with the Pod::Coverage manpage parms. + + use Test::Pod::Coverage tests=>1; + pod_coverage_ok( + "Foo::Bar", + { also_private => [ qr/^[A-Z_]+$/ ], }, + "Foo::Bar, with all-caps functions as privates", + ); + +The the Pod::Coverage manpage parms are also useful for subclasses that +don't re-document the parent class's methods. Here's an example from the +Mail::SRS manpage. + + pod_coverage_ok( "Mail::SRS" ); # No exceptions + + # Define the three overridden methods. + my $trustme = { trustme => [qr/^(new|parse|compile)$/] }; + pod_coverage_ok( "Mail::SRS::DB", $trustme ); + pod_coverage_ok( "Mail::SRS::Guarded", $trustme ); + pod_coverage_ok( "Mail::SRS::Reversable", $trustme ); + pod_coverage_ok( "Mail::SRS::Shortcut", $trustme ); + +Alternately, you could use the Pod::Coverage::CountParents manpage, which +always allows a subclass to reimplement its parents' methods without +redocumenting them. For example: + + my $trustparents = { coverage_class => 'Pod::Coverage::CountParents' }; + pod_coverage_ok( "IO::Handle::Frayed", $trustparents ); + +(The 'coverage_class' parameter is not passed to the coverage class with +other parameters.) + +If you want POD coverage for your module, but don't want to make +Test::Pod::Coverage a prerequisite for installing, create the following as +your _t/pod-coverage.t_ file: + + use Test::More; + eval "use Test::Pod::Coverage"; + plan skip_all => "Test::Pod::Coverage required for testing pod coverage" if $@; + + plan tests => 1; + pod_coverage_ok( "Pod::Master::Html"); + +Finally, Module authors can include the following in a _t/pod-coverage.t_ +file and have 'Test::Pod::Coverage' automatically find and check all +modules in the module distribution: + + use Test::More; + eval "use Test::Pod::Coverage 1.00"; + plan skip_all => "Test::Pod::Coverage 1.00 required for testing POD coverage" if $@; + all_pod_coverage_ok(); %prep %setup -q -n %{cpan_name}-%{version} @@ -49,18 +102,11 @@ %install %perl_make_install -# do not perl_process_packlist (noarch) -# remove .packlist file -%{__rm} -rf $RPM_BUILD_ROOT%perl_vendorarch -# remove perllocal.pod file -%{__rm} -rf $RPM_BUILD_ROOT%perl_archlib +%perl_process_packlist %perl_gen_filelist -%clean -%{__rm} -rf $RPM_BUILD_ROOT - %files -f %{name}.files -%defattr(-,root,root,-) -%doc Changes +%defattr(-,root,root,755) +%doc Changes README %changelog ++++++ Test-Pod-Coverage-1.08.tar.gz -> Test-Pod-Coverage-1.10.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Pod-Coverage-1.08/Changes new/Test-Pod-Coverage-1.10/Changes --- old/Test-Pod-Coverage-1.08/Changes 2006-01-26 05:00:01.000000000 +0100 +++ new/Test-Pod-Coverage-1.10/Changes 2014-07-17 19:07:01.000000000 +0200 @@ -1,60 +1,88 @@ -Revision history for Test::Pod::Coverage +Revision history for Perl module Test::Pod::Coverage + +1.10 2014-07-17 NEILB + - Changed license to Artistic 2.0, at PETDANCE's request. + - Added README + - Moved Coverage.pm to lib/Test/Pod/Coverage.pm + - Min perl version now set to 5.006 in both code and dist metadata. + Addresses RT#21564 from ANDK++ + - Added DESCRIPTION section to pod (RT#28715 JEREMIAH++), + and changed to a minimal SYNOPSIS, with everything else moved + to the DESCRIPTION. + - The "no verbose" tests in t/nosymbols.t weren't ensuring that the + tests were running with HARNESS_VERBOSE set to false. You could set + that true in your environment and break the test. + RT#53947 - thanks to Pete Armstrong. + - Makefile.PL: Ensured all prereqs listed in PREREQ_PM, + and TEST_REQUIRES set if a recent enough ExtUtils::MakeMaker. + - Added github repo to pod and dist metadata + - Deleted the old META.yml, so new MYMETA.{yml,json} will be generated. + - Reformatted as per CPAN::Changes::Spec + +1.09_01 2014-07-08 NEILB + - Specified license as 'Perl' in metadata, to match doc. + - All of the changes in 1.10 were first done in this developer release, + apart from the change to Artistic License 2.0. + +1.08 2006-01-26 PETDANCE + [FIXES] + - File and directory names may now contain periods and hyphens. + - Now exports all_modules(). + +1.07_01 2005-12-29 PETDANCE + [ENHANCEMENTS] + - Can now use an alternate class that implements the Pod::Coverage + interface. This is mostly useful for avoiding the necessity to + redocument or itemize overriden methods in a subclass by using + Pod::Coverage::CountParents. Thanks to Ricardo Signes. + +1.06 2004-06-22 PETDANCE + [ENHANCEMENTS] + - Looks in blib/ if there is one, otherwise looks in lib/ + - Doesn't report "no public symbols" unless verbose mode is on. + - Thanks to David Wheeler and Shawn Sorichetti for nudging. + This behavior will be in Test::Pod soon, too. + +1.04 2004-05-01 PETDANCE + [FIXES] + - Now it runs taint-safe. I was not untainting the filename. + +1.02 2004-05-01 PETDANCE + [FIXES] + - Fixed a warning in all_modules() under 5.8.3 + +1.00 2004-04-29 PETDANCE + [ENHANCEMENTS] + - Now runs taint-safe. + - No longer uses File::Find. + +0.08 2004-02-14 PETDANCE + [ENHANCEMENTS] + - Added all_pod_coverage_ok(), and all_modules() for support. + +0.06 2004-01-27 PETDANCE + [ENHANCEMENTS] + - Files with all pod and no symbols is no longer an error. + - Enhanced some of the error messages. + +0.04 2004-01-19 PETDANCE + [ENHANCEMENTS] + - Now lists the naked subroutines in the error message. + + +0.03 2004-01-17 PETDANCE (not released) + [ENHANCEMENTS] + - Now says what module has a problem if it can't find any POD. + Thanks, Barbie. + + [INTERNALS] + - Added a couple more tests to bring my test coverage up + to 100%, according to Devel::Cover. Whoo! + +0.02 2004-01-05 PETDANCE + - First version with the new reasonable API on pod_coverage_ok(). + If you got in on 0.01, switch now. + +0.01 2004-01-04 PETDANCE + - First release to CPAN -1.08 Wed Jan 25 21:59:49 CST 2006 - [FIXES] - * File and directory names may now contain periods and hyphens. - * Now exports all_modules(). - -1.07_01 Wed Dec 28 23:10:31 CST 2005 - [ENHANCEMENTS] - * Can now use an alternate class that implements the Pod::Coverage - interface. This is mostly useful for avoiding the necessity to - redocument or itemize overriden methods in a subclass by using - Pod::Coverage::CountParents. Thanks to Ricardo Signes. - -1.06 Tue Jun 22 16:51:42 CDT 2004 - [ENHANCEMENTS] - * Looks in blib/ if there is one, otherwise looks in lib/ - * Doesn't report "no public symbols" unless verbose mode is on. - * Thanks to David Wheeler and Shawn Sorichetti for nudging. - This behavior will be in Test::Pod soon, too. - -1.04 Sat May 1 00:06:14 CDT 2004 - [FIXES] - * Now it runs taint-safe. I was not untainting the filename. - -1.02 Fri Apr 30 23:27:23 CDT 2004 - [FIXES] - * Fixed a warning in all_modules() under 5.8.3 - -1.00 Wed Apr 28 23:50:19 CDT 2004 - [ENHANCEMENTS] - * Now runs taint-safe. - * No longer uses File::Find. - -0.08 Fri Feb 13 23:13:21 CST 2004 - [ENHANCEMENTS] - * Added all_pod_coverage_ok(), and all_modules() for support. - -0.06 Jan 27 2004 - [ENHANCEMENTS] - * Files with all pod and no symbols is no longer an error. - * Enhanced some of the error messages. - -0.04 Sun Jan 18 21:51:59 CST 2004 - [ENHANCEMENTS] - * Now lists the naked subroutines in the error message. - - -0.03 Sat Jan 17 11:14:56 CST 2004 - [ENHANCEMENTS] - * Now says what module has a problem if it can't find any - POD. Thanks, Barbie. - - [INTERNALS] - * Added a couple more tests to bring my test coverage up - to 100%, according to Devel::Cover. Whoo! - -0.02 - First version with the new reasonable API on pod_coverage_ok(). - If you got in on 0.01, switch now. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Pod-Coverage-1.08/Coverage.pm new/Test-Pod-Coverage-1.10/Coverage.pm --- old/Test-Pod-Coverage-1.08/Coverage.pm 2006-01-26 05:00:26.000000000 +0100 +++ new/Test-Pod-Coverage-1.10/Coverage.pm 1970-01-01 01:00:00.000000000 +0100 @@ -1,305 +0,0 @@ -package Test::Pod::Coverage; - -=head1 NAME - -Test::Pod::Coverage - Check for pod coverage in your distribution. - -=head1 VERSION - -Version 1.08 - -=cut - -our $VERSION = "1.08"; - -=head1 SYNOPSIS - -Checks for POD coverage in files for your distribution. - - use Test::Pod::Coverage tests=>1; - pod_coverage_ok( "Foo::Bar", "Foo::Bar is covered" ); - -Can also be called with L<Pod::Coverage> parms. - - use Test::Pod::Coverage tests=>1; - pod_coverage_ok( - "Foo::Bar", - { also_private => [ qr/^[A-Z_]+$/ ], }, - "Foo::Bar, with all-caps functions as privates", - ); - -The L<Pod::Coverage> parms are also useful for subclasses that don't -re-document the parent class's methods. Here's an example from -L<Mail::SRS>. - - pod_coverage_ok( "Mail::SRS" ); # No exceptions - - # Define the three overridden methods. - my $trustme = { trustme => [qr/^(new|parse|compile)$/] }; - pod_coverage_ok( "Mail::SRS::DB", $trustme ); - pod_coverage_ok( "Mail::SRS::Guarded", $trustme ); - pod_coverage_ok( "Mail::SRS::Reversable", $trustme ); - pod_coverage_ok( "Mail::SRS::Shortcut", $trustme ); - -Alternately, you could use L<Pod::Coverage::CountParents>, which always allows -a subclass to reimplement its parents' methods without redocumenting them. For -example: - - my $trustparents = { coverage_class => 'Pod::Coverage::CountParents' }; - pod_coverage_ok( "IO::Handle::Frayed", $trustparents ); - -(The C<coverage_class> parameter is not passed to the coverage class with other -parameters.) - -If you want POD coverage for your module, but don't want to make -Test::Pod::Coverage a prerequisite for installing, create the following -as your F<t/pod-coverage.t> file: - - use Test::More; - eval "use Test::Pod::Coverage"; - plan skip_all => "Test::Pod::Coverage required for testing pod coverage" if $@; - - plan tests => 1; - pod_coverage_ok( "Pod::Master::Html"); - -Finally, Module authors can include the following in a F<t/pod-coverage.t> -file and have C<Test::Pod::Coverage> automatically find and check all -modules in the module distribution: - - use Test::More; - eval "use Test::Pod::Coverage 1.00"; - plan skip_all => "Test::Pod::Coverage 1.00 required for testing POD coverage" if $@; - all_pod_coverage_ok(); - -=cut - -use strict; -use warnings; - -use Pod::Coverage; -use Test::Builder; - -my $Test = Test::Builder->new; - -sub import { - my $self = shift; - my $caller = caller; - no strict 'refs'; - *{$caller.'::pod_coverage_ok'} = \&pod_coverage_ok; - *{$caller.'::all_pod_coverage_ok'} = \&all_pod_coverage_ok; - *{$caller.'::all_modules'} = \&all_modules; - - $Test->exported_to($caller); - $Test->plan(@_); -} - -=head1 FUNCTIONS - -All functions listed below are exported to the calling namespace. - -=head2 all_pod_coverage_ok( [$parms, ] $msg ) - -Checks that the POD code in all modules in the distro have proper POD -coverage. - -If the I<$parms> hashref if passed in, they're passed into the -C<Pod::Coverage> object that the function uses. Check the -L<Pod::Coverage> manual for what those can be. - -The exception is the C<coverage_class> parameter, which specifies a class to -use for coverage testing. It defaults to C<Pod::Coverage>. - -=cut - -sub all_pod_coverage_ok { - my $parms = (@_ && (ref $_[0] eq "HASH")) ? shift : {}; - my $msg = shift; - - my $ok = 1; - my @modules = all_modules(); - if ( @modules ) { - $Test->plan( tests => scalar @modules ); - - for my $module ( @modules ) { - my $thismsg = defined $msg ? $msg : "Pod coverage on $module"; - - my $thisok = pod_coverage_ok( $module, $parms, $thismsg ); - $ok = 0 unless $thisok; - } - } - else { - $Test->plan( tests => 1 ); - $Test->ok( 1, "No modules found." ); - } - - return $ok; -} - - -=head2 pod_coverage_ok( $module, [$parms, ] $msg ) - -Checks that the POD code in I<$module> has proper POD coverage. - -If the I<$parms> hashref if passed in, they're passed into the -C<Pod::Coverage> object that the function uses. Check the -L<Pod::Coverage> manual for what those can be. - -The exception is the C<coverage_class> parameter, which specifies a class to -use for coverage testing. It defaults to C<Pod::Coverage>. - -=cut - -sub pod_coverage_ok { - my $module = shift; - my %parms = (@_ && (ref $_[0] eq "HASH")) ? %{(shift)} : (); - my $msg = @_ ? shift : "Pod coverage on $module"; - - my $pc_class = (delete $parms{coverage_class}) || 'Pod::Coverage'; - eval "require $pc_class" or die $@; - - my $pc = $pc_class->new( package => $module, %parms ); - - my $rating = $pc->coverage; - my $ok; - if ( defined $rating ) { - $ok = ($rating == 1); - $Test->ok( $ok, $msg ); - if ( !$ok ) { - my @nakies = sort $pc->naked; - my $s = @nakies == 1 ? "" : "s"; - $Test->diag( - sprintf( "Coverage for %s is %3.1f%%, with %d naked subroutine$s:", - $module, $rating*100, scalar @nakies ) ); - $Test->diag( "\t$_" ) for @nakies; - } - } - else { # No symbols - my $why = $pc->why_unrated; - my $nopublics = ( $why =~ "no public symbols defined" ); - my $verbose = $ENV{HARNESS_VERBOSE} || 0; - $ok = $nopublics; - $Test->ok( $ok, $msg ); - $Test->diag( "$module: $why" ) unless ( $nopublics && !$verbose ); - } - - return $ok; -} - -=head2 all_modules( [@dirs] ) - -Returns a list of all modules in I<$dir> and in directories below. If -no directories are passed, it defaults to F<blib> if F<blib> exists, -or F<lib> if not. - -Note that the modules are as "Foo::Bar", not "Foo/Bar.pm". - -The order of the files returned is machine-dependent. If you want them -sorted, you'll have to sort them yourself. - -=cut - -sub all_modules { - my @starters = @_ ? @_ : _starting_points(); - my %starters = map {$_,1} @starters; - - my @queue = @starters; - - my @modules; - while ( @queue ) { - my $file = shift @queue; - if ( -d $file ) { - local *DH; - opendir DH, $file or next; - my @newfiles = readdir DH; - closedir DH; - - @newfiles = File::Spec->no_upwards( @newfiles ); - @newfiles = grep { $_ ne "CVS" && $_ ne ".svn" } @newfiles; - - push @queue, map "$file/$_", @newfiles; - } - if ( -f $file ) { - next unless $file =~ /\.pm$/; - - my @parts = File::Spec->splitdir( $file ); - shift @parts if @parts && exists $starters{$parts[0]}; - shift @parts if @parts && $parts[0] eq "lib"; - $parts[-1] =~ s/\.pm$// if @parts; - - # Untaint the parts - for ( @parts ) { - if ( /^([a-zA-Z0-9_\.\-]+)$/ && ($_ eq $1) ) { - $_ = $1; # Untaint the original - } - else { - die qq{Invalid and untaintable filename "$file"!}; - } - } - my $module = join( "::", @parts ); - push( @modules, $module ); - } - } # while - - return @modules; -} - -sub _starting_points { - return 'blib' if -e 'blib'; - return 'lib'; -} - -=head1 BUGS - -Please report any bugs or feature requests to -C<bug-test-pod-coverage at rt.cpan.org>, or through the web interface at -L<http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Test-Pod-Coverage>. -I will be notified, and then you'll automatically be notified of progress on -your bug as I make changes. - -=head1 SUPPORT - -You can find documentation for this module with the perldoc command. - - perldoc Test::Pod::Coverage - -You can also look for information at: - -=over 4 - -=item * AnnoCPAN: Annotated CPAN documentation - -L<http://annocpan.org/dist/Test-Pod-Coverage> - -=item * CPAN Ratings - -L<http://cpanratings.perl.org/d/Test-Pod-Coverage> - -=item * RT: CPAN's request tracker - -L<http://rt.cpan.org/NoAuth/Bugs.html?Dist=Test-Pod-Coverage> - -=item * Search CPAN - -L<http://search.cpan.org/dist/Test-Pod-Coverage> - -=back - -=head1 AUTHOR - -Written by Andy Lester, C<< <andy at petdance.com> >>. - -=head1 ACKNOWLEDGEMENTS - -Thanks to Ricardo Signes for patches, and Richard Clamp for -writing Pod::Coverage. - -=head1 COPYRIGHT & LICENSE - -Copyright 2006, Andy Lester, All Rights Reserved. - -You may use, modify, and distribute this package under the -same terms as Perl itself. - -=cut - -1; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Pod-Coverage-1.08/MANIFEST new/Test-Pod-Coverage-1.10/MANIFEST --- old/Test-Pod-Coverage-1.08/MANIFEST 2006-01-26 03:27:26.000000000 +0100 +++ new/Test-Pod-Coverage-1.10/MANIFEST 2014-07-17 19:09:13.000000000 +0200 @@ -1,7 +1,7 @@ Changes -Coverage.pm +lib/Test/Pod/Coverage.pm MANIFEST -META.yml +README Makefile.PL t/00.load.t t/all_pod_coverage_ok.t @@ -20,3 +20,5 @@ t/privates.t t/self.t t/simple.t +META.yml Module YAML meta-data (added by MakeMaker) +META.json Module JSON meta-data (added by MakeMaker) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Pod-Coverage-1.08/META.json new/Test-Pod-Coverage-1.10/META.json --- old/Test-Pod-Coverage-1.08/META.json 1970-01-01 01:00:00.000000000 +0100 +++ new/Test-Pod-Coverage-1.10/META.json 2014-07-17 19:09:12.000000000 +0200 @@ -0,0 +1,59 @@ +{ + "abstract" : "Check for pod coverage in your distribution", + "author" : [ + "unknown" + ], + "dynamic_config" : 1, + "generated_by" : "ExtUtils::MakeMaker version 6.98, CPAN::Meta::Converter version 2.141170", + "license" : [ + "artistic_2" + ], + "meta-spec" : { + "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", + "version" : "2" + }, + "name" : "Test-Pod-Coverage", + "no_index" : { + "directory" : [ + "t", + "inc" + ] + }, + "prereqs" : { + "build" : { + "requires" : { + "ExtUtils::MakeMaker" : "0" + } + }, + "configure" : { + "requires" : { + "ExtUtils::MakeMaker" : "0" + } + }, + "runtime" : { + "requires" : { + "Pod::Coverage" : "0", + "Test::Builder" : "0", + "perl" : "5.006", + "strict" : "0", + "warnings" : "0" + } + }, + "test" : { + "requires" : { + "Test::Builder::Tester" : "0", + "Test::More" : "0", + "lib" : "0" + } + } + }, + "release_status" : "stable", + "resources" : { + "repository" : { + "type" : "git", + "url" : "git://github.com/neilbowers/Test-Pod-Coverage.git", + "web" : "https://github.com/neilbowers/Test-Pod-Coverage" + } + }, + "version" : "1.10" +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Pod-Coverage-1.08/META.yml new/Test-Pod-Coverage-1.10/META.yml --- old/Test-Pod-Coverage-1.08/META.yml 2006-01-26 05:01:20.000000000 +0100 +++ new/Test-Pod-Coverage-1.10/META.yml 2014-07-17 19:09:12.000000000 +0200 @@ -1,13 +1,31 @@ -# http://module-build.sourceforge.net/META-spec.html -#XXXXXXX This is a prototype!!! It will change in the future!!! XXXXX# -name: Test-Pod-Coverage -version: 1.08 -version_from: Coverage.pm -installdirs: site +--- +abstract: 'Check for pod coverage in your distribution' +author: + - unknown +build_requires: + ExtUtils::MakeMaker: '0' + Test::Builder::Tester: '0' + Test::More: '0' + lib: '0' +configure_requires: + ExtUtils::MakeMaker: '0' +dynamic_config: 1 +generated_by: 'ExtUtils::MakeMaker version 6.98, CPAN::Meta::Converter version 2.141170' +license: artistic_2 +meta-spec: + url: http://module-build.sourceforge.net/META-spec-v1.4.html + version: '1.4' +name: Test-Pod-Coverage +no_index: + directory: + - t + - inc requires: - Pod::Coverage: 0 - Test::Builder::Tester: 0 - Test::More: 0 - -distribution_type: module -generated_by: ExtUtils::MakeMaker version 6.30 + Pod::Coverage: '0' + Test::Builder: '0' + perl: '5.006' + strict: '0' + warnings: '0' +resources: + repository: git://github.com/neilbowers/Test-Pod-Coverage.git +version: '1.10' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Pod-Coverage-1.08/Makefile.PL new/Test-Pod-Coverage-1.10/Makefile.PL --- old/Test-Pod-Coverage-1.08/Makefile.PL 2006-01-26 03:27:26.000000000 +0100 +++ new/Test-Pod-Coverage-1.10/Makefile.PL 2014-07-17 18:56:40.000000000 +0200 @@ -2,15 +2,56 @@ use warnings; use ExtUtils::MakeMaker; +my $mm_ver = $ExtUtils::MakeMaker::VERSION; +if ($mm_ver =~ /_/) { + $mm_ver = eval $mm_ver; + die $@ if $@; +} + +my @REQUIRES = ( + 'strict' => 0, + 'warnings' => 0, + 'Pod::Coverage' => 0, + 'Test::Builder' => 0, +); + +my @TEST_REQUIRES = ( + 'Test::Builder::Tester' => 0, + 'Test::More' => 0, + 'lib' => 0, +); + +push(@REQUIRES, @TEST_REQUIRES) if $mm_ver < 6.64; + WriteMakefile( NAME => 'Test::Pod::Coverage', - VERSION_FROM => 'Coverage.pm', + VERSION_FROM => 'lib/Test/Pod/Coverage.pm', ABSTRACT => "Check for pod coverage in your distribution", - PREREQ_PM => { - 'Pod::Coverage' => 0, - 'Test::More' => 0, - 'Test::Builder::Tester' => 0, - }, + PREREQ_PM => { @REQUIRES }, + + ($mm_ver >= 6.64 + ? (TEST_REQUIRES => { @TEST_REQUIRES }) + : () + ), + + ($mm_ver >= 6.48 + ? (MIN_PERL_VERSION => 5.006) + : () + ), + + ($mm_ver >= 6.31 ? (LICENSE => 'artistic_2') : ()), + + ($mm_ver <= 6.45 ? () : (META_MERGE => { + 'meta-spec' => { version => 2 }, + resources => { + repository => { + type => 'git', + web => 'https://github.com/neilbowers/Test-Pod-Coverage', + url => 'git://github.com/neilbowers/Test-Pod-Coverage.git', + }, + }, + })), + dist => { COMPRESS => 'gzip -9f', SUFFIX => 'gz', }, clean => { FILES => 'Test-Pod-Coverage-*' }, ); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Pod-Coverage-1.08/README new/Test-Pod-Coverage-1.10/README --- old/Test-Pod-Coverage-1.08/README 1970-01-01 01:00:00.000000000 +0100 +++ new/Test-Pod-Coverage-1.10/README 2014-07-17 19:06:13.000000000 +0200 @@ -0,0 +1,17 @@ + + README for Perl module Test::Pod::Coverage + +This module is used to add a test to your Perl distribution, +which checks for pod coverage of all appropriate files. + +You can read a nicely formatted version of the documentation for +this module online: + + https://metacpan.org/pod/Test::Pod::Coverage + +You should be able to install this using your usual method for installing +modules from CPAN. If you don't have one let, have a look at: + + http://www.cpan.org/modules/INSTALL.html + +This module was written by Andy Lester, <petdance@cpan.org> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Pod-Coverage-1.08/lib/Test/Pod/Coverage.pm new/Test-Pod-Coverage-1.10/lib/Test/Pod/Coverage.pm --- old/Test-Pod-Coverage-1.08/lib/Test/Pod/Coverage.pm 1970-01-01 01:00:00.000000000 +0100 +++ new/Test-Pod-Coverage-1.10/lib/Test/Pod/Coverage.pm 2014-07-17 18:56:08.000000000 +0200 @@ -0,0 +1,318 @@ +package Test::Pod::Coverage; + +=head1 NAME + +Test::Pod::Coverage - Check for pod coverage in your distribution. + +=head1 VERSION + +Version 1.10 + +=cut + +our $VERSION = "1.10"; + +=head1 SYNOPSIS + +In one of your dist's test files (eg C<t/pod-coverage.t>): + + use Test::Pod::Coverage tests=>1; + pod_coverage_ok( "Foo::Bar", "Foo::Bar is covered" ); + +=head1 DESCRIPTION + +Test::Pod::Coverage is used to create a test for your distribution, +to ensure that all relevant files in your distribution are appropriately +documented in pod. + +Can also be called with L<Pod::Coverage> parms. + + use Test::Pod::Coverage tests=>1; + pod_coverage_ok( + "Foo::Bar", + { also_private => [ qr/^[A-Z_]+$/ ], }, + "Foo::Bar, with all-caps functions as privates", + ); + +The L<Pod::Coverage> parms are also useful for subclasses that don't +re-document the parent class's methods. Here's an example from +L<Mail::SRS>. + + pod_coverage_ok( "Mail::SRS" ); # No exceptions + + # Define the three overridden methods. + my $trustme = { trustme => [qr/^(new|parse|compile)$/] }; + pod_coverage_ok( "Mail::SRS::DB", $trustme ); + pod_coverage_ok( "Mail::SRS::Guarded", $trustme ); + pod_coverage_ok( "Mail::SRS::Reversable", $trustme ); + pod_coverage_ok( "Mail::SRS::Shortcut", $trustme ); + +Alternately, you could use L<Pod::Coverage::CountParents>, which always allows +a subclass to reimplement its parents' methods without redocumenting them. For +example: + + my $trustparents = { coverage_class => 'Pod::Coverage::CountParents' }; + pod_coverage_ok( "IO::Handle::Frayed", $trustparents ); + +(The C<coverage_class> parameter is not passed to the coverage class with other +parameters.) + +If you want POD coverage for your module, but don't want to make +Test::Pod::Coverage a prerequisite for installing, create the following +as your F<t/pod-coverage.t> file: + + use Test::More; + eval "use Test::Pod::Coverage"; + plan skip_all => "Test::Pod::Coverage required for testing pod coverage" if $@; + + plan tests => 1; + pod_coverage_ok( "Pod::Master::Html"); + +Finally, Module authors can include the following in a F<t/pod-coverage.t> +file and have C<Test::Pod::Coverage> automatically find and check all +modules in the module distribution: + + use Test::More; + eval "use Test::Pod::Coverage 1.00"; + plan skip_all => "Test::Pod::Coverage 1.00 required for testing POD coverage" if $@; + all_pod_coverage_ok(); + +=cut + +use 5.006; +use strict; +use warnings; + +use Pod::Coverage; +use Test::Builder; + +my $Test = Test::Builder->new; + +sub import { + my $self = shift; + my $caller = caller; + no strict 'refs'; + *{$caller.'::pod_coverage_ok'} = \&pod_coverage_ok; + *{$caller.'::all_pod_coverage_ok'} = \&all_pod_coverage_ok; + *{$caller.'::all_modules'} = \&all_modules; + + $Test->exported_to($caller); + $Test->plan(@_); +} + +=head1 FUNCTIONS + +All functions listed below are exported to the calling namespace. + +=head2 all_pod_coverage_ok( [$parms, ] $msg ) + +Checks that the POD code in all modules in the distro have proper POD +coverage. + +If the I<$parms> hashref if passed in, they're passed into the +C<Pod::Coverage> object that the function uses. Check the +L<Pod::Coverage> manual for what those can be. + +The exception is the C<coverage_class> parameter, which specifies a class to +use for coverage testing. It defaults to C<Pod::Coverage>. + +=cut + +sub all_pod_coverage_ok { + my $parms = (@_ && (ref $_[0] eq "HASH")) ? shift : {}; + my $msg = shift; + + my $ok = 1; + my @modules = all_modules(); + if ( @modules ) { + $Test->plan( tests => scalar @modules ); + + for my $module ( @modules ) { + my $thismsg = defined $msg ? $msg : "Pod coverage on $module"; + + my $thisok = pod_coverage_ok( $module, $parms, $thismsg ); + $ok = 0 unless $thisok; + } + } + else { + $Test->plan( tests => 1 ); + $Test->ok( 1, "No modules found." ); + } + + return $ok; +} + + +=head2 pod_coverage_ok( $module, [$parms, ] $msg ) + +Checks that the POD code in I<$module> has proper POD coverage. + +If the I<$parms> hashref if passed in, they're passed into the +C<Pod::Coverage> object that the function uses. Check the +L<Pod::Coverage> manual for what those can be. + +The exception is the C<coverage_class> parameter, which specifies a class to +use for coverage testing. It defaults to C<Pod::Coverage>. + +=cut + +sub pod_coverage_ok { + my $module = shift; + my %parms = (@_ && (ref $_[0] eq "HASH")) ? %{(shift)} : (); + my $msg = @_ ? shift : "Pod coverage on $module"; + + my $pc_class = (delete $parms{coverage_class}) || 'Pod::Coverage'; + eval "require $pc_class" or die $@; + + my $pc = $pc_class->new( package => $module, %parms ); + + my $rating = $pc->coverage; + my $ok; + if ( defined $rating ) { + $ok = ($rating == 1); + $Test->ok( $ok, $msg ); + if ( !$ok ) { + my @nakies = sort $pc->naked; + my $s = @nakies == 1 ? "" : "s"; + $Test->diag( + sprintf( "Coverage for %s is %3.1f%%, with %d naked subroutine$s:", + $module, $rating*100, scalar @nakies ) ); + $Test->diag( "\t$_" ) for @nakies; + } + } + else { # No symbols + my $why = $pc->why_unrated; + my $nopublics = ( $why =~ "no public symbols defined" ); + my $verbose = $ENV{HARNESS_VERBOSE} || 0; + $ok = $nopublics; + $Test->ok( $ok, $msg ); + $Test->diag( "$module: $why" ) unless ( $nopublics && !$verbose ); + } + + return $ok; +} + +=head2 all_modules( [@dirs] ) + +Returns a list of all modules in I<$dir> and in directories below. If +no directories are passed, it defaults to F<blib> if F<blib> exists, +or F<lib> if not. + +Note that the modules are as "Foo::Bar", not "Foo/Bar.pm". + +The order of the files returned is machine-dependent. If you want them +sorted, you'll have to sort them yourself. + +=cut + +sub all_modules { + my @starters = @_ ? @_ : _starting_points(); + my %starters = map {$_,1} @starters; + + my @queue = @starters; + + my @modules; + while ( @queue ) { + my $file = shift @queue; + if ( -d $file ) { + local *DH; + opendir DH, $file or next; + my @newfiles = readdir DH; + closedir DH; + + @newfiles = File::Spec->no_upwards( @newfiles ); + @newfiles = grep { $_ ne "CVS" && $_ ne ".svn" } @newfiles; + + push @queue, map "$file/$_", @newfiles; + } + if ( -f $file ) { + next unless $file =~ /\.pm$/; + + my @parts = File::Spec->splitdir( $file ); + shift @parts if @parts && exists $starters{$parts[0]}; + shift @parts if @parts && $parts[0] eq "lib"; + $parts[-1] =~ s/\.pm$// if @parts; + + # Untaint the parts + for ( @parts ) { + if ( /^([a-zA-Z0-9_\.\-]+)$/ && ($_ eq $1) ) { + $_ = $1; # Untaint the original + } + else { + die qq{Invalid and untaintable filename "$file"!}; + } + } + my $module = join( "::", @parts ); + push( @modules, $module ); + } + } # while + + return @modules; +} + +sub _starting_points { + return 'blib' if -e 'blib'; + return 'lib'; +} + +=head1 BUGS + +Please report any bugs or feature requests to +C<bug-test-pod-coverage at rt.cpan.org>, or through the web interface at +L<http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Test-Pod-Coverage>. +I will be notified, and then you'll automatically be notified of progress on +your bug as I make changes. + +=head1 SUPPORT + +You can find documentation for this module with the perldoc command. + + perldoc Test::Pod::Coverage + +You can also look for information at: + +=over 4 + +=item * AnnoCPAN: Annotated CPAN documentation + +L<http://annocpan.org/dist/Test-Pod-Coverage> + +=item * CPAN Ratings + +L<http://cpanratings.perl.org/d/Test-Pod-Coverage> + +=item * RT: CPAN's request tracker + +L<http://rt.cpan.org/NoAuth/Bugs.html?Dist=Test-Pod-Coverage> + +=item * Search CPAN + +L<http://search.cpan.org/dist/Test-Pod-Coverage> + +=back + +=head1 REPOSITORY + +L<https://github.com/neilbowers/Test-Pod-Coverage> + +=head1 AUTHOR + +Written by Andy Lester, C<< <andy at petdance.com> >>. + +=head1 ACKNOWLEDGEMENTS + +Thanks to Ricardo Signes for patches, and Richard Clamp for +writing Pod::Coverage. + +=head1 COPYRIGHT & LICENSE + +Copyright 2006, Andy Lester, All Rights Reserved. + +This program is free software; you can redistribute it and/or modify it +under the terms of the Artistic License version 2.0. + +See http://dev.perl.org/licenses/ for more information + +=cut + +1; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Test-Pod-Coverage-1.08/t/nosymbols.t new/Test-Pod-Coverage-1.10/t/nosymbols.t --- old/Test-Pod-Coverage-1.08/t/nosymbols.t 2006-01-26 03:27:26.000000000 +0100 +++ new/Test-Pod-Coverage-1.10/t/nosymbols.t 2014-07-08 12:14:04.000000000 +0200 @@ -10,6 +10,7 @@ } NO_VERBOSE: { + local $ENV{HARNESS_VERBOSE} = 0; test_out( "ok 1 - Checking Nosymbols" ); pod_coverage_ok( "Nosymbols", "Checking Nosymbols" ); test_test( "Handles files with no symbols" ); -- To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org
participants (1)
-
root@hilbert.suse.de