diff -Nru libdevel-cover-perl-1.21/bin/cover libdevel-cover-perl-1.29/bin/cover --- libdevel-cover-perl-1.21/bin/cover 2015-09-19 22:31:27.000000000 +0000 +++ libdevel-cover-perl-1.29/bin/cover 2017-10-15 19:42:19.000000000 +0000 @@ -1,6 +1,6 @@ #!/usr/bin/perl -# Copyright 2001-2015, Paul Johnson (paul@pjcj.net) +# Copyright 2001-2017, Paul Johnson (paul@pjcj.net) # This software is free. It is licensed under the same terms as Perl itself. @@ -12,11 +12,15 @@ use strict; use warnings; -our $VERSION = '1.21'; # VERSION -our $LVERSION = - do { local $SIG{__WARN__} = sub {}; eval '$VERSION' || "0.001" }; # for dev +our $VERSION; +BEGIN { +our $VERSION = '1.29'; # VERSION +} use Devel::Cover::DB; +use Devel::Cover::Inc; + +BEGIN { $VERSION //= $Devel::Cover::Inc::VERSION } use Config; use File::Spec; @@ -24,6 +28,8 @@ use File::Path; use Getopt::Long; use Pod::Usage; +use Storable qw( dclone ); + use Devel::Cover::Dumper; # For debugging use Data::Dumper (); # no import of Dumper (use Devel::Cover::Dumper if needed) @@ -38,14 +44,16 @@ ignore_re => [], launch => 0, make => $Config{make}, - report => "", + prefer_lib => 0, + report => [], report_c0 => 75, report_c1 => 90, report_c2 => 100, select => [], select_re => [], summary => 1, - uncoverable_file => [".uncoverable", glob("~/.uncoverable")], + uncoverable_file => [], + # .uncoverable and ~/.uncoverable are always checked }; sub get_options { @@ -71,6 +79,7 @@ launch! make=s outputdir=s + prefer_lib! report_c0=s report_c1=s report_c2=s @@ -84,7 +93,8 @@ version|v! )); Getopt::Long::Configure("nopass_through"); - $Options->{report} ||= "html" unless exists $Options->{write}; + $Options->{report} = ["html"] + if !@{$Options->{report}} && !exists $Options->{write}; # handle comma seperated ops, like -coverage branch,statement @@ -155,7 +165,8 @@ # Test command for Module::Build sub mb_test_command { - my $test = "./Build test"; + my $builder = File::Spec->catfile(File::Spec->curdir, "Build"); + my $test = "$builder test"; if ($Options->{gcov}) { my $o = gcov_args(); $test .= qq{ "--extra_compiler_flags=-O0 $o" "--extra_linker_flags=$o"}; @@ -180,17 +191,19 @@ $Devel::Cover::Silent = 1 if $Options->{silent}; - my $format = "Devel::Cover::Report::\u$Options->{report}"; - if (length $Options->{report}) { + $Options->{report} = [ grep { + my $report = $_; + my $format = "Devel::Cover::Report::\u$report"; eval ("use $format"); if ($@) { - print "Error: $Options->{report} ", - "is not a recognised output format\n\n$@"; - exit 1; + print "Error: $report is not a recognised output format\n$@\n\n"; + () + } else { + $report } - } + } @{$Options->{report}} ]; - $format->get_options($Options) if $format->can("get_options"); + exit 1 if !@{$Options->{report}} && !$Options->{delete}; $Options->{annotations} = []; for my $a (@{$Options->{annotation}}) { @@ -205,10 +218,15 @@ push @{$Options->{annotations}}, $ann; } - print "$0 version $LVERSION\n" and exit 0 if $Options->{version}; + print "$0 version $VERSION\n" and exit 0 if $Options->{version}; pod2usage(-exitval => 0, -verbose => 1) if $Options->{help}; pod2usage(-exitval => 0, -verbose => 2) if $Options->{info}; + my @argv = @ARGV; + my $options = dclone($Options); + my $report = $Options->{report}[0]; + my $format = "Devel::Cover::Report::\u$report"; + $format->get_options($options) if $format->can("get_options"); my $dbname = File::Spec->rel2abs(@ARGV ? shift @ARGV : "cover_db"); die "Can't open database $dbname\n" if !$Options->{delete} && !$Options->{test} && !-d $dbname; @@ -225,7 +243,7 @@ my $test_result = 0; if ($Options->{test}) { - # TODO - make this a little robust + # TODO - make this a little more robust # system "$^X Makefile.PL" unless -e "Makefile"; delete_db($dbname, @ARGV) unless defined $Options->{delete}; my $env_db_name = $dbname; @@ -235,10 +253,10 @@ $extra .= ",-coverage,$_" for @{$Options->{coverage}}; $extra .= ",-ignore,$_" for @{$Options->{ignore_re}}, - map quotemeta glob, @{$Options->{ignore}}; + map quotemeta, map glob, @{$Options->{ignore}}; $extra .= ",-select,$_" for @{$Options->{select_re}}, - map quotemeta glob, @{$Options->{select}}; + map quotemeta, map glob, @{$Options->{select}}; $Options->{$_} = [] for qw( ignore ignoring select select_re ); @@ -258,7 +276,7 @@ print STDERR "cover: running $test\n"; $test_result = system $test; $test_result >>= 8; - $Options->{report} ||= "html"; + $Options->{report} = ["html"] unless @{$Options->{report}}; } if ($Options->{gcov}) { @@ -290,12 +308,14 @@ }; File::Find::find({ wanted => $gp, no_chdir => 1 }, "."); if (@gc) { - # Find the right gcov2perl based on this current script. + # Find the right gcov2perl based on this current script require Cwd; my $path = Cwd::abs_path($0); my ($vol, $dir, $cover) = File::Spec->splitpath($path); my $gcov2perl = File::Spec->catpath($vol, $dir, 'gcov2perl'); - my @c = ($^X, $gcov2perl, "-db", $dbname, @gc); + my @opts = split " ", $ENV{DEVEL_COVER_TEST_OPTS}; + # print STDERR "cover: test [$ENV{DEVEL_COVER_TEST_OPTS}]\n"; + my @c = ($^X, @opts, $gcov2perl, "-db", $dbname, @gc); print STDERR "cover: running @c\n"; system @c; } @@ -304,6 +324,7 @@ print "Reading database from $dbname\n" unless $Options->{silent}; my $db = Devel::Cover::DB->new( db => $dbname, + prefer_lib => $Options->{prefer_lib}, uncoverable_file => $Options->{uncoverable_file}, ); $db = $db->merge_runs; @@ -358,7 +379,9 @@ $structure->write($dbname); } - exit $test_result unless $Options->{summary} || $Options->{report}; + $db->clean; + + exit $test_result unless $Options->{summary} || @{$Options->{report}}; $Options->{coverage} = [ $db->collected ] unless @{$Options->{coverage}}; $Options->{show} = { map { $_ => 1 } @{$Options->{coverage}} }; @@ -369,7 +392,7 @@ print "\n\n" unless $Options->{silent}; # TODO - The sense of select and ignore should be reversed to match - # collection. + # collection - check this my %f = map { $_ => 1 } (@{$Options->{select}} ? map glob, @{$Options->{select}} @@ -392,16 +415,20 @@ $db->print_summary($Options->{file}, $Options->{coverage}, {force => 1}) if $Options->{summary}; - exit $test_result unless length $Options->{report}; - - $format->report($db, $Options); - - if ($Options->{launch}) { - if ($format->can("launch")) { - $format->launch($Options); - } else { - print STDERR "The launch option is not available for the ", - "$Options->{report} report.\n" + for my $report (@{$Options->{report}}) { + @ARGV = @argv; + my $options = dclone($Options); + my $format = "Devel::Cover::Report::\u$report"; + $format->get_options($options) if $format->can("get_options"); + $format->report($db, $options); + + if ($options->{launch}) { + if ($format->can("launch")) { + $format->launch($options); + } else { + print STDERR "The launch option is not available for the ", + "$options->{report} report.\n" + } } } @@ -418,7 +445,7 @@ =head1 VERSION -version 1.21 +version 1.29 =head1 SYNOPSIS @@ -435,11 +462,11 @@ The following reports are currently available: - text - detailed textual summary - html - detailed HTML reports + html - detailed HTML reports (default) html_basic - detailed HTML reports with syntax highlighting - compilation - output in a format similar to Perl - json - output in a JSON + text - detailed textual summary + compilation - output in a format similar to Perl errors + json - output in a JSON format vim - show coverage information in vim gutter =head1 OPTIONS @@ -469,6 +496,7 @@ -test - drop database(s) and run make test (default off) -gcov - run gcov to cover XS code (default on if using gcc) -make make_prog - use the given 'make' program for 'make test' + -prefer_lib - prefer files in lib (default off) -add_uncoverable_point string -delete_uncoverable_point string @@ -479,15 +507,19 @@ coverage_database [coverage_database ...] +The C<-report>, C<-select>, C<-ignore>, C<-select_re>, C<-ignore_re>, and +C<-coverage> options may be specified multiple times. + =head1 REPORT FORMATS -Tool accepts -report option: +The following C<-report> options are available in the core module. Other +reports may be available if they've been installed from external packages. =over 4 =item html|html_minimal (default) -HTML reporting. Percentage thresholds are color-coded and configurable +HTML reporting. Percentage thresholds are colour-coded and configurable via -report_c0 , -report_c1 and -report_c2 .: 0% 75% 90% 100% @@ -507,9 +539,18 @@ =item compilation -Like text but hacked to give a minimal output in a format similar -to that output by Perl itself so that it's easier to step through -the untested locations with Emacs compilation mode. +A textual report in a format similar to that output by Perl itself such that +the report may be used by your editor or other reporting tools to show where +coverage is missing. + +=item json + +A report in JSON format. + +=item vim + +A report suitable for use with the vim editor to show coverage data in the sign +column. =back @@ -520,16 +561,16 @@ merged information. If no databases are specified the default database (cover_db) will be used. -The -write option will write out the merged database. If no name is +The C<-write> option will write out the merged database. If no name is given for the new database, the first database read in will be overwritten. When this option is used no reports are generated by default. -Specify the -select, -select_re, -ignore, and -ignore_re options to report -on specific files. -select and -ignore are interpreted as shell globs; --select_re and -ignore_re are interpreted as regular expressions. +Specify the C<-select>, C<-select_re>, C<-ignore>, and C<-ignore_re> options to +report on specific files. C<-select> and C<-ignore> are interpreted as shell +globs; C<-select_re> and C<-ignore_re> are interpreted as regular expressions. -Specify -coverage options to report on specific criteria. By default all +Specify C<-coverage> options to report on specific criteria. By default all available information on all criteria in all files will be reported. Available coverage options are statement, branch, condition, subroutine, pod, and default (which equates to all available options). However, if you know @@ -540,9 +581,13 @@ information. If you want all *except* some criteria, then you can say something like -'-coverage default,-pod'. +C<-coverage default,-pod>. -The -test option will delete the databases and run your tests to generate +If you specify multiple C<-report> options, make sure that they do not +conflict. For example, the different HTML reports will overwrite each other's +results. + +The C<-test> option will delete the databases and run your tests to generate new coverage data before reporting on it. L knows how to work with standard Perl Makefiles as well as L based distributions. For detailed instructions see the documentation for ExtUtils::MakeMaker at @@ -550,10 +595,13 @@ L both of which come as standard in recent Perl distributions. -The -gcov option will try to run gcov on any XS code. This requires that -you are using gcc of course. If you are using the -test option will be +The C<-gcov> option will try to run gcov on any XS code. This requires that +you are using gcc of course. If you are using the C<-test> option will be turned on by default. +The C<-prefer_lib> option tells Devel::Cover to report on files in the lib +directory even if they were used from the blib directory. + =head1 EXIT STATUS The following exit values are returned: @@ -576,7 +624,7 @@ =head1 LICENCE -Copyright 2001-2015, Paul Johnson (paul@pjcj.net) +Copyright 2001-2017, Paul Johnson (paul@pjcj.net) This software is free. It is licensed under the same terms as Perl itself. diff -Nru libdevel-cover-perl-1.21/bin/cpancover libdevel-cover-perl-1.29/bin/cpancover --- libdevel-cover-perl-1.21/bin/cpancover 2015-09-19 22:31:27.000000000 +0000 +++ libdevel-cover-perl-1.29/bin/cpancover 2017-10-15 19:42:19.000000000 +0000 @@ -1,16 +1,16 @@ #!/usr/bin/perl -# Copyright 2002-2015, Paul Johnson (paul@pjcj.net) +# Copyright 2002-2017, Paul Johnson (paul@pjcj.net) # This software is free. It is licensed under the same terms as Perl itself. # The latest version of this software should be available from my homepage: # http://www.pjcj.net -use 5.16.0; +use 5.26.0; use warnings; -our $VERSION = '1.21'; # VERSION +our $VERSION = '1.29'; # VERSION use Devel::Cover::Collection; @@ -36,7 +36,7 @@ output_file => "index.html", report => "html_basic", results_dir => cwd(), - timeout => 1800, # half an hour + timeout => 7200, # two hours verbose => 0, workers => 0, }; @@ -70,19 +70,18 @@ } sub newcp { - my $self = shift; Devel::Cover::Collection->new( - bin_dir => $Options->{bin_dir}, - docker => $Options->{docker}, - force => $Options->{force}, - local => $Options->{local}, - modules => $Options->{module}, - output_file => $Options->{output_file}, - report => $Options->{report}, - results_dir => $Options->{results_dir}, - timeout => $Options->{timeout}, - verbose => $Options->{verbose}, - workers => $Options->{workers}, + bin_dir => $Options->{bin_dir}, + docker => $Options->{docker}, + force => $Options->{force}, + local => $Options->{local}, + modules => $Options->{module}, + output_file => $Options->{output_file}, + report => $Options->{report}, + results_dir => $Options->{results_dir}, + timeout => $Options->{timeout}, + verbose => $Options->{verbose}, + workers => $Options->{workers}, ) } @@ -146,7 +145,7 @@ =head1 VERSION -version 1.21 +version 1.29 =head1 SYNOPSIS @@ -203,13 +202,11 @@ =head1 BUGS - Incomplete. Undocumented. - Needs to be redone properly. =head1 LICENCE -Copyright 2002-2015, Paul Johnson (paul@pjcj.net) +Copyright 2002-2017, Paul Johnson (paul@pjcj.net) This software is free. It is licensed under the same terms as Perl itself. diff -Nru libdevel-cover-perl-1.21/bin/gcov2perl libdevel-cover-perl-1.29/bin/gcov2perl --- libdevel-cover-perl-1.21/bin/gcov2perl 2015-09-19 22:31:27.000000000 +0000 +++ libdevel-cover-perl-1.29/bin/gcov2perl 2017-10-15 19:42:19.000000000 +0000 @@ -1,6 +1,6 @@ #!/usr/bin/perl -# Copyright 2001-2015, Paul Johnson (paul@pjcj.net) +# Copyright 2001-2017, Paul Johnson (paul@pjcj.net) # This software is free. It is licensed under the same terms as Perl itself. @@ -12,7 +12,7 @@ use strict; use warnings; -our $VERSION = '1.21'; # VERSION +our $VERSION = '1.29'; # VERSION use Devel::Cover::DB; @@ -27,7 +27,7 @@ sub get_options { die "Bad option" unless - GetOptions($Options, # Store the options in the Options hash. + GetOptions($Options, # Store the options in the Options hash qw( db=s help|h! @@ -145,7 +145,7 @@ =head1 VERSION -version 1.21 +version 1.29 =head1 SYNOPSIS @@ -213,7 +213,7 @@ =head1 LICENCE -Copyright 2001-2015, Paul Johnson (paul@pjcj.net) +Copyright 2001-2017, Paul Johnson (paul@pjcj.net) This software is free. It is licensed under the same terms as Perl itself. diff -Nru libdevel-cover-perl-1.21/Changes libdevel-cover-perl-1.29/Changes --- libdevel-cover-perl-1.21/Changes 2015-09-19 22:31:27.000000000 +0000 +++ libdevel-cover-perl-1.29/Changes 2017-10-15 19:42:19.000000000 +0000 @@ -1,825 +1,879 @@ Devel::Cover history +Release 1.29 - 15 October 2017 + - Lock using read and append mode (Stephan Loyd) (github 196) + - Clean up lock files when running cover command + +Release 1.28 - 5 October 2017 + - Fix typo in docs (Gregor Herrmann) (github 195) + - Fix up options to cover program (github 194) + +Release 1.27 - 20 September 2017 + - Test against 5.27.3 + - Add dependency on B::Debug (Ryan Voots) (github 189) + - Remove obsolete dev and cpancover code + - Manage multiple ignore and select options (Sullivan Beck) (github 163) + - Write top-level html last for better sorting (Christian Walde) (github 158) + - Restore XS coverage in cpancover (H.Merijn Brand) (github 188) + - Allow cpancover to run fully from local directory + - Handle missing start times in runs (Chad Granum) (github 190) + - Add test for string eval (Sebastian Paaske Tørholm) (github 145) + - Improve uncoverable tests and docs (Kevin Brannen) (github 167) + - The cover program accepts multiple reports (Eden Hochbaum) (github 172) + - Add -prefer_lib option to cover script (Kent Fredric) (github 91) + - Fix low-level file locking (Graham Knop) (github 90) + +Release 1.26 - 24 July 2017 + - Untaint $DEVEL_COVER_OPTIONS (Alexey Sokolov) (github 187) + - Add loose_perms option (Todd Rinaldo) (github 185) + - Set EXTENDED_TESTING during cpancover runs + - Improve version parsing for cpancover (Helmut Wollmersdorfer) (github 124) + - Improve cpancover code and documentation + +Release 1.25 - 11 May 2017 + - Fix C code to work with MSVC (Marc-Philip) (github 177) + - Fix cover command using Module::Build on Win32 (sago35) (github 160) + - Add file and line info to keep ops unique (Niko Tyni) (github 143) + - Report coverage for all declarations (Heinz Knutzen) (github 166) + - Fix spelling mistakes (Gregor Herrmann) (github 171) + - Fix condition coverage for complex conditions (Heinz Knutzen) (github 165) + - Use JSON::MaybeXS for sppen and flexibility (Olivier Mengué) (github 139) + - Add CONTRIBUTING file (Gabor Szabó) (github 100) + +Release 1.24 - 18 April 2017 + - Work with 5.25.x (op_sibling) (Dan Collins, Matthew Horsfall) (github 162) + - Perl versions below 5.10.0 are now unsupported + +Release 1.23 - 24 April 2016 + - Enhance html coverage popups (Haydn Newport) (github 156) + - Add cpancover about page (Guillermo O. Freschi) (github 146) + - Perl versions below 5.8.1 are now unsupported + +Release 1.22 - 9 April 2016 + - Test against 5.20.3, 5.23.1 - 5.23.9, 5.22.1 + - Improve uncoverable docs (Alex Balhatchet) (github 148) + - Improve cpancover + Release 1.21 - 20 September 2015 - - Test more versions on travis. - - Fix things up with cpancover for new docker release. - - Fix problem under 5.22 (Dick Franks) (github 140). + - Test more versions on travis + - Fix things up with cpancover for new docker release + - Fix problem under 5.22 (Dick Franks) (github 140) Release 1.20 - 6 July 2015 - - Document setting PerlSwitches for mod_perl (jpsalvesen) (github 128). + - Document setting PerlSwitches for mod_perl (jpsalvesen) (github 128) Release 1.19 - 5 July 2015 - - Get things working with 5.22.0. - - Test against 5.23.0. - - Remove dependency on Test::Warn. + - Get things working with 5.22.0 + - Test against 5.23.0 + - Remove dependency on Test::Warn Release 1.18 - 6 April 2015 - - Remove dependency on CGI (use HTML::Entities instead) (Lee Johnson). - - Fix a use of the wrong type of null constant (Zefram) (RT #103102). - - Link to next uncovered statement in html_basic (H.Merijn Brand) (github 112). - - Add "provides" to metadata (Ivan Wills) (github 119). + - Remove dependency on CGI (use HTML::Entities instead) (Lee Johnson) + - Fix a use of the wrong type of null constant (Zefram) (RT #103102) + - Link to next uncovered statement in html_basic (H.Merijn Brand) (github 112) + - Add "provides" to metadata (Ivan Wills) (github 119) Release 1.17 - 20 September 2014 - - Get cpancover to release quality. - - Add IRC link to META. - - Test against 5.20.1, 5.21.1, 5.21.2, 5.21,3 and 5.21.4. - - Officially support 5.20.1. + - Get cpancover to release quality + - Add IRC link to META + - Test against 5.20.1, 5.21.1, 5.21.2, 5.21.3 and 5.21.4 + - Officially support 5.20.1 Release 1.16 - 17 August 2014 - - Fix segfault in 5.20.0. - - Improvements to cpancover. - - Fix vim report to work with recent versions (cono) (github 94). - - Ignore vim swap files in git (Gábor Szabó) (github 95). - - Improve help for cover command (Gábor Szabó) (github 96). + - Fix segfault in 5.20.0 + - Improvements to cpancover + - Fix vim report to work with recent versions (cono) (github 94) + - Ignore vim swap files in git (Gábor Szabó) (github 95) + - Improve help for cover command (Gábor Szabó) (github 96) Release 1.15 - 1 June 2014 - - Allow -coverage default,-pod option to cover (David Cantrell) (github 89). - - Get cpancover coverage in docker containers. - - Add CGI.pm as a prerequisite. - - Test against 5.20.0 and 5.21.0. - - Add longer delay in tests to try to appease *BSD. + - Allow -coverage default,-pod option to cover (David Cantrell) (github 89) + - Get cpancover coverage in docker containers + - Add CGI.pm as a prerequisite + - Test against 5.20.0 and 5.21.0 + - Add longer delay in tests to try to appease *BSD Release 1.14 - 2 May 2014 - - Fix test failures on OpenBSD, NetBSD and Windows. + - Fix test failures on OpenBSD, NetBSD and Windows Release 1.13 - 28 April 2014 - - Test against 5.19.11. - - Fix "use 5.xyz;" on pre 5.10 perls (github 87). - - Round percentages down in summary and reports (also fixes Windows tests). + - Test against 5.19.11 + - Fix "use 5.xyz;" on pre 5.10 perls (github 87) + - Round percentages down in summary and reports (also fixes Windows tests) Release 1.12 - 17 April 2014 - - Fix test failure on OSX, FreeBSD and HPUX (thanks H.Merijn Brand). + - Fix test failure on OSX, FreeBSD and HPUX (thanks H.Merijn Brand) Release 1.11 - 13 April 2014 - - Tests should pass when all run in parallel (Kent Fredric) (github 69). - - Fix problems with using Sereal as DB format. + - Tests should pass when all run in parallel (Kent Fredric) (github 69) + - Fix problems with using Sereal as DB format Release 1.10 - 6 April 2014 - - Test against 5.19.10. - - Add Sereal backend and use it if available. - - Support spaces in DB path (Keith Wissing) (github 81). - - Test against 5.8 on Travis (Slaven Rezić) (github 76). - - HTML cleanups (H.Merijn Brand). - - Fix deep recursion with use overload (Matthew Horsfall) (github 78, 79). - - Improve testing process. + - Test against 5.19.10 + - Add Sereal backend and use it if available + - Support spaces in DB path (Keith Wissing) (github 81) + - Test against 5.8 on Travis (Slaven Rezić) (github 76) + - HTML cleanups (H.Merijn Brand) + - Fix deep recursion with use overload (Matthew Horsfall) (github 78, 79) + - Improve testing process Release 1.09 - 15 March 2014 - - Add Contributors file. - - Test against 5.19.4 - 5.19.9. - - Officially support 5.18.2. + - Add Contributors file + - Test against 5.19.4 - 5.19.9 + - Officially support 5.18.2 - Fix shortcircuiting conditional operators for blead changes - (Matthew Horsfall) (rt 90591) (github 75, 80). - - Fix tab expansion in HTML report (H.Merijn Brand) (github 83). + (Matthew Horsfall) (rt 90591) (github 75, 80) + - Fix tab expansion in HTML report (H.Merijn Brand) (github 83) Release 1.08 - 24 August 2013 - - Don't test against 5.17.x development releases. + - Don't test against 5.17.x development releases - Don't test against 5.19.2 and 5.19.3 which have a bug which causes tests to - fail. - - Perl 5.18 is more picky about POD encodings (Gregor Herrmann) (rt 88027). - - Numerous typo fixes (David Steinbrunner) (github 67). + fail + - Perl 5.18 is more picky about POD encodings (Gregor Herrmann) (rt 88027) + - Numerous typo fixes (David Steinbrunner) (github 67) Release 1.07 - 22 August 2013 - Improve -coverage options, fix -ignore_re for .gcov files (Steve Sanbeg) - (github 53). - - Work around B::CV::GV regression in 5.18.1. - - Officially support 5.18.1. - - Test against 5.19.1, 5.19.2 and 5.19.3. + (github 53) + - Work around B::CV::GV regression in 5.18.1 + - Officially support 5.18.1 + - Test against 5.19.1, 5.19.2 and 5.19.3 Release 1.06 - 17 July 2013 - - More DEVEL_COVER_NO_TESTS changes for p5cover. + - More DEVEL_COVER_NO_TESTS changes for p5cover Release 1.05 - 17 July 2013 - - Quieten some deparse warnings. - - Fix errors in write_csv (Jim Keenan) (github 64). - - Fix error in -inc/+inc docs and pod formatting (Olaf Alders) (github 65). - - Add DEVEL_COVER_NO_TESTS option to not run any tests during p5cover. + - Quieten some deparse warnings + - Fix errors in write_csv (Jim Keenan) (github 64) + - Fix error in -inc/+inc docs and pod formatting (Olaf Alders) (github 65) + - Add DEVEL_COVER_NO_TESTS option to not run any tests during p5cover Release 1.04 - 1 June 2013 - - Fix return code from cover (Kan Fushihara) (guthub 61). - - Fix pod coverage for multiple packages in a file. (rt 34888). - - Speed improvements. + - Fix return code from cover (Kan Fushihara) (guthub 61) + - Fix pod coverage for multiple packages in a file. (rt 34888) + - Speed improvements Release 1.03 - 20 May 2013 - - Fixes for correct operation with 5.17.11, 5.18.0 and 5.19.0. + - Fixes for correct operation with 5.17.11, 5.18.0 and 5.19.0 Release 1.02 - 28 April 2013 - - Make -silent even quieter (Sergiy Borodych) (guthub 49). - - mod_perl2 on Debian sets $^X to apache2 (Lasse Makholm) (github 47). - - Add csv file for use with metacpan (Dinis Rebolo) (github 56). + - Make -silent even quieter (Sergiy Borodych) (guthub 49) + - mod_perl2 on Debian sets $^X to apache2 (Lasse Makholm) (github 47) + - Add csv file for use with metacpan (Dinis Rebolo) (github 56) - cover -test exists with the staus of the underlying test run (Kan Fushihara) - (github 57, 58). - - Quieten a warning (Jim Keenan) (github 59). + (github 57, 58) + - Quieten a warning (Jim Keenan) (github 59) Release 1.01 - 30 March 2013 - - Test against 5.14.4, 5.16.3, 5.17.8, 5.17.9 and 5.17.10. - - Ignore PERL5OPT during tests. And other make targets. (rt 43833). - - &&=, ||= and //= operators now require RHS to be true and false. - - Fix some "uninitialized value" warnings. + - Test against 5.14.4, 5.16.3, 5.17.8, 5.17.9 and 5.17.10 + - Ignore PERL5OPT during tests. And other make targets. (rt 43833) + - &&=, ||= and //= operators now require RHS to be true and false + - Fix some "uninitialized value" warnings Release 1.00 - 10 February 2013 - - Fix segv in constant folding of xor ops (github 40). - - Fix various problems running Devel::Cover under tainting (github 41). - - Add JavaScript to filter results in html_basic (David Cantrell) (github 42). - Use -norestrict option to keep previous behaviour. - - Document ability to mark code as uncoverable (github 45). + - Fix segv in constant folding of xor ops (github 40) + - Fix various problems running Devel::Cover under tainting (github 41) + - Add JavaScript to filter results in html_basic (David Cantrell) (github 42) + Use -norestrict option to keep previous behaviour + - Document ability to mark code as uncoverable (github 45) Release 0.99 - 31 December 2012 - - Improve documentation (Olaf Alders) (github 34). - - Thank Bytemark for the cpancover server. - - Test against 5.17.7. - - Provide coverage for subs removed from the symbol table (rt 13207). + - Improve documentation (Olaf Alders) (github 34) + - Thank Bytemark for the cpancover server + - Test against 5.17.7 + - Provide coverage for subs removed from the symbol table (rt 13207) Release 0.98 - 25 November 2012 - - Fix links on html_basic report. - - Fix setting Inc under taint mode (Guillaume Aubert) (guthub 26, 33). - - Test against 5.17.6. - - Improve warnings from Devel::Cover and reduce duplicates. - - Make cover -test -nodelete work. - - Run cpancover with 5.16.2. - - Prefer bugs on github rather than RT. + - Fix links on html_basic report + - Fix setting Inc under taint mode (Guillaume Aubert) (guthub 26, 33) + - Test against 5.17.6 + - Improve warnings from Devel::Cover and reduce duplicates + - Make cover -test -nodelete work + - Run cpancover with 5.16.2 + - Prefer bugs on github rather than RT Release 0.97 - 10 November 2012 - - Filter paths contained in CWD out of @Inc (Christian Walde) (github 32). - - Test against 5.12.5, 5.14.3, 5.16.2, and 5.17.5. - - Improve parallelism for cpancover. + - Filter paths contained in CWD out of @Inc (Christian Walde) (github 32) + - Test against 5.12.5, 5.14.3, 5.16.2, and 5.17.5 + - Improve parallelism for cpancover Release 0.96 - 24 September 2012 - - JSON:PP should have been JSON::PP (Paul Hirst) (github 28). - - Correct when some new tests should be skipped. - - Quieten some debugging output. - - Fix infinite loop during global destruction (github 29). + - JSON:PP should have been JSON::PP (Paul Hirst) (github 28) + - Correct when some new tests should be skipped + - Quieten some debugging output + - Fix infinite loop during global destruction (github 29) Release 0.95 - 22 September 2012 - Fix loss of condition coverage data when first operand calls into ignored - file (Celogeek, Christian Walde) (rt 63090) (github 15, 20). - - Fix similar problem with branch coverage (Robert Freimuth) (rt 72027). + file (Celogeek, Christian Walde) (rt 63090) (github 15, 20) + - Fix similar problem with branch coverage (Robert Freimuth) (rt 72027) - More similar problems (Brian Cassidy, Florian Ragwitz, Heikki J Laaksonen) - (rt 63698). - - Test against 5.17.4. + (rt 63698) + - Test against 5.17.4 Release 0.94 - 18 September 2012 - - Officially support 5.16.1. - - Manage mod_perl2 setting $^X to httpd. - - Make changes to support 5.17.3. + - Officially support 5.16.1 + - Manage mod_perl2 setting $^X to httpd + - Make changes to support 5.17.3 Release 0.93 - 4 August 2012 - - Fix up start and finish times in text report. - - Make summary cover report respect options given. - - Make vim report respect specified criteria (rt 38258). - - Only collect time and condition coverage when requested. - - Fix some "ignoring extra $criterion" errors. - - Don't stop reports at __END__ with AutoLoader. - - Add perl version and OS to html_basic. - - Make html_minimal summary more like html_basic. - - Time coverage is no use in the vim report. - - Keep descriptions to a single line. + - Fix up start and finish times in text report + - Make summary cover report respect options given + - Make vim report respect specified criteria (rt 38258) + - Only collect time and condition coverage when requested + - Fix some "ignoring extra $criterion" errors + - Don't stop reports at __END__ with AutoLoader + - Add perl version and OS to html_basic + - Make html_minimal summary more like html_basic + - Time coverage is no use in the vim report + - Keep descriptions to a single line Release 0.92 - 17 July 2012 - Fix inc directories when working with local::lib (Olivier Mengué) (github 25) Release 0.91 - 15th July 2012 - - Generate inc directories at runtime (rt 68991, 76528, 66881, 37349). - - Get the tests running again on Windows. + - Generate inc directories at runtime (rt 68991, 76528, 66881, 37349) + - Get the tests running again on Windows Release 0.90 - 13th July 2012 - - Fix cover -test on Windows (Christian Walde) (github 24) (rt 75565). - - Better document coverage options (github 23). - - Run in directories containing spaces (rt 62423). - - Add moose_constraint test (rt 57173). + - Fix cover -test on Windows (Christian Walde) (github 24) (rt 75565) + - Better document coverage options (github 23) + - Run in directories containing spaces (rt 62423) + - Add moose_constraint test (rt 57173) Release 0.89 - 15th June 2012 - - Fix POD syntax error (gregor herrmann ) (rt 77599). + - Fix POD syntax error (gregor herrmann ) (rt 77599) - Handle RE metachars in build directory (rt 75633 & 77598) - (dcoupal@cisco.com & Niko Tyni ). - - Return to starting directory after cover report (John Lightsey) (rt 61515). - - Relax permissions on DB directories (github 22). + (dcoupal@cisco.com & Niko Tyni ) + - Return to starting directory after cover report (John Lightsey) (rt 61515) + - Relax permissions on DB directories (github 22) Release 0.88 - 8th June 2012 - - Add -launch option to open report in appropriate viewer (Stephen Thirlwall). - - Move ignored filename list into DB module (rt 77163 and github 12). - - Don't complain about Mouse accessors (rt 71680). - - Turn off $^W when calling B::Deparse (fixes perl #113464). - - Update cpancover. + - Add -launch option to open report in appropriate viewer (Stephen Thirlwall) + - Move ignored filename list into DB module (rt 77163 and github 12) + - Don't complain about Mouse accessors (rt 71680) + - Turn off $^W when calling B::Deparse (fixes perl #113464) + - Update cpancover Release 0.87 - 21st May 2012 - - Major documentation overhaul (Pau Amma). - - Cleanup Data::Dumper usage (localise settings) (Olivier Mengué) (rt 76531). - - Ignore more generated filenames - Moose and Template Toolkit. - - Improve results for chained logical operators. - - Officially support 5.16.0. + - Major documentation overhaul (Pau Amma) + - Cleanup Data::Dumper usage (localise settings) (Olivier Mengué) (rt 76531) + - Ignore more generated filenames - Moose and Template Toolkit + - Improve results for chained logical operators + - Officially support 5.16.0 Release 0.86 - 9th April 2012 - - Add all coverage criteria to the Vim report. + - Add all coverage criteria to the Vim report Release 0.85 - 1st April 2012 - - Add customisable thresholds to HTML reports (Xavier Caron). - - Improve Vim report. + - Add customisable thresholds to HTML reports (Xavier Caron) + - Improve Vim report Release 0.84 - 31th March 2012 - - Add Vim report (based on discussion with Tatsuhiko Miyagawa). + - Add Vim report (based on discussion with Tatsuhiko Miyagawa) Release 0.83 - 30th March 2012 - - Prefer JSON::XS for faster operation (Audrey Tang (唐鳳)). - - Rework testing framework (Xavier Caron). + - Prefer JSON::XS for faster operation (Audrey Tang (唐鳳)) + - Rework testing framework (Xavier Caron) Release 0.82 - 19th March 2012 - - Do not distribute MYMETA.json (Olivier Mengué) (rt 75883). + - Do not distribute MYMETA.json (Olivier Mengué) (rt 75883) Release 0.81 - 18th March 2012 - - Fix up dzil release process. + - Fix up dzil release process Release 0.80 - 18th March 2012 - - Don't be so noisy with Moose code. - - Move to Dist:Zilla (Christian Walde). - - Test against 5.14.2 and 5.15.2 - 5.15.8. - - Select gcov2perl from the same directory as cover. - - Print warnings to STDERR so $SIG{__WARN__} isn't called (Christian Walde). - - Manage coverage reporting errors before an exec (Daisuke Maki). - - Don't run fork tests on Windows (Christian Walde). - - Add more documentation about cover --test (Kirk Kimmel). - - Remove race conditions around mkdir. - - Add travis config file. - - Add word "Warning" to MD5 digest message. + - Don't be so noisy with Moose code + - Move to Dist:Zilla (Christian Walde) + - Test against 5.14.2 and 5.15.2 - 5.15.8 + - Select gcov2perl from the same directory as cover + - Print warnings to STDERR so $SIG{__WARN__} isn't called (Christian Walde) + - Manage coverage reporting errors before an exec (Daisuke Maki) + - Don't run fork tests on Windows (Christian Walde) + - Add more documentation about cover --test (Kirk Kimmel) + - Remove race conditions around mkdir + - Add travis config file + - Add word "Warning" to MD5 digest message Release 0.79 - 5th August 2011 - - Test against 5.12.4, 5.14.1, 5.15.0 and 5.15.1. - - Fix inc_sub test failures dependant on whether JSON:PP was installed. + - Test against 5.12.4, 5.14.1, 5.15.0 and 5.15.1 + - Fix inc_sub test failures dependant on whether JSON:PP was installed Release 0.78 - 17th May 2011 - - Fix up test quoting to work with Windows too. + - Fix up test quoting to work with Windows too Release 0.77 - 15th May 2011 - - Fix cover -test covering all the test files (Larry Leszczynski) (rt 65920). - - Add DEVEL_COVER_IO_OPTIONS environment variable. - - Sort runs by start time. - - Add digests to DB. - - Add cover -make option (Olivier Mengué) (rt 44906). - - Add digests to DB. + - Fix cover -test covering all the test files (Larry Leszczynski) (rt 65920) + - Add DEVEL_COVER_IO_OPTIONS environment variable + - Sort runs by start time + - Add digests to DB + - Add cover -make option (Olivier Mengué) (rt 44906) + - Add digests to DB This should fix some problems related to losing coverage data when there are duplicate files. This happens most usually when modules are sometimes loaded - from lib and sometimes from blib. (rt 14192, 32465, 45737). - - Add branch coverage for gcov (rt 30365). + from lib and sometimes from blib. (rt 14192, 32465, 45737) + - Add branch coverage for gcov (rt 30365) Release 0.76 - 18th April 2011 - - Move CHANGES file into root for search.cpan.org (rt 67541). - - Add top level version subroutine (requested by H.Merijn Brand). - - Add DEVEL_COVER_DB_FORMAT environment variable. - - Add advisory locking to database IO operations. - - Explain what to do if regexp_eval.t ever fails again (Florian Ragwitz). - - Remove leftovers from PERL_OBJECT (Florian Ragwitz). - - Recommend 5.8.8 and above - 5.8.7 is crashing so skip some tests there. + - Move CHANGES file into root for search.cpan.org (rt 67541) + - Add top level version subroutine (requested by H.Merijn Brand) + - Add DEVEL_COVER_DB_FORMAT environment variable + - Add advisory locking to database IO operations + - Explain what to do if regexp_eval.t ever fails again (Florian Ragwitz) + - Remove leftovers from PERL_OBJECT (Florian Ragwitz) + - Recommend 5.8.8 and above - 5.8.7 is crashing so skip some tests there Release 0.75 - 17th April 2011 - - Write database as JSON if JSON::PP is available. + - Write database as JSON if JSON::PP is available Release 0.74 - 16th April 2011 - - Test against 5.12.3 and code frozen 5.14.0 (unreleased). - - Fix tests to work with all releases of 5.13.x (rt 64210, 60901). - - Avoid race condition writing DB structure files (Nicholas Clark). - - Add debuglog method to Devel::Cover::DB::Structure (Nicholas Clark). - - Be more careful deleting DB structure files (Nicholas Clark). - - Get cover -test to honour the db passed in. + - Test against 5.12.3 and code frozen 5.14.0 (unreleased) + - Fix tests to work with all releases of 5.13.x (rt 64210, 60901) + - Avoid race condition writing DB structure files (Nicholas Clark) + - Add debuglog method to Devel::Cover::DB::Structure (Nicholas Clark) + - Be more careful deleting DB structure files (Nicholas Clark) + - Get cover -test to honour the db passed in Release 0.73 - 2nd October 2010 - - Tidy up Makefile.PL and META.yml. - - Get coverage working with Windows again. + - Tidy up Makefile.PL and META.yml + - Get coverage working with Windows again Release 0.72 - 27th September 2010 - - Teach cpancover how to work in parallel. - - Improve speed of check_file() (Goro Fuji). - - Fix errors with non-existent directories on Cygwin (Goro Fuji). - - Improve self coverage with new test. - - Fix tests to work with 5.13.5. - - New dependency on Test::Warn. - - New dependency on Parallel::Iterator for cpancover. + - Teach cpancover how to work in parallel + - Improve speed of check_file() (Goro Fuji) + - Fix errors with non-existent directories on Cygwin (Goro Fuji) + - Improve self coverage with new test + - Fix tests to work with 5.13.5 + - New dependency on Test::Warn + - New dependency on Parallel::Iterator for cpancover Release 0.71 - 10th September 2010 - - Improve running of Devel::Cover on itself. - - Fix occasional parallel test failures. - - Test against 5.12.2. + - Improve running of Devel::Cover on itself + - Fix occasional parallel test failures + - Test against 5.12.2 Release 0.70 - 29th August 2010 - - Get Devel::Cover working better on itself. - - Distribution should now pass on 5.13.* development releases. + - Get Devel::Cover working better on itself + - Distribution should now pass on 5.13.* development releases Release 0.69 - 28th August 2010 - - Correctly report on C and other shortcuts. - - Put end to end tests in t/e2e. - - Add test for regexp eval fail (Florian Ragwitz). - - Fix some warnings from strict compilers (Florian Ragwitz). - - Allow tests to run in parallel (Florian Ragwitz). - - Test against 5.13.* development releases. - - We now require Test::More to run the tests. + - Correctly report on C and other shortcuts + - Put end to end tests in t/e2e + - Add test for regexp eval fail (Florian Ragwitz) + - Fix some warnings from strict compilers (Florian Ragwitz) + - Allow tests to run in parallel (Florian Ragwitz) + - Test against 5.13.* development releases + - We now require Test::More to run the tests Release 0.68 - 5th August 2010 - - Fix gcov2perl to work with large numbers (Thomas Dorner) (rt 45028). - - Fix "gcov -l" include files (Thomas Dorner) (rt 44864). - - Test against 5.12.1. - - Gross workaround for for regexp evals (Florian Ragwitz). + - Fix gcov2perl to work with large numbers (Thomas Dorner) (rt 45028) + - Fix "gcov -l" include files (Thomas Dorner) (rt 44864) + - Test against 5.12.1 + - Gross workaround for for regexp evals (Florian Ragwitz) Release 0.67 - 8th May 2010 - - Fix up the Makefile for dmake on Strawberry Perl (Curtis Jewell) (rt 50774). + - Fix up the Makefile for dmake on Strawberry Perl (Curtis Jewell) (rt 50774) Release 0.66 - 12th April 2010 - - Move to faster method of collecting data. Could be up to twice as fast now. - - Add -replace_ops options to be able to revert to previous collection method. - - Test against 5.12.0 and update tests as necessary. - - Work better with non-existent databases. + - Move to faster method of collecting data. Could be up to twice as fast now + - Add -replace_ops options to be able to revert to previous collection method + - Test against 5.12.0 and update tests as necessary + - Work better with non-existent databases - XS fixes related to overriding ops rather than replacing runops - (Florian Ragwitz). - - Don't chmod created directories (mkdir should suffice). + (Florian Ragwitz) + - Don't chmod created directories (mkdir should suffice) Release 0.65 - 8th August 2009 - - Fix uninitialised value warning (reported by Andrew Billeb). - - Test against 5.8.9 and 5.10.1 (RC1). - - Correct deparsed conditional output in elsif conditions. - - Unset PERL5OPT when running tests. + - Fix uninitialised value warning (reported by Andrew Billeb) + - Test against 5.8.9 and 5.10.1 (RC1) + - Correct deparsed conditional output in elsif conditions + - Unset PERL5OPT when running tests Release 0.64 - 10th April 2008 - - Build on Windows. - - Make "cover -test" work for Module::Build (Michael G Schwern) (rt 34263). - - Make "cover -test" cover .[ch] files (Michael G Schwern) (rt 34262). - - Make "cover -gcov" a valid option (Michael G Schwern) (rt 34261). + - Build on Windows + - Make "cover -test" work for Module::Build (Michael G Schwern) (rt 34263) + - Make "cover -test" cover .[ch] files (Michael G Schwern) (rt 34262) + - Make "cover -gcov" a valid option (Michael G Schwern) (rt 34261) Release 0.63 - 16th November 2007 - - require 5.006001 might stop CPAN testers trying to test with 5.005. - - store_return() should be a void function (H.Merijn Brand). - - Finish dor support. - - Add support for exec (Brandon Black). - - Tested against 5.10 (RC1). + - require 5.006001 might stop CPAN testers trying to test with 5.005 + - store_return() should be a void function (H.Merijn Brand) + - Finish dor support + - Add support for exec (Brandon Black) + - Tested against 5.10 (RC1) Release 0.62 - 5th November 2007 - - Add table sorting to Html_basic report (Nathan Haigh). - - Assume heredocs are constants. - - Don't add 0x200 to $^P ("file" names for evals) (Fix for Template::Declare). - - Add timer and alarm for cpancover. - - Add Report Date to basic html report. - - Quieten some warnings. - - Document cover -test. - - Get rid of any __DIE__and __WARN__ signals during the report. - - Don't try to get a digest for "-e". - - Tidy up filename normalisation. - - Be more explicit about what I mean when I call this alpha software. - - Add uncoverable comments. - - Don't complain about POSIX.pm (Erwan Lemonnier). - - Don't resolve pathnames of symbolic links (Stefan Becker). - - Spelling nits (James E Keenan). + - Add table sorting to Html_basic report (Nathan Haigh) + - Assume heredocs are constants + - Don't add 0x200 to $^P ("file" names for evals) (Fix for Template::Declare) + - Add timer and alarm for cpancover + - Add Report Date to basic html report + - Quieten some warnings + - Document cover -test + - Get rid of any __DIE__and __WARN__ signals during the report + - Don't try to get a digest for "-e" + - Tidy up filename normalisation + - Be more explicit about what I mean when I call this alpha software + - Add uncoverable comments + - Don't complain about POSIX.pm (Erwan Lemonnier) + - Don't resolve pathnames of symbolic links (Stefan Becker) + - Spelling nits (James E Keenan) Release 0.61 - 10th January 2007 - Fix some "ignored" errors due to multiple subs of the same name on the same - line (rt 14192). - - Display pod coverage with subroutine coverage in text report. - - Update golden output (tests were failing in 0.60). + line (rt 14192) + - Display pod coverage with subroutine coverage in text report + - Update golden output (tests were failing in 0.60) Release 0.60 - 2nd January 2007 - - Simplify get_key function and remove TODO item (Gisle Aas). - - Be careful with UNC paths on Windows (John LoVerso) (rt 24105). - - Only call HvSHAREKEYS_off if threading is enabled. - - s/unvailable/unavailable/ (Jim Cromie). - - Don't key on op_targ - it might change (rt 22701). - - Tidy up docs and error messages for reports (rt 21098). - - Better database validation. - - Don't delete invalid datbases (rt 16039). - - Tested against 5.9.5. - - Allow for new anonlist and anonhash ops (rt 24067). - - Use outputfile for both cover and cpancover. - - Add compilation report (Denis Howe). + - Simplify get_key function and remove TODO item (Gisle Aas) + - Be careful with UNC paths on Windows (John LoVerso) (rt 24105) + - Only call HvSHAREKEYS_off if threading is enabled + - s/unvailable/unavailable/ (Jim Cromie) + - Don't key on op_targ - it might change (rt 22701) + - Tidy up docs and error messages for reports (rt 21098) + - Better database validation + - Don't delete invalid datbases (rt 16039) + - Tested against 5.9.5 + - Allow for new anonlist and anonhash ops (rt 24067) + - Use outputfile for both cover and cpancover + - Add compilation report (Denis Howe) Release 0.59 - 23rd August 2006 - - Tidy up HTML, especially for cpancover. + - Tidy up HTML, especially for cpancover - Allow coverage of subroutine statements in a different file (as with Mason) - (clkao). + (clkao) - Bump refcount on subs to ensure they stay around for us to look at them - (yes, this is a hack). + (yes, this is a hack) Release 0.58 - 6th August 2006 - - Be more clever about void context and so avoid SvROK hack. - - Document some bugs, limitations and requirements. - - HTML alignment fix (Sébastien Aperghis-Tramoni). - - CSS improvements for HTML reports (Sébastien Aperghis-Tramoni). + - Be more clever about void context and so avoid SvROK hack + - Document some bugs, limitations and requirements + - HTML alignment fix (Sébastien Aperghis-Tramoni) + - CSS improvements for HTML reports (Sébastien Aperghis-Tramoni) Release 0.57 - 3rd August 2006 - - Report Pod::Coverage load failure (dom - happygiraffe.net) (rt 14425). + - Report Pod::Coverage load failure (dom - happygiraffe.net) (rt 14425) - Use Perl::Tidy as an alternative syntax highlighter - (Sébastien Aperghis-Tramoni). + (Sébastien Aperghis-Tramoni) - Lighten the style a little - make table cells only have right and bottom borders, using the ones from the surrounding cells to form the grid - (Sébastien Aperghis-Tramoni). - - subs_only option to only show coverage for subs (Nicholas Clark). + (Sébastien Aperghis-Tramoni) + - subs_only option to only show coverage for subs (Nicholas Clark) Release 0.56 - 1st August 2006 - - gcov2perl creates db if necessary (Steve Peters) (rt 13536). - - Properly merge identical files (Jeff Wren) (rt 12410). - - Allow line achors in html_basic (Mark Stosberg) (rt 13615). - - Right justify numerical tabular html output (Sébastien Aperghis-Tramoni). - - Work around ExtUtils::MakeMaker realclean bug (Florian Ragwitz) (rt 17324). - - Don't try to delete db if it isn't there. + - gcov2perl creates db if necessary (Steve Peters) (rt 13536) + - Properly merge identical files (Jeff Wren) (rt 12410) + - Allow line achors in html_basic (Mark Stosberg) (rt 13615) + - Right justify numerical tabular html output (Sébastien Aperghis-Tramoni) + - Work around ExtUtils::MakeMaker realclean bug (Florian Ragwitz) (rt 17324) + - Don't try to delete db if it isn't there - The following changes were made at the Devel::Cover hackathon, sponsored by - Best Practical. - - No longer create the temporary .version files (Leon Brocard). - - Document Module::Build's testcover (Leon Brocard). - - Add more detail about code coverage in docs (Leon Brocard). - - Make the HTML valid by moving comment past the (Leon Brocard). + Best Practical + - No longer create the temporary .version files (Leon Brocard) + - Document Module::Build's testcover (Leon Brocard) + - Add more detail about code coverage in docs (Leon Brocard) + - Make the HTML valid by moving comment past the (Leon Brocard) - Add syntax highlighting to HTML_basic if PPI::HTML is installed - (Leon Brocard). + (Leon Brocard) - Refactored common code for calculate_summary across all Criterion classes - (Norman Nunley). - - Remove duplicated code paths between Branch and Condition (Norman Nunley). - - Don't call overload bool in condition coverage (clkao). - - Fix the XML comment for cpancover (Norman Nunley). + (Norman Nunley) + - Remove duplicated code paths between Branch and Condition (Norman Nunley) + - Don't call overload bool in condition coverage (clkao) + - Fix the XML comment for cpancover (Norman Nunley) - Turn conditionals in void context into or2 conditions so that the value of - the RHS doesn't matter for coverage purposes. + the RHS doesn't matter for coverage purposes - Add a tool to scan comments about uncoverable code and output .uncoverable - format to stdout (clkao). - - Add and update overload tests. + format to stdout (clkao) + - Add and update overload tests Release 0.55 - 22nd September 2005 - - Add -gcov option to cover and make it default when using gcc. - - Remolve unused File::Find from cpancover. - - Document how to get XS coverage in gcov2perl. - - Improvements to SVK annotation (Chia-liang Kao). + - Add -gcov option to cover and make it default when using gcc + - Remolve unused File::Find from cpancover + - Document how to get XS coverage in gcov2perl + - Improvements to SVK annotation (Chia-liang Kao) Release 0.54 - 13th September 2005 - - Make html_basic prettier. - - Fix pod coverage percentages. - - Fix integer <-> pointer conversion warnings (Robin Barker). - - Add more tests for sort bug fixed in 0.53 (Rob Kinyon). - - Handle || bless {}, "XXX" (reported by Marcel Grünauer). - - Add preliminary dor support (unfinished). - - Test against perl-5.8.7. - - Add check for Pod::Coverage::CountParents. - - Fix line number display problem in conditionals in Html_basic. - - Add eval_sub and eval3 tests. - - Add buildperl script. - - Add -report option to cpancover. - - Update cpancover CSS. - - Partial solution for structure problems including debugging code. - - Add outputfile option to Html_basic. + - Make html_basic prettier + - Fix pod coverage percentages + - Fix integer <-> pointer conversion warnings (Robin Barker) + - Add more tests for sort bug fixed in 0.53 (Rob Kinyon) + - Handle || bless {}, "XXX" (reported by Marcel Grünauer) + - Add preliminary dor support (unfinished) + - Test against perl-5.8.7 + - Add check for Pod::Coverage::CountParents + - Fix line number display problem in conditionals in Html_basic + - Add eval_sub and eval3 tests + - Add buildperl script + - Add -report option to cpancover + - Update cpancover CSS + - Partial solution for structure problems including debugging code + - Add outputfile option to Html_basic Release 0.53 - 17th April 2005 - - Clean up database directories. + - Clean up database directories - Allow require File::Spec->catfile('t', 'common.pl'); (from an example by - Randy W. Sims). + Randy W. Sims) - Fix core dump associated with sort subs and add test case supplied by - Leif Eriksen. - - Add extra options for coverage criteria. - - Allow pod coverage options to be specified. - - Update copyrights. - - Allow Test::Differences output to be displayed usefully. - - Test against perl-5.9.3. + Leif Eriksen + - Add extra options for coverage criteria + - Allow pod coverage options to be specified + - Update copyrights + - Allow Test::Differences output to be displayed usefully + - Test against perl-5.9.3 Release 0.52 - 13th December 2004 - - Fix thread locking bug (Ruslan Zakirov). - - Make valgrind happy. - - Fix gcov2perl (Steve Peters). - - Restore failure message to CLONE. + - Fix thread locking bug (Ruslan Zakirov) + - Make valgrind happy + - Fix gcov2perl (Steve Peters) + - Restore failure message to CLONE Release 0.51 - 29th November 2004 - - Handle $y || undef. - - Small branch coverage fix. - - Improve reporting of uncoverable constructs in html reports. - - Test against perl-5.8.6. - - Recommend at least perl-5.8.2. + - Handle $y || undef + - Small branch coverage fix + - Improve reporting of uncoverable constructs in html reports + - Test against perl-5.8.6 + - Recommend at least perl-5.8.2 Release 0.50 - 25th October 2004 - - Add -test option to cover. - - Fix missing coverage when calling a sub in an ignored module. - - Add module_ignore test. - - Add uncoverable options to cover. + - Add -test option to cover + - Fix missing coverage when calling a sub in an ignored module + - Add module_ignore test + - Add uncoverable options to cover Release 0.49 - 6th October 2004 - - Compile on Win32 (and elsewhere) (Steve Hay). + - Compile on Win32 (and elsewhere) (Steve Hay) Release 0.48 - 5th October 2004 - - Working towards thread safety. - - Test against perl-5.8.5. - - Store perl version number in Inc.pm and complain if it doesn't match. - - Add annotation API and Random example. - - Display run information in text report. - - Remove POSIX path bodge which is now properly fixed. - - Update test results for new functionality. - - Add -select_re and -ignore_re options to cover. - - Sort out "ignoring extra subroutine" and friends. - - Add eval2 and eval_use tests. - - Ignore *.t by default with blib. - - Add beginnings of sort report. - - Bump up DB version. - - Fix problems with references in INC (which can't be handled). - - Fixes for mod_perl (Vadim O. Ustiansky). + - Working towards thread safety + - Test against perl-5.8.5 + - Store perl version number in Inc.pm and complain if it doesn't match + - Add annotation API and Random example + - Display run information in text report + - Remove POSIX path bodge which is now properly fixed + - Update test results for new functionality + - Add -select_re and -ignore_re options to cover + - Sort out "ignoring extra subroutine" and friends + - Add eval2 and eval_use tests + - Ignore *.t by default with blib + - Add beginnings of sort report + - Bump up DB version + - Fix problems with references in INC (which can't be handled) + - Fixes for mod_perl (Vadim O. Ustiansky) Release 0.47 - 27th June 2004 - - Provide subroutine coverage for empty subs - sub empty { }. - - Only override B::Deparse subs whilst using them and add deparse test. + - Provide subroutine coverage for empty subs - sub empty { } + - Only override B::Deparse subs whilst using them and add deparse test Release 0.46 - 23rd June 2004 - - Don't lose data merging DBs. - - Work with Safe.pm, by not covering it. - - Swap Profiling_op for Profiling_key to avoid accessing freed memory. - - Rename -file and -exclude options in cover to -select and -ignore. + - Don't lose data merging DBs + - Work with Safe.pm, by not covering it + - Swap Profiling_op for Profiling_key to avoid accessing freed memory + - Rename -file and -exclude options in cover to -select and -ignore - Fully cover conditions and branches when the condition calls a sub in - an ignored file. + an ignored file Release 0.45 - 27th May 2004 - - Cope with spaces in build path on Windows (Max Maischein). - - Allow Devel::Cover to be used under mod_perl (Philippe M. Chiasson). - - Handle $x ||= 1 and friends nicely, including subs and *foo{THING}. + - Cope with spaces in build path on Windows (Max Maischein) + - Allow Devel::Cover to be used under mod_perl (Philippe M. Chiasson) + - Handle $x ||= 1 and friends nicely, including subs and *foo{THING} - Allow uncoverable code to be specified. (Unfinished) Release 0.44 - 18th May 2004 - - Fix get_elapsed, although its result is not used yet. - - Recommend 5.8.1 as a minimum. - - Replace run Makefile target with text and html. - - Fix up gcov2perl. - - Fail gracefully when covering a threaded program. - - Add DEVEL_COVER_OPTIONS environment variable. + - Fix get_elapsed, although its result is not used yet + - Recommend 5.8.1 as a minimum + - Replace run Makefile target with text and html + - Fix up gcov2perl + - Fail gracefully when covering a threaded program + - Add DEVEL_COVER_OPTIONS environment variable Release 0.43 - 2nd May 2004 - Add +ignore and +select options, and change meaning of -ignore and - -select options. This is an interface change. - - Ignore coverage on Devel::Cover's files by default. - - Cover INIT and END blocks more reliably. - - Fix 5.6 on Windows. Well, sort of. + -select options. This is an interface change + - Ignore coverage on Devel::Cover's files by default + - Cover INIT and END blocks more reliably + - Fix 5.6 on Windows. Well, sort of - Add a message in Makefile.PL recommending against using Devel::Cover - on 5.6, especially under Windows. + on 5.6, especially under Windows Release 0.42 - 30th April 2004 - - Add SYNOPSIS section to README. - - Resolve links for Devel::Cover::Inc (Dave Rolsky). - - Get things running on Windows again. + - Add SYNOPSIS section to README + - Resolve links for Devel::Cover::Inc (Dave Rolsky) + - Get things running on Windows again Release 0.41 - 29th April 2004 - - Correct time coverage percentages. + - Correct time coverage percentages - Collect data for BEGIN, CHECK, INIT and END blocks in the main - program, and INIT and END blocks in modules. - - Ensure our END block is always the last run. - - Don't clean up Pending_conditionals data. - - Untaint @INC after using blib. - - Be silent if called via HARNESS_PERL_SWITCHES. - - Test against perl-5.8.4. - - Store cwd from when each module was required in order to find them again. - - Refactor and tidy XS code. - - Get cpancover running again with the DB changes. - - Normalise filenames. + program, and INIT and END blocks in modules + - Ensure our END block is always the last run + - Don't clean up Pending_conditionals data + - Untaint @INC after using blib + - Be silent if called via HARNESS_PERL_SWITCHES + - Test against perl-5.8.4 + - Store cwd from when each module was required in order to find them again + - Refactor and tidy XS code + - Get cpancover running again with the DB changes + - Normalise filenames Release 0.40 - 24th March 2004 - - Remove DB structure for unwanted files. + - Remove DB structure for unwanted files - Identify ops based on address and OP contents, except for op_ppaddr, - which we modify. - - Overhaul of coverage collection. - - Additions to tests. + which we modify + - Overhaul of coverage collection + - Additions to tests Release 0.39 - 22nd March 2004 - - Major database rework to store runs. - - Add Devel::Cover::DB::Structure.pm. - - Check for Test::Differences in Makefile.PL. - - Test with perl5.9.2. - - Skip fork test on MSWin32. + - Major database rework to store runs + - Add Devel::Cover::DB::Structure.pm + - Check for Test::Differences in Makefile.PL + - Test with perl5.9.2 + - Skip fork test on MSWin32 Release 0.38 - 12th March 2004 - - Allow coverage summary title to be changed (David Wheeler). - - More care generating pod golden results. - - Small Devel::Cover::Op output fix. - - Handle "my $x = shift || []" and friends nicely. - - Add default_param test. - - Provide summary output to one decimal place. - - Update gcov2perl. + - Allow coverage summary title to be changed (David Wheeler) + - More care generating pod golden results + - Small Devel::Cover::Op output fix + - Handle "my $x = shift || []" and friends nicely + - Add default_param test + - Provide summary output to one decimal place + - Update gcov2perl Release 0.37 - 10th March 2004 - - Fix up pod test golden results. - - Add limitation documentation (Michael Carman). + - Fix up pod test golden results + - Add limitation documentation (Michael Carman) Release 0.36 - 9th March 2004 - - Add fork test. - - Remove debugging code from md5 test. - - Remove runs after merging - code was commented out for debugging. - - Don't merge runs during coverage collection. - - Delete database at start if not merging to cope with forking. + - Add fork test + - Remove debugging code from md5 test + - Remove runs after merging - code was commented out for debugging + - Don't merge runs during coverage collection + - Delete database at start if not merging to cope with forking Release 0.35 - 8th March 2004 - - Change Text2 to pick up version changes. - - Minor documentation updates. - - Minor changes to Devel::Cover::Op. - - Add outputfile option to HTML output (David Wheeler). - - Document -silent option to Devel::Cover. - - Add -silent option to cover (David Wheeler). - - Make Devel::Cover taint safe, or tolerant at least. - - Only add versioned golden results to tests that need them. - - Add trivial, md5 and module_no_inc tests. - - Increase flexibility of testing system to accomodate md5 test. - - Add mani, all_gold and all_test Makefile targets. - - Make all_versions skip non-existent platforms. - - Add DB option to make dump target. + - Change Text2 to pick up version changes + - Minor documentation updates + - Minor changes to Devel::Cover::Op + - Add outputfile option to HTML output (David Wheeler) + - Document -silent option to Devel::Cover + - Add -silent option to cover (David Wheeler) + - Make Devel::Cover taint safe, or tolerant at least + - Only add versioned golden results to tests that need them + - Add trivial, md5 and module_no_inc tests + - Increase flexibility of testing system to accomodate md5 test + - Add mani, all_gold and all_test Makefile targets + - Make all_versions skip non-existent platforms + - Add DB option to make dump target - Remove dependencies on op_seq. (I removed it from bleadperl.) Use - op_targ instead. - - Collect some metadata. - - Documentation updates (Andy Lester). - - Document the mechanism by which files are selected for coverage. + op_targ instead + - Collect some metadata + - Documentation updates (Andy Lester) + - Document the mechanism by which files are selected for coverage Release 0.34 - 14th January 2004 - Fix various warnings and errors that had crept in whilst working on - dynamic subs. + dynamic subs Release 0.33 - 13th January 2004 - - Get things working on paths with spaces in them. - - Documentation clarifications (Andy Lester). - - Fix coverage for simple if, elsif and unless conditionals. - - Add if test. - - Ensure runs are merged in the order they were created. - - Don't report multiple data from dynamically created subs. - - Add alias, alias1 and dynamic_subs tests. - - Fix and document Devel::Cover::Op. - - Redo subroutine coverage so anon subs are covered correctly in 5.6.x. + - Get things working on paths with spaces in them + - Documentation clarifications (Andy Lester) + - Fix coverage for simple if, elsif and unless conditionals + - Add if test + - Ensure runs are merged in the order they were created + - Don't report multiple data from dynamically created subs + - Add alias, alias1 and dynamic_subs tests + - Fix and document Devel::Cover::Op + - Redo subroutine coverage so anon subs are covered correctly in 5.6.x Release 0.32 - 4th January 2004 - - Actually include do test. - - Create run concept in database. - - Belatedly remove check for Template. - - Add branch_return_sub test. - - Add finalise_conditions() to collect previously missed coverage. - - Fix incorrect coverage results associated with "and" conditions. - - Add all_versions utility script. - - Put /usr/bin/perl on all shebang lines. + - Actually include do test + - Create run concept in database + - Belatedly remove check for Template + - Add branch_return_sub test + - Add finalise_conditions() to collect previously missed coverage + - Fix incorrect coverage results associated with "and" conditions + - Add all_versions utility script + - Put /usr/bin/perl on all shebang lines Release 0.31 - 22nd December 2003 - - Remove debugging output. Hmmm. + - Remove debugging output. Hmmm Release 0.30 - 22nd December 2003 - - Get things working under Windows. + - Get things working under Windows Release 0.29 - 19th December 2003 - - Merge data from files with identical MD5 checksums (Arthur Bergman). - - Add do test. - - Handle $x || return. - - Keep cover -delete happy when there is no existing database. - - In cover, make -file a glob and add -exclude. - - Watch for coverage options being set in cover (PERL5OPT set?). - - Fix up html_basic and html_subtle. - - Make 5.6.x builds a bit quieter. - - Clean up time routines in XS code. + - Merge data from files with identical MD5 checksums (Arthur Bergman) + - Add do test + - Handle $x || return + - Keep cover -delete happy when there is no existing database + - In cover, make -file a glob and add -exclude + - Watch for coverage options being set in cover (PERL5OPT set?) + - Fix up html_basic and html_subtle + - Make 5.6.x builds a bit quieter + - Clean up time routines in XS code Release 0.28 - 1st December 2003 - - Remove leading whitespace from HTML templates (Gabor Szabo). - - Remove obsolete indent option. - - Add MD5 checksums (Michael Carman). + - Remove leading whitespace from HTML templates (Gabor Szabó) + - Remove obsolete indent option + - Add MD5 checksums (Michael Carman) - Add Html_minimal.pm (Michael Carman) (Obsoleting Gabor's patch before it was - released). - - Pass unknown cover options to the formatter and remove -option. - - Specify the output directory for HTML. - - Search up directory trees for modules. + released) + - Pass unknown cover options to the formatter and remove -option + - Specify the output directory for HTML + - Search up directory trees for modules Release 0.27 - 9th November 2003 - Behave sensibly if import() is not called, for example when MakeMaker does a - PREREQ_PM check. - - Use Storable for the database instead of Data::Dumper/eval (Michael Carman). + PREREQ_PM check + - Use Storable for the database instead of Data::Dumper/eval (Michael Carman) Release 0.26 - 12th October 2003 - - Decline to output HTML results for conditions containing > 16 terms. - - Add titles to HTML output. + - Decline to output HTML results for conditions containing > 16 terms + - Add titles to HTML output Release 0.25 - 10th October 2003 - - Fix for perl 5.6.1. Cwd::abs_path($d) gets upset if $d doesn't exist. - - Start of some changes to cpancover HTML. + - Fix for perl 5.6.1. Cwd::abs_path($d) gets upset if $d doesn't exist + - Start of some changes to cpancover HTML Release 0.24 - 10th October 2003 - - Paths in Devel::Cover::Inc in single quotes for Windows platforms. - - Add -dir option and default it to cwd. - - Ignore test.pl in cpancover. - - Display pod coverage in cpancover. + - Paths in Devel::Cover::Inc in single quotes for Windows platforms + - Add -dir option and default it to cwd + - Ignore test.pl in cpancover + - Display pod coverage in cpancover Release 0.23 - 6th September 2003 - - Report condition coverage for branches on the same line as the branch. - - Add subroutine coverage. - - Made "all" coverage value work and made it the default. + - Report condition coverage for branches on the same line as the branch + - Add subroutine coverage + - Made "all" coverage value work and made it the default Release 0.22 - 2nd September 2003 - - Rewrite runops function. - - First line of DESTROY blocks and overload subs not now skipped. - - Add some more tests. + - Rewrite runops function + - First line of DESTROY blocks and overload subs not now skipped + - Add some more tests Release 0.21 - 1st September 2003 - - Add cpancover. - - Handle $x || next and friends. - - Add html_subtle and text2 backends (Michael Carman). - - Rename html backend to html_basic. - - Make html backend a wrapper around preferred style, currently html_subtle. + - Add cpancover + - Handle $x || next and friends + - Add html_subtle and text2 backends (Michael Carman) + - Rename html backend to html_basic + - Make html backend a wrapper around preferred style, currently html_subtle - Make time coverage a little more accurate. OK, a lot more accurate, it's at - least on the right line now, but I still wouldn't really trust it. - - Fix pod coverage which has been broken for a while. - - Don't collect branch coverage when not asked for. - - Provide golden results for different Perl versions. - - Change some B::Deparse logic to mirror changes in 5.8.1/5.10. + least on the right line now, but I still wouldn't really trust it + - Fix pod coverage which has been broken for a while + - Don't collect branch coverage when not asked for + - Provide golden results for different Perl versions + - Change some B::Deparse logic to mirror changes in 5.8.1/5.10 Release 0.20 - 5th October 2002 - - Add break after default to satisfy IBM's xlC compiler on AIX. - - Get things working with threads again. - - make realclean is. + - Add break after default to satisfy IBM's xlC compiler on AIX + - Get things working with threads again + - make realclean is Release 0.19 - 29th September 2002 - - Quieten uninitialised value warnings. + - Quieten uninitialised value warnings Release 0.18 - 28th September 2002 - - Redo the way condition coverage is gathered - abuse op_ppaddr. - - Put or conditions the right way round. - - Allow for subclasses of coverage types. + - Redo the way condition coverage is gathered - abuse op_ppaddr + - Put or conditions the right way round + - Allow for subclasses of coverage types - Add: Devel::Cover::Condition_or_2.pm Devel::Cover::Condition_or_3.pm Devel::Cover::Condition_and_3.pm Devel::Cover::Condition_xor_4.pm - - "use" all conditions in Criterion.pm, and nowhere else. - - Add support for xor, ||= and &&=. + - "use" all conditions in Criterion.pm, and nowhere else + - Add support for xor, ||= and &&= Release 0.17 - 15th September 2002 - Call check_files() in report() to ensure we pick up anything added to the - symbol table while the program was running. + symbol table while the program was running Release 0.16 - 9th September 2002 - - Get rid of some uninitialised warnings. - - Inline the HTML templates. - - Rebless the op after blessing it as a COP. - - Make branch coverage line numbers more accurate. + - Get rid of some uninitialised warnings + - Inline the HTML templates + - Rebless the op after blessing it as a COP + - Make branch coverage line numbers more accurate Release 0.15 - 5th September 2002 - - Reinstate coverage of subs in main:: which got lost somewhere (0.11?). - - Bug fixes for use of uninitialised values. - - Automatically generate tests. Well, their infrastructure anyway. - - Move Cover to lib/Devel/Cover to keep case insensitive filesystems happy. + - Reinstate coverage of subs in main:: which got lost somewhere (0.11?) + - Bug fixes for use of uninitialised values + - Automatically generate tests. Well, their infrastructure anyway + - Move Cover to lib/Devel/Cover to keep case insensitive filesystems happy - Remove -detail option. (It belongs to cover.) - Work on op addresses and sequence numbers instead of just op addresses, to be - (almost) unique. - - Clean up subroutine location code. - - Fix -select to override anything else. - - Add condition coverage for && and || ops. - - Various changes in runops_cover to try to reduce runtime. - - Don't use runops_cover until CHECK time. - - Add merge, write and file options to cover. - - Add branch coverage. - - Abstract away cover backends. - - Use TT for HTML output. + (almost) unique + - Clean up subroutine location code + - Fix -select to override anything else + - Add condition coverage for && and || ops + - Various changes in runops_cover to try to reduce runtime + - Don't use runops_cover until CHECK time + - Add merge, write and file options to cover + - Add branch coverage + - Abstract away cover backends + - Use TT for HTML output Release 0.14 - 28th February 2002 - - Add a workaround for an AUTOLOAD bug in bleadperl. - - Add gcov2perl program to convert gcov files to Devel::Cover databases. - - Get rid of // comments in xs file. + - Add a workaround for an AUTOLOAD bug in bleadperl + - Add gcov2perl program to convert gcov files to Devel::Cover databases + - Get rid of // comments in xs file Release 0.13 - 14th October 2001 - - Forgot to allow for lack of Pod::Coverage in Devel::Cover::Pod.pm. + - Forgot to allow for lack of Pod::Coverage in Devel::Cover::Pod.pm Release 0.12 - 14th October 2001 - - Improve pod coverage by considering private subs. - - Add time coverage, aka profiling. + - Improve pod coverage by considering private subs + - Add time coverage, aka profiling - Add: Devel::Cover::DB::File.pm Devel::Cover::Time.pm - - Abstract summary and percentage calculations to appropriate classes. + - Abstract summary and percentage calculations to appropriate classes Release 0.11 - 10th September 2001 - - Add pod coverage based on Pod::Coverage.pm. - - Put a full API on the database. + - Add pod coverage based on Pod::Coverage.pm + - Put a full API on the database - Add: Devel::Cover::Criterion.pm Devel::Cover::Statement.pm Devel::Cover::Condition.pm Devel::Cover::Pod.pm - - Some improvements to the cover program. + - Some improvements to the cover program Release 0.10 - 27th August 2001 - - Add cover program to generate reports. + - Add cover program to generate reports Release 0.09 - 18th August 2001 - - Beef up Devel::Cover::DB. + - Beef up Devel::Cover::DB Release 0.08 - 18th August 2001 - - Provide better handling of files to report on or ignore. - Makefile.PL generates Inc.pm containing default @INC. - added +inc, -ignore and -select. + - Provide better handling of files to report on or ignore + Makefile.PL generates Inc.pm containing default @INC + added +inc, -ignore and -select Release 0.07 - 17th August 2001 - - Add an API to Devel::Cover::DB. + - Add an API to Devel::Cover::DB Release 0.06 - 10th August 2001 - Rename Devel::Cover::Process to Devel::Cover::DB - - Make the database a directory. + - Make the database a directory - Add fix for eval in filename. (Arthur Bergman ) - - Add more tests and abstract away comparison subroutine. - - Clear @Inc if it is set explicitly. - - Trim filename length in detailed output. + - Add more tests and abstract away comparison subroutine + - Clear @Inc if it is set explicitly + - Trim filename length in detailed output Release 0.05 - 9th August 2001 - - Make line numbers more accurate when nextstate has been optimised away. - - Get things working with ithreads. + - Make line numbers more accurate when nextstate has been optimised away + - Get things working with ithreads Release 0.04 - 12th April 2001 - Include Devel::Cover::Op - - Add condition coverage (sort of). + - Add condition coverage (sort of) Release 0.03 - 10th April 2001 - - Add detailed output. - - Add -d option to turn it on. + - Add detailed output + - Add -d option to turn it on Release 0.02 - 10th April 2001 - - Add summary output. - - Add -S option to turn it off. - - Turn Devel::Cover::Process into a class. + - Add summary output + - Add -S option to turn it off + - Turn Devel::Cover::Process into a class Release 0.01 - Initial release - 9th April 2001 diff -Nru libdevel-cover-perl-1.21/Contributors libdevel-cover-perl-1.29/Contributors --- libdevel-cover-perl-1.21/Contributors 2015-09-19 22:31:27.000000000 +0000 +++ libdevel-cover-perl-1.29/Contributors 2017-10-15 19:42:19.000000000 +0000 @@ -4,6 +4,8 @@ Thank-you to one and all! +Alex Balhatchet alex@balhatchet.net +Alexey Sokolov Allison Regier penneraa@acm.org Andrew Billeb [private] Andy Lester andy@petdance.com @@ -13,13 +15,17 @@ Axel Beckert abe@deuxchevaux.org Brandon Black blblack@gmail.com Brian Cassidy bricas@cpan.org +brian d foy brian.d.foy@gmail.com Buddy Burden barefootcoder@gmail.com Celogeek me@celogeek.com +Chad Granum exodist7@gmail.com Chia-liang Kao clkao@clkao.org +Chisel Wright chisel@chizography.net Christian Walde walde.christian@gmail.com cono q@cono.org.ua Curtis Jewell csjewell@cpan.org Daisuke Maki dmaki@cpan.org +Dan Collins dcollinsn@gmail.com Daniel Coupal dcoupal@cisco.com Daniel Perrett perrettdl@googlemail.com Dave Rolsky autarch@urth.org @@ -30,6 +36,7 @@ Dick Franks rwfranks@acm.org Dinis Rebolo dinisrebolo@gmail.com Dominic Mitchell dom@happygiraffe.net +Eden Hochbaum eden.hochbaum@gmail.com Erwan Lemonnier erwan@cpan.org Florian Ragwitz rafl@debian.org Gábor Szabó szabgab@gmail.com @@ -38,7 +45,11 @@ Graham Knop haarg@haarg.org Gregor Herrmann gregoa@debian.org Guillaume Aubert aubertg@cpan.org +Guillermo O. Freschi kedrot@gmail.com +Haydn Newport haydn@catalyst.net.nz Heikki J Laaksonen heikki.j.laaksonen@kolumbus.fi +Heinz Knutzen heinz.knutzen@gmail.com +Helmut Wollmersdorfer helmut@wollmersdorfer.at H.Merijn Brand h.m.brand@xs4all.nl Ivan Wills ivan.wills@gmail.com James E Keenan jkeenan@cpan.org @@ -51,12 +62,14 @@ Kan Fushihara kan.fushihara@gmail.com Keith Wissing Kent Fredric kentfredric@gmail.com +Kevin Brannen kbrannen@pwhome.com Kirk Kimmel kimmel@cpan.org Larry Leszczynski larryl@cpan.org Lasse Makholm lasse@unity3d.com Lee Johnson lee@givengain.ch Léon Brocard acme@astray.com Marcel Grünauer marcel@cpan.org +Marc-Philip mpw96@gmx.de Mark Stosberg mark@summersault.com Matthew Horsfall wolfsage@gmail.com Max Maischein corion@cpan.org @@ -76,18 +89,25 @@ Robin Barker RMBarker@cpan.org Rob Kinyon rob.kinyon@gmail.com Ruslan Zakirov Ruslan.Zakirov@gmail.com +Ryan Voots simcop2387@simcop2387.info +sago35 sago35@gmail.com +Sebastian Paaske Tørholm eckankar@gmail.com Sébastien Aperghis-Tramoni saper@cpan.org Sergiy Borodych Sergiy.Borodych@gmail.com Slaven Rezić slaven@rezic.de Stefan Becker Stefan.Becker@nokia.com Steffen Schwigon ss5@renormalist.net +Stephan Loyd stephanloyd9@gmail.com Stephen Thirlwall sdt@dr.com Steve Hay shay@cpan.org Steve Peters smpeters@cpan.org Steve Sanbeg sanbeg@cpan.org +Sullivan Beck sbeck@cpan.org Tatsuhiko Miyagawa miyagawa@bulknews.net Thomas Dorner dorner (AT) cpan.org +Todd Rinaldo toddr@cpan.org Vadim O. Ustiansky ustiansky@cpan.org +waterbeetle Xavier Caron xcaron@gmail.com Zefram zefram@fysh.org diff -Nru libdevel-cover-perl-1.21/Cover.xs libdevel-cover-perl-1.29/Cover.xs --- libdevel-cover-perl-1.21/Cover.xs 2015-09-19 22:31:27.000000000 +0000 +++ libdevel-cover-perl-1.29/Cover.xs 2017-10-15 19:42:19.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 2001-2015, Paul Johnson (paul@pjcj.net) + * Copyright 2001-2017, Paul Johnson (paul@pjcj.net) * * This software is free. It is licensed under the same terms as Perl itself. * @@ -66,6 +66,8 @@ struct unique { /* Well, we'll be fairly unlucky if it's not */ OP *addr, op; + /* include hashed file location information, where available (cops) */ + size_t fileinfohash; }; #define KEY_SZ sizeof(struct unique) @@ -126,6 +128,14 @@ } #endif +/* op->op_sibling is deprecated on new perls, but the OpSIBLING macro doesn't + exist on older perls. We don't need to check for PERL_OP_PARENT here + because if PERL_OP_PARENT was set, and we needed to check op_moresib, + we would already have this macro. */ +#ifndef OpSIBLING +#define OpSIBLING(o) (0 + (o)->op_sibling) +#endif + static double get_elapsed() { #ifdef WIN32 dTHX; @@ -184,13 +194,52 @@ #endif /* HAS_GETTIMEOFDAY */ +/* + * http://codereview.stackexchange.com/questions/85556/simple-string-hashing-algorithm-implementation + * https://en.wikipedia.org/wiki/Fowler%E2%80%93Noll%E2%80%93Vo_hash_function + * http://www.isthe.com/chongo/tech/comp/fnv/index.html#public_domain + * + * FNV hash algorithms and source code have been released into the + * public domain. The authors of the FNV algorithmm took deliberate + * steps to disclose the algorhtm in a public forum soon after it was + * invented. More than a year passed after this public disclosure and the + * authors deliberatly took no steps to patent the FNV algorithm. Therefore + * it is safe to say that the FNV authors have no patent claims on the FNV + * algorithm as published. + * +*/ + +/* Fowler/Noll/Vo (FNV) hash function, variant 1a */ +static size_t fnv1a_hash(const char* cp) +{ + size_t hash = 0x811c9dc5; + while (*cp) { + hash ^= (unsigned char) *cp++; + hash *= 0x01000193; + } + return hash; +} + +#define FILEINFOSZ 1024 + static char *get_key(OP *o) { static struct unique uniq; + static char mybuf[FILEINFOSZ]; uniq.addr = o; uniq.op = *o; uniq.op.op_ppaddr = 0; /* we mess with this field */ uniq.op.op_targ = 0; /* might change */ + if (o->op_type == OP_NEXTSTATE || o->op_type == OP_DBSTATE) { + /* cop, has file location information */ + char *file = CopFILE((COP *)o); + long line = CopLINE((COP *)o); + snprintf(mybuf, FILEINFOSZ - 1, "%s:%ld", file, line); + uniq.fileinfohash = fnv1a_hash(mybuf); + } else { + /* no file location information available */ + uniq.fileinfohash = 0; + } return (char *)&uniq; } @@ -324,7 +373,7 @@ if (collecting(Time)) { /* * Profiling information is stored against MY_CXT.profiling_key, - * the key for the op we have just run. + * the key for the op we have just run */ NDEB(D(L, "Cop at %p, op at %p\n", PL_curcop, PL_op)); @@ -604,24 +653,27 @@ } #if PERL_VERSION > 18 -/* For if ($a || $b) and unless ($a && $b), rpeep skips passed a few - * logops and messes with Devel::Cover. +/* For if ($a || $b) and unless ($a && $b), rpeep skips past a few + * logops and messes with Devel::Cover * * This function will find the skipped op if there is one */ static OP *find_skipped_conditional(pTHX_ OP *o) { + OP *right, + *next; + if (o->op_type != OP_OR && o->op_type != OP_AND) return NULL; /* Get to the end of the "a || b || c" block */ - OP *right = cLOGOP->op_first->op_sibling; - while (right && cLOGOPx(right)->op_sibling) - right = cLOGOPx(right)->op_sibling; + right = OpSIBLING(cLOGOP->op_first); + while (right && OpSIBLING(cLOGOPx(right))) + right = OpSIBLING(cLOGOPx(right)); if (!right) return NULL; - OP *next = right->op_next; + next = right->op_next; while (next && next->op_type == OP_NULL) next = next->op_next; @@ -638,7 +690,6 @@ if (o->op_type == next->op_type) return NULL; - if ((next->op_flags & OPf_WANT) != OPf_WANT_VOID) return NULL; @@ -760,7 +811,7 @@ int left_val_def = SvOK(TOPs); #endif /* We don't count X= as void context because we care about the value - * of the RHS. */ + * of the RHS */ int void_context = GIMME_V == G_VOID && #if PERL_VERSION > 8 PL_op->op_type != OP_DORASSIGN && @@ -784,7 +835,7 @@ (PL_op->op_type == OP_XOR)) { /* no short circuit */ - OP *right = cLOGOP->op_first->op_sibling; + OP *right = OpSIBLING(cLOGOP->op_first); NDEB(op_dump(right)); @@ -831,6 +882,8 @@ next = (PL_op->op_type == OP_XOR) ? PL_op->op_next : right->op_next; + while (next && next->op_type == OP_NULL) + next = next->op_next; #else next = PL_op->op_next; #endif @@ -874,7 +927,7 @@ } else { /* short circuit */ #if PERL_VERSION > 14 - OP *up = cLOGOP->op_first->op_sibling->op_next; + OP *up = OpSIBLING(cLOGOP->op_first)->op_next; #if PERL_VERSION > 18 OP *skipped; #endif @@ -887,7 +940,7 @@ add_conditional(aTHX_ up, 3); if (up->op_next == PL_op->op_next) break; - up = cLOGOPx(up)->op_first->op_sibling->op_next; + up = OpSIBLING(cLOGOPx(up)->op_first)->op_next; } #endif add_conditional(aTHX_ PL_op, 3); @@ -901,6 +954,43 @@ } } +#if PERL_VERSION > 16 +/* A sequence of variable declarations may have been optimized + * to a single OP_PADRANGE. The original sequence may span multiple lines, + * but only the first line has been marked as covered for now. + * Mark other OP_NEXTSTATE inside the original sequence of statements. + */ +static void cover_padrange(pTHX) { + dMY_CXT; + OP *next, + *orig; + if (!collecting(Statement)) return; + next = PL_op->op_next; + orig = OpSIBLING(PL_op); + + /* Ignore padrange preparing subroutine call */ + while (orig && orig != next) { + if (orig->op_type == OP_ENTERSUB) return; + orig = orig->op_next; + } + orig = OpSIBLING(PL_op); + while (orig && orig != next) { + if (orig->op_type == OP_NEXTSTATE) { + cover_statement(aTHX_ orig); + } + orig = orig->op_next; + } +} + +static OP *dc_padrange(pTHX) { + dMY_CXT; + check_if_collecting(aTHX_ PL_curcop); + NDEB(D(L, "dc_padrange() at %p (%d)\n", PL_op, collecting_here(aTHX))); + if (MY_CXT.covering) cover_padrange(aTHX); + return MY_CXT.ppaddr[OP_PADRANGE](aTHX); +} +#endif + static OP *dc_nextstate(pTHX) { dMY_CXT; NDEB(D(L, "dc_nextstate() at %p (%d)\n", PL_op, collecting_here(aTHX))); @@ -1029,6 +1119,9 @@ #endif PL_ppaddr[OP_DBSTATE] = dc_dbstate; PL_ppaddr[OP_ENTERSUB] = dc_entersub; +#if PERL_VERSION > 16 + PL_ppaddr[OP_PADRANGE] = dc_padrange; +#endif PL_ppaddr[OP_COND_EXPR] = dc_cond_expr; PL_ppaddr[OP_AND] = dc_and; PL_ppaddr[OP_ANDASSIGN] = dc_andassign; @@ -1160,7 +1253,7 @@ /* * We are about the run the op PL_op, so we'll collect - * information for it now. + * information for it now */ switch (PL_op->op_type) { @@ -1173,6 +1266,13 @@ break; } +#if PERL_VERSION > 16 + case OP_PADRANGE: { + cover_padrange(aTHX); + break; + } +#endif + case OP_COND_EXPR: { cover_cond(aTHX); break; diff -Nru libdevel-cover-perl-1.21/debian/changelog libdevel-cover-perl-1.29/debian/changelog --- libdevel-cover-perl-1.21/debian/changelog 2015-12-18 00:40:02.000000000 +0000 +++ libdevel-cover-perl-1.29/debian/changelog 2021-05-01 22:50:45.000000000 +0000 @@ -1,9 +1,88 @@ -libdevel-cover-perl (1.21-1ubuntu1) xenial; urgency=medium +libdevel-cover-perl (1.29-1~16.04.sav0) xenial; urgency=medium - * Resynchronise with Debian. Remaining changes: - - Prefer perltidy over libppi-html-perl in build dependencies. + * Backport to Xenial - -- Colin Watson Fri, 18 Dec 2015 00:39:59 +0000 + -- Rob Savoury Sat, 01 May 2021 15:50:45 -0700 + +libdevel-cover-perl (1.29-1) unstable; urgency=medium + + * Import upstream version 1.29. + + Remove MYMETA.json.lock in clean target. + * Set "Rules-Requires-Root: no". + + -- Axel Beckert Sun, 12 Nov 2017 22:44:31 +0100 + +libdevel-cover-perl (1.28-1) unstable; urgency=medium + + * Import upstream version 1.28. + * Drop spelling.patch, merged upstream. + + -- gregor herrmann Sat, 14 Oct 2017 17:04:22 +0200 + +libdevel-cover-perl (1.27-1) unstable; urgency=medium + + * Import upstream version 1.27 + Fixes "unexpected OP_PADRANGE at /usr/share/perl/5.20/B/Deparse.pm" + (Closes: #789487) + * Drop reproducible-build.patch, fixed (differently) upstream. + * Install more upstream docs. + * Declare compliance with Debian Policy 4.1.1. + * Drop version from libhtml-parser-perl (build) dependency. + Nothing older in the archive. + * Add a patch to fix a typo in the documentation. + + -- gregor herrmann Sat, 30 Sep 2017 15:02:56 +0200 + +libdevel-cover-perl (1.25-2) unstable; urgency=medium + + * Upload to unstable after the stretch release. + + -- gregor herrmann Sat, 17 Jun 2017 21:05:09 +0200 + +libdevel-cover-perl (1.25-1) experimental; urgency=medium + + * Import upstream version 1.25. + * Refresh reproducible-build.patch. + * Drop spelling.patch, merged upstream. + * Update years of upstream and packaging copyright. + * Update Suggests. + * Update Homepage in debian/upstream/metadata to use https. + * Upload to experimental because of the freeze. + + -- gregor herrmann Sat, 20 May 2017 23:06:57 +0200 + +libdevel-cover-perl (1.23-2) unstable; urgency=medium + + * debian/copyright: change Copyright-Format 1.0 URL to HTTPS. + * debian/upstream/metadata: use HTTPS for GitHub URLs. + * Remove Jonathan Yu from Uploaders. Thanks for your work! + * Add patch to make build reproducible. + Thanks to Chris Lamb for the bug report and the patch. + (Closes: #835871) + * Add debian/gbp.conf to filter out .gitignore from upstream tarball. + * Update years of packaging copyright. + * Add a patch to fix documentation typos. + + -- gregor herrmann Wed, 31 Aug 2016 20:04:12 +0200 + +libdevel-cover-perl (1.23-1) unstable; urgency=medium + + * Import upstream version 1.23 + + -- Axel Beckert Fri, 13 May 2016 11:06:33 +0200 + +libdevel-cover-perl (1.22-1) unstable; urgency=medium + + [ Salvatore Bonaccorso ] + * debian/control: Use HTTPS transport protocol for Vcs-Git URI + + [ Axel Beckert ] + * Imported upstream version 1.22. Happy 15th Birthday, Devel::Cover! + * Declare compliance with Debian Policy 3.9.8. (No changes needed.) + * Add support for autopkgtest. Requires pkg-perl-autopkgtest ≥ 0.29. + * Enable all hardening flags. + + -- Axel Beckert Fri, 22 Apr 2016 00:23:23 +0200 libdevel-cover-perl (1.21-1) unstable; urgency=medium @@ -33,25 +112,6 @@ -- Axel Beckert Sun, 26 Apr 2015 03:49:22 +0200 -libdevel-cover-perl (1.17-1ubuntu3) xenial; urgency=medium - - * Rebuild for Perl 5.22.1. - - -- Colin Watson Fri, 18 Dec 2015 00:30:24 +0000 - -libdevel-cover-perl (1.17-1ubuntu2) vivid; urgency=medium - - * Rebuild for perl 5.20.2. - - -- Matthias Klose Tue, 03 Mar 2015 18:20:06 +0100 - -libdevel-cover-perl (1.17-1ubuntu1) utopic; urgency=medium - - * Resynchronise with Debian. Remaining changes: - - Prefer perltidy over libppi-html-perl in build dependencies. - - -- Colin Watson Sat, 11 Oct 2014 09:13:35 +0100 - libdevel-cover-perl (1.17-1) unstable; urgency=medium * New upstream release. @@ -92,19 +152,6 @@ -- gregor herrmann Fri, 06 Jun 2014 14:37:00 +0200 -libdevel-cover-perl (1.14-2ubuntu2) utopic; urgency=medium - - * Rebuild for Perl 5.20.0. - - -- Colin Watson Wed, 20 Aug 2014 00:56:23 +0100 - -libdevel-cover-perl (1.14-2ubuntu1) utopic; urgency=medium - - * Resynchronise with Debian. Remaining changes: - - Prefer perltidy over libppi-html-perl in build dependencies. - - -- Colin Watson Thu, 05 Jun 2014 11:13:30 +0100 - libdevel-cover-perl (1.14-2) unstable; urgency=medium * Slightly loosen the dependency on the current perl version to allow @@ -131,19 +178,6 @@ -- gregor herrmann Mon, 07 Apr 2014 20:26:58 +0200 -libdevel-cover-perl (1.08-1ubuntu2) trusty; urgency=medium - - * Rebuild for Perl 5.18.2. - - -- Colin Watson Thu, 16 Jan 2014 14:05:16 +0000 - -libdevel-cover-perl (1.08-1ubuntu1) trusty; urgency=low - - * Resynchronise with Debian. Remaining changes: - - Prefer perltidy over libppi-html-perl in build dependencies. - - -- Colin Watson Mon, 21 Oct 2013 12:34:21 +0100 - libdevel-cover-perl (1.08-1) unstable; urgency=low * New upstream release. @@ -177,13 +211,6 @@ -- Florian Schlichting Thu, 22 Aug 2013 14:10:04 +0200 -libdevel-cover-perl (0.96-1ubuntu1) raring; urgency=low - - * Resynchronise with Debian. Remaining changes: - - Prefer perltidy over libppi-html-perl in build dependencies. - - -- Colin Watson Wed, 31 Oct 2012 08:34:01 +0000 - libdevel-cover-perl (0.96-1) unstable; urgency=low * New upstream release @@ -191,13 +218,6 @@ -- Nicholas Bamber Sun, 30 Sep 2012 20:34:40 +0100 -libdevel-cover-perl (0.93-1ubuntu1) quantal; urgency=low - - * Resynchronise with Debian. Remaining changes: - - Prefer perltidy over libppi-html-perl in build dependencies. - - -- Colin Watson Fri, 17 Aug 2012 17:27:31 +0100 - libdevel-cover-perl (0.93-1) unstable; urgency=low * Team upload. @@ -221,13 +241,6 @@ -- gregor herrmann Sat, 16 Jun 2012 15:53:07 +0200 -libdevel-cover-perl (0.88-1ubuntu1) quantal; urgency=low - - * Resynchronise with Debian. Remaining changes: - - Prefer perltidy over libppi-html-perl in build dependencies. - - -- Colin Watson Mon, 11 Jun 2012 19:21:53 +0100 - libdevel-cover-perl (0.88-1) unstable; urgency=low * New upstream release. @@ -244,13 +257,6 @@ -- gregor herrmann Sat, 02 Jun 2012 19:10:55 +0200 -libdevel-cover-perl (0.86-1ubuntu1) quantal; urgency=low - - * Resynchronise with Debian. Remaining changes: - - Prefer perltidy over libppi-html-perl in build dependencies. - - -- Colin Watson Wed, 02 May 2012 11:57:06 +0100 - libdevel-cover-perl (0.86-1) unstable; urgency=low * New upstream release. @@ -280,25 +286,6 @@ -- gregor herrmann Sat, 07 Apr 2012 15:20:29 +0200 -libdevel-cover-perl (0.77-1ubuntu3) precise; urgency=low - - * Rebuild for Perl 5.14. - - -- Colin Watson Tue, 15 Nov 2011 23:35:34 +0000 - -libdevel-cover-perl (0.77-1ubuntu2) oneiric; urgency=low - - * No-change upload to build against Perl 5.14. - - -- Martin Pitt Tue, 05 Jul 2011 12:21:28 +0200 - -libdevel-cover-perl (0.77-1ubuntu1) oneiric; urgency=low - - * Resynchronise with Debian. Remaining changes: - - Prefer perltidy over libppi-html-perl in build dependencies. - - -- Colin Watson Wed, 18 May 2011 11:36:18 +0100 - libdevel-cover-perl (0.77-1) unstable; urgency=low * New upstream release @@ -306,19 +293,6 @@ -- Nicholas Bamber Tue, 17 May 2011 01:33:27 +0100 -libdevel-cover-perl (0.76-1ubuntu2) oneiric; urgency=low - - * Rebuild for Perl 5.12. - - -- Colin Watson Tue, 10 May 2011 05:29:33 +0100 - -libdevel-cover-perl (0.76-1ubuntu1) oneiric; urgency=low - - * Merge with Debian; remaining changes: - - Prefer perltidy over libppi-html-perl in build dependencies. - - -- Matthias Klose Wed, 04 May 2011 13:52:14 +0200 - libdevel-cover-perl (0.76-1) unstable; urgency=low * New upstream release @@ -336,12 +310,6 @@ -- Nicholas Bamber Sun, 17 Apr 2011 19:57:34 +0100 -libdevel-cover-perl (0.73-1ubuntu1) natty; urgency=low - - * Prefer perltidy over libppi-html-perl in build dependencies. - - -- Matthias Klose Mon, 14 Mar 2011 18:52:19 +0100 - libdevel-cover-perl (0.73-1) unstable; urgency=low [ Nicholas Bamber ] diff -Nru libdevel-cover-perl-1.21/debian/clean libdevel-cover-perl-1.29/debian/clean --- libdevel-cover-perl-1.21/debian/clean 1970-01-01 00:00:00.000000000 +0000 +++ libdevel-cover-perl-1.29/debian/clean 2017-11-12 19:45:14.000000000 +0000 @@ -0,0 +1 @@ +MYMETA.json.lock diff -Nru libdevel-cover-perl-1.21/debian/control libdevel-cover-perl-1.29/debian/control --- libdevel-cover-perl-1.21/debian/control 2015-12-18 00:39:39.000000000 +0000 +++ libdevel-cover-perl-1.29/debian/control 2017-11-12 19:46:13.000000000 +0000 @@ -1,24 +1,24 @@ Source: libdevel-cover-perl -Maintainer: Ubuntu Developers -XSBC-Original-Maintainer: Debian Perl Group +Maintainer: Debian Perl Group Uploaders: Damyan Ivanov , - Jonathan Yu , gregor herrmann , Florian Schlichting , Axel Beckert Section: perl +Testsuite: autopkgtest-pkg-perl Priority: optional Build-Depends: debhelper (>= 9.20120312~), perl, - libhtml-parser-perl (>= 3.69), + libhtml-parser-perl, libpod-coverage-perl, - perltidy | libppi-html-perl, + libppi-html-perl | perltidy, libtemplate-perl, libtest-differences-perl -Standards-Version: 3.9.6 +Standards-Version: 4.1.1 Vcs-Browser: https://anonscm.debian.org/cgit/pkg-perl/packages/libdevel-cover-perl.git -Vcs-Git: git://anonscm.debian.org/pkg-perl/packages/libdevel-cover-perl.git +Vcs-Git: https://anonscm.debian.org/git/pkg-perl/packages/libdevel-cover-perl.git Homepage: https://metacpan.org/release/Devel-Cover +Rules-Requires-Root: no Package: libdevel-cover-perl Architecture: any @@ -26,13 +26,13 @@ ${shlibs:Depends}, ${misc:Depends}, ${sameperl:Depends}, - libhtml-parser-perl (>= 3.69) + libhtml-parser-perl Recommends: gcc, libtemplate-perl Suggests: libbrowser-open-perl, libcapture-tiny-perl, libclass-xsaccessor-perl, - libjson-xs-perl, + libjson-maybexs-perl, libmoo-perl, libpod-coverage-perl, libppi-html-perl | perltidy, diff -Nru libdevel-cover-perl-1.21/debian/copyright libdevel-cover-perl-1.29/debian/copyright --- libdevel-cover-perl-1.21/debian/copyright 2014-09-23 17:55:53.000000000 +0000 +++ libdevel-cover-perl-1.29/debian/copyright 2017-07-29 23:38:07.000000000 +0000 @@ -1,10 +1,10 @@ -Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ +Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ Upstream-Name: Devel-Cover Upstream-Contact: Paul Johnson Source: https://metacpan.org/release/Devel-Cover Files: * -Copyright: 2001-2014, Paul Johnson (paul@pjcj.net) +Copyright: 2001-2017, Paul Johnson (paul@pjcj.net) License: Artistic or GPL-1+ Files: debian/* @@ -12,7 +12,7 @@ 2008, Damyan Ivanov 2008, Marc 'HE' Brockschmidt 2009, Jonathan Yu - 2010-2014, gregor herrmann + 2010-2017, gregor herrmann 2010-2012, Nicholas Bamber 2013, Florian Schlichting License: Artistic or GPL-1+ diff -Nru libdevel-cover-perl-1.21/debian/gbp.conf libdevel-cover-perl-1.29/debian/gbp.conf --- libdevel-cover-perl-1.21/debian/gbp.conf 1970-01-01 00:00:00.000000000 +0000 +++ libdevel-cover-perl-1.29/debian/gbp.conf 2016-09-07 18:25:24.000000000 +0000 @@ -0,0 +1,2 @@ +[import-orig] +filter = .gitignore diff -Nru libdevel-cover-perl-1.21/debian/libdevel-cover-perl.docs libdevel-cover-perl-1.29/debian/libdevel-cover-perl.docs --- libdevel-cover-perl-1.21/debian/libdevel-cover-perl.docs 2014-09-23 17:55:53.000000000 +0000 +++ libdevel-cover-perl-1.29/debian/libdevel-cover-perl.docs 2017-11-08 01:24:59.000000000 +0000 @@ -1,2 +1,4 @@ -docs/TODO docs/BUGS +docs/CONTRIBUTING.md +docs/TODO +docs/cpancover.md diff -Nru libdevel-cover-perl-1.21/debian/rules libdevel-cover-perl-1.29/debian/rules --- libdevel-cover-perl-1.21/debian/rules 2014-09-23 18:01:46.000000000 +0000 +++ libdevel-cover-perl-1.29/debian/rules 2016-05-09 16:38:43.000000000 +0000 @@ -3,6 +3,8 @@ PERL_CURRENT := $(shell perl -MConfig -e 'print "$$Config{revision}.$$Config{patchlevel}.$$Config{subversion}"') PERL_NEXT := $(shell perl -MConfig -e 'print "$$Config{revision}.$$Config{patchlevel}." . ($$Config{subversion} + 1)') +export DEB_BUILD_MAINT_OPTIONS=hardening=+all + %: dh $@ diff -Nru libdevel-cover-perl-1.21/debian/tests/pkg-perl/SKIP libdevel-cover-perl-1.29/debian/tests/pkg-perl/SKIP --- libdevel-cover-perl-1.21/debian/tests/pkg-perl/SKIP 1970-01-01 00:00:00.000000000 +0000 +++ libdevel-cover-perl-1.29/debian/tests/pkg-perl/SKIP 2016-05-09 16:38:43.000000000 +0000 @@ -0,0 +1 @@ +/usr/share/pkg-perl-autopkgtest/runtime-deps.d/use.t diff -Nru libdevel-cover-perl-1.21/debian/tests/pkg-perl/smoke-files libdevel-cover-perl-1.29/debian/tests/pkg-perl/smoke-files --- libdevel-cover-perl-1.21/debian/tests/pkg-perl/smoke-files 1970-01-01 00:00:00.000000000 +0000 +++ libdevel-cover-perl-1.29/debian/tests/pkg-perl/smoke-files 2016-05-09 16:38:43.000000000 +0000 @@ -0,0 +1,4 @@ +test_output +tests +t +Makefile.PL diff -Nru libdevel-cover-perl-1.21/debian/tests/pkg-perl/smoke-setup libdevel-cover-perl-1.29/debian/tests/pkg-perl/smoke-setup --- libdevel-cover-perl-1.21/debian/tests/pkg-perl/smoke-setup 1970-01-01 00:00:00.000000000 +0000 +++ libdevel-cover-perl-1.29/debian/tests/pkg-perl/smoke-setup 2016-05-09 16:38:43.000000000 +0000 @@ -0,0 +1,24 @@ +#!/bin/sh + +### Devel::Cover autopkgtest setup -- Axel Beckert, 2016-Apr-21 + +# Create an empty directory where Makefile.PL can dump Inc.pm into. +mkdir -pv $TDIR/lib/Devel/Cover/ + +# Copy lib/Devel/Cover.pm for Makefile.PL's ABSTRACT_FROM. +cp -pv lib/Devel/Cover.pm $TDIR/lib/Devel/; + +# Switch to the temporary directory and call Makefile.PL there to get +# all the paths in the generated files right. +cd $TDIR; +perl Makefile.PL + +# Remove copied lib/Devel/Cover.pm again so this local copy from the +# source code can't be used and the installed version is used instead. +rm -vf lib/Devel/Cover.pm + +# Symlink /usr/bin to $TDIR/bin so that bin/cover is the installed +# version at /usr/bin/cover. Same for the directory with the Report +# modules. +ln -vs /usr/bin ./ +ln -vs /usr/lib/*/perl5/5*/Devel/Cover/Report lib/Devel/Cover/Report diff -Nru libdevel-cover-perl-1.21/debian/tests/pkg-perl/smoke-skip libdevel-cover-perl-1.29/debian/tests/pkg-perl/smoke-skip --- libdevel-cover-perl-1.21/debian/tests/pkg-perl/smoke-skip 1970-01-01 00:00:00.000000000 +0000 +++ libdevel-cover-perl-1.29/debian/tests/pkg-perl/smoke-skip 2016-05-09 16:38:43.000000000 +0000 @@ -0,0 +1,7 @@ +# https://lists.alioth.debian.org/pipermail/reproducible-builds/Week-of-Mon-20160418/005305.html +t/e2e/change.t +t/e2e/eval_merge.t +t/e2e/eval_merge_sep.t +t/e2e/eval_sub.t +t/e2e/eval_use.t +t/e2e/md5.t diff -Nru libdevel-cover-perl-1.21/debian/tests/pkg-perl/smoke-tests libdevel-cover-perl-1.29/debian/tests/pkg-perl/smoke-tests --- libdevel-cover-perl-1.21/debian/tests/pkg-perl/smoke-tests 1970-01-01 00:00:00.000000000 +0000 +++ libdevel-cover-perl-1.29/debian/tests/pkg-perl/smoke-tests 2016-05-09 16:38:43.000000000 +0000 @@ -0,0 +1,2 @@ +# Devel::Cover has all tests one level deeper than usual +t/*/*.t diff -Nru libdevel-cover-perl-1.21/debian/upstream/metadata libdevel-cover-perl-1.29/debian/upstream/metadata --- libdevel-cover-perl-1.21/debian/upstream/metadata 2014-09-23 18:04:42.000000000 +0000 +++ libdevel-cover-perl-1.29/debian/upstream/metadata 2017-07-29 23:38:07.000000000 +0000 @@ -2,7 +2,7 @@ Archive: CPAN Bug-Database: https://github.com/pjcj/Devel--Cover/issues Contact: Paul Johnson -Homepage: http://www.pjcj.net/perl.html +Homepage: https://www.pjcj.net/perl.html Name: Devel-Cover -Repository: git://github.com/pjcj/Devel--Cover +Repository: https://github.com/pjcj/Devel--Cover Repository-Browse: https://github.com/pjcj/Devel--Cover diff -Nru libdevel-cover-perl-1.21/dist.ini libdevel-cover-perl-1.29/dist.ini --- libdevel-cover-perl-1.21/dist.ini 2015-09-19 22:31:27.000000000 +0000 +++ libdevel-cover-perl-1.29/dist.ini 2017-10-15 19:42:19.000000000 +0000 @@ -9,7 +9,6 @@ [Run::BeforeBuild] ; commands to run before build phase run = perl Makefile.PL ; needed for VersionFromScript above -run = make README ; might as well build this now [GatherDir] ; gather files from the dist dir include_dotfiles = 1 @@ -41,6 +40,8 @@ perl = 5.006001 Storable = 0 Digest::MD5 = 0 +B::Debug = 0 +HTML::Entities = 3.69 [Prereqs / Recommends] perl = 5.008002 Template = 2.00 @@ -49,13 +50,16 @@ Pod::Coverage = 0.06 Pod::Coverage::CountParents = 0 Parallel::Iterator = 0 -JSON::PP = 0 +JSON::MaybeXS = 1.003003 Test::Differences = 0 ; make sure it gets added Browser::Open = 0 Capture::Tiny = 0 Class::XSAccessor = 0 Moo = 0 namespace::clean = 0 +HTML::Parser = 0 +Sereal::Decoder = 0 +Sereal::Encoder = 0 [Prereqs / ConfigureRequires] ExtUtils::MakeMaker = 0 [Prereqs / TestRequires] @@ -79,6 +83,7 @@ [ConfirmRelease] ; asks for manual confirmation of release [UploadToCPAN] ; uploads to cpan ; [Git::Push] ; push to remote repository - hangs for me +; See https://rt.cpan.org/Public/Bug/Display.html?id=88139 ; following can do stuff, but aren't used yet ; [ExtraTests] diff -Nru libdevel-cover-perl-1.21/docs/BUGS libdevel-cover-perl-1.29/docs/BUGS --- libdevel-cover-perl-1.21/docs/BUGS 2015-09-19 22:31:27.000000000 +0000 +++ libdevel-cover-perl-1.29/docs/BUGS 2017-10-15 19:42:19.000000000 +0000 @@ -19,5 +19,3 @@ - If an END block installs another END block it won't be covered. More generally, any code run after Devel::Cover's END block won't be covered. - -- Empty subs will be ignored in Perl 5.8.1. diff -Nru libdevel-cover-perl-1.21/docs/CONTRIBUTING.md libdevel-cover-perl-1.29/docs/CONTRIBUTING.md --- libdevel-cover-perl-1.21/docs/CONTRIBUTING.md 1970-01-01 00:00:00.000000000 +0000 +++ libdevel-cover-perl-1.29/docs/CONTRIBUTING.md 2017-10-15 19:42:19.000000000 +0000 @@ -0,0 +1,51 @@ +How to Contribute to Devel::Cover +--------------------------------- + +The general description of the code and how to contribute. + +The source code can be found at https://github.com/pjcj/Devel--Cover + +HTML report generation +---------------------- + +Devel::Cover::Web contains a number of static files that are saved when a +report is generated: + cover.css + common.js + css.js + standardista-table-sorting.js + +Report formats are: + html|html_minimal (default) + html_basic + html_subtle + +They are implemented in: + Devel::Cover::Report::Html is just a subclass of + Devel::Cover::Report::Html_minimal + Devel::Cover::Report::Html_basic + Devel::Cover::Report::Html_subtle exists, but is probably not used by anyone. + +*Minimal* was written by Michael Carman. One of the goals was to keep the +output as small as possible and he decided not to use templates. +Unfortunately, minimal does not handle uncovered code correctly and, whilst the +truth tables are nice, they are not always correct when there are many +variables. This is currently the default. + +*Basic* handles uncovered code correctly and the conditions are displayed +correctly, if not as nicely as in minimal. It also allows for coloured code. + +How to run Devel::Cover from Git +-------------------------------- +cd some_dir/ +perl -I/home/foobar/work/Devel--Cover/lib/ /home/foobar/work/Devel--Cover/bin/cover --test -report html_basic + +CPAN Cover +---------- + +http://cpancover.com/ + +Devel::Cover::Collection is used by bin/cpancover and has some templates in it. + +In order to run cpancover a few extra modules are needed: + Template and Parallel::Iterator diff -Nru libdevel-cover-perl-1.21/docs/cpancover libdevel-cover-perl-1.29/docs/cpancover --- libdevel-cover-perl-1.21/docs/cpancover 2015-09-19 22:31:27.000000000 +0000 +++ libdevel-cover-perl-1.29/docs/cpancover 1970-01-01 00:00:00.000000000 +0000 @@ -1,32 +0,0 @@ -How to set up cpancover - -Cpancover requires a bourne shell and docker, as well as a recent perl. The -code requires 5.16.0 but earlier versions may work. - -Each module is built in an individual docker container. This should allow its -resources to be constrained. In addition the docker container is killed after a -certain time. - -I have only run this in Ubuntu 14.04. The docker version there, 0.9.1 (as of -31.05.2104) is insufficient. Version 0.11.1 is fine. I don't know about the -versions inbetween. - -The latest version of docker can be installed on Ubuntu as follows: -(see http://askubuntu.com/questions/472412/how-do-i-upgrade-docker) - -# wget -qO- https://get.docker.io/gpg | apt-key add - -# echo deb http://get.docker.io/ubuntu docker main > /etc/apt/sources.list.d/docker.list -# aptitude update -# aptitude remove docker.io -# aptitude install lxc-docker - -You may need to add yourself to the docker group. - -Jobs are run as follows: - -$ . ./utils/setup -$ dc cpancover-latest | head -2000 | dc cpancover - -The top level html and json is generated with: - -$ dc cpancover-generate-html diff -Nru libdevel-cover-perl-1.21/docs/cpancover.md libdevel-cover-perl-1.29/docs/cpancover.md --- libdevel-cover-perl-1.21/docs/cpancover.md 1970-01-01 00:00:00.000000000 +0000 +++ libdevel-cover-perl-1.29/docs/cpancover.md 2017-10-15 19:42:19.000000000 +0000 @@ -0,0 +1,125 @@ +How to set up cpancover +======================= + +Overview +-------- + +Cpancover requires a bourne shell, plenv, and docker, as well as a recent perl. +The code requires Perl 5.16.0 but earlier versions may work. + +Docker +------ + +Each module is built in an individual docker container. This should allow its +resources to be constrained. In addition the docker container is killed after a +certain time. + +I have only run this in Ubuntu 14.04 and 16.04. The docker version in 14.04, +0.9.1 (as of 31.05.2104) is insufficient. Version 0.11.1 is fine. I don't +know about the versions in between. + +The latest version of docker can be installed on Ubuntu as follows: +(see https://docs.docker.com/engine/installation/linux/docker-ce/ubuntu/) + + # aptitude update + # aptitude install apt-transport-https ca-certificates curl software-properties-common + # curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add - + # sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" + # aptitude update + # aptitude install docker-ce + +You may need to add yourself to the docker group. + +To build the docker container, check out the +[devel-cover-docker](https://github.com/pjcj/devel-cover-docker) project and +follow the instructions there. + +If you want to use your own docker container, edit the file `utils/dc` to point +to the correct container. + +Plenv +----- + +Install plenv by following the instructions on +[github](https://github.com/tokuhirom/plenv). + +Running +------- + +To run the system as a whole: + + $ cd /cover/dc + $ . ./utils/setup + +Install or upgrade a cpancover perl: + + $ dc install_cpancover_perl 5.26.1 + +Run cpancover: + + $ dc cpancover-run + +The `cpancover-run` command will just sit there picking up on newly uploaded +distributions and running the coverage for them. Or, for slightly more +control, jobs can be run as follows: + + $ dc cpancover-latest | head -2000 | dc cpancover + +The top level HTML and JSON is generated with: + + $ dc cpancover-generate-html + +Results +------- + +The results of the runs will be stored in the `~/staging` directory. If this +is not where you want them stored (which is rather likely) then the simplest +solution is probably to make that directory a symlink to the real location. If +you would prefer not to do that, or you want to run multiple separate cpancover +instances (probably only for development purposes), then you can change the +`$CPANCOVER_STAGING` variable in the `utils/dc` script. + +The results consist of the Devel::Cover `cover_db` directory for each package +tested, including the generated HTML output for that DB and the JSON summary +file. Sitting above those directories is summary HTML providing links to the +individual coverage reports. + +Web server +---------- + +If you want anyone to be able to look at the results, you'll need a web server +somewhere. The results are all static HTML so there is not much configuration +required. + +If you use nginx, the file in `utils/cpancover.nginx` can be copied into the +`/etc/nginx/sites-available` directory and from thence symlinked into +sites-enabled. The static files are all gzipped and served as such where +possible. + +cpancover.com +------------- + +The server which is currently running cpancover.com has been graciously +provided by [Bytemark](http://www.bytemark.co.uk/r/cpancover). It has plenty +of memory and cpu power, but not a large amount of disk space. That's fine +though, it has sufficient for cpancover's needs. + +The server is on the account of pjcj at bytemark. Logins are owned by pjcj and +the metacpan group. + +The server is currently running Ubuntu 16.04 LTS and was upgraded from 14.04 +LTS. + +The Devel::Cover directory from which cpancover is run is in `/cover/dc`. It +is a git checkout of the Devel::Cover repository but, ideally, that should be +treated as a read-only directory. The staging directory is symlinked to +`/cover/staging`. + +In addition to hosting and running cpancover.com, I also use this server for +some development work, and in particular for testing Devel::Cover against all +the versions of perl which are supported, plus recent development versions. +For each version there is a standard and a threaded plenv installation. + +The development directory for these purposes is `/cover/Devel--Cover`. New +versions of perl can be installed by adding them to `utils/all_versions` and +running `dc all_versions --build`. diff -Nru libdevel-cover-perl-1.21/docs/RELEASE libdevel-cover-perl-1.29/docs/RELEASE --- libdevel-cover-perl-1.21/docs/RELEASE 2015-09-19 22:31:27.000000000 +0000 +++ libdevel-cover-perl-1.29/docs/RELEASE 2017-10-15 19:42:19.000000000 +0000 @@ -1,40 +1,42 @@ -1. Update Changes. - - Add important changes. - - Credit the author as appropriate. - - Include github and RT numbers. +1. Update Changes + - Add important changes + - Credit the author as appropriate + - Include github and RT numbers -2. Check it in. - $ git commit -m "Add Changes." Changes +2. Check it in + $ git commit -m "Add Changes" Changes -3. Update Contributors. +3. Update Contributors -4. Check it in. - $ git commit -m "Update Contributors." Contributors +4. Check it in + $ git commit -m "Update Contributors" Contributors -5. Update $latest_tested in Makefile.PL. - Update test for obsolete development version skipping in ...::Test.pm. - Update version number in Makefile.PL. +5. Update $Latest_t in Makefile.PL + Update test for obsolete development version skipping in + run_test method of ...::Test.pm + Update version number in Makefile.PL -6. Check it in. - $ git commit -m "Bump version number." Makefile.PL +6. Check it in + $ git commit -m "Bump version number" Makefile.PL -7. Run basic tests. +7. Run basic tests $ perl Makefile.PL && make $ make test -8. Test against all versions. +8. Test against all versions $ make all_test -9. Return to base perl version. +9. Return to base perl version $ perl Makefile.PL && make 10. If there's a new stable release of perl: - $ cpan Dist::Zilla - $ cpan `dzil authordeps --missing` + $ cpan App::cpm + $ cpm install -g Dist::Zilla + $ cpm install -g `dzil authordeps --missing` -11. Make the release. +11. Make the release $ dzil release -12. Push the changes. +12. Push the changes - The dzil Git::Push plugin hangs for me - $ git push && git push --tags + $ git push --follow-tags diff -Nru libdevel-cover-perl-1.21/docs/TODO libdevel-cover-perl-1.29/docs/TODO --- libdevel-cover-perl-1.21/docs/TODO 2015-09-19 22:31:27.000000000 +0000 +++ libdevel-cover-perl-1.29/docs/TODO 2017-10-15 19:42:19.000000000 +0000 @@ -1,68 +1,67 @@ - Enhancements: - - Different criteria for different runs. - - Marking of unreachable code - commandline tool and gui. - - Threads support - at least for some coverage criteria. - - Test analysis. - - Profiling and speedups. - - Collect data for path coverage. - - Mutation coverage. - - Regular Expression coverage. + - Different criteria for different runs + - Marking of unreachable code - commandline tool and gui + - Threads support - at least for some coverage criteria + - Test analysis + - Profiling and speedups + - Collect data for path coverage + - Mutation coverage + - Regular Expression coverage - Indicate how to increase coverage? - BEGIN and CHECK blocks and code in modules. Requires callbacks from perl? - - Create a base class for Devel::Cover::Branch and Devel::Cover::Condition. - - Handle C< $y || "${p}qqq" >. + - Create a base class for Devel::Cover::Branch and Devel::Cover::Condition + - Handle C< $y || "${p}qqq" > - 22:09 <@nothingmuch> return, redo, next, last, goto should probably all be treated as short circuiting - - Add aliased subroutines to subroutine coverage. - - Accommodate reloading modules at runtime (Mark Glines). - - Don't count BEGIN blocks as subroutines. - - Only collect boolean data for coverage information (no counts). + - Add aliased subroutines to subroutine coverage + - Accommodate reloading modules at runtime (Mark Glines) + - Don't count BEGIN blocks as subroutines + - Only collect boolean data for coverage information (no counts) - cpancover - - Extend cpancover so people can upload databases. - - Provide a view by author. - - Make cpancover more general to be able to work on local modules. - - Add verbosity option and set silent option from it. - - Get Sort report working. + - Extend cpancover so people can upload databases + - Provide a view by author + - Add verbosity option and set silent option from it + - Get Sort report working - Reports: - - Improve textual output. - - Remove >= 100% in customisable thresholds. - - Move HTML version and platform info to main page and allow for multiples. - - Add -db option to cover. - - Diff functionality. - - Merge CSS from basic_html and cpancover. - - Provide a way to control syntax colouring. - - Cyclomatic complexity annotation. + - Improve textual output + - Remove >= 100% in customisable thresholds + - Move HTML version and platform info to main page and allow for multiples + - Add -db option to cover + - Diff functionality + - Merge CSS from basic_html and cpancover + - Provide a way to control syntax colouring + - Cyclomatic complexity annotation - Bugs: - Work with memoize. Is this still a problem? - - See if the XS code leaks, and fix it if it does. + - See if the XS code leaks, and fix it if it does - Look at time coverage again - collecting for too many ops? - - Sort out time coverage on Windows. - - Check for core dumps with pod coverage. - - Fix "ignored" errors - see IO::Pager. + - Sort out time coverage on Windows + - Check for core dumps with pod coverage + - Fix "ignored" errors - see IO::Pager - cpancover on CPAN: - - PerlIO-eol-0.13 hangs. - - CPAN@1432 hangs with bleadperl@29642. + - PerlIO-eol-0.13 hangs + - CPAN@1432 hangs with bleadperl@29642 - cover -delete uses too much memory when cover_db doesn't exist. (clkao) - - Games::Bingo broken. + - Games::Bingo broken - Class::Unload only giving 50% coverage on return unless ... (losing data?) - - JSON error in Archive::Extract and Test::LeakTrace. - - cover -write new_db doesn't work (needs structure?). + - JSON error in Archive::Extract and Test::LeakTrace + - cover -write new_db doesn't work (needs structure?) - Testing: - - Be able to run Devel::Cover on itself. - - More comprehensive. - - Functional tests. + - Be able to run Devel::Cover on itself + - More comprehensive + - Functional tests - Overhaul test system. Include patt? - Tests for INIT and END blocks included in required files when the - files are used in some runs. - - Make sure dor is handled correctly and add more tests to cond_or. + files are used in some runs + - Make sure dor is handled correctly and add more tests to cond_or - Build: - - Fix up make text and friends for module_ignore. + - Fix up make text and friends for module_ignore - Check for matching threadedness, 64bits etc. between build and run? - Documentation: - - General improvement. - - Examples. - - Cookbook including +/-inc, +/-ignore and +/-select. - - Document cpancover options. - - Pod in private modules. - - Developer documentation. - - Better DB API docs (including writing?). + - General improvement + - Examples + - Cookbook including +/-inc, +/-ignore and +/-select + - Document cpancover options + - Pod in private modules + - Developer documentation + - Better DB API docs (including writing?) diff -Nru libdevel-cover-perl-1.21/.gitignore libdevel-cover-perl-1.29/.gitignore --- libdevel-cover-perl-1.21/.gitignore 2015-09-19 22:31:27.000000000 +0000 +++ libdevel-cover-perl-1.29/.gitignore 2017-10-15 19:42:19.000000000 +0000 @@ -1,6 +1,11 @@ *.org *.bak *~ + +# for Mac OSX +._* +.DS_Store + Cover.bs Cover.c Cover.o @@ -23,9 +28,10 @@ dll.base dll.exp Devel-Cover-* -tags +tags* README .build/ callgrind.out.* staging/ *.sw? +.perl-version diff -Nru libdevel-cover-perl-1.21/lib/Devel/Cover/Annotation/Git.pm libdevel-cover-perl-1.29/lib/Devel/Cover/Annotation/Git.pm --- libdevel-cover-perl-1.21/lib/Devel/Cover/Annotation/Git.pm 2015-09-19 22:31:27.000000000 +0000 +++ libdevel-cover-perl-1.29/lib/Devel/Cover/Annotation/Git.pm 2017-10-15 19:42:19.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright 2005-2015, Paul Johnson (paul@pjcj.net) +# Copyright 2005-2017, Paul Johnson (paul@pjcj.net) # This software is free. It is licensed under the same terms as Perl itself. @@ -10,7 +10,7 @@ use strict; use warnings; -our $VERSION = '1.21'; # VERSION +our $VERSION = '1.29'; # VERSION use Getopt::Long; @@ -121,7 +121,7 @@ =head1 VERSION -version 1.21 +version 1.29 =head1 SYNOPSIS @@ -142,7 +142,7 @@ =head1 LICENCE -Copyright 2005-2015, Paul Johnson (paul@pjcj.net) +Copyright 2005-2017, Paul Johnson (paul@pjcj.net) This software is free. It is licensed under the same terms as Perl itself. diff -Nru libdevel-cover-perl-1.21/lib/Devel/Cover/Annotation/Random.pm libdevel-cover-perl-1.29/lib/Devel/Cover/Annotation/Random.pm --- libdevel-cover-perl-1.21/lib/Devel/Cover/Annotation/Random.pm 2015-09-19 22:31:28.000000000 +0000 +++ libdevel-cover-perl-1.29/lib/Devel/Cover/Annotation/Random.pm 2017-10-15 19:42:19.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright 2004-2015, Paul Johnson (paul@pjcj.net) +# Copyright 2004-2017, Paul Johnson (paul@pjcj.net) # This software is free. It is licensed under the same terms as Perl itself. @@ -10,7 +10,7 @@ use strict; use warnings; -our $VERSION = '1.21'; # VERSION +our $VERSION = '1.29'; # VERSION use Getopt::Long; @@ -78,7 +78,7 @@ =head1 VERSION -version 1.21 +version 1.29 =head1 SYNOPSIS @@ -99,7 +99,7 @@ =head1 LICENCE -Copyright 2004-2015, Paul Johnson (paul@pjcj.net) +Copyright 2004-2017, Paul Johnson (paul@pjcj.net) This software is free. It is licensed under the same terms as Perl itself. diff -Nru libdevel-cover-perl-1.21/lib/Devel/Cover/Annotation/Svk.pm libdevel-cover-perl-1.29/lib/Devel/Cover/Annotation/Svk.pm --- libdevel-cover-perl-1.21/lib/Devel/Cover/Annotation/Svk.pm 2015-09-19 22:31:27.000000000 +0000 +++ libdevel-cover-perl-1.29/lib/Devel/Cover/Annotation/Svk.pm 2017-10-15 19:42:19.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright 2005-2015, Paul Johnson (paul@pjcj.net) +# Copyright 2005-2017, Paul Johnson (paul@pjcj.net) # This software is free. It is licensed under the same terms as Perl itself. @@ -10,7 +10,7 @@ use strict; use warnings; -our $VERSION = '1.21'; # VERSION +our $VERSION = '1.29'; # VERSION use Getopt::Long; use Digest::MD5; @@ -144,7 +144,7 @@ =head1 VERSION -version 1.21 +version 1.29 =head1 SYNOPSIS @@ -165,7 +165,7 @@ =head1 LICENCE -Copyright 2005-2015, Paul Johnson (paul@pjcj.net) +Copyright 2005-2017, Paul Johnson (paul@pjcj.net) This software is free. It is licensed under the same terms as Perl itself. diff -Nru libdevel-cover-perl-1.21/lib/Devel/Cover/Branch.pm libdevel-cover-perl-1.29/lib/Devel/Cover/Branch.pm --- libdevel-cover-perl-1.21/lib/Devel/Cover/Branch.pm 2015-09-19 22:31:27.000000000 +0000 +++ libdevel-cover-perl-1.29/lib/Devel/Cover/Branch.pm 2017-10-15 19:42:19.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright 2001-2015, Paul Johnson (paul@pjcj.net) +# Copyright 2001-2017, Paul Johnson (paul@pjcj.net) # This software is free. It is licensed under the same terms as Perl itself. @@ -10,19 +10,19 @@ use strict; use warnings; -our $VERSION = '1.21'; # VERSION +our $VERSION = '1.29'; # VERSION use base "Devel::Cover::Criterion"; sub pad { my $self = shift; $self->[0] = [0, 0] - unless $self->[0] && @{$self->[0]}; } + unless $self->[0] && @{$self->[0]}; } sub uncoverable { @_ > 1 ? $_[0][2][$_[1]] : scalar grep $_, @{$_[0][2]} } sub covered { @_ > 1 ? $_[0][0][$_[1]] : scalar grep $_, @{$_[0][0]} } -sub total { scalar @{$_[0][0]} } -sub value { $_[0][0][$_[1]] } -sub values { @{$_[0][0]} } -sub text { $_[0][1]{text} } -sub criterion { 'branch' } +sub total { scalar @{$_[0][0]} } +sub value { $_[0][0][$_[1]] } +sub values { @{$_[0][0]} } +sub text { $_[0][1]{text} } +sub criterion { "branch" } sub percentage { @@ -66,7 +66,7 @@ =head1 VERSION -version 1.21 +version 1.29 =head1 SYNOPSIS @@ -88,7 +88,7 @@ =head1 LICENCE -Copyright 2001-2015, Paul Johnson (paul@pjcj.net) +Copyright 2001-2017, Paul Johnson (paul@pjcj.net) This software is free. It is licensed under the same terms as Perl itself. diff -Nru libdevel-cover-perl-1.21/lib/Devel/Cover/Collection.pm libdevel-cover-perl-1.29/lib/Devel/Cover/Collection.pm --- libdevel-cover-perl-1.21/lib/Devel/Cover/Collection.pm 2015-09-19 22:31:27.000000000 +0000 +++ libdevel-cover-perl-1.29/lib/Devel/Cover/Collection.pm 2017-10-15 19:42:19.000000000 +0000 @@ -1,4 +1,4 @@ -# Copyright 2014-2015, Paul Johnson (paul@pjcj.net) +# Copyright 2014-2017, Paul Johnson (paul@pjcj.net) # This software is free. It is licensed under the same terms as Perl itself. @@ -7,10 +7,10 @@ package Devel::Cover::Collection; -use 5.16.0; +use 5.26.0; use warnings; -our $VERSION = '1.21'; # VERSION +our $VERSION = '1.29'; # VERSION use Devel::Cover::DB; use Devel::Cover::DB::IO::JSON; @@ -160,23 +160,24 @@ # say && system "ls -al $_" for "/remote_staging", # map "$_/build", @{$self->cpan_dir}; my $exists = sub { - my $dir = "/remote_staging/" . (s|.*/||r =~ s/-\w{6}$/*/r); - # say "checking [$dir]"; + # say "exists [$_]"; + my $dir = "/remote_staging/" . (s|.*/||r =~ s/-\d+$/*/r); my @files = glob $dir; + # say "checking [$dir] -> [@files]"; @files }; push @{$self->build_dirs}, grep { !$exists->() } grep -d, map glob("$_/build/*"), @{$self->cpan_dir}; - # say "add_build_dirs"; say for @{$self->build_dirs}; + # say "add_build_dirs:"; say for @{$self->build_dirs}; } sub run { my $self = shift; my ($build_dir) = @_; - my ($module) = $build_dir =~ m|.*/([^/]+?)(?:-\w{6})$| or return; + my ($module) = $build_dir =~ m|.*/([^/]+?)(?:-\d+)$| or return; my $db = "$build_dir/cover_db"; my $line = "=" x 80; my $output = "**** Checking coverage of $module ****\n"; @@ -377,6 +378,12 @@ or die $template->error; } + my $about_f = "$d/about.html"; + say "\nWriting about page to $about_f ..."; + + $template->process("about", { subdir => "latest/" }, $about_f) + or die $template->error; + # print Dumper $vars; $self->write_json($vars); @@ -390,7 +397,6 @@ $self->build_modules; $self->add_build_dirs; $self->run_all; - $self->generate_html; } sub failed_dir { @@ -443,10 +449,13 @@ my $self = shift; $self->process_module_file; - # say "modules: ", Dumper $self->modules; - my @command = qw( utils/dc cpancover-docker-module ); + my $dir = ""; + $dir = "/dc/" if $self->local && -d "/dc"; + my @opts; + push @opts, "--local" if $self->local; + my @command = ("${dir}utils/dc", @opts, "cpancover-docker-module"); $self->_set_local_timeout(0); my @res = iterate_as_array( { workers => $self->workers }, @@ -458,10 +467,10 @@ if ($self->is_covered($dir)) { $self->set_covered($dir); say "$module already covered" if $self->verbose; - return; + return unless $self->force; } elsif ($self->is_failed($dir)) { say "$module already failed" if $self->verbose; - return; + return unless $self->force; } my $timeout = $self->local_timeout || $self->timeout || 30 * 60; @@ -472,6 +481,7 @@ eval { local $SIG{ALRM} = sub { die "alarm\n" }; alarm $timeout; + say "running: @command" if $self->verbose; system @command, $module, $name; alarm 0; }; @@ -614,7 +624,7 @@ use strict; use warnings; -our $VERSION = '1.21'; # VERSION +our $VERSION = '1.29'; # VERSION use base "Template::Provider"; @@ -651,7 +661,7 @@