In perl.git, the branch blead has been updated <http://perl5.git.perl.org/perl.git/commitdiff/9716828a5efa3dfaa833945494a045a5c3f711a6?hp=89d84ff965b644c21c4c0633253e4cb21f72b62c>
- Log ----------------------------------------------------------------- commit 9716828a5efa3dfaa833945494a045a5c3f711a6 Author: Chris 'BinGOs' Williams <[email protected]> Date: Thu Jun 11 16:38:00 2015 +0100 Update Parse-CPAN-Meta to CPAN release 1.4417 [DELTA] 1.4417 2015-06-09 16:19:41-06:00 America/Denver - No changes from 1.4416 1.4416 2015-05-19 11:11:47-04:00 America/New_York (TRIAL RELEASE) [FIXED] - Minimum Perl was inadvertently set to v5.10.0. Now back to v5.8.1. 1.4415 2015-04-28 11:29:52-04:00 America/New_York (TRIAL RELEASE) [TESTS] - Outputs the version of backends used [META] - Updated repo metadata and boilerplate files - Pointed issue tracker to the Perl-Toolchain-Gang Github repo M MANIFEST M Porting/Maintainers.pl A cpan/Parse-CPAN-Meta/corpus/BadMETA.yml A cpan/Parse-CPAN-Meta/corpus/META-VR.json A cpan/Parse-CPAN-Meta/corpus/META-VR.yml A cpan/Parse-CPAN-Meta/corpus/bareyaml.meta A cpan/Parse-CPAN-Meta/corpus/json.meta A cpan/Parse-CPAN-Meta/corpus/yaml.meta M cpan/Parse-CPAN-Meta/lib/Parse/CPAN/Meta.pm M cpan/Parse-CPAN-Meta/t/02_api.t D cpan/Parse-CPAN-Meta/t/data/BadMETA.yml D cpan/Parse-CPAN-Meta/t/data/META-VR.json D cpan/Parse-CPAN-Meta/t/data/META-VR.yml D cpan/Parse-CPAN-Meta/t/data/bareyaml.meta D cpan/Parse-CPAN-Meta/t/data/json.meta D cpan/Parse-CPAN-Meta/t/data/yaml.meta M cpan/Parse-CPAN-Meta/t/lib/Parse/CPAN/Meta/Test.pm commit 181e5cbaddfed0068a152bd22980ceb987010260 Author: Chris 'BinGOs' Williams <[email protected]> Date: Thu Jun 11 16:34:35 2015 +0100 Regen META files after CPAN-Meta update Note for future: Looks like there is an x_serialization now, so if CPAN::Meta::YAML and/or JSON::PP get updated then these META files will need regenerating too. M META.json M META.yml commit 2b771c51706b5815f1928ec88c49b535095adea6 Author: Chris 'BinGOs' Williams <[email protected]> Date: Thu Jun 11 16:28:11 2015 +0100 Update CPAN-Meta to CPAN release 2.150005 [DELTA] 2.150005 2015-06-09 19:08:44-06:00 America/Denver [TESTING] - Changed some test data from UTF-8 to ASCII 2.150004 2015-05-19 11:25:53-04:00 America/New_York (TRIAL RELEASE) [DOCUMENTED] - Noted explicitly that historical META spec files are licensed under the same terms as Perl [TESTING] - Added test for 'x_deprecated' field in "provides" [META] - declared extra developer prereq 2.150003 2015-04-21 19:41:15-04:00 America/New_York (TRIAL RELEASE) [CHANGED] - Serialized CPAN::Meta objects now include a x_serialization_backend entry 2.150002 2015-04-19 01:00:10+02:00 Europe/Berlin (TRIAL RELEASE) [CHANGED] - Metadata merging now does deep hash merging as long as keys don't conflict M MANIFEST M Porting/Maintainers.pl M cpan/CPAN-Meta/lib/CPAN/Meta.pm M cpan/CPAN-Meta/lib/CPAN/Meta/Converter.pm M cpan/CPAN-Meta/lib/CPAN/Meta/Feature.pm M cpan/CPAN-Meta/lib/CPAN/Meta/History.pm M cpan/CPAN-Meta/lib/CPAN/Meta/History/Meta_1_0.pod M cpan/CPAN-Meta/lib/CPAN/Meta/History/Meta_1_1.pod M cpan/CPAN-Meta/lib/CPAN/Meta/History/Meta_1_2.pod M cpan/CPAN-Meta/lib/CPAN/Meta/History/Meta_1_3.pod M cpan/CPAN-Meta/lib/CPAN/Meta/History/Meta_1_4.pod M cpan/CPAN-Meta/lib/CPAN/Meta/Merge.pm M cpan/CPAN-Meta/lib/CPAN/Meta/Prereqs.pm M cpan/CPAN-Meta/lib/CPAN/Meta/Spec.pm M cpan/CPAN-Meta/lib/CPAN/Meta/Validator.pm M cpan/CPAN-Meta/t/converter-bad.t M cpan/CPAN-Meta/t/converter-fail.t M cpan/CPAN-Meta/t/converter-fragments.t M cpan/CPAN-Meta/t/converter.t A cpan/CPAN-Meta/t/data-test/preserve-release-status.yml M cpan/CPAN-Meta/t/load-bad.t M cpan/CPAN-Meta/t/merge.t M cpan/CPAN-Meta/t/meta-obj.t M cpan/CPAN-Meta/t/no-index.t M cpan/CPAN-Meta/t/optional_feature-merge.t M cpan/CPAN-Meta/t/prereqs-finalize.t M cpan/CPAN-Meta/t/prereqs-merge.t M cpan/CPAN-Meta/t/prereqs.t M cpan/CPAN-Meta/t/repository.t M cpan/CPAN-Meta/t/save-load.t M cpan/CPAN-Meta/t/validator.t ----------------------------------------------------------------------- Summary of changes: MANIFEST | 13 +++-- META.json | 5 +- META.yml | 3 +- Porting/Maintainers.pl | 4 +- cpan/CPAN-Meta/lib/CPAN/Meta.pm | 35 ++++++++++-- cpan/CPAN-Meta/lib/CPAN/Meta/Converter.pm | 10 ++-- cpan/CPAN-Meta/lib/CPAN/Meta/Feature.pm | 11 ++-- cpan/CPAN-Meta/lib/CPAN/Meta/History.pm | 4 +- cpan/CPAN-Meta/lib/CPAN/Meta/History/Meta_1_0.pod | 3 +- cpan/CPAN-Meta/lib/CPAN/Meta/History/Meta_1_1.pod | 3 +- cpan/CPAN-Meta/lib/CPAN/Meta/History/Meta_1_2.pod | 3 +- cpan/CPAN-Meta/lib/CPAN/Meta/History/Meta_1_3.pod | 3 +- cpan/CPAN-Meta/lib/CPAN/Meta/History/Meta_1_4.pod | 3 +- cpan/CPAN-Meta/lib/CPAN/Meta/Merge.pm | 25 ++++++++- cpan/CPAN-Meta/lib/CPAN/Meta/Prereqs.pm | 15 +++-- cpan/CPAN-Meta/lib/CPAN/Meta/Spec.pm | 4 +- cpan/CPAN-Meta/lib/CPAN/Meta/Validator.pm | 11 ++-- cpan/CPAN-Meta/t/converter-bad.t | 2 +- cpan/CPAN-Meta/t/converter-fail.t | 2 +- cpan/CPAN-Meta/t/converter-fragments.t | 4 +- cpan/CPAN-Meta/t/converter.t | 12 ++++ .../{META-1_0.yml => preserve-release-status.yml} | 1 + cpan/CPAN-Meta/t/load-bad.t | 8 +-- cpan/CPAN-Meta/t/merge.t | 64 +++++++++++++++++++--- cpan/CPAN-Meta/t/meta-obj.t | 1 + cpan/CPAN-Meta/t/no-index.t | 1 + cpan/CPAN-Meta/t/optional_feature-merge.t | 8 +-- cpan/CPAN-Meta/t/prereqs-finalize.t | 5 +- cpan/CPAN-Meta/t/prereqs-merge.t | 1 + cpan/CPAN-Meta/t/prereqs.t | 2 +- cpan/CPAN-Meta/t/repository.t | 1 + cpan/CPAN-Meta/t/save-load.t | 22 ++++++++ cpan/CPAN-Meta/t/validator.t | 3 +- .../Parse-CPAN-Meta/{t/data => corpus}/BadMETA.yml | 0 .../{t/data => corpus}/META-VR.json | 0 .../Parse-CPAN-Meta/{t/data => corpus}/META-VR.yml | 0 .../{t/data => corpus}/bareyaml.meta | 0 cpan/Parse-CPAN-Meta/{t/data => corpus}/json.meta | 0 cpan/Parse-CPAN-Meta/{t/data => corpus}/yaml.meta | 0 cpan/Parse-CPAN-Meta/lib/Parse/CPAN/Meta.pm | 19 +++++-- cpan/Parse-CPAN-Meta/t/02_api.t | 33 ++++++++--- cpan/Parse-CPAN-Meta/t/lib/Parse/CPAN/Meta/Test.pm | 2 +- 42 files changed, 258 insertions(+), 88 deletions(-) copy cpan/CPAN-Meta/t/data-test/{META-1_0.yml => preserve-release-status.yml} (94%) rename cpan/Parse-CPAN-Meta/{t/data => corpus}/BadMETA.yml (100%) rename cpan/Parse-CPAN-Meta/{t/data => corpus}/META-VR.json (100%) rename cpan/Parse-CPAN-Meta/{t/data => corpus}/META-VR.yml (100%) rename cpan/Parse-CPAN-Meta/{t/data => corpus}/bareyaml.meta (100%) rename cpan/Parse-CPAN-Meta/{t/data => corpus}/json.meta (100%) rename cpan/Parse-CPAN-Meta/{t/data => corpus}/yaml.meta (100%) diff --git a/MANIFEST b/MANIFEST index 64529d9..7122981 100644 --- a/MANIFEST +++ b/MANIFEST @@ -299,6 +299,7 @@ cpan/CPAN-Meta/t/data-test/META-1_3.yml cpan/CPAN-Meta/t/data-test/META-1_4.yml cpan/CPAN-Meta/t/data-test/META-2.json cpan/CPAN-Meta/t/data-test/META-2.meta +cpan/CPAN-Meta/t/data-test/preserve-release-status.yml cpan/CPAN-Meta/t/data-test/provides-version-missing.json cpan/CPAN-Meta/t/data-test/resources.yml cpan/CPAN-Meta/t/data-test/restricted-2.json @@ -1696,17 +1697,17 @@ cpan/parent/t/parent-classfromfile.t tests for parent.pm cpan/parent/t/parent-pmc.t tests for parent.pm cpan/parent/t/parent-returns-false.t tests for parent.pm cpan/parent/t/parent.t tests for parent.pm +cpan/Parse-CPAN-Meta/corpus/BadMETA.yml +cpan/Parse-CPAN-Meta/corpus/bareyaml.meta +cpan/Parse-CPAN-Meta/corpus/json.meta +cpan/Parse-CPAN-Meta/corpus/META-VR.json +cpan/Parse-CPAN-Meta/corpus/META-VR.yml +cpan/Parse-CPAN-Meta/corpus/yaml.meta cpan/Parse-CPAN-Meta/lib/Parse/CPAN/Meta.pm cpan/Parse-CPAN-Meta/t/02_api.t cpan/Parse-CPAN-Meta/t/03_functions.t cpan/Parse-CPAN-Meta/t/04_export.t cpan/Parse-CPAN-Meta/t/05_errors.t -cpan/Parse-CPAN-Meta/t/data/BadMETA.yml -cpan/Parse-CPAN-Meta/t/data/bareyaml.meta -cpan/Parse-CPAN-Meta/t/data/json.meta -cpan/Parse-CPAN-Meta/t/data/META-VR.json -cpan/Parse-CPAN-Meta/t/data/META-VR.yml -cpan/Parse-CPAN-Meta/t/data/yaml.meta cpan/Parse-CPAN-Meta/t/lib/Parse/CPAN/Meta/Test.pm cpan/perlfaq/lib/perlfaq1.pod General Questions About Perl cpan/perlfaq/lib/perlfaq2.pod Obtaining and Learning about Perl diff --git a/META.json b/META.json index d485354..3dce54f 100644 --- a/META.json +++ b/META.json @@ -4,7 +4,7 @@ "[email protected]" ], "dynamic_config" : 1, - "generated_by" : "CPAN::Meta version 2.150001", + "generated_by" : "CPAN::Meta version 2.150005", "license" : [ "perl_5" ], @@ -125,5 +125,6 @@ "url" : "http://perl5.git.perl.org/" } }, - "version" : "5.023000" + "version" : "5.023000", + "x_serialization_backend" : "JSON::PP version 2.27300" } diff --git a/META.yml b/META.yml index c444698..9dc74ff 100644 --- a/META.yml +++ b/META.yml @@ -4,7 +4,7 @@ author: - [email protected] build_requires: {} dynamic_config: 1 -generated_by: 'CPAN::Meta version 2.150001, CPAN::Meta::Converter version 2.150001' +generated_by: 'CPAN::Meta version 2.150005, CPAN::Meta::Converter version 2.150005' license: perl meta-spec: url: http://module-build.sourceforge.net/META-spec-v1.4.html @@ -113,3 +113,4 @@ resources: license: http://dev.perl.org/licenses/ repository: http://perl5.git.perl.org/ version: '5.023000' +x_serialization_backend: 'CPAN::Meta::YAML version 0.016' diff --git a/Porting/Maintainers.pl b/Porting/Maintainers.pl index 5cc75c5..bccc88a 100755 --- a/Porting/Maintainers.pl +++ b/Porting/Maintainers.pl @@ -281,7 +281,7 @@ use File::Glob qw(:case); # Note: When updating CPAN-Meta the META.* files will need to be regenerated # perl -Icpan/CPAN-Meta/lib Porting/makemeta 'CPAN::Meta' => { - 'DISTRIBUTION' => 'DAGOLDEN/CPAN-Meta-2.150001.tar.gz', + 'DISTRIBUTION' => 'DAGOLDEN/CPAN-Meta-2.150005.tar.gz', 'FILES' => q[cpan/CPAN-Meta], 'EXCLUDED' => [ qw[t/00-report-prereqs.t], @@ -874,7 +874,7 @@ use File::Glob qw(:case); }, 'Parse::CPAN::Meta' => { - 'DISTRIBUTION' => 'DAGOLDEN/Parse-CPAN-Meta-1.4414.tar.gz', + 'DISTRIBUTION' => 'DAGOLDEN/Parse-CPAN-Meta-1.4417.tar.gz', 'FILES' => q[cpan/Parse-CPAN-Meta], 'EXCLUDED' => [ qw[t/00-report-prereqs.t], diff --git a/cpan/CPAN-Meta/lib/CPAN/Meta.pm b/cpan/CPAN-Meta/lib/CPAN/Meta.pm index 2a78691..afbb221 100644 --- a/cpan/CPAN-Meta/lib/CPAN/Meta.pm +++ b/cpan/CPAN-Meta/lib/CPAN/Meta.pm @@ -3,7 +3,7 @@ use strict; use warnings; package CPAN::Meta; -our $VERSION = '2.150001'; +our $VERSION = '2.150005'; #pod =head1 SYNOPSIS #pod @@ -591,6 +591,10 @@ sub as_struct { #pod both cases, the same rules are followed as in the C<save()> method for choosing #pod a serialization backend. #pod +#pod The serialized structure will include a C<x_serialization_backend> entry giving +#pod the package and version used to serialize. Any existing key in the given +#pod C<$meta> object will be clobbered. +#pod #pod =cut sub as_string { @@ -610,10 +614,14 @@ sub as_string { my ($data, $backend); if ( $version ge '2' ) { $backend = Parse::CPAN::Meta->json_backend(); + local $struct->{x_serialization_backend} = sprintf '%s version %s', + $backend, $backend->VERSION; $data = $backend->new->pretty->canonical->encode($struct); } else { $backend = Parse::CPAN::Meta->yaml_backend(); + local $struct->{x_serialization_backend} = sprintf '%s version %s', + $backend, $backend->VERSION; $data = eval { no strict 'refs'; &{"$backend\::Dump"}($struct) }; if ( $@ ) { croak $backend->can('errstr') ? $backend->errstr : $@ @@ -632,8 +640,6 @@ sub TO_JSON { # ABSTRACT: the distribution metadata for a CPAN dist -__END__ - =pod =encoding UTF-8 @@ -644,7 +650,7 @@ CPAN::Meta - the distribution metadata for a CPAN dist =head1 VERSION -version 2.150001 +version 2.150005 =head1 SYNOPSIS @@ -859,6 +865,10 @@ JSON. For C<version> less than 2, the string will be serialized as YAML. In both cases, the same rules are followed as in the C<save()> method for choosing a serialization backend. +The serialized structure will include a C<x_serialization_backend> entry giving +the package and version used to serialize. Any existing key in the given +C<$meta> object will be clobbered. + =head1 STRING DATA The following methods return a single value, which is the value for the @@ -1025,7 +1035,7 @@ Ricardo Signes <[email protected]> =head1 CONTRIBUTORS -=for stopwords Ansgar Burchardt Avar Arnfjord Bjarmason Christopher J. Madsen Chuck Adams Cory G Watson Damyan Ivanov Eric Wilhelm Graham Knop Gregor Hermann Karen Etheridge Kenichi Ishigaki Ken Will ... [140 chars truncated] +=for stopwords Ansgar Burchardt Avar Arnfjord Bjarmason Christopher J. Madsen Chuck Adams Cory G Watson Damyan Ivanov Eric Wilhelm Graham Knop Gregor Hermann Karen Etheridge Kenichi Ishigaki Ken Will ... [167 chars truncated] =over 4 @@ -1111,16 +1121,24 @@ moznion <[email protected]> =item * +Niko Tyni <[email protected]> + +=item * + Olaf Alders <[email protected]> =item * -Olivier Mengue <[email protected]> +Olivier Mengué <[email protected]> =item * Randy Sims <[email protected]> +=item * + +Tomohiro Hosaka <[email protected]> + =back =head1 COPYRIGHT AND LICENSE @@ -1131,3 +1149,8 @@ This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself. =cut + +__END__ + + +# vim: ts=2 sts=2 sw=2 et : diff --git a/cpan/CPAN-Meta/lib/CPAN/Meta/Converter.pm b/cpan/CPAN-Meta/lib/CPAN/Meta/Converter.pm index 8b32b13..03806bc 100644 --- a/cpan/CPAN-Meta/lib/CPAN/Meta/Converter.pm +++ b/cpan/CPAN-Meta/lib/CPAN/Meta/Converter.pm @@ -3,7 +3,7 @@ use strict; use warnings; package CPAN::Meta::Converter; -our $VERSION = '2.150001'; +our $VERSION = '2.150005'; #pod =head1 SYNOPSIS #pod @@ -388,6 +388,8 @@ sub _clean_version { sub _bad_version_hook { my ($v) = @_; + $v =~ s{^\s*}{}; + $v =~ s{\s*$}{}; $v =~ s{[a-z]+$}{}; # strip trailing alphabetics my $vobj = eval { version->new($v) }; return defined($vobj) ? $vobj : version->new(0); # or give up @@ -803,7 +805,7 @@ my %up_convert = ( # CHANGED TO MANDATORY 'dynamic_config' => \&_keep_or_one, # ADDED MANDATORY - 'release_status' => \&_release_status_from_version, + 'release_status' => \&_release_status, # PRIOR OPTIONAL 'keywords' => \&_keep, 'no_index' => \&_no_index_directory, @@ -1497,7 +1499,7 @@ CPAN::Meta::Converter - Convert CPAN distribution metadata structures =head1 VERSION -version 2.150001 +version 2.150005 =head1 SYNOPSIS @@ -1634,4 +1636,4 @@ the same terms as the Perl 5 programming language system itself. __END__ -# vim: ts=2 sts=2 sw=2 et: +# vim: ts=2 sts=2 sw=2 et : diff --git a/cpan/CPAN-Meta/lib/CPAN/Meta/Feature.pm b/cpan/CPAN-Meta/lib/CPAN/Meta/Feature.pm index 4bfbb19..9dac4f4 100644 --- a/cpan/CPAN-Meta/lib/CPAN/Meta/Feature.pm +++ b/cpan/CPAN-Meta/lib/CPAN/Meta/Feature.pm @@ -3,7 +3,7 @@ use strict; use warnings; package CPAN::Meta::Feature; -our $VERSION = '2.150001'; +our $VERSION = '2.150005'; use CPAN::Meta::Prereqs; @@ -67,8 +67,6 @@ sub prereqs { $_[0]{prereqs} } # ABSTRACT: an optional feature provided by a CPAN distribution -__END__ - =pod =encoding UTF-8 @@ -79,7 +77,7 @@ CPAN::Meta::Feature - an optional feature provided by a CPAN distribution =head1 VERSION -version 2.150001 +version 2.150005 =head1 DESCRIPTION @@ -144,3 +142,8 @@ This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself. =cut + +__END__ + + +# vim: ts=2 sts=2 sw=2 et : diff --git a/cpan/CPAN-Meta/lib/CPAN/Meta/History.pm b/cpan/CPAN-Meta/lib/CPAN/Meta/History.pm index 3d7e558..f4cac5e 100644 --- a/cpan/CPAN-Meta/lib/CPAN/Meta/History.pm +++ b/cpan/CPAN-Meta/lib/CPAN/Meta/History.pm @@ -4,7 +4,7 @@ use strict; use warnings; package CPAN::Meta::History; -our $VERSION = '2.150001'; +our $VERSION = '2.150005'; 1; @@ -22,7 +22,7 @@ CPAN::Meta::History - history of CPAN Meta Spec changes =head1 VERSION -version 2.150001 +version 2.150005 =head1 DESCRIPTION diff --git a/cpan/CPAN-Meta/lib/CPAN/Meta/History/Meta_1_0.pod b/cpan/CPAN-Meta/lib/CPAN/Meta/History/Meta_1_0.pod index 1052c3e..cd3bb9c 100644 --- a/cpan/CPAN-Meta/lib/CPAN/Meta/History/Meta_1_0.pod +++ b/cpan/CPAN-Meta/lib/CPAN/Meta/History/Meta_1_0.pod @@ -7,7 +7,8 @@ CPAN::Meta::History::Meta_1_0 - Version 1.0 metadata specification for META.yml =head1 PREFACE This is a historical copy of the version 1.0 specification for F<META.yml> -files, copyright by Ken Williams. +files, copyright by Ken Williams and licensed under the same terms as Perl +itself. Modifications from the original: diff --git a/cpan/CPAN-Meta/lib/CPAN/Meta/History/Meta_1_1.pod b/cpan/CPAN-Meta/lib/CPAN/Meta/History/Meta_1_1.pod index 69f3411..7b4b2f4 100644 --- a/cpan/CPAN-Meta/lib/CPAN/Meta/History/Meta_1_1.pod +++ b/cpan/CPAN-Meta/lib/CPAN/Meta/History/Meta_1_1.pod @@ -7,7 +7,8 @@ CPAN::Meta::History::Meta_1_1 - Version 1.1 metadata specification for META.yml =head1 PREFACE This is a historical copy of the version 1.1 specification for F<META.yml> -files, copyright by Ken Williams. +files, copyright by Ken Williams and licensed under the same terms as Perl +itself. Modifications from the original: diff --git a/cpan/CPAN-Meta/lib/CPAN/Meta/History/Meta_1_2.pod b/cpan/CPAN-Meta/lib/CPAN/Meta/History/Meta_1_2.pod index 69cd5bb..48867b2 100644 --- a/cpan/CPAN-Meta/lib/CPAN/Meta/History/Meta_1_2.pod +++ b/cpan/CPAN-Meta/lib/CPAN/Meta/History/Meta_1_2.pod @@ -7,7 +7,8 @@ CPAN::Meta::History::Meta_1_2 - Version 1.2 metadata specification for META.yml =head1 PREFACE This is a historical copy of the version 1.2 specification for F<META.yml> -files, copyright by Ken Williams. +files, copyright by Ken Williams and licensed under the same terms as Perl +itself. Modifications from the original: diff --git a/cpan/CPAN-Meta/lib/CPAN/Meta/History/Meta_1_3.pod b/cpan/CPAN-Meta/lib/CPAN/Meta/History/Meta_1_3.pod index deff28d..b075adc 100644 --- a/cpan/CPAN-Meta/lib/CPAN/Meta/History/Meta_1_3.pod +++ b/cpan/CPAN-Meta/lib/CPAN/Meta/History/Meta_1_3.pod @@ -7,7 +7,8 @@ CPAN::Meta::History::Meta_1_3 - Version 1.3 metadata specification for META.yml =head1 PREFACE This is a historical copy of the version 1.3 specification for F<META.yml> -files, copyright by Ken Williams. +files, copyright by Ken Williams and licensed under the same terms as Perl +itself. Modifications from the original: diff --git a/cpan/CPAN-Meta/lib/CPAN/Meta/History/Meta_1_4.pod b/cpan/CPAN-Meta/lib/CPAN/Meta/History/Meta_1_4.pod index a84fb3d..471296c 100644 --- a/cpan/CPAN-Meta/lib/CPAN/Meta/History/Meta_1_4.pod +++ b/cpan/CPAN-Meta/lib/CPAN/Meta/History/Meta_1_4.pod @@ -7,7 +7,8 @@ CPAN::Meta::History::Meta_1_4 - Version 1.4 metadata specification for META.yml =head1 PREFACE This is a historical copy of the version 1.4 specification for F<META.yml> -files, copyright by Ken Williams. +files, copyright by Ken Williams and licensed under the same terms as Perl +itself. Modifications from the original: diff --git a/cpan/CPAN-Meta/lib/CPAN/Meta/Merge.pm b/cpan/CPAN-Meta/lib/CPAN/Meta/Merge.pm index f4c1286..05a18ea 100644 --- a/cpan/CPAN-Meta/lib/CPAN/Meta/Merge.pm +++ b/cpan/CPAN-Meta/lib/CPAN/Meta/Merge.pm @@ -3,15 +3,24 @@ use warnings; package CPAN::Meta::Merge; -our $VERSION = '2.150001'; +our $VERSION = '2.150005'; use Carp qw/croak/; use Scalar::Util qw/blessed/; use CPAN::Meta::Converter 2.141170; +sub _is_identical { + my ($left, $right) = @_; + return + (not defined $left and not defined $right) + # if either of these are references, we compare the serialized value + || (defined $left and defined $right and $left eq $right); +} + sub _identical { my ($left, $right, $path) = @_; - croak sprintf "Can't merge attribute %s: '%s' does not equal '%s'", join('.', @{$path}), $left, $right unless $left eq $right; + croak sprintf "Can't merge attribute %s: '%s' does not equal '%s'", join('.', @{$path}), $left, $right + unless _is_identical($left, $right); return $left; } @@ -50,6 +59,13 @@ sub _uniq_map { if (not exists $left->{$key}) { $left->{$key} = $right->{$key}; } + # identical strings or references are merged identically + elsif (_is_identical($left->{$key}, $right->{$key})) { + 1; # do nothing - keep left + } + elsif (ref $left->{$key} eq 'HASH' and ref $right->{$key} eq 'HASH') { + $left->{$key} = _uniq_map($left->{$key}, $right->{$key}, [ @{$path}, $key ]); + } else { croak 'Duplication of element ' . join '.', @{$path}, $key; } @@ -219,6 +235,9 @@ sub merge { # ABSTRACT: Merging CPAN Meta fragments + +# vim: ts=2 sts=2 sw=2 et : + __END__ =pod @@ -231,7 +250,7 @@ CPAN::Meta::Merge - Merging CPAN Meta fragments =head1 VERSION -version 2.150001 +version 2.150005 =head1 SYNOPSIS diff --git a/cpan/CPAN-Meta/lib/CPAN/Meta/Prereqs.pm b/cpan/CPAN-Meta/lib/CPAN/Meta/Prereqs.pm index 7503510..8a13eb1 100644 --- a/cpan/CPAN-Meta/lib/CPAN/Meta/Prereqs.pm +++ b/cpan/CPAN-Meta/lib/CPAN/Meta/Prereqs.pm @@ -3,7 +3,7 @@ use strict; use warnings; package CPAN::Meta::Prereqs; -our $VERSION = '2.150001'; +our $VERSION = '2.150005'; #pod =head1 DESCRIPTION #pod @@ -163,7 +163,7 @@ sub with_merged_prereqs { #pod #pod my $new_reqs = $prereqs->merged_requirements( \@phases, \@types ); #pod my $new_reqs = $prereqs->merged_requirements( \@phases ); -#pod my $new_reqs = $preerqs->merged_requirements(); +#pod my $new_reqs = $prereqs->merged_requirements(); #pod #pod This method joins together all requirements across a number of phases #pod and types into a new L<CPAN::Meta::Requirements> object. If arguments @@ -275,8 +275,6 @@ sub clone { # ABSTRACT: a set of distribution prerequisites by phase and type -__END__ - =pod =encoding UTF-8 @@ -287,7 +285,7 @@ CPAN::Meta::Prereqs - a set of distribution prerequisites by phase and type =head1 VERSION -version 2.150001 +version 2.150005 =head1 DESCRIPTION @@ -353,7 +351,7 @@ will not alter them. my $new_reqs = $prereqs->merged_requirements( \@phases, \@types ); my $new_reqs = $prereqs->merged_requirements( \@phases ); - my $new_reqs = $preerqs->merged_requirements(); + my $new_reqs = $prereqs->merged_requirements(); This method joins together all requirements across a number of phases and types into a new L<CPAN::Meta::Requirements> object. If arguments @@ -417,3 +415,8 @@ This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself. =cut + +__END__ + + +# vim: ts=2 sts=2 sw=2 et : diff --git a/cpan/CPAN-Meta/lib/CPAN/Meta/Spec.pm b/cpan/CPAN-Meta/lib/CPAN/Meta/Spec.pm index ec68f17..9056940 100644 --- a/cpan/CPAN-Meta/lib/CPAN/Meta/Spec.pm +++ b/cpan/CPAN-Meta/lib/CPAN/Meta/Spec.pm @@ -8,7 +8,7 @@ use strict; use warnings; package CPAN::Meta::Spec; -our $VERSION = '2.150001'; +our $VERSION = '2.150005'; 1; @@ -29,7 +29,7 @@ CPAN::Meta::Spec - specification for CPAN distribution metadata =head1 VERSION -version 2.150001 +version 2.150005 =head1 SYNOPSIS diff --git a/cpan/CPAN-Meta/lib/CPAN/Meta/Validator.pm b/cpan/CPAN-Meta/lib/CPAN/Meta/Validator.pm index cc0409e..eddaa10 100644 --- a/cpan/CPAN-Meta/lib/CPAN/Meta/Validator.pm +++ b/cpan/CPAN-Meta/lib/CPAN/Meta/Validator.pm @@ -3,7 +3,7 @@ use strict; use warnings; package CPAN::Meta::Validator; -our $VERSION = '2.150001'; +our $VERSION = '2.150005'; #pod =head1 SYNOPSIS #pod @@ -986,8 +986,6 @@ sub _error { # ABSTRACT: validate CPAN distribution metadata structures -__END__ - =pod =encoding UTF-8 @@ -998,7 +996,7 @@ CPAN::Meta::Validator - validate CPAN distribution metadata structures =head1 VERSION -version 2.150001 +version 2.150005 =head1 SYNOPSIS @@ -1205,3 +1203,8 @@ This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself. =cut + +__END__ + + +# vim: ts=2 sts=2 sw=2 et : diff --git a/cpan/CPAN-Meta/t/converter-bad.t b/cpan/CPAN-Meta/t/converter-bad.t index f9e7d59..7cce934 100644 --- a/cpan/CPAN-Meta/t/converter-bad.t +++ b/cpan/CPAN-Meta/t/converter-bad.t @@ -73,4 +73,4 @@ for my $f ( reverse sort @files ) { } done_testing; - +# vim: ts=2 sts=2 sw=2 et : diff --git a/cpan/CPAN-Meta/t/converter-fail.t b/cpan/CPAN-Meta/t/converter-fail.t index b9cfedd..dfda1ae 100644 --- a/cpan/CPAN-Meta/t/converter-fail.t +++ b/cpan/CPAN-Meta/t/converter-fail.t @@ -38,4 +38,4 @@ for my $f ( reverse sort @files ) { } done_testing; - +# vim: ts=2 sts=2 sw=2 et : diff --git a/cpan/CPAN-Meta/t/converter-fragments.t b/cpan/CPAN-Meta/t/converter-fragments.t index 18dad14..a9b78de 100644 --- a/cpan/CPAN-Meta/t/converter-fragments.t +++ b/cpan/CPAN-Meta/t/converter-fragments.t @@ -151,8 +151,8 @@ for my $c (@cases) { my $got = $cmc->upgrade_fragment; my $exp = $c->{expect}; is_deeply( $got, $exp, $c->{label} ) - or diag "GOT:\n" . explain($got) . "\nEXPECTED:\n" . explain($exp); + or diag "GOT:\n", explain($got), "EXPECTED:\n", explain($exp); } done_testing; -# vim: ts=4 sts=4 sw=4 et: +# vim: ts=8 sts=4 sw=4 et : diff --git a/cpan/CPAN-Meta/t/converter.t b/cpan/CPAN-Meta/t/converter.t index 10c6a48..87cdbd6 100644 --- a/cpan/CPAN-Meta/t/converter.t +++ b/cpan/CPAN-Meta/t/converter.t @@ -34,6 +34,7 @@ my @files = sort grep { /^\w/ } $data_dir->read; #use Data::Dumper; for my $f ( reverse sort @files ) { + note ''; my $path = File::Spec->catfile('t','data-test',$f); my $original = Parse::CPAN::Meta->load_file( $path ); ok( $original, "loaded $f" ); @@ -294,4 +295,15 @@ sub _normalize_reqs { ); } +# specific test for preserving release_status on upconversion +{ + my $path = File::Spec->catfile('t','data-test','preserve-release-status.yml'); + my $original = Parse::CPAN::Meta->load_file( $path ); + ok( $original, "loaded META-2.json" ); + my $cmc = CPAN::Meta::Converter->new( $original ); + my $cleaned_up = $cmc->convert( version => "2" ); + is( $cleaned_up->{release_status}, 'unstable', "release_status preserved" ); +} + done_testing; +# vim: ts=2 sts=2 sw=2 et: diff --git a/cpan/CPAN-Meta/t/data-test/META-1_0.yml b/cpan/CPAN-Meta/t/data-test/preserve-release-status.yml similarity index 94% copy from cpan/CPAN-Meta/t/data-test/META-1_0.yml copy to cpan/CPAN-Meta/t/data-test/preserve-release-status.yml index e72d9ed..9468b86 100644 --- a/cpan/CPAN-Meta/t/data-test/META-1_0.yml +++ b/cpan/CPAN-Meta/t/data-test/preserve-release-status.yml @@ -10,3 +10,4 @@ requires: Template: 2.15 distribution_type: module generated_by: ExtUtils::MakeMaker version 6.17 +release_status: unstable diff --git a/cpan/CPAN-Meta/t/load-bad.t b/cpan/CPAN-Meta/t/load-bad.t index c3df3ea..7cae168 100644 --- a/cpan/CPAN-Meta/t/load-bad.t +++ b/cpan/CPAN-Meta/t/load-bad.t @@ -15,13 +15,11 @@ my @files = sort grep { /^\w/ } $data_dir->read; for my $f ( sort @files ) { my $path = File::Spec->catfile('t','data-fixable',$f); - my $meta = eval { CPAN::Meta->load_file( $path ) }; - ok( defined $meta, "load_file('$f')" ) or diag $@; + ok( eval { CPAN::Meta->load_file( $path ) }, "load_file('$f')" ) or diag $@; my $string = _slurp($path); my $method = $path =~ /\.json/ ? "load_json_string" : "load_yaml_string"; - my $meta2 = eval { CPAN::Meta->$method( $string, { fix_errors => 1 } ) }; - ok( defined $meta2, "$method(slurp('$f'))" ) or diag $@; + ok( eval { CPAN::Meta->$method( $string, { fix_errors => 1 } ) }, "$method(slurp('$f'))" ) or diag $@; } done_testing; - +# vim: ts=2 sts=2 sw=2 et: diff --git a/cpan/CPAN-Meta/t/merge.t b/cpan/CPAN-Meta/t/merge.t index f58e8c6..39e8124 100644 --- a/cpan/CPAN-Meta/t/merge.t +++ b/cpan/CPAN-Meta/t/merge.t @@ -1,5 +1,3 @@ -#! perl - use strict; use warnings; @@ -14,6 +12,7 @@ my %base = ( license => [ 'perl_5' ], resources => { license => [ 'http://dev.perl.org/licenses/' ], + bugtracker => { web => 'https://rt.cpan.org/Dist/Display.html?Foo-Bar' }, }, prereqs => { runtime => { @@ -70,6 +69,7 @@ my %first_expected = ( license => [ 'perl_5', 'bsd' ], resources => { license => [ 'http://dev.perl.org/licenses/', 'http://opensource.org/licenses/bsd-license.php' ], + bugtracker => { web => 'https://rt.cpan.org/Dist/Display.html?Foo-Bar' }, }, prereqs => { runtime => { @@ -100,6 +100,34 @@ my %first_expected = ( version => 2, }, ); +my %provides_merge_expected = ( + abstract => 'This is a test', + author => ['A.U. Thor'], + generated_by => 'Myself', + license => [ 'perl_5' ], + resources => { + license => [ 'http://dev.perl.org/licenses/' ], + bugtracker => { web => 'https://rt.cpan.org/Dist/Display.html?Foo-Bar' }, + }, + prereqs => { + runtime => { + requires => { + Foo => '0', + }, + }, + }, + dynamic_config => 0, + provides => { + Baz => { + file => 'lib/Baz.pm', + version => '0.001', # same as %base, but for this extra key + }, + }, + 'meta-spec' => { + url => "http://search.cpan.org/perldoc?CPAN::Meta::Spec", + version => 2, + }, +); my $merger = CPAN::Meta::Merge->new(default_version => '2'); @@ -108,13 +136,34 @@ my $first_result = $merger->merge(\%base, \%first); is_deeply($first_result, \%first_expected, 'First result is as expected'); is_deeply($merger->merge(\%base, { abstract => 'This is a test' }), \%base, 'Can merge in identical abstract'); -my $failure = eval { $merger->merge(\%base, { abstract => 'And now for something else' }) }; -is($failure, undef, 'Trying to merge different author gives an exception'); +is( + eval { $merger->merge(\%base, { abstract => 'And now for something else' }) }, + undef, + 'Trying to merge different author gives an exception', +); like $@, qr/^Can't merge attribute abstract/, 'Exception looks right'; -my $failure2 = eval { $merger->merge(\%base, { provides => { Baz => { file => 'Baz.pm' } } }) }; -is($failure2, undef, 'Trying to merge different author gives an exception'); -like $@, qr/^Duplication of element provides\.Baz /, 'Exception looks right'; +is( + eval { $merger->merge(\%base, { resources => { bugtracker => { web => 'http://foo.com' } } } ) }, + undef, + 'Trying to merge a different bugtracker URL gives an exception', +); +like $@, qr/^Duplication of element resources\.bugtracker\.web /, 'Exception looks right'; + +is( + eval { $merger->merge(\%base, { provides => { Baz => { file => 'Baz.pm' } } }) }, + undef, + 'Trying to merge different provides.$module.file gives an exception', +); +like $@, qr/^Duplication of element provides\.Baz\.file /, 'Exception looks right'; + +my $provides_result = $merger->merge(\%base, { provides => { Baz => { file => 'lib/Baz.pm', version => '0.001' } } }); +is_deeply( + $provides_result, + \%provides_merge_expected, + 'Trying to merge a new key for provides.$module is permitted; identical values are preserved', +); + # issue 67 @base{qw/name version release_status/} = qw/Foo-Bar 0.01 testing/; @@ -122,3 +171,4 @@ my $base_obj = CPAN::Meta->create(\%base); ok my $first_result_obj = $merger->merge($base_obj, \%first), 'merging CPAN::Meta objects succeeds'; done_testing(); +# vim: ts=4 sts=4 sw=4 tw=78 noet : diff --git a/cpan/CPAN-Meta/t/meta-obj.t b/cpan/CPAN-Meta/t/meta-obj.t index bb39c46..fa3c703 100644 --- a/cpan/CPAN-Meta/t/meta-obj.t +++ b/cpan/CPAN-Meta/t/meta-obj.t @@ -240,3 +240,4 @@ $chk_feature->($features[0]); $chk_feature->( $meta->feature('domination') ); done_testing; +# vim: ts=2 sts=2 sw=2 et : diff --git a/cpan/CPAN-Meta/t/no-index.t b/cpan/CPAN-Meta/t/no-index.t index 456633a..554e921 100644 --- a/cpan/CPAN-Meta/t/no-index.t +++ b/cpan/CPAN-Meta/t/no-index.t @@ -86,3 +86,4 @@ my %distmeta = ( } done_testing; +# vim: ts=2 sts=2 sw=2 et : diff --git a/cpan/CPAN-Meta/t/optional_feature-merge.t b/cpan/CPAN-Meta/t/optional_feature-merge.t index 15aa621..76ea964 100644 --- a/cpan/CPAN-Meta/t/optional_feature-merge.t +++ b/cpan/CPAN-Meta/t/optional_feature-merge.t @@ -1,6 +1,5 @@ use strict; use warnings; -# vim: set ts=4 sw=4 noet nolist : use Test::More; use CPAN::Meta; @@ -92,8 +91,7 @@ my $fragment3 = { } }; -my $result = eval { $merger->merge($meta1, $fragment3) }; -is($result, undef, 'Trying to merge optional_features with same feature name and different descriptions gives an exception'); +is( eval { $merger->merge($meta1, $fragment3) }, undef, 'Trying to merge optional_features with same feature name and different descriptions gives an exception'); like $@, qr/^Cannot merge two optional_features named 'FeatureName' with different 'description' values/, 'Exception looks right'; my $fragment4 = { @@ -106,8 +104,7 @@ my $fragment4 = { } }; -$result = eval { $merger->merge($meta1, $fragment4) }; -is($result, undef, 'Trying to merge optional_features with same feature name and differences in other keys gives an exception'); +is( eval { $merger->merge($meta1, $fragment4) }, undef, 'Trying to merge optional_features with same feature name and differences in other keys gives an exception'); like $@, qr/^Cannot merge two optional_features named 'FeatureName' with different 'x_default' values/, 'Exception looks right'; my $fragment5 = { @@ -140,3 +137,4 @@ is_deeply( ); done_testing; +# vim: ts=4 sts=4 sw=4 noet : diff --git a/cpan/CPAN-Meta/t/prereqs-finalize.t b/cpan/CPAN-Meta/t/prereqs-finalize.t index e974f99..ac4aea8 100644 --- a/cpan/CPAN-Meta/t/prereqs-finalize.t +++ b/cpan/CPAN-Meta/t/prereqs-finalize.t @@ -9,9 +9,7 @@ delete $ENV{$_} for qw/PERL_JSON_BACKEND PERL_YAML_BACKEND/; # use defaults sub dies_ok (&@) { my ($code, $qr, $comment) = @_; - my $lived = eval { $code->(); 1 }; - - if ($lived) { + if (eval { $code->(); 1 }) { fail("$comment: did not die"); } else { like($@, $qr, $comment); @@ -91,3 +89,4 @@ $clone->requirements_for(qw(develop suggests))->add_minimum(Foo => 1); pass('...and we can add stuff to it'); done_testing; +# vim: ts=2 sts=2 sw=2 et : diff --git a/cpan/CPAN-Meta/t/prereqs-merge.t b/cpan/CPAN-Meta/t/prereqs-merge.t index 37bca7d..e15c9f2 100644 --- a/cpan/CPAN-Meta/t/prereqs-merge.t +++ b/cpan/CPAN-Meta/t/prereqs-merge.t @@ -104,3 +104,4 @@ is_deeply( ); done_testing; +# vim: ts=2 sts=2 sw=2 et : diff --git a/cpan/CPAN-Meta/t/prereqs.t b/cpan/CPAN-Meta/t/prereqs.t index ad21caa..b4a3c95 100644 --- a/cpan/CPAN-Meta/t/prereqs.t +++ b/cpan/CPAN-Meta/t/prereqs.t @@ -161,4 +161,4 @@ is_deeply($prereq->as_string_hash, $prereq_struct, "round-trip okay"); } done_testing; - +# vim: ts=2 sts=2 sw=2 et : diff --git a/cpan/CPAN-Meta/t/repository.t b/cpan/CPAN-Meta/t/repository.t index 8bb1da7c..0cd2c24 100644 --- a/cpan/CPAN-Meta/t/repository.t +++ b/cpan/CPAN-Meta/t/repository.t @@ -225,3 +225,4 @@ delete $ENV{$_} for qw/PERL_JSON_BACKEND PERL_YAML_BACKEND/; # use defaults ); } done_testing; +# vim: ts=2 sts=2 sw=2 et : diff --git a/cpan/CPAN-Meta/t/save-load.t b/cpan/CPAN-Meta/t/save-load.t index 5399305..8093344 100644 --- a/cpan/CPAN-Meta/t/save-load.t +++ b/cpan/CPAN-Meta/t/save-load.t @@ -83,6 +83,16 @@ ok( -f $metafile, "save meta to file" ); ok( my $loaded = Parse::CPAN::Meta->load_file($metafile), 'load saved file' ); is($loaded->{name}, 'Module-Build', 'name correct'); +like( + $loaded->{x_serialization_backend}, + qr/\AJSON::PP version [0-9]/, + "x_serialization_backend", +); + +ok( + ! exists $meta->{x_serialization_backend}, + "we didn't leak x_serialization_backend up into the saved struct", +); ok( $loaded = Parse::CPAN::Meta->load_file('t/data-test/META-1_4.yml'), 'load META-1.4' ); is($loaded->{name}, 'Module-Build', 'name correct'); @@ -98,6 +108,17 @@ ok( $loaded = Parse::CPAN::Meta->load_file($metayml), 'load saved file' ); is( $loaded->{name}, 'Module-Build', 'name correct'); is( $loaded->{requires}{perl}, "5.006", 'prereq correct' ); +like( + $loaded->{x_serialization_backend}, + qr/\ACPAN::Meta::YAML version [0-9]/, + "x_serialization_backend", +); + +ok( + ! exists $meta->{x_serialization_backend}, + "we didn't leak x_serialization_backend up into the saved struct", +); + # file without suffix ok( $loaded = CPAN::Meta->load_file('t/data-test/META-2.meta'), 'load_file META-2.meta' ); @@ -106,3 +127,4 @@ my $string = do { open my $fh, '<', 't/data-test/META-2.meta'; local $/; <$fh> } ok( $loaded = CPAN::Meta->load_string($string), 'load META-2.meta from string' ); done_testing; +# vim: ts=2 sts=2 sw=2 et : diff --git a/cpan/CPAN-Meta/t/validator.t b/cpan/CPAN-Meta/t/validator.t index 4fce192..0145073 100644 --- a/cpan/CPAN-Meta/t/validator.t +++ b/cpan/CPAN-Meta/t/validator.t @@ -36,8 +36,9 @@ delete $ENV{$_} for qw/PERL_JSON_BACKEND PERL_YAML_BACKEND/; # use defaults my $meta = Parse::CPAN::Meta->load_file( File::Spec->catfile($f) ); my $cmv = CPAN::Meta::Validator->new({%$meta}); ok( ! $cmv->is_valid, "$f shouldn't validate" ); + note 'validation error: ', $_ foreach $cmv->errors; } } done_testing; - +# vim: ts=2 sts=2 sw=2 et : diff --git a/cpan/Parse-CPAN-Meta/t/data/BadMETA.yml b/cpan/Parse-CPAN-Meta/corpus/BadMETA.yml similarity index 100% rename from cpan/Parse-CPAN-Meta/t/data/BadMETA.yml rename to cpan/Parse-CPAN-Meta/corpus/BadMETA.yml diff --git a/cpan/Parse-CPAN-Meta/t/data/META-VR.json b/cpan/Parse-CPAN-Meta/corpus/META-VR.json similarity index 100% rename from cpan/Parse-CPAN-Meta/t/data/META-VR.json rename to cpan/Parse-CPAN-Meta/corpus/META-VR.json diff --git a/cpan/Parse-CPAN-Meta/t/data/META-VR.yml b/cpan/Parse-CPAN-Meta/corpus/META-VR.yml similarity index 100% rename from cpan/Parse-CPAN-Meta/t/data/META-VR.yml rename to cpan/Parse-CPAN-Meta/corpus/META-VR.yml diff --git a/cpan/Parse-CPAN-Meta/t/data/bareyaml.meta b/cpan/Parse-CPAN-Meta/corpus/bareyaml.meta similarity index 100% rename from cpan/Parse-CPAN-Meta/t/data/bareyaml.meta rename to cpan/Parse-CPAN-Meta/corpus/bareyaml.meta diff --git a/cpan/Parse-CPAN-Meta/t/data/json.meta b/cpan/Parse-CPAN-Meta/corpus/json.meta similarity index 100% rename from cpan/Parse-CPAN-Meta/t/data/json.meta rename to cpan/Parse-CPAN-Meta/corpus/json.meta diff --git a/cpan/Parse-CPAN-Meta/t/data/yaml.meta b/cpan/Parse-CPAN-Meta/corpus/yaml.meta similarity index 100% rename from cpan/Parse-CPAN-Meta/t/data/yaml.meta rename to cpan/Parse-CPAN-Meta/corpus/yaml.meta diff --git a/cpan/Parse-CPAN-Meta/lib/Parse/CPAN/Meta.pm b/cpan/Parse-CPAN-Meta/lib/Parse/CPAN/Meta.pm index 7888d1c..77a0764 100644 --- a/cpan/Parse-CPAN-Meta/lib/Parse/CPAN/Meta.pm +++ b/cpan/Parse-CPAN-Meta/lib/Parse/CPAN/Meta.pm @@ -2,7 +2,8 @@ use 5.008001; use strict; package Parse::CPAN::Meta; # ABSTRACT: Parse META.yml and META.json CPAN metadata files -our $VERSION = '1.4414'; # VERSION + +our $VERSION = '1.4417'; use Exporter; use Carp 'croak'; @@ -110,12 +111,12 @@ sub _can_load { # Kept for backwards compatibility only # Create an object from a file -sub LoadFile ($) { +sub LoadFile ($) { ## no critic return Load(_slurp(shift)); } # Parse a document from a string. -sub Load ($) { +sub Load ($) { ## no critic require CPAN::Meta::YAML; my $object = eval { CPAN::Meta::YAML::Load(shift) }; croak $@ if $@; @@ -136,7 +137,7 @@ Parse::CPAN::Meta - Parse META.yml and META.json CPAN metadata files =head1 VERSION -version 1.4414 +version 1.4417 =head1 SYNOPSIS @@ -283,7 +284,7 @@ will be thrown. =head2 Bugs / Feature Requests Please report any bugs or feature requests through the issue tracker -at L<http://rt.cpan.org/Public/Dist/Display.html?Name=Parse-CPAN-Meta>. +at L<https://github.com/Perl-Toolchain-Gang/Parse-CPAN-Meta/issues>. You will be notified automatically of any progress on your issue. =head2 Source Code @@ -311,6 +312,8 @@ David Golden <[email protected]> =head1 CONTRIBUTORS +=for stopwords Graham Knop Joshua ben Jore Karen Etheridge Neil Bowers Ricardo Signes Steffen Mueller + =over 4 =item * @@ -323,6 +326,10 @@ Joshua ben Jore <[email protected]> =item * +Karen Etheridge <[email protected]> + +=item * + Neil Bowers <[email protected]> =item * @@ -337,7 +344,7 @@ Steffen Mueller <[email protected]> =head1 COPYRIGHT AND LICENSE -This software is copyright (c) 2014 by Adam Kennedy and Contributors. +This software is copyright (c) 2015 by Adam Kennedy and Contributors. This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself. diff --git a/cpan/Parse-CPAN-Meta/t/02_api.t b/cpan/Parse-CPAN-Meta/t/02_api.t index 72bfccf..5f94bc7 100644 --- a/cpan/Parse-CPAN-Meta/t/02_api.t +++ b/cpan/Parse-CPAN-Meta/t/02_api.t @@ -54,12 +54,13 @@ my $meta_yaml = catfile( test_data_directory(), 'META-VR.yml' ); my $yaml_meta = catfile( test_data_directory(), 'yaml.meta' ); my $json_meta = catfile( test_data_directory(), 'json.meta' ); my $bare_yaml_meta = catfile( test_data_directory(), 'bareyaml.meta' ); +my $bad_yaml_meta = catfile( test_data_directory(), 'BadMETA.yml' ); ### YAML tests { local $ENV{PERL_YAML_BACKEND}; # ensure we get CPAN::META::YAML - is(Parse::CPAN::Meta->yaml_backend(), 'CPAN::Meta::YAML', 'yaml_backend()'); + is(Parse::CPAN::Meta->yaml_backend(), 'CPAN::Meta::YAML', 'yaml_backend(): CPAN::Meta::YAML'); my $from_yaml = Parse::CPAN::Meta->load_file( $meta_yaml ); is_deeply($from_yaml, $want, "load from YAML file results in expected data"); } @@ -67,7 +68,8 @@ my $bare_yaml_meta = catfile( test_data_directory(), 'bareyaml.meta' ); { local $ENV{PERL_YAML_BACKEND}; # ensure we get CPAN::META::YAML - is(Parse::CPAN::Meta->yaml_backend(), 'CPAN::Meta::YAML', 'yaml_backend()'); + note ''; + is(Parse::CPAN::Meta->yaml_backend(), 'CPAN::Meta::YAML', 'yaml_backend(): CPAN::Meta::YAML'); my $from_yaml = Parse::CPAN::Meta->load_file( $yaml_meta ); is_deeply($from_yaml, $want, "load from YAML .meta file results in expected data"); } @@ -75,7 +77,8 @@ my $bare_yaml_meta = catfile( test_data_directory(), 'bareyaml.meta' ); { local $ENV{PERL_YAML_BACKEND}; # ensure we get CPAN::META::YAML - is(Parse::CPAN::Meta->yaml_backend(), 'CPAN::Meta::YAML', 'yaml_backend()'); + note ''; + is(Parse::CPAN::Meta->yaml_backend(), 'CPAN::Meta::YAML', 'yaml_backend(): CPAN::Meta::YAML'); my $from_yaml = Parse::CPAN::Meta->load_file( $bare_yaml_meta ); is_deeply($from_yaml, $want, "load from bare YAML .meta file results in expected data"); } @@ -83,6 +86,8 @@ my $bare_yaml_meta = catfile( test_data_directory(), 'bareyaml.meta' ); { local $ENV{PERL_YAML_BACKEND}; # ensure we get CPAN::META::YAML + note ''; + is(Parse::CPAN::Meta->yaml_backend(), 'CPAN::Meta::YAML', 'yaml_backend(): CPAN::Meta::YAML'); my $yaml = load_ok( 'META-VR.yml', $meta_yaml, 100); my $from_yaml = Parse::CPAN::Meta->load_yaml_string( $yaml ); is_deeply($from_yaml, $want, "load from YAML str results in expected data"); @@ -91,17 +96,20 @@ my $bare_yaml_meta = catfile( test_data_directory(), 'bareyaml.meta' ); { local $ENV{PERL_YAML_BACKEND}; # ensure we get CPAN::META::YAML - my @yaml = Parse::CPAN::Meta::LoadFile( 't/data/BadMETA.yml' ); + note ''; + is(Parse::CPAN::Meta->yaml_backend(), 'CPAN::Meta::YAML', 'yaml_backend(): CPAN::Meta::YAML'); + my @yaml = Parse::CPAN::Meta::LoadFile( $bad_yaml_meta ); is($yaml[0]{author}[0], 'Olivier Mengu\xE9', "Bad UTF-8 is replaced"); } SKIP: { + note ''; skip "YAML module not installed", 2 unless eval "require YAML; 1"; local $ENV{PERL_YAML_BACKEND} = 'YAML'; - is(Parse::CPAN::Meta->yaml_backend(), 'YAML', 'yaml_backend()'); + is(Parse::CPAN::Meta->yaml_backend(), 'YAML', 'yaml_backend(): YAML'); my $yaml = load_ok( 'META-VR.yml', $meta_yaml, 100); my $from_yaml = Parse::CPAN::Meta->load_yaml_string( $yaml ); is_deeply($from_yaml, $want, "load_yaml_string using PERL_YAML_BACKEND"); @@ -112,7 +120,8 @@ SKIP: { # JSON tests with JSON::PP local $ENV{PERL_JSON_BACKEND}; # ensure we get JSON::PP - is(Parse::CPAN::Meta->json_backend(), 'JSON::PP', 'json_backend()'); + note ''; + is(Parse::CPAN::Meta->json_backend(), 'JSON::PP', 'json_backend(): JSON::PP'); my $from_json = Parse::CPAN::Meta->load_file( $meta_json ); is_deeply($from_json, $want, "load from JSON file results in expected data"); } @@ -121,7 +130,8 @@ SKIP: { # JSON tests with JSON::PP local $ENV{PERL_JSON_BACKEND}; # ensure we get JSON::PP - is(Parse::CPAN::Meta->json_backend(), 'JSON::PP', 'json_backend()'); + note ''; + is(Parse::CPAN::Meta->json_backend(), 'JSON::PP', 'json_backend(): JSON::PP'); my $from_json = Parse::CPAN::Meta->load_file( $json_meta ); is_deeply($from_json, $want, "load from JSON .meta file results in expected data"); } @@ -130,6 +140,8 @@ SKIP: { # JSON tests with JSON::PP local $ENV{PERL_JSON_BACKEND}; # ensure we get JSON::PP + note ''; + is(Parse::CPAN::Meta->json_backend(), 'JSON::PP', 'json_backend(): JSON::PP'); my $json = load_ok( 'META-VR.json', $meta_json, 100); my $from_json = Parse::CPAN::Meta->load_json_string( $json ); is_deeply($from_json, $want, "load from JSON str results in expected data"); @@ -139,6 +151,8 @@ SKIP: { # JSON tests with JSON::PP, take 2 local $ENV{PERL_JSON_BACKEND} = 0; # request JSON::PP + note ''; + is(Parse::CPAN::Meta->json_backend(), 'JSON::PP', 'json_backend(): JSON::PP'); my $json = load_ok( 'META-VR.json', $meta_json, 100); my $from_json = Parse::CPAN::Meta->load_json_string( $json ); is_deeply($from_json, $want, "load_json_string with PERL_JSON_BACKEND = 0"); @@ -148,17 +162,20 @@ SKIP: { # JSON tests with JSON::PP, take 3 local $ENV{PERL_JSON_BACKEND} = 'JSON::PP'; # request JSON::PP + note ''; + is(Parse::CPAN::Meta->json_backend(), 'JSON::PP', 'json_backend(): JSON::PP'); my $json = load_ok( 'META-VR.json', $meta_json, 100); my $from_json = Parse::CPAN::Meta->load_json_string( $json ); is_deeply($from_json, $want, "load_json_string with PERL_JSON_BACKEND = 'JSON::PP'"); } SKIP: { + note ''; skip "JSON module version 2.5 not installed", 2 unless eval "require JSON; JSON->VERSION(2.5); 1"; local $ENV{PERL_JSON_BACKEND} = 1; - is(Parse::CPAN::Meta->json_backend(), 'JSON', 'json_backend()'); + is(Parse::CPAN::Meta->json_backend(), 'JSON', 'json_backend(): JSON'); my $json = load_ok( 'META-VR.json', $meta_json, 100); my $from_json = Parse::CPAN::Meta->load_json_string( $json ); is_deeply($from_json, $want, "load_json_string with PERL_JSON_BACKEND = 1"); diff --git a/cpan/Parse-CPAN-Meta/t/lib/Parse/CPAN/Meta/Test.pm b/cpan/Parse-CPAN-Meta/t/lib/Parse/CPAN/Meta/Test.pm index 46024db..b6bb4f7 100644 --- a/cpan/Parse-CPAN-Meta/t/lib/Parse/CPAN/Meta/Test.pm +++ b/cpan/Parse-CPAN-Meta/t/lib/Parse/CPAN/Meta/Test.pm @@ -16,7 +16,7 @@ BEGIN { } sub test_data_directory { - return( File::Spec->catdir(qw(t data)) ); + return( "corpus" ); } # 22 tests per call to yaml_ok -- Perl5 Master Repository
