From 9ca3563e9cb040ef56cc8c35de581e0d3cefaf12 Mon Sep 17 00:00:00 2001 From: Graham Knop Date: Thu, 4 Feb 2021 08:16:36 +0100 Subject: [PATCH 001/597] add plurals of example directories --- lib/MetaCPAN/Query/File.pm | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lib/MetaCPAN/Query/File.pm b/lib/MetaCPAN/Query/File.pm index 024315cd4..cc49aa121 100644 --- a/lib/MetaCPAN/Query/File.pm +++ b/lib/MetaCPAN/Query/File.pm @@ -155,8 +155,11 @@ my %prefix_files = ( example => [ qw( example + examples Example + Examples sample + samples ) ], ); From fea821ad0495f9413ad6efd02d301a80b6f35171 Mon Sep 17 00:00:00 2001 From: Olaf Alders Date: Thu, 4 Feb 2021 09:38:11 -0500 Subject: [PATCH 002/597] Tidy test imports --- t/00_setup.t | 5 +- t/01_darkpan.t | 2 +- t/api/controller/cover.t | 8 +-- t/api/controller/search/first.t | 4 +- t/api/controller/search/web.t | 2 +- t/document/author.t | 2 +- t/document/file.t | 2 +- t/document/module.t | 2 +- t/fff_tidyall.t | 2 +- t/model/archive.t | 4 +- t/model/release.t | 4 +- t/model/release/dependencies.t | 6 +- t/model/release/metadata.t | 4 +- t/model/search.t | 2 +- t/pod/renderer.t | 2 +- t/release/badpod.t | 2 +- t/release/binary-data.t | 2 +- t/release/bugs.t | 2 +- t/release/common-files.t | 2 +- t/release/devel-gofaster-0.000.t | 2 +- t/release/documentation-not-readme.t | 2 +- t/release/file-duplicates.t | 2 +- t/release/ipsonar-0.29.t | 2 +- t/release/local-lib.t | 2 +- t/release/meta-license.t | 2 +- t/release/meta-provides.t | 2 +- t/release/no-modules.t | 2 +- t/release/no-packages.t | 2 +- t/release/oops-locallib.t | 2 +- t/release/packages-unclaimable.t | 4 +- t/release/packages.t | 2 +- t/release/pod-examples.t | 2 +- t/release/pod-with-data-token.t | 2 +- t/release/pod-with-generator.t | 2 +- t/release/text-tabs-wrap.t | 2 +- t/release/weblint++-1.15.t | 2 +- t/release/www-tumblr-0.t | 2 +- t/script/load.t | 88 +++++++++++------------ t/script/queue.t | 2 +- t/server/controller/author.t | 2 +- t/server/controller/changes.t | 2 +- t/server/controller/diff.t | 7 +- t/server/controller/distribution.t | 2 +- t/server/controller/download_url.t | 6 +- t/server/controller/file.t | 2 +- t/server/controller/login/pause.t | 4 +- t/server/controller/mirror.t | 2 +- t/server/controller/module.t | 2 +- t/server/controller/pod.t | 8 +-- t/server/controller/release.t | 3 +- t/server/controller/root.t | 3 +- t/server/controller/scroll.t | 2 +- t/server/controller/search/autocomplete.t | 2 +- t/server/controller/source.t | 2 +- t/server/controller/user/favorite.t | 2 +- t/server/controller/user/turing.t | 2 +- t/server/not_found.t | 2 +- t/server/sanitize_query.t | 5 +- t/test-vars.t | 2 +- t/types.t | 6 +- t/util.t | 2 +- 61 files changed, 127 insertions(+), 130 deletions(-) diff --git a/t/00_setup.t b/t/00_setup.t index f80512cc0..bfe1a4552 100644 --- a/t/00_setup.t +++ b/t/00_setup.t @@ -2,7 +2,7 @@ use strict; use warnings; use lib 't/lib'; -use CPAN::Faker 0.010; +use CPAN::Faker 0.010 (); use Devel::Confess; use MetaCPAN::Script::Tickets (); use MetaCPAN::Server::Test; @@ -14,7 +14,6 @@ use MetaCPAN::TestHelpers qw( ); use MetaCPAN::TestServer (); use Module::Faker 0.015 (); # Generates META.json. -use Path::Tiny qw( path ); use Test::More 0.96; use URI::FromHash qw( uri ); @@ -78,7 +77,7 @@ $fakecpan_dir->child('indices')->mkpath; } # Help debug inconsistent parsing failures. -require Parse::PMFile; +use Parse::PMFile (); local $Parse::PMFile::VERBOSE = $ENV{TEST_VERBOSE} ? 9 : 0; my $src_dir = $fakecpan_configs; diff --git a/t/01_darkpan.t b/t/01_darkpan.t index a74c58e13..78b6106ad 100644 --- a/t/01_darkpan.t +++ b/t/01_darkpan.t @@ -3,7 +3,7 @@ use warnings; use lib 't/lib'; use Devel::Confess; -use MetaCPAN::DarkPAN; +use MetaCPAN::DarkPAN (); use MetaCPAN::TestServer; use MetaCPAN::Tests::Controller::Search::DownloadURL; use Test::More; diff --git a/t/api/controller/cover.t b/t/api/controller/cover.t index 7d61310dc..d04821a4c 100644 --- a/t/api/controller/cover.t +++ b/t/api/controller/cover.t @@ -1,12 +1,12 @@ use Mojo::Base -strict; -use lib 't/lib'; -use Test::More; -use Test::Mojo; -use Mojo::JSON qw(true false); +use lib 't/lib'; use MetaCPAN::Model::Search (); use MetaCPAN::TestServer (); +use Test::More; +use Test::Mojo (); + my $server = MetaCPAN::TestServer->new; my $t = Test::Mojo->new( diff --git a/t/api/controller/search/first.t b/t/api/controller/search/first.t index 3ca6acdf4..3e3d19ab4 100644 --- a/t/api/controller/search/first.t +++ b/t/api/controller/search/first.t @@ -1,8 +1,7 @@ use Mojo::Base -strict; use Test::More; -use Test::Mojo; -use Mojo::JSON qw(true false); +use Test::Mojo (); my $t = Test::Mojo->new('MetaCPAN::API'); @@ -13,4 +12,3 @@ $t->get_ok( '/v1/search/first', form => { q => 'DOESNOTEXISTS' } ) ->status_is(404)->content_is(''); done_testing; - diff --git a/t/api/controller/search/web.t b/t/api/controller/search/web.t index cc433b980..feb3e6575 100644 --- a/t/api/controller/search/web.t +++ b/t/api/controller/search/web.t @@ -2,7 +2,7 @@ use Mojo::Base -strict; use Test::More; use Test::Mojo; -use Mojo::JSON qw(true false); +use Mojo::JSON qw( false true ); # Note: we need a release marked as status => latest # so we're using Versions::PkgVar for now diff --git a/t/document/author.t b/t/document/author.t index c53e416a7..6db29b13c 100644 --- a/t/document/author.t +++ b/t/document/author.t @@ -2,7 +2,7 @@ use strict; use warnings; use lib 't/lib'; -use MetaCPAN::Document::Author; +use MetaCPAN::Document::Author (); use Test::More; my @errors = MetaCPAN::Document::Author->validate( diff --git a/t/document/file.t b/t/document/file.t index 8ffcd0f67..8e34bf0e3 100644 --- a/t/document/file.t +++ b/t/document/file.t @@ -2,7 +2,7 @@ use strict; use warnings; use lib 't/lib'; -use MetaCPAN::Document::File; +use MetaCPAN::Document::File (); use Test::More; sub cpan_meta { diff --git a/t/document/module.t b/t/document/module.t index f2efedeb2..d21fcac7d 100644 --- a/t/document/module.t +++ b/t/document/module.t @@ -2,7 +2,7 @@ use strict; use warnings; use lib 't/lib'; -use MetaCPAN::Document::Module; +use MetaCPAN::Document::Module (); use Test::More; subtest hide_from_pause => sub { diff --git a/t/fff_tidyall.t b/t/fff_tidyall.t index 849ddfede..e96e8e278 100644 --- a/t/fff_tidyall.t +++ b/t/fff_tidyall.t @@ -4,5 +4,5 @@ use strict; use warnings; use lib 't/lib'; -use Test::Code::TidyAll; +use Test::Code::TidyAll qw( tidyall_ok ); tidyall_ok( verbose => $ENV{TEST_VERBOSE} ); diff --git a/t/model/archive.t b/t/model/archive.t index 720fae958..86a025ef5 100644 --- a/t/model/archive.t +++ b/t/model/archive.t @@ -4,7 +4,9 @@ use lib 't/lib'; use Digest::SHA qw( sha1_hex ); use MetaCPAN::TestHelpers qw( fakecpan_dir ); -use Test::Most; +use Test::Most import => + [qw( cmp_bag done_testing is isa_ok like ok require_ok subtest throws_ok ) + ]; my $CLASS = 'MetaCPAN::Model::Archive'; require_ok $CLASS; diff --git a/t/model/release.t b/t/model/release.t index a75dbef08..58602402e 100644 --- a/t/model/release.t +++ b/t/model/release.t @@ -3,8 +3,8 @@ use warnings; use lib 't/lib'; use File::Temp (); -use LWP::Simple qw(getstore); -use MetaCPAN::Model::Release; +use LWP::Simple qw( getstore ); +use MetaCPAN::Model::Release (); use MetaCPAN::Script::Runner; use MetaCPAN::TestHelpers qw( get_config ); use Test::More; diff --git a/t/model/release/dependencies.t b/t/model/release/dependencies.t index bf4437921..97f24f5cd 100644 --- a/t/model/release/dependencies.t +++ b/t/model/release/dependencies.t @@ -2,11 +2,11 @@ use strict; use warnings; use lib 't/lib'; -use FindBin; -use MetaCPAN::Model::Release; +use FindBin (); +use MetaCPAN::Model::Release (); use MetaCPAN::Script::Runner; use MetaCPAN::TestHelpers qw( fakecpan_dir get_config ); -use Test::Most; +use Test::Most import => [qw( cmp_bag done_testing subtest )]; my $config = get_config(); diff --git a/t/model/release/metadata.t b/t/model/release/metadata.t index 9492c9aec..f182fc860 100644 --- a/t/model/release/metadata.t +++ b/t/model/release/metadata.t @@ -2,9 +2,7 @@ use strict; use warnings; use lib 't/lib'; -use FindBin; -use MetaCPAN::Model::Release; -use MetaCPAN::Script::Runner; +use MetaCPAN::Model::Release (); use MetaCPAN::TestHelpers qw( fakecpan_dir get_config ); use Test::More; diff --git a/t/model/search.t b/t/model/search.t index e62e2ef5d..1cc7808b6 100644 --- a/t/model/search.t +++ b/t/model/search.t @@ -5,7 +5,7 @@ use lib 't/lib'; use MetaCPAN::Model::Search (); use MetaCPAN::TestServer (); use Test::More; -use Test::Deep qw(cmp_deeply ignore); +use Test::Deep qw( cmp_deeply ignore ); use Cpanel::JSON::XS (); # Just use this to get an es object. diff --git a/t/pod/renderer.t b/t/pod/renderer.t index 34bbe83c7..1b16ee1b0 100644 --- a/t/pod/renderer.t +++ b/t/pod/renderer.t @@ -4,7 +4,7 @@ use lib 't/lib'; use Test::More; -use MetaCPAN::Pod::Renderer; +use MetaCPAN::Pod::Renderer (); my $factory = MetaCPAN::Pod::Renderer->new(); my $html_renderer = $factory->html_renderer; diff --git a/t/release/badpod.t b/t/release/badpod.t index bbde2aaef..672001978 100644 --- a/t/release/badpod.t +++ b/t/release/badpod.t @@ -3,7 +3,7 @@ use warnings; use lib 't/lib'; use Cpanel::JSON::XS (); -use MetaCPAN::TestHelpers; +use MetaCPAN::TestHelpers qw( test_release ); use Test::More; test_release( diff --git a/t/release/binary-data.t b/t/release/binary-data.t index 28b65b715..6b5cf0302 100644 --- a/t/release/binary-data.t +++ b/t/release/binary-data.t @@ -3,7 +3,7 @@ use warnings; use lib 't/lib'; use Cpanel::JSON::XS (); -use MetaCPAN::TestHelpers; +use MetaCPAN::TestHelpers qw( test_release ); use Test::More; test_release( diff --git a/t/release/bugs.t b/t/release/bugs.t index 11c02390d..5b1a724b1 100644 --- a/t/release/bugs.t +++ b/t/release/bugs.t @@ -3,7 +3,7 @@ use warnings; use lib 't/lib'; use MetaCPAN::Server::Test; -use MetaCPAN::TestHelpers; +use MetaCPAN::TestHelpers qw( test_distribution ); use Test::More; test_distribution( diff --git a/t/release/common-files.t b/t/release/common-files.t index 5d8f110dd..4ea22b27b 100644 --- a/t/release/common-files.t +++ b/t/release/common-files.t @@ -3,7 +3,7 @@ use warnings; use lib 't/lib'; use Cpanel::JSON::XS (); -use MetaCPAN::TestHelpers; +use MetaCPAN::TestHelpers qw( test_release ); use Test::More; test_release( diff --git a/t/release/devel-gofaster-0.000.t b/t/release/devel-gofaster-0.000.t index 9d5c4e150..1c4e53812 100644 --- a/t/release/devel-gofaster-0.000.t +++ b/t/release/devel-gofaster-0.000.t @@ -2,7 +2,7 @@ use strict; use warnings; use lib 't/lib'; -use MetaCPAN::TestHelpers; +use MetaCPAN::TestHelpers qw( test_release ); use Test::More; test_release( diff --git a/t/release/documentation-not-readme.t b/t/release/documentation-not-readme.t index 8e7ae52db..5ce7d39a7 100644 --- a/t/release/documentation-not-readme.t +++ b/t/release/documentation-not-readme.t @@ -3,7 +3,7 @@ use warnings; use lib 't/lib'; use MetaCPAN::Server::Test; -use MetaCPAN::TestHelpers; +use MetaCPAN::TestHelpers qw( test_release ); use Test::More; test_release( diff --git a/t/release/file-duplicates.t b/t/release/file-duplicates.t index 62be2737e..c27776b0e 100644 --- a/t/release/file-duplicates.t +++ b/t/release/file-duplicates.t @@ -4,7 +4,7 @@ use lib 't/lib'; use Cpanel::JSON::XS (); use MetaCPAN::Server::Test; -use MetaCPAN::TestHelpers; +use MetaCPAN::TestHelpers qw( test_release ); use Test::More; test_release( diff --git a/t/release/ipsonar-0.29.t b/t/release/ipsonar-0.29.t index 606a3b514..26f101bd2 100644 --- a/t/release/ipsonar-0.29.t +++ b/t/release/ipsonar-0.29.t @@ -2,7 +2,7 @@ use strict; use warnings; use lib 't/lib'; -use MetaCPAN::TestHelpers; +use MetaCPAN::TestHelpers qw( test_release ); use Test::More; test_release( diff --git a/t/release/local-lib.t b/t/release/local-lib.t index 17f001425..947ebf83e 100644 --- a/t/release/local-lib.t +++ b/t/release/local-lib.t @@ -3,7 +3,7 @@ use warnings; use lib 't/lib'; use Cpanel::JSON::XS (); -use MetaCPAN::TestHelpers; +use MetaCPAN::TestHelpers qw( test_release ); use Test::More; test_release( diff --git a/t/release/meta-license.t b/t/release/meta-license.t index 3914c969e..63010f78a 100644 --- a/t/release/meta-license.t +++ b/t/release/meta-license.t @@ -3,7 +3,7 @@ use warnings; use lib 't/lib'; use MetaCPAN::Server::Test; -use MetaCPAN::TestHelpers; +use MetaCPAN::TestHelpers qw( test_release ); use Test::More; test_release( diff --git a/t/release/meta-provides.t b/t/release/meta-provides.t index 929a8b2f1..8bfe83375 100644 --- a/t/release/meta-provides.t +++ b/t/release/meta-provides.t @@ -3,7 +3,7 @@ use warnings; use lib 't/lib'; use MetaCPAN::Server::Test; -use MetaCPAN::TestHelpers; +use MetaCPAN::TestHelpers qw( test_release ); use Test::More; test_release( diff --git a/t/release/no-modules.t b/t/release/no-modules.t index 078aa9582..9b2ba4017 100644 --- a/t/release/no-modules.t +++ b/t/release/no-modules.t @@ -2,7 +2,7 @@ use strict; use warnings; use lib 't/lib'; -use MetaCPAN::TestHelpers; +use MetaCPAN::TestHelpers qw( test_release ); use Test::More; # Some uploads contain no usable modules. diff --git a/t/release/no-packages.t b/t/release/no-packages.t index 7f3d16f4f..c1a13db68 100644 --- a/t/release/no-packages.t +++ b/t/release/no-packages.t @@ -2,7 +2,7 @@ use strict; use warnings; use lib 't/lib'; -use MetaCPAN::TestHelpers; +use MetaCPAN::TestHelpers qw( test_release ); use Test::More; # Some uploads contain no usable modules. diff --git a/t/release/oops-locallib.t b/t/release/oops-locallib.t index 1944c2238..302d3d962 100644 --- a/t/release/oops-locallib.t +++ b/t/release/oops-locallib.t @@ -3,7 +3,7 @@ use warnings; use lib 't/lib'; use Cpanel::JSON::XS (); -use MetaCPAN::TestHelpers; +use MetaCPAN::TestHelpers qw( test_release ); use Test::More; test_release( diff --git a/t/release/packages-unclaimable.t b/t/release/packages-unclaimable.t index d44c05e2d..74b915e6e 100644 --- a/t/release/packages-unclaimable.t +++ b/t/release/packages-unclaimable.t @@ -4,9 +4,9 @@ use lib 't/lib'; use Cpanel::JSON::XS (); use IO::String; -use List::MoreUtils qw(uniq); +use List::MoreUtils qw( uniq ); use MetaCPAN::Server::Test; -use MetaCPAN::TestHelpers; +use MetaCPAN::TestHelpers qw( test_release ); use Module::Metadata; use Test::More; diff --git a/t/release/packages.t b/t/release/packages.t index f5b850003..f326d9c26 100644 --- a/t/release/packages.t +++ b/t/release/packages.t @@ -4,7 +4,7 @@ use lib 't/lib'; use Cpanel::JSON::XS (); use MetaCPAN::Server::Test; -use MetaCPAN::TestHelpers; +use MetaCPAN::TestHelpers qw( test_release ); use Test::More; test_release( diff --git a/t/release/pod-examples.t b/t/release/pod-examples.t index 401f267e4..e79b108f8 100644 --- a/t/release/pod-examples.t +++ b/t/release/pod-examples.t @@ -3,7 +3,7 @@ use warnings; use lib 't/lib'; use MetaCPAN::Server::Test; -use MetaCPAN::TestHelpers; +use MetaCPAN::TestHelpers qw( test_release ); use Test::More; test_release( diff --git a/t/release/pod-with-data-token.t b/t/release/pod-with-data-token.t index 3b5e6826a..150161e59 100644 --- a/t/release/pod-with-data-token.t +++ b/t/release/pod-with-data-token.t @@ -3,7 +3,7 @@ use warnings; use lib 't/lib'; use Cpanel::JSON::XS (); -use MetaCPAN::TestHelpers; +use MetaCPAN::TestHelpers qw( test_release ); use Test::More; test_release( diff --git a/t/release/pod-with-generator.t b/t/release/pod-with-generator.t index cc1f39d4b..015770dbe 100644 --- a/t/release/pod-with-generator.t +++ b/t/release/pod-with-generator.t @@ -3,7 +3,7 @@ use warnings; use lib 't/lib'; use Cpanel::JSON::XS (); -use MetaCPAN::TestHelpers; +use MetaCPAN::TestHelpers qw( test_release ); use Test::More; test_release( diff --git a/t/release/text-tabs-wrap.t b/t/release/text-tabs-wrap.t index 43a313909..49b494730 100644 --- a/t/release/text-tabs-wrap.t +++ b/t/release/text-tabs-wrap.t @@ -2,7 +2,7 @@ use strict; use warnings; use lib 't/lib'; -use MetaCPAN::TestHelpers; +use MetaCPAN::TestHelpers qw( test_distribution test_release ); use Test::More; test_distribution( diff --git a/t/release/weblint++-1.15.t b/t/release/weblint++-1.15.t index b31a78b1e..c1ec9478c 100644 --- a/t/release/weblint++-1.15.t +++ b/t/release/weblint++-1.15.t @@ -2,7 +2,7 @@ use strict; use warnings; use lib 't/lib'; -use MetaCPAN::TestHelpers; +use MetaCPAN::TestHelpers qw( test_release ); use Test::More; test_release( diff --git a/t/release/www-tumblr-0.t b/t/release/www-tumblr-0.t index 8aabd4f69..c30651869 100644 --- a/t/release/www-tumblr-0.t +++ b/t/release/www-tumblr-0.t @@ -2,7 +2,7 @@ use strict; use warnings; use lib 't/lib'; -use MetaCPAN::TestHelpers; +use MetaCPAN::TestHelpers qw( test_release ); use Test::More; test_release( diff --git a/t/script/load.t b/t/script/load.t index 100a48a7e..0830fb070 100644 --- a/t/script/load.t +++ b/t/script/load.t @@ -4,54 +4,54 @@ use lib 't/lib'; use Test::More; -require MetaCPAN::Script::Author; -require MetaCPAN::Script::Backpan; -require MetaCPAN::Script::Backup; -require MetaCPAN::Script::CPANTesters; -require MetaCPAN::Script::CPANTestersAPI; -require MetaCPAN::Script::Check; -require MetaCPAN::Script::Checksum; -require MetaCPAN::Script::Contributor; -require MetaCPAN::Script::Cover; -require MetaCPAN::Script::External; -require MetaCPAN::Script::Favorite; -require MetaCPAN::Script::First; -require MetaCPAN::Script::Latest; -require MetaCPAN::Script::Mapping; -require MetaCPAN::Script::Mapping::CPAN::Author; -require MetaCPAN::Script::Mapping::CPAN::Distribution; -require MetaCPAN::Script::Mapping::CPAN::Favorite; -require MetaCPAN::Script::Mapping::CPAN::File; -require MetaCPAN::Script::Mapping::CPAN::Mirror; -require MetaCPAN::Script::Mapping::CPAN::Package; -require MetaCPAN::Script::Mapping::CPAN::Permission; -require MetaCPAN::Script::Mapping::CPAN::Rating; -require MetaCPAN::Script::Mapping::CPAN::Release; -require MetaCPAN::Script::Mapping::Contributor; -require MetaCPAN::Script::Mapping::Cover; -require MetaCPAN::Script::Mapping::DeployStatement; -require MetaCPAN::Script::Mapping::User::Account; -require MetaCPAN::Script::Mapping::User::Identity; -require MetaCPAN::Script::Mapping::User::Session; -require MetaCPAN::Script::Mirrors; -require MetaCPAN::Script::Package; -require MetaCPAN::Script::Permission; -require MetaCPAN::Script::Purge; -require MetaCPAN::Script::Queue; -require MetaCPAN::Script::Ratings; -require MetaCPAN::Script::Release; -require MetaCPAN::Script::Restart; -require MetaCPAN::Script::River; +use MetaCPAN::Script::Author (); +use MetaCPAN::Script::Backpan (); +use MetaCPAN::Script::Backup (); +use MetaCPAN::Script::CPANTesters (); +use MetaCPAN::Script::CPANTestersAPI (); +use MetaCPAN::Script::Check (); +use MetaCPAN::Script::Checksum (); +use MetaCPAN::Script::Contributor (); +use MetaCPAN::Script::Cover (); +use MetaCPAN::Script::External (); +use MetaCPAN::Script::Favorite (); +use MetaCPAN::Script::First (); +use MetaCPAN::Script::Latest (); +use MetaCPAN::Script::Mapping (); +use MetaCPAN::Script::Mapping::CPAN::Author (); +use MetaCPAN::Script::Mapping::CPAN::Distribution (); +use MetaCPAN::Script::Mapping::CPAN::Favorite (); +use MetaCPAN::Script::Mapping::CPAN::File (); +use MetaCPAN::Script::Mapping::CPAN::Mirror (); +use MetaCPAN::Script::Mapping::CPAN::Package (); +use MetaCPAN::Script::Mapping::CPAN::Permission (); +use MetaCPAN::Script::Mapping::CPAN::Rating (); +use MetaCPAN::Script::Mapping::CPAN::Release (); +use MetaCPAN::Script::Mapping::Contributor (); +use MetaCPAN::Script::Mapping::Cover (); +use MetaCPAN::Script::Mapping::DeployStatement (); +use MetaCPAN::Script::Mapping::User::Account (); +use MetaCPAN::Script::Mapping::User::Identity (); +use MetaCPAN::Script::Mapping::User::Session (); +use MetaCPAN::Script::Mirrors (); +use MetaCPAN::Script::Package (); +use MetaCPAN::Script::Permission (); +use MetaCPAN::Script::Purge (); +use MetaCPAN::Script::Queue (); +use MetaCPAN::Script::Ratings (); +use MetaCPAN::Script::Release (); +use MetaCPAN::Script::Restart (); +use MetaCPAN::Script::River (); require MetaCPAN::Script::Role::Contributor; require MetaCPAN::Script::Role::External::Cygwin; require MetaCPAN::Script::Role::External::Debian; require MetaCPAN::Script::Role::External::Fedora; -require MetaCPAN::Script::Runner; -require MetaCPAN::Script::Session; -require MetaCPAN::Script::Snapshot; -require MetaCPAN::Script::Suggest; -require MetaCPAN::Script::Tickets; -require MetaCPAN::Script::Watcher; +use MetaCPAN::Script::Runner (); +use MetaCPAN::Script::Session (); +use MetaCPAN::Script::Snapshot (); +use MetaCPAN::Script::Suggest (); +use MetaCPAN::Script::Tickets (); +use MetaCPAN::Script::Watcher (); pass 'all loaded Ok'; diff --git a/t/script/queue.t b/t/script/queue.t index 63b911d07..40007c81e 100644 --- a/t/script/queue.t +++ b/t/script/queue.t @@ -5,7 +5,7 @@ use lib 't/lib'; use Test::More; use MetaCPAN::Script::Runner; -use MetaCPAN::Script::Queue; +use MetaCPAN::Script::Queue (); my $config = MetaCPAN::Script::Runner::build_config; local @ARGV = ( '--dir', $config->{cpan} ); diff --git a/t/server/controller/author.t b/t/server/controller/author.t index 2a1b20816..4be01f987 100644 --- a/t/server/controller/author.t +++ b/t/server/controller/author.t @@ -3,7 +3,7 @@ use warnings; use lib 't/lib'; use MetaCPAN::Server::Test; -use MetaCPAN::TestHelpers; +use MetaCPAN::TestHelpers qw( decode_json_ok encode_json test_cache_headers ); use Test::More; my %tests = ( diff --git a/t/server/controller/changes.t b/t/server/controller/changes.t index 0e5f427fb..0adfa4999 100644 --- a/t/server/controller/changes.t +++ b/t/server/controller/changes.t @@ -3,7 +3,7 @@ use warnings; use lib 't/lib'; use MetaCPAN::Server::Test; -use MetaCPAN::TestHelpers; +use MetaCPAN::TestHelpers qw( decode_json_ok test_cache_headers ); use Test::More; my $LOCAL_default_headers = { diff --git a/t/server/controller/diff.t b/t/server/controller/diff.t index 4d927d5e2..926d8ed8d 100644 --- a/t/server/controller/diff.t +++ b/t/server/controller/diff.t @@ -2,9 +2,12 @@ use strict; use warnings; use lib 't/lib'; -use Encode; use MetaCPAN::Server::Test; -use MetaCPAN::TestHelpers; +use MetaCPAN::TestHelpers qw( + decode_json_ok + multiline_diag + test_cache_headers +); use Test::More; { diff --git a/t/server/controller/distribution.t b/t/server/controller/distribution.t index fa72fd689..101ee30f9 100644 --- a/t/server/controller/distribution.t +++ b/t/server/controller/distribution.t @@ -3,7 +3,7 @@ use warnings; use lib 't/lib'; use MetaCPAN::Server::Test; -use MetaCPAN::TestHelpers; +use MetaCPAN::TestHelpers qw( decode_json_ok test_cache_headers ); use Test::More; my @tests = ( diff --git a/t/server/controller/download_url.t b/t/server/controller/download_url.t index 7cd03194b..ed44437d3 100644 --- a/t/server/controller/download_url.t +++ b/t/server/controller/download_url.t @@ -5,10 +5,10 @@ use lib 't/lib'; use Cpanel::JSON::XS (); use HTTP::Request::Common qw( GET ); use MetaCPAN::Server (); -use MetaCPAN::TestHelpers; -use Plack::Test; +use MetaCPAN::TestHelpers qw( test_cache_headers ); +use Plack::Test (); use Test::More; -use Ref::Util qw(is_hashref); +use Ref::Util qw( is_hashref ); my $app = MetaCPAN::Server->new->to_app(); my $test = Plack::Test->create($app); diff --git a/t/server/controller/file.t b/t/server/controller/file.t index 396799fc3..c1a92dbec 100644 --- a/t/server/controller/file.t +++ b/t/server/controller/file.t @@ -3,7 +3,7 @@ use warnings; use lib 't/lib'; use MetaCPAN::Server::Test; -use MetaCPAN::TestHelpers; +use MetaCPAN::TestHelpers qw( decode_json_ok test_cache_headers ); use Test::More; my %tests = ( diff --git a/t/server/controller/login/pause.t b/t/server/controller/login/pause.t index 312ba2830..608859499 100644 --- a/t/server/controller/login/pause.t +++ b/t/server/controller/login/pause.t @@ -3,9 +3,9 @@ use warnings; use lib 't/lib'; use utf8; -use Encode qw( encode is_utf8 FB_CROAK LEAVE_SRC ); +use Encode qw( encode FB_CROAK is_utf8 LEAVE_SRC ); use MetaCPAN::Server::Test; -use MetaCPAN::TestHelpers; +use MetaCPAN::TestHelpers qw( decode_json_ok ); use Test::More; BEGIN { $ENV{EMAIL_SENDER_TRANSPORT} = 'Test' } diff --git a/t/server/controller/mirror.t b/t/server/controller/mirror.t index 54c7505c9..3f2263905 100644 --- a/t/server/controller/mirror.t +++ b/t/server/controller/mirror.t @@ -3,7 +3,7 @@ use warnings; use lib 't/lib'; use MetaCPAN::Server::Test; -use MetaCPAN::TestHelpers; +use MetaCPAN::TestHelpers qw( decode_json_ok test_cache_headers ); use Test::More; my %tests = ( diff --git a/t/server/controller/module.t b/t/server/controller/module.t index 8b905473b..08d235166 100644 --- a/t/server/controller/module.t +++ b/t/server/controller/module.t @@ -3,7 +3,7 @@ use warnings; use lib 't/lib'; use MetaCPAN::Server::Test; -use MetaCPAN::TestHelpers; +use MetaCPAN::TestHelpers qw( decode_json_ok test_cache_headers ); use Test::More; my %tests = ( diff --git a/t/server/controller/pod.t b/t/server/controller/pod.t index 7fb948fca..d362dc5a5 100644 --- a/t/server/controller/pod.t +++ b/t/server/controller/pod.t @@ -5,11 +5,11 @@ use lib 't/lib'; use Cpanel::JSON::XS (); use HTTP::Request::Common qw( GET ); use MetaCPAN::Server (); -use MetaCPAN::TestHelpers; -use Path::Tiny qw(path); -use Plack::Test; +use MetaCPAN::TestHelpers qw( test_cache_headers ); +use Path::Tiny qw( path ); +use Plack::Test (); use Test::More; -use Try::Tiny qw( catch try ); +use Try::Tiny qw( try ); my $dir = path( MetaCPAN::Server->model('Source')->base_dir, 'DOY/Moose-0.02/Moose-0.02' ); diff --git a/t/server/controller/release.t b/t/server/controller/release.t index 03541d25f..73d7e574e 100644 --- a/t/server/controller/release.t +++ b/t/server/controller/release.t @@ -2,9 +2,8 @@ use strict; use warnings; use lib 't/lib'; -use Encode; use MetaCPAN::Server::Test; -use MetaCPAN::TestHelpers; +use MetaCPAN::TestHelpers qw( decode_json_ok test_cache_headers ); use Test::More; { diff --git a/t/server/controller/root.t b/t/server/controller/root.t index c0b417aa8..0b5f71831 100644 --- a/t/server/controller/root.t +++ b/t/server/controller/root.t @@ -2,8 +2,7 @@ use strict; use warnings; use lib 't/lib'; -use MetaCPAN::Server::Test; -use MetaCPAN::TestHelpers; +use MetaCPAN::Server::Test qw( app GET test_psgi); use Test::More; test_psgi app, sub { diff --git a/t/server/controller/scroll.t b/t/server/controller/scroll.t index a391a77a5..f044f9578 100644 --- a/t/server/controller/scroll.t +++ b/t/server/controller/scroll.t @@ -3,7 +3,7 @@ use warnings; use lib 't/lib'; use MetaCPAN::Server::Test; -use MetaCPAN::TestHelpers; +use MetaCPAN::TestHelpers qw( decode_json_ok test_cache_headers ); use Test::More; test_psgi app, sub { diff --git a/t/server/controller/search/autocomplete.t b/t/server/controller/search/autocomplete.t index f69bee85d..ef95500c8 100644 --- a/t/server/controller/search/autocomplete.t +++ b/t/server/controller/search/autocomplete.t @@ -3,7 +3,7 @@ use warnings; use lib 't/lib'; use MetaCPAN::Server::Test; -use MetaCPAN::TestHelpers; +use MetaCPAN::TestHelpers qw( decode_json_ok ); use Test::More; test_psgi app, sub { diff --git a/t/server/controller/source.t b/t/server/controller/source.t index 337b075e6..46bd90ea4 100644 --- a/t/server/controller/source.t +++ b/t/server/controller/source.t @@ -4,7 +4,7 @@ use lib 't/lib'; use Cpanel::JSON::XS (); use MetaCPAN::Server::Test; -use MetaCPAN::TestHelpers; +use MetaCPAN::TestHelpers qw( test_cache_headers ); use Test::More; my %tests = ( diff --git a/t/server/controller/user/favorite.t b/t/server/controller/user/favorite.t index beedcba3b..b0be96ed0 100644 --- a/t/server/controller/user/favorite.t +++ b/t/server/controller/user/favorite.t @@ -3,7 +3,7 @@ use warnings; use lib 't/lib'; use MetaCPAN::Server::Test; -use MetaCPAN::TestHelpers; +use MetaCPAN::TestHelpers qw( decode_json_ok encode_json ); use Test::More; test_psgi app, sub { diff --git a/t/server/controller/user/turing.t b/t/server/controller/user/turing.t index 91c7a9ce1..6d203b2ec 100644 --- a/t/server/controller/user/turing.t +++ b/t/server/controller/user/turing.t @@ -16,7 +16,7 @@ use lib 't/lib'; } use MetaCPAN::Server::Test; -use MetaCPAN::TestHelpers; +use MetaCPAN::TestHelpers qw( decode_json_ok encode_json ); use Test::More; test_psgi app, sub { diff --git a/t/server/not_found.t b/t/server/not_found.t index f842b6790..61f3d2849 100644 --- a/t/server/not_found.t +++ b/t/server/not_found.t @@ -3,7 +3,7 @@ use warnings; use lib 't/lib'; use MetaCPAN::Server::Test; -use MetaCPAN::TestHelpers; +use MetaCPAN::TestHelpers qw( decode_json_ok ); use Test::More; my @tests = ( diff --git a/t/server/sanitize_query.t b/t/server/sanitize_query.t index ecce2fc6b..f4b9ae6eb 100644 --- a/t/server/sanitize_query.t +++ b/t/server/sanitize_query.t @@ -3,10 +3,9 @@ use warnings; use lib 't/lib'; use MetaCPAN::Server::Test; -use MetaCPAN::TestHelpers; +use MetaCPAN::TestHelpers qw( decode_json_ok encode_json ); use Test::More skip_all => 'Scripting is disabled'; -use Try::Tiny qw( catch try ); -use URI; +use URI (); sub uri { my $uri = URI->new(shift); diff --git a/t/test-vars.t b/t/test-vars.t index ed4ee03ef..1787f26c4 100644 --- a/t/test-vars.t +++ b/t/test-vars.t @@ -3,7 +3,7 @@ use warnings; use lib 't/lib'; use Test::More; -use Test::Vars; +use Test::Vars import => [qw( vars_ok )]; vars_ok('MetaCPAN::Server'); diff --git a/t/types.t b/t/types.t index 2373c0832..5edb78efb 100644 --- a/t/types.t +++ b/t/types.t @@ -1,8 +1,8 @@ -use Test::Most; use strict; use warnings; -use lib 't/lib'; -use MetaCPAN::Types::TypeTiny qw(Resources); + +use MetaCPAN::Types::TypeTiny qw( Resources ); +use Test::Most import => [qw( done_testing is_deeply ok )]; is_deeply( Resources->coerce( diff --git a/t/util.t b/t/util.t index 365495def..5c721c019 100644 --- a/t/util.t +++ b/t/util.t @@ -10,7 +10,7 @@ use MetaCPAN::Util qw( strip_pod ); -use Test::Most; +use Test::Most import => [qw( done_testing is lives_ok ok )]; ok( generate_sid(), 'generate_sid' ); From 5d31924c97f0eff4972da50d88204812fa39e076 Mon Sep 17 00:00:00 2001 From: Olaf Alders Date: Thu, 4 Feb 2021 17:54:49 -0500 Subject: [PATCH 003/597] Tidy lib imports --- .../Deserialize/MetaCPANSanitizedJSON.pm | 2 +- lib/Catalyst/Plugin/OAuth2/Provider.pm | 6 +++--- .../Plugin/Session/Store/ElasticSearch.pm | 1 - lib/MetaCPAN/Document/Author.pm | 13 +++++++++--- lib/MetaCPAN/Document/Author/Set.pm | 2 +- lib/MetaCPAN/Document/Contributor/Set.pm | 2 +- lib/MetaCPAN/Document/Distribution/Set.pm | 2 +- lib/MetaCPAN/Document/Favorite/Set.pm | 2 +- lib/MetaCPAN/Document/File.pm | 19 ++++++++++------- lib/MetaCPAN/Document/File/Set.pm | 10 ++++----- lib/MetaCPAN/Document/Mirror/Set.pm | 2 +- lib/MetaCPAN/Document/Package/Set.pm | 2 +- lib/MetaCPAN/Document/Permission/Set.pm | 2 +- lib/MetaCPAN/Document/Rating/Set.pm | 2 +- lib/MetaCPAN/Document/Release.pm | 18 +++++++++------- lib/MetaCPAN/Document/Release/Set.pm | 2 +- lib/MetaCPAN/Model/Release.pm | 4 ++-- lib/MetaCPAN/Model/User/Account.pm | 6 +++--- lib/MetaCPAN/Pod/Renderer.pm | 4 ++-- lib/MetaCPAN/Role/HasConfig.pm | 4 ++-- lib/MetaCPAN/Role/Logger.pm | 2 +- lib/MetaCPAN/Role/Script.pm | 9 ++++---- lib/MetaCPAN/Script/Author.pm | 6 +++--- lib/MetaCPAN/Script/Backup.pm | 6 +++--- lib/MetaCPAN/Script/CPANTesters.pm | 14 +++++-------- lib/MetaCPAN/Script/CPANTestersAPI.pm | 2 +- lib/MetaCPAN/Script/Check.pm | 2 +- lib/MetaCPAN/Script/Latest.pm | 2 +- lib/MetaCPAN/Script/Mirrors.pm | 2 +- lib/MetaCPAN/Script/Purge.pm | 2 +- lib/MetaCPAN/Script/River.pm | 2 +- lib/MetaCPAN/Script/Role/External/Fedora.pm | 2 +- lib/MetaCPAN/Script/Snapshot.pm | 6 +++--- lib/MetaCPAN/Script/Tickets.pm | 21 +++++++------------ lib/MetaCPAN/Script/Watcher.pm | 2 +- lib/MetaCPAN/Server.pm | 5 ++--- lib/MetaCPAN/Server/Controller.pm | 9 +++----- lib/MetaCPAN/Server/Controller/Changes.pm | 2 +- lib/MetaCPAN/Server/Controller/Diff.pm | 4 ++-- lib/MetaCPAN/Server/Controller/Login.pm | 2 +- .../Server/Controller/Login/GitHub.pm | 10 ++++----- .../Server/Controller/Login/Google.pm | 6 +++--- lib/MetaCPAN/Server/Controller/Login/PAUSE.pm | 5 +---- .../Server/Controller/Login/Twitter.pm | 9 ++------ lib/MetaCPAN/Server/Controller/Scroll.pm | 2 +- lib/MetaCPAN/Server/Diff.pm | 2 +- lib/MetaCPAN/Server/Model/CPAN.pm | 2 +- lib/MetaCPAN/Server/Model/Search.pm | 2 +- lib/MetaCPAN/Server/Model/Source.pm | 4 ++-- lib/MetaCPAN/Server/View/JSONP.pm | 2 +- lib/MetaCPAN/Server/View/Pod.pm | 2 +- lib/MetaCPAN/Types/Internal.pm | 4 ++-- lib/MetaCPAN/Types/TypeTiny.pm | 2 +- t/model/release/dependencies.t | 1 - 54 files changed, 123 insertions(+), 137 deletions(-) diff --git a/lib/Catalyst/Action/Deserialize/MetaCPANSanitizedJSON.pm b/lib/Catalyst/Action/Deserialize/MetaCPANSanitizedJSON.pm index b491ff9c9..7d38b3d57 100644 --- a/lib/Catalyst/Action/Deserialize/MetaCPANSanitizedJSON.pm +++ b/lib/Catalyst/Action/Deserialize/MetaCPANSanitizedJSON.pm @@ -2,7 +2,7 @@ package Catalyst::Action::Deserialize::MetaCPANSanitizedJSON; use Moose; use namespace::autoclean; -use Try::Tiny; +use Try::Tiny qw( catch try ); use Cpanel::JSON::XS (); use MetaCPAN::Server::QuerySanitizer (); diff --git a/lib/Catalyst/Plugin/OAuth2/Provider.pm b/lib/Catalyst/Plugin/OAuth2/Provider.pm index f96ff6812..f5bc00283 100644 --- a/lib/Catalyst/Plugin/OAuth2/Provider.pm +++ b/lib/Catalyst/Plugin/OAuth2/Provider.pm @@ -18,9 +18,9 @@ package Catalyst::Plugin::OAuth2::Provider::Controller; use Moose; BEGIN { extends 'Catalyst::Controller' } -use Digest::SHA; -use Cpanel::JSON::XS; -use URI; +use Digest::SHA (); +use Cpanel::JSON::XS qw( decode_json encode_json ); +use URI (); has login => ( is => 'ro' ); has clients => ( is => 'ro' ); diff --git a/lib/Catalyst/Plugin/Session/Store/ElasticSearch.pm b/lib/Catalyst/Plugin/Session/Store/ElasticSearch.pm index 0ccc266d0..f4ec351d7 100644 --- a/lib/Catalyst/Plugin/Session/Store/ElasticSearch.pm +++ b/lib/Catalyst/Plugin/Session/Store/ElasticSearch.pm @@ -4,7 +4,6 @@ package Catalyst::Plugin::Session::Store::ElasticSearch; use Moose; extends 'Catalyst::Plugin::Session::Store'; -use List::MoreUtils qw(); use MooseX::Types::ElasticSearch qw(:all); has _session_es => ( diff --git a/lib/MetaCPAN/Document/Author.pm b/lib/MetaCPAN/Document/Author.pm index 0526c91be..ce2967cb9 100644 --- a/lib/MetaCPAN/Document/Author.pm +++ b/lib/MetaCPAN/Document/Author.pm @@ -8,10 +8,17 @@ use ElasticSearchX::Model::Document; # load order not important use Gravatar::URL (); -use MetaCPAN::Types qw(Profile); +use MetaCPAN::Types qw( Profile ); use MetaCPAN::Types::TypeTiny qw( - ArrayRefPromote Blog NonEmptySimpleStr PerlMongers - ArrayRef Bool Dict HashRef Str Tuple Optional + ArrayRef + ArrayRefPromote + Blog + Bool + Dict + HashRef + NonEmptySimpleStr + PerlMongers + Str ); use MetaCPAN::Util; diff --git a/lib/MetaCPAN/Document/Author/Set.pm b/lib/MetaCPAN/Document/Author/Set.pm index 2120ecd2b..8ad81236c 100644 --- a/lib/MetaCPAN/Document/Author/Set.pm +++ b/lib/MetaCPAN/Document/Author/Set.pm @@ -2,7 +2,7 @@ package MetaCPAN::Document::Author::Set; use Moose; -use MetaCPAN::Query::Author; +use MetaCPAN::Query::Author (); extends 'ElasticSearchX::Model::Document::Set'; diff --git a/lib/MetaCPAN/Document/Contributor/Set.pm b/lib/MetaCPAN/Document/Contributor/Set.pm index 18e19deb5..17fdbba37 100644 --- a/lib/MetaCPAN/Document/Contributor/Set.pm +++ b/lib/MetaCPAN/Document/Contributor/Set.pm @@ -2,7 +2,7 @@ package MetaCPAN::Document::Contributor::Set; use Moose; -use MetaCPAN::Query::Contributor; +use MetaCPAN::Query::Contributor (); extends 'ElasticSearchX::Model::Document::Set'; diff --git a/lib/MetaCPAN/Document/Distribution/Set.pm b/lib/MetaCPAN/Document/Distribution/Set.pm index cf275c749..d0d0df59d 100644 --- a/lib/MetaCPAN/Document/Distribution/Set.pm +++ b/lib/MetaCPAN/Document/Distribution/Set.pm @@ -2,7 +2,7 @@ package MetaCPAN::Document::Distribution::Set; use Moose; -use MetaCPAN::Query::Distribution; +use MetaCPAN::Query::Distribution (); extends 'ElasticSearchX::Model::Document::Set'; diff --git a/lib/MetaCPAN/Document/Favorite/Set.pm b/lib/MetaCPAN/Document/Favorite/Set.pm index 6e3112021..b2006b3f1 100644 --- a/lib/MetaCPAN/Document/Favorite/Set.pm +++ b/lib/MetaCPAN/Document/Favorite/Set.pm @@ -2,7 +2,7 @@ package MetaCPAN::Document::Favorite::Set; use Moose; -use MetaCPAN::Query::Favorite; +use MetaCPAN::Query::Favorite (); extends 'ElasticSearchX::Model::Document::Set'; diff --git a/lib/MetaCPAN/Document/File.pm b/lib/MetaCPAN/Document/File.pm index 04a88be13..f3525c995 100644 --- a/lib/MetaCPAN/Document/File.pm +++ b/lib/MetaCPAN/Document/File.pm @@ -7,18 +7,23 @@ use utf8; use Moose; use ElasticSearchX::Model::Document; -use Encode; use List::AllUtils qw( any ); -use MetaCPAN::Document::Module; -use MetaCPAN::Types qw(Module); +use MetaCPAN::Document::Module (); +use MetaCPAN::Types qw( Module ); use MetaCPAN::Types::TypeTiny qw( - Stat ArrayRef Bool Int Maybe Num ScalarRef Str + ArrayRef + Bool + Int + Maybe + Num + ScalarRef + Stat + Str ); use MetaCPAN::Util qw(numify_version); -use Plack::MIME; -use Pod::Text; +use Plack::MIME (); +use Pod::Text (); use Try::Tiny qw( catch try ); -use URI::Escape (); Plack::MIME->add_type( '.t' => 'text/x-script.perl' ); Plack::MIME->add_type( '.pod' => 'text/x-pod' ); diff --git a/lib/MetaCPAN/Document/File/Set.pm b/lib/MetaCPAN/Document/File/Set.pm index c5db09032..bc76de401 100644 --- a/lib/MetaCPAN/Document/File/Set.pm +++ b/lib/MetaCPAN/Document/File/Set.pm @@ -2,13 +2,11 @@ package MetaCPAN::Document::File::Set; use Moose; -use MetaCPAN::Util qw( single_valued_arrayref_to_scalar ); -use Ref::Util qw( is_hashref ); use List::Util qw( max ); - -use MetaCPAN::Query::File; -use MetaCPAN::Query::Favorite; -use MetaCPAN::Query::Release; +use MetaCPAN::Query::Favorite (); +use MetaCPAN::Query::File (); +use MetaCPAN::Query::Release (); +use MetaCPAN::Util qw( single_valued_arrayref_to_scalar ); extends 'ElasticSearchX::Model::Document::Set'; diff --git a/lib/MetaCPAN/Document/Mirror/Set.pm b/lib/MetaCPAN/Document/Mirror/Set.pm index b07889e58..35b0d0248 100644 --- a/lib/MetaCPAN/Document/Mirror/Set.pm +++ b/lib/MetaCPAN/Document/Mirror/Set.pm @@ -2,7 +2,7 @@ package MetaCPAN::Document::Mirror::Set; use Moose; -use MetaCPAN::Query::Mirror; +use MetaCPAN::Query::Mirror (); extends 'ElasticSearchX::Model::Document::Set'; diff --git a/lib/MetaCPAN/Document/Package/Set.pm b/lib/MetaCPAN/Document/Package/Set.pm index 3a9aec12c..ed7774331 100644 --- a/lib/MetaCPAN/Document/Package/Set.pm +++ b/lib/MetaCPAN/Document/Package/Set.pm @@ -2,7 +2,7 @@ package MetaCPAN::Document::Package::Set; use Moose; -use MetaCPAN::Query::Package; +use MetaCPAN::Query::Package (); extends 'ElasticSearchX::Model::Document::Set'; diff --git a/lib/MetaCPAN/Document/Permission/Set.pm b/lib/MetaCPAN/Document/Permission/Set.pm index ac51db2d4..c6ac91110 100644 --- a/lib/MetaCPAN/Document/Permission/Set.pm +++ b/lib/MetaCPAN/Document/Permission/Set.pm @@ -2,7 +2,7 @@ package MetaCPAN::Document::Permission::Set; use Moose; -use MetaCPAN::Query::Permission; +use MetaCPAN::Query::Permission (); extends 'ElasticSearchX::Model::Document::Set'; diff --git a/lib/MetaCPAN/Document/Rating/Set.pm b/lib/MetaCPAN/Document/Rating/Set.pm index 9bb30d73c..7661b87cc 100644 --- a/lib/MetaCPAN/Document/Rating/Set.pm +++ b/lib/MetaCPAN/Document/Rating/Set.pm @@ -2,7 +2,7 @@ package MetaCPAN::Document::Rating::Set; use Moose; -use MetaCPAN::Query::Rating; +use MetaCPAN::Query::Rating (); extends 'ElasticSearchX::Model::Document::Set'; diff --git a/lib/MetaCPAN/Document/Release.pm b/lib/MetaCPAN/Document/Release.pm index a6e89470a..c2e2d045b 100644 --- a/lib/MetaCPAN/Document/Release.pm +++ b/lib/MetaCPAN/Document/Release.pm @@ -1,17 +1,19 @@ package MetaCPAN::Document::Release; -use strict; -use warnings; - use Moose; + use DateTime qw(); -use Ref::Util qw(); use ElasticSearchX::Model::Document; - -use MetaCPAN::Types qw(Dependency); +use MetaCPAN::Types qw( Dependency ); use MetaCPAN::Types::TypeTiny qw( - HashRefCPANMeta Resources Stat Tests - ArrayRef Bool Num Str + ArrayRef + Bool + HashRefCPANMeta + Num + Resources + Stat + Str + Tests ); use MetaCPAN::Util qw( numify_version ); diff --git a/lib/MetaCPAN/Document/Release/Set.pm b/lib/MetaCPAN/Document/Release/Set.pm index 7ca56d4f9..5ec58e62e 100644 --- a/lib/MetaCPAN/Document/Release/Set.pm +++ b/lib/MetaCPAN/Document/Release/Set.pm @@ -4,7 +4,7 @@ use Moose; use MetaCPAN::Util qw( single_valued_arrayref_to_scalar ); -use MetaCPAN::Query::Release; +use MetaCPAN::Query::Release (); extends 'ElasticSearchX::Model::Document::Set'; diff --git a/lib/MetaCPAN/Model/Release.pm b/lib/MetaCPAN/Model/Release.pm index 5b811f741..f0a0d0e60 100644 --- a/lib/MetaCPAN/Model/Release.pm +++ b/lib/MetaCPAN/Model/Release.pm @@ -10,12 +10,12 @@ use DateTime (); use File::Find (); use File::Spec (); use Log::Contextual qw( :log :dlog ); -use MetaCPAN::Model::Archive; +use MetaCPAN::Model::Archive (); use MetaCPAN::Types::TypeTiny qw( AbsPath ArrayRef Str ); use MetaCPAN::Util qw( fix_version); use Module::Metadata 1.000012 (); # Improved package detection. use MooseX::StrictConstructor; -use Path::Tiny qw(path); +use Path::Tiny qw( path ); use Parse::PMFile; use Try::Tiny qw( catch try ); diff --git a/lib/MetaCPAN/Model/User/Account.pm b/lib/MetaCPAN/Model/User/Account.pm index f9acfe47a..1c730d02f 100644 --- a/lib/MetaCPAN/Model/User/Account.pm +++ b/lib/MetaCPAN/Model/User/Account.pm @@ -6,9 +6,9 @@ use warnings; use Moose; use ElasticSearchX::Model::Document; -use MetaCPAN::Model::User::Identity; -use MetaCPAN::Types qw(Identity); -use MetaCPAN::Types::TypeTiny qw(ArrayRef Bool Dict Str); +use MetaCPAN::Model::User::Identity (); +use MetaCPAN::Types qw( Identity ); +use MetaCPAN::Types::TypeTiny qw( ArrayRef Bool Dict Str ); use MetaCPAN::Util; =head1 PROPERTIES diff --git a/lib/MetaCPAN/Pod/Renderer.pm b/lib/MetaCPAN/Pod/Renderer.pm index 00b6bfcb2..909951a68 100644 --- a/lib/MetaCPAN/Pod/Renderer.pm +++ b/lib/MetaCPAN/Pod/Renderer.pm @@ -5,9 +5,9 @@ use MetaCPAN::Moose; use MetaCPAN::Pod::XHTML; use MetaCPAN::Types::TypeTiny qw( Uri ); use Pod::Markdown; -use Pod::POM; +use Pod::POM (); use Pod::POM::View::Pod; -use Pod::Text; +use Pod::Text (); has perldoc_url_prefix => ( is => 'ro', diff --git a/lib/MetaCPAN/Role/HasConfig.pm b/lib/MetaCPAN/Role/HasConfig.pm index cc1957c8e..3e75e7f2d 100644 --- a/lib/MetaCPAN/Role/HasConfig.pm +++ b/lib/MetaCPAN/Role/HasConfig.pm @@ -2,9 +2,9 @@ package MetaCPAN::Role::HasConfig; use Moose::Role; -use FindBin; +use FindBin (); use Config::ZOMG (); -use MetaCPAN::Types::TypeTiny qw(HashRef); +use MetaCPAN::Types::TypeTiny qw( HashRef ); use Module::Runtime qw( require_module ); # Done like this so can be required by a role diff --git a/lib/MetaCPAN/Role/Logger.pm b/lib/MetaCPAN/Role/Logger.pm index 19d671cf8..dd7bbea66 100644 --- a/lib/MetaCPAN/Role/Logger.pm +++ b/lib/MetaCPAN/Role/Logger.pm @@ -2,7 +2,7 @@ package MetaCPAN::Role::Logger; use v5.10; use Moose::Role; -use MetaCPAN::Types::TypeTiny qw(Logger Str); +use MetaCPAN::Types::TypeTiny qw( Logger Str ); use Log::Contextual qw( set_logger ); use Log::Log4perl ':easy'; use Path::Tiny qw( path ); diff --git a/lib/MetaCPAN/Role/Script.pm b/lib/MetaCPAN/Role/Script.pm index f90d5168b..da11e0890 100644 --- a/lib/MetaCPAN/Role/Script.pm +++ b/lib/MetaCPAN/Role/Script.pm @@ -3,15 +3,14 @@ package MetaCPAN::Role::Script; use Moose::Role; use ElasticSearchX::Model::Document::Types qw(:all); -use FindBin; use Git::Helpers qw( checkout_root ); use Log::Contextual qw( :log :dlog ); -use MetaCPAN::Model; -use MetaCPAN::Types::TypeTiny qw( Path Int Str Bool ); -use Mojo::Server; +use MetaCPAN::Model (); +use MetaCPAN::Types::TypeTiny qw( Bool Int Path Str ); +use Mojo::Server (); use Term::ANSIColor qw( colored ); use IO::Interactive qw( is_interactive ); -use IO::Prompt; +use IO::Prompt qw( prompt ); use File::Path (); use Carp (); diff --git a/lib/MetaCPAN/Script/Author.pm b/lib/MetaCPAN/Script/Author.pm index 5ac2f1ea8..e59bbdb3d 100644 --- a/lib/MetaCPAN/Script/Author.pm +++ b/lib/MetaCPAN/Script/Author.pm @@ -12,9 +12,9 @@ use Encode (); use File::stat (); use Cpanel::JSON::XS qw( decode_json ); use Log::Contextual qw( :log ); -use MetaCPAN::Document::Author; -use URI (); -use XML::Simple qw(XMLin); +use MetaCPAN::Document::Author (); +use URI (); +use XML::Simple qw( XMLin ); =head1 SYNOPSIS diff --git a/lib/MetaCPAN/Script/Backup.pm b/lib/MetaCPAN/Script/Backup.pm index 450923ae1..a1e2c664a 100644 --- a/lib/MetaCPAN/Script/Backup.pm +++ b/lib/MetaCPAN/Script/Backup.pm @@ -7,11 +7,11 @@ use feature qw( state ); use Data::Printer; use DateTime; use IO::Zlib (); -use Cpanel::JSON::XS; +use Cpanel::JSON::XS qw( decode_json encode_json ); use Log::Contextual qw( :log :dlog ); -use MetaCPAN::Types::TypeTiny qw( Path Bool Int Str ); +use MetaCPAN::Types::TypeTiny qw( Bool Int Path Str ); use Moose; -use Try::Tiny; +use Try::Tiny qw( catch try ); with 'MetaCPAN::Role::Script', 'MooseX::Getopt::Dashes'; diff --git a/lib/MetaCPAN/Script/CPANTesters.pm b/lib/MetaCPAN/Script/CPANTesters.pm index 781b7bbb7..dc7e15949 100644 --- a/lib/MetaCPAN/Script/CPANTesters.pm +++ b/lib/MetaCPAN/Script/CPANTesters.pm @@ -1,17 +1,13 @@ package MetaCPAN::Script::CPANTesters; -use strict; -use warnings; +use Moose; use DBI (); -use File::Spec::Functions qw(catfile); -use File::Temp qw(tempdir); -use File::stat qw(stat); -use IO::Uncompress::Bunzip2 qw(bunzip2); +use File::stat qw( stat ); +use IO::Uncompress::Bunzip2 qw( bunzip2 ); use Log::Contextual qw( :log :dlog ); -use MetaCPAN::Types::TypeTiny qw( Path Bool Uri ); -use ElasticSearchX::Model::Document::Types qw(ESBulk); -use Moose; +use MetaCPAN::Types::TypeTiny qw( Bool Path Uri ); +use ElasticSearchX::Model::Document::Types qw( ESBulk ); with 'MetaCPAN::Role::Script', 'MooseX::Getopt::Dashes'; diff --git a/lib/MetaCPAN/Script/CPANTestersAPI.pm b/lib/MetaCPAN/Script/CPANTestersAPI.pm index dc781cfd6..9a4f3a6b8 100644 --- a/lib/MetaCPAN/Script/CPANTestersAPI.pm +++ b/lib/MetaCPAN/Script/CPANTestersAPI.pm @@ -6,7 +6,7 @@ use warnings; use Log::Contextual qw( :log :dlog ); use Cpanel::JSON::XS qw( decode_json ); use MetaCPAN::Types::TypeTiny qw( Uri ); -use ElasticSearchX::Model::Document::Types qw(ESBulk); +use ElasticSearchX::Model::Document::Types qw( ESBulk ); use Moose; with 'MetaCPAN::Role::Script', 'MooseX::Getopt::Dashes'; diff --git a/lib/MetaCPAN/Script/Check.pm b/lib/MetaCPAN/Script/Check.pm index 985e58cc2..768392bf1 100644 --- a/lib/MetaCPAN/Script/Check.pm +++ b/lib/MetaCPAN/Script/Check.pm @@ -3,7 +3,7 @@ package MetaCPAN::Script::Check; use strict; use warnings; -use File::Spec::Functions qw(catfile); +use File::Spec::Functions qw( catfile ); use Log::Contextual qw( :log ); use Moose; use MetaCPAN::Types::TypeTiny qw( Bool Int Str ); diff --git a/lib/MetaCPAN/Script/Latest.pm b/lib/MetaCPAN/Script/Latest.pm index c5504141b..a3e0e9e02 100644 --- a/lib/MetaCPAN/Script/Latest.pm +++ b/lib/MetaCPAN/Script/Latest.pm @@ -8,7 +8,7 @@ use Moose; use MooseX::Aliases; use Parse::CPAN::Packages::Fast; use Regexp::Common qw(time); -use Time::Local; +use Time::Local qw( timelocal ); use MetaCPAN::Types::TypeTiny qw( Bool Str ); with 'MetaCPAN::Role::Script', 'MooseX::Getopt'; diff --git a/lib/MetaCPAN/Script/Mirrors.pm b/lib/MetaCPAN/Script/Mirrors.pm index d27170a83..df2abc9f1 100644 --- a/lib/MetaCPAN/Script/Mirrors.pm +++ b/lib/MetaCPAN/Script/Mirrors.pm @@ -5,7 +5,7 @@ use warnings; use Cpanel::JSON::XS (); use Log::Contextual qw( :log :dlog ); -use MetaCPAN::Document::Mirror; +use MetaCPAN::Document::Mirror (); use Moose; with 'MetaCPAN::Role::Script', 'MooseX::Getopt'; diff --git a/lib/MetaCPAN/Script/Purge.pm b/lib/MetaCPAN/Script/Purge.pm index 980dfca67..9da812cd6 100644 --- a/lib/MetaCPAN/Script/Purge.pm +++ b/lib/MetaCPAN/Script/Purge.pm @@ -3,7 +3,7 @@ package MetaCPAN::Script::Purge; use Moose; use Log::Contextual qw( :log ); -use MetaCPAN::Types::TypeTiny qw( Bool Str HashRef ); +use MetaCPAN::Types::TypeTiny qw( Bool HashRef Str ); use MetaCPAN::Util qw( author_dir ); with 'MooseX::Getopt', 'MetaCPAN::Role::Script'; diff --git a/lib/MetaCPAN/Script/River.pm b/lib/MetaCPAN/Script/River.pm index c69aa79bd..ca8146a27 100644 --- a/lib/MetaCPAN/Script/River.pm +++ b/lib/MetaCPAN/Script/River.pm @@ -5,7 +5,7 @@ use namespace::autoclean; use Cpanel::JSON::XS qw( decode_json ); use Log::Contextual qw( :log :dlog ); -use MetaCPAN::Types::TypeTiny qw( ArrayRef Str Uri ); +use MetaCPAN::Types::TypeTiny qw( Uri ); with 'MetaCPAN::Role::Script', 'MooseX::Getopt'; diff --git a/lib/MetaCPAN/Script/Role/External/Fedora.pm b/lib/MetaCPAN/Script/Role/External/Fedora.pm index 80fe8b125..2825ea33c 100644 --- a/lib/MetaCPAN/Script/Role/External/Fedora.pm +++ b/lib/MetaCPAN/Script/Role/External/Fedora.pm @@ -4,7 +4,7 @@ use v5.010; use Moose::Role; use namespace::autoclean; -use URI; +use URI (); use Cpanel::JSON::XS qw( decode_json ); use Log::Contextual qw( :log ); diff --git a/lib/MetaCPAN/Script/Snapshot.pm b/lib/MetaCPAN/Script/Snapshot.pm index b0f90d702..7ccaae533 100644 --- a/lib/MetaCPAN/Script/Snapshot.pm +++ b/lib/MetaCPAN/Script/Snapshot.pm @@ -3,15 +3,15 @@ package MetaCPAN::Script::Snapshot; use strict; use warnings; -use Cpanel::JSON::XS qw(encode_json decode_json); +use Cpanel::JSON::XS qw( decode_json encode_json ); use DateTime (); use DateTime::Format::ISO8601 (); use DDP; use HTTP::Tiny (); use Log::Contextual qw( :log ); -use MetaCPAN::Types::TypeTiny qw( Bool Int Str ArrayRef ); +use MetaCPAN::Types::TypeTiny qw( ArrayRef Bool Str ); use Moose; -use Sys::Hostname qw(hostname); +use Sys::Hostname qw( hostname ); with 'MetaCPAN::Role::Script', 'MooseX::Getopt::Dashes'; diff --git a/lib/MetaCPAN/Script/Tickets.pm b/lib/MetaCPAN/Script/Tickets.pm index a7ff38b43..2f55b270a 100644 --- a/lib/MetaCPAN/Script/Tickets.pm +++ b/lib/MetaCPAN/Script/Tickets.pm @@ -1,24 +1,19 @@ package MetaCPAN::Script::Tickets; -use strict; -use warnings; +use Moose; use namespace::autoclean; # Some issue with rt.cpan.org's cert $ENV{PERL_LWP_SSL_VERIFY_HOSTNAME} = 0; -use HTTP::Request::Common; -use IO::String; -use LWP::UserAgent; -use List::MoreUtils qw(uniq); -use List::Util qw(sum); +use HTTP::Request::Common qw( GET ); +use IO::String (); use Log::Contextual qw( :log :dlog ); -use Moose; -use Parse::CSV; -use Pithub; -use URI::Escape qw(uri_escape); -use MetaCPAN::Types::TypeTiny qw( ArrayRef Str ); -use Ref::Util qw( is_ref is_hashref); +use MetaCPAN::Types::TypeTiny (); +use Parse::CSV (); +use Pithub (); +use Ref::Util qw( is_hashref is_ref ); +use URI::Escape qw( uri_escape ); with 'MetaCPAN::Role::Script', 'MooseX::Getopt'; diff --git a/lib/MetaCPAN/Script/Watcher.pm b/lib/MetaCPAN/Script/Watcher.pm index ab84af910..b746253a1 100644 --- a/lib/MetaCPAN/Script/Watcher.pm +++ b/lib/MetaCPAN/Script/Watcher.pm @@ -5,7 +5,7 @@ use warnings; use Moose; use CPAN::DistnameInfo; -use Cpanel::JSON::XS; +use Cpanel::JSON::XS qw( decode_json ); use Log::Contextual qw( :log ); use MetaCPAN::Util; use MetaCPAN::Types::TypeTiny qw( Bool ); diff --git a/lib/MetaCPAN/Server.pm b/lib/MetaCPAN/Server.pm index b2a71b354..e8cd6c7e1 100644 --- a/lib/MetaCPAN/Server.pm +++ b/lib/MetaCPAN/Server.pm @@ -5,10 +5,9 @@ use Moose; ## no critic (Modules::RequireEndWithOne) use Catalyst qw( +MetaCPAN::Role::Fastly::Catalyst ), '-Log=warn,error,fatal'; use CatalystX::RoleApplicator; -use Digest::SHA; -use File::Temp qw( tempdir ); +use Digest::SHA (); use Log::Log4perl::Catalyst; -use Plack::Builder; +use Plack::Builder qw( builder enable ); use Plack::Middleware::ReverseProxy; use Plack::Middleware::ServerStatus::Lite; use Ref::Util qw( is_arrayref is_hashref ); diff --git a/lib/MetaCPAN/Server/Controller.pm b/lib/MetaCPAN/Server/Controller.pm index a64e40cb3..7a3985d97 100644 --- a/lib/MetaCPAN/Server/Controller.pm +++ b/lib/MetaCPAN/Server/Controller.pm @@ -1,13 +1,10 @@ package MetaCPAN::Server::Controller; -use strict; -use warnings; +use Moose; use namespace::autoclean; -use Cpanel::JSON::XS; -use List::MoreUtils (); -use Moose::Util (); -use Moose; +use Cpanel::JSON::XS (); +use Moose::Util (); use MetaCPAN::Types::TypeTiny qw( HashRef ); use MetaCPAN::Util qw( single_valued_arrayref_to_scalar ); diff --git a/lib/MetaCPAN/Server/Controller/Changes.pm b/lib/MetaCPAN/Server/Controller/Changes.pm index 6f0294f2b..71f6ad0b1 100644 --- a/lib/MetaCPAN/Server/Controller/Changes.pm +++ b/lib/MetaCPAN/Server/Controller/Changes.pm @@ -6,7 +6,7 @@ use namespace::autoclean; use Encode (); use Moose; -use Try::Tiny; +use Try::Tiny qw( try ); BEGIN { extends 'MetaCPAN::Server::Controller' } diff --git a/lib/MetaCPAN/Server/Controller/Diff.pm b/lib/MetaCPAN/Server/Controller/Diff.pm index 08615daa3..2df5157b7 100644 --- a/lib/MetaCPAN/Server/Controller/Diff.pm +++ b/lib/MetaCPAN/Server/Controller/Diff.pm @@ -3,9 +3,9 @@ package MetaCPAN::Server::Controller::Diff; use strict; use warnings; -use MetaCPAN::Server::Diff; +use MetaCPAN::Server::Diff (); use Moose; -use Try::Tiny; +use Try::Tiny qw( catch try ); use namespace::autoclean; BEGIN { extends 'MetaCPAN::Server::Controller' } diff --git a/lib/MetaCPAN/Server/Controller/Login.pm b/lib/MetaCPAN/Server/Controller/Login.pm index d4b7af597..d4e5602f7 100644 --- a/lib/MetaCPAN/Server/Controller/Login.pm +++ b/lib/MetaCPAN/Server/Controller/Login.pm @@ -3,7 +3,7 @@ package MetaCPAN::Server::Controller::Login; use strict; use warnings; -use Cpanel::JSON::XS; +use Cpanel::JSON::XS qw( decode_json encode_json ); use Moose; BEGIN { extends 'Catalyst::Controller' } diff --git a/lib/MetaCPAN/Server/Controller/Login/GitHub.pm b/lib/MetaCPAN/Server/Controller/Login/GitHub.pm index 723be8fef..7c23c99bc 100644 --- a/lib/MetaCPAN/Server/Controller/Login/GitHub.pm +++ b/lib/MetaCPAN/Server/Controller/Login/GitHub.pm @@ -1,13 +1,11 @@ package MetaCPAN::Server::Controller::Login::GitHub; -use strict; -use warnings; - -use HTTP::Request::Common; -use Cpanel::JSON::XS; -use LWP::UserAgent; use Moose; +use HTTP::Request::Common qw( GET POST ); +use Cpanel::JSON::XS qw( decode_json ); +use LWP::UserAgent (); + BEGIN { extends 'MetaCPAN::Server::Controller::Login' } has [qw(consumer_key consumer_secret)] => ( diff --git a/lib/MetaCPAN/Server/Controller/Login/Google.pm b/lib/MetaCPAN/Server/Controller/Login/Google.pm index 8d7d636b8..818c41815 100644 --- a/lib/MetaCPAN/Server/Controller/Login/Google.pm +++ b/lib/MetaCPAN/Server/Controller/Login/Google.pm @@ -3,9 +3,9 @@ package MetaCPAN::Server::Controller::Login::Google; use strict; use warnings; -use HTTP::Request::Common; -use Cpanel::JSON::XS; -use LWP::UserAgent; +use HTTP::Request::Common qw( GET POST ); +use Cpanel::JSON::XS qw( decode_json ); +use LWP::UserAgent (); use Moose; BEGIN { extends 'MetaCPAN::Server::Controller::Login' } diff --git a/lib/MetaCPAN/Server/Controller/Login/PAUSE.pm b/lib/MetaCPAN/Server/Controller/Login/PAUSE.pm index 125fac102..f806a33f4 100644 --- a/lib/MetaCPAN/Server/Controller/Login/PAUSE.pm +++ b/lib/MetaCPAN/Server/Controller/Login/PAUSE.pm @@ -1,13 +1,10 @@ package MetaCPAN::Server::Controller::Login::PAUSE; -use strict; -use warnings; +use Moose; use namespace::autoclean; use CHI (); use Log::Contextual qw( :log :dlog ); -use Moose; -use Try::Tiny qw( catch try ); use MetaCPAN::Model::Email::PAUSE (); use MetaCPAN::Util qw( generate_sid ); diff --git a/lib/MetaCPAN/Server/Controller/Login/Twitter.pm b/lib/MetaCPAN/Server/Controller/Login/Twitter.pm index 134fb1ba9..7cc03d07f 100644 --- a/lib/MetaCPAN/Server/Controller/Login/Twitter.pm +++ b/lib/MetaCPAN/Server/Controller/Login/Twitter.pm @@ -1,13 +1,8 @@ package MetaCPAN::Server::Controller::Login::Twitter; -use strict; -use warnings; - -use HTTP::Request::Common; -use Cpanel::JSON::XS; -use LWP::UserAgent; use Moose; -use Net::Twitter; + +use Net::Twitter (); BEGIN { extends 'MetaCPAN::Server::Controller::Login' } diff --git a/lib/MetaCPAN/Server/Controller/Scroll.pm b/lib/MetaCPAN/Server/Controller/Scroll.pm index e3eb5271e..cae641f99 100644 --- a/lib/MetaCPAN/Server/Controller/Scroll.pm +++ b/lib/MetaCPAN/Server/Controller/Scroll.pm @@ -5,7 +5,7 @@ use warnings; use namespace::autoclean; use Moose; -use Try::Tiny; +use Try::Tiny qw( catch try ); BEGIN { extends 'MetaCPAN::Server::Controller' } diff --git a/lib/MetaCPAN/Server/Diff.pm b/lib/MetaCPAN/Server/Diff.pm index b075bec51..68a187697 100644 --- a/lib/MetaCPAN/Server/Diff.pm +++ b/lib/MetaCPAN/Server/Diff.pm @@ -5,7 +5,7 @@ use warnings; use Moose; use Encoding::FixLatin (); -use IPC::Run3; +use IPC::Run3 qw( run3 ); use MetaCPAN::Types::TypeTiny qw( ArrayRef ); use File::Spec; diff --git a/lib/MetaCPAN/Server/Model/CPAN.pm b/lib/MetaCPAN/Server/Model/CPAN.pm index 72f2c6f56..0c02e06d5 100644 --- a/lib/MetaCPAN/Server/Model/CPAN.pm +++ b/lib/MetaCPAN/Server/Model/CPAN.pm @@ -3,7 +3,7 @@ package MetaCPAN::Server::Model::CPAN; use strict; use warnings; -use MetaCPAN::Model; +use MetaCPAN::Model (); use Moose; extends 'Catalyst::Model'; diff --git a/lib/MetaCPAN/Server/Model/Search.pm b/lib/MetaCPAN/Server/Model/Search.pm index bba8f2163..6e9049d4c 100644 --- a/lib/MetaCPAN/Server/Model/Search.pm +++ b/lib/MetaCPAN/Server/Model/Search.pm @@ -4,7 +4,7 @@ use strict; use warnings; use Moose; -use MetaCPAN::Model::Search; +use MetaCPAN::Model::Search (); extends 'MetaCPAN::Server::Model::CPAN'; diff --git a/lib/MetaCPAN/Server/Model/Source.pm b/lib/MetaCPAN/Server/Model/Source.pm index 6c05c9937..6c55a7bf4 100644 --- a/lib/MetaCPAN/Server/Model/Source.pm +++ b/lib/MetaCPAN/Server/Model/Source.pm @@ -3,8 +3,8 @@ package MetaCPAN::Server::Model::Source; use strict; use warnings; -use File::Find::Rule (); -use MetaCPAN::Model::Archive; +use File::Find::Rule (); +use MetaCPAN::Model::Archive (); use MetaCPAN::Types::TypeTiny qw( Path ); use MetaCPAN::Util (); use Moose; diff --git a/lib/MetaCPAN/Server/View/JSONP.pm b/lib/MetaCPAN/Server/View/JSONP.pm index 2c603be92..63e9eaec6 100644 --- a/lib/MetaCPAN/Server/View/JSONP.pm +++ b/lib/MetaCPAN/Server/View/JSONP.pm @@ -3,7 +3,7 @@ package MetaCPAN::Server::View::JSONP; use strict; use warnings; -use Encode qw(decode_utf8); +use Encode qw( decode_utf8 ); use Cpanel::JSON::XS (); use Moose; diff --git a/lib/MetaCPAN/Server/View/Pod.pm b/lib/MetaCPAN/Server/View/Pod.pm index b7d6e57d2..f1602cbb3 100644 --- a/lib/MetaCPAN/Server/View/Pod.pm +++ b/lib/MetaCPAN/Server/View/Pod.pm @@ -3,7 +3,7 @@ package MetaCPAN::Server::View::Pod; use strict; use warnings; -use MetaCPAN::Pod::Renderer; +use MetaCPAN::Pod::Renderer (); use Moose; extends 'Catalyst::View'; diff --git a/lib/MetaCPAN/Types/Internal.pm b/lib/MetaCPAN/Types/Internal.pm index c73da3805..b6b57cb4a 100644 --- a/lib/MetaCPAN/Types/Internal.pm +++ b/lib/MetaCPAN/Types/Internal.pm @@ -4,8 +4,8 @@ use strict; use warnings; use CPAN::Meta; -use ElasticSearchX::Model::Document::Types qw(Type); -use MooseX::Getopt::OptionTypeMap; +use ElasticSearchX::Model::Document::Types qw( Type ); +use MooseX::Getopt::OptionTypeMap (); use MooseX::Types::Moose qw( ArrayRef HashRef ); use MooseX::Types -declare => [ diff --git a/lib/MetaCPAN/Types/TypeTiny.pm b/lib/MetaCPAN/Types/TypeTiny.pm index 2a0492220..2a3f657fa 100644 --- a/lib/MetaCPAN/Types/TypeTiny.pm +++ b/lib/MetaCPAN/Types/TypeTiny.pm @@ -21,7 +21,7 @@ use Type::Library -base, -declare => ( HashRefCPANMeta ) ); -use Type::Utils -all; +use Type::Utils qw( as coerce declare extends from via ); BEGIN { extends qw( diff --git a/t/model/release/dependencies.t b/t/model/release/dependencies.t index 97f24f5cd..afdc62317 100644 --- a/t/model/release/dependencies.t +++ b/t/model/release/dependencies.t @@ -2,7 +2,6 @@ use strict; use warnings; use lib 't/lib'; -use FindBin (); use MetaCPAN::Model::Release (); use MetaCPAN::Script::Runner; use MetaCPAN::TestHelpers qw( fakecpan_dir get_config ); From 531c10f9344e1f30c5dd7e2e1aae62307ec87b88 Mon Sep 17 00:00:00 2001 From: Graham TerMarsch Date: Sat, 20 Feb 2021 18:21:32 -0800 Subject: [PATCH 004/597] Add a negative boost to Deprecated modules, when searching MetaCPAN. --- lib/MetaCPAN/Model/Search.pm | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/lib/MetaCPAN/Model/Search.pm b/lib/MetaCPAN/Model/Search.pm index 199eca5bd..41e5b4e46 100644 --- a/lib/MetaCPAN/Model/Search.pm +++ b/lib/MetaCPAN/Model/Search.pm @@ -222,8 +222,14 @@ sub build_query { $params //= {}; ( my $clean = $search_term ) =~ s/::/ /g; - my $negative - = { term => { 'mime' => { value => 'text/x-script.perl' } } }; + my $negative = { + bool => { + should => [ + { term => { 'mime' => { value => 'text/x-script.perl' } } }, + { term => { 'deprecated' => { value => 1, boost => -100 } } }, + ], + }, + }; my $positive = { bool => { From 65ca6915782063db544857b00ecac2c7f9617d22 Mon Sep 17 00:00:00 2001 From: Graham TerMarsch Date: Sat, 27 Feb 2021 16:19:07 -0800 Subject: [PATCH 005/597] No longer need this boolean re-cast; ES indexes return proper bools now. As per discussion in metacpan/metacpan-web#2438, the ElasticSearch indices that back the MetaCPAN API have been updated to now consistently return Boolean values for the `deprecated` field. Thus, no longer need this check for string `"true"` or `"false"` values, which would then be cast accordingly to a proper boolean. --- lib/MetaCPAN/Document/File/Set.pm | 6 ------ 1 file changed, 6 deletions(-) diff --git a/lib/MetaCPAN/Document/File/Set.pm b/lib/MetaCPAN/Document/File/Set.pm index bc76de401..d17c3f798 100644 --- a/lib/MetaCPAN/Document/File/Set.pm +++ b/lib/MetaCPAN/Document/File/Set.pm @@ -628,12 +628,6 @@ sub autocomplete_suggester { ( $_->{fields}{documentation}[0] => \%record ); } @{ $data->{hits}{hits} }; - # normalize 'deprecated' field values to boolean (1/0) values (because ES) - for my $v ( values %valid ) { - $v->{deprecated} = 1 if $v->{deprecated} eq 'true'; - $v->{deprecated} = 0 if $v->{deprecated} eq 'false'; - } - # remove any exact match, it will be added later my $exact = delete $valid{$query}; From dff61beca229a4ad01deef6501ce1a550182869d Mon Sep 17 00:00:00 2001 From: Mickey Nasriachi Date: Sun, 4 Apr 2021 11:10:22 +0200 Subject: [PATCH 006/597] Add single pauseid handling option to Author script --- lib/MetaCPAN/Script/Author.pm | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/lib/MetaCPAN/Script/Author.pm b/lib/MetaCPAN/Script/Author.pm index e59bbdb3d..35afe8dc0 100644 --- a/lib/MetaCPAN/Script/Author.pm +++ b/lib/MetaCPAN/Script/Author.pm @@ -15,6 +15,7 @@ use Log::Contextual qw( :log ); use MetaCPAN::Document::Author (); use URI (); use XML::Simple qw( XMLin ); +use MetaCPAN::Types::TypeTiny qw( Str ); =head1 SYNOPSIS @@ -29,6 +30,11 @@ has author_fh => ( default => sub { shift->cpan . '/authors/00whois.xml' }, ); +has pauseid => ( + is => 'ro', + isa => Str, +); + sub run { my $self = shift; @@ -46,9 +52,14 @@ sub index_authors { my $self = shift; my $type = $self->index->type('author'); my $authors = XMLin( $self->author_fh )->{cpanid}; - my $count = keys %$authors; - log_debug {"Counting author"}; - log_info {"Indexing $count authors"}; + if ( $self->pauseid ) { + log_info {"Indexing 1 author"}; + } + else { + my $count = keys %$authors; + log_debug {"Counting author"}; + log_info {"Indexing $count authors"}; + } log_debug {"Getting last update dates"}; my $dates @@ -70,7 +81,9 @@ sub index_authors { my @author_ids_to_purge; - while ( my ( $pauseid, $data ) = each %$authors ) { + for my $pauseid ( keys %$authors ) { + next if ( $self->pauseid and $self->pauseid ne $pauseid ); + my $data = $authors->{$pauseid}; my ( $name, $email, $homepage, $asciiname ) = ( @$data{qw(fullname email homepage asciiname)} ); $name = undef if ( ref $name ); @@ -140,6 +153,7 @@ sub index_authors { } ); } + $bulk->flush; $self->index->refresh; @@ -163,7 +177,7 @@ sub author_config { # Get the most recent version my ($file) = sort { $dir->child($b)->stat->mtime <=> $dir->child($a)->stat->mtime } - grep {m/author-.*?\.json/} readdir($dh); + grep {m/author-.*?\.json/} readdir($dh); return $fallback unless ($file); $file = $dir->child($file); return $fallback if !-e $file; From e759491a1bf8b4ccb84592a5cac02ccfd8128674 Mon Sep 17 00:00:00 2001 From: Mickey Nasriachi Date: Sun, 4 Apr 2021 11:21:12 +0200 Subject: [PATCH 007/597] Ensure name update from CPAN in case of custodial account --- lib/MetaCPAN/Script/Author.pm | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/lib/MetaCPAN/Script/Author.pm b/lib/MetaCPAN/Script/Author.pm index 35afe8dc0..932914de4 100644 --- a/lib/MetaCPAN/Script/Author.pm +++ b/lib/MetaCPAN/Script/Author.pm @@ -90,12 +90,16 @@ sub index_authors { $asciiname = q{} unless defined $asciiname; $email = lc($pauseid) . '@cpan.org' unless ( $email && Email::Valid->address($email) ); + my $is_pause_custodial_account + = ( $name && $name =~ /\(PAUSE Custodial Account\)/ ); log_debug { Encode::encode_utf8( sprintf( "Indexing %s: %s <%s>", $pauseid, $name, $email ) ); }; - my $conf = $self->author_config( $pauseid, $dates ) || next; - my $put = { + my $conf = $self->author_config( $pauseid, $dates ); + next unless ( $conf or $is_pause_custodial_account ); + $conf ||= {}; + my $put = { pauseid => $pauseid, name => $name, asciiname => ref $asciiname ? undef : $asciiname, @@ -114,8 +118,7 @@ sub index_authors { grep {$_} @{ $put->{website} } ]; - $put->{is_pause_custodial_account} = 1 - if $name and $name =~ /\(PAUSE Custodial Account\)/; + $put->{is_pause_custodial_account} = 1 if $is_pause_custodial_account; # Now check the format we have is actually correct my @errors = MetaCPAN::Document::Author->validate($put); From 3bc704fe0afa9b52ec10de48c85e2c837792ad6d Mon Sep 17 00:00:00 2001 From: Mickey Nasriachi Date: Mon, 5 Apr 2021 01:18:23 +0200 Subject: [PATCH 008/597] Added bus_factor to the mapping file This is just for future reference, the index (type) mapping is already done. --- lib/MetaCPAN/Script/Mapping/CPAN/Distribution.pm | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lib/MetaCPAN/Script/Mapping/CPAN/Distribution.pm b/lib/MetaCPAN/Script/Mapping/CPAN/Distribution.pm index 1328965de..757cdd3ed 100644 --- a/lib/MetaCPAN/Script/Mapping/CPAN/Distribution.pm +++ b/lib/MetaCPAN/Script/Mapping/CPAN/Distribution.pm @@ -96,6 +96,9 @@ sub mapping { "bucket" : { "type" : "integer" }, + "bus_factor" : { + "type" : "integer" + }, "immediate" : { "type" : "integer" }, From d88a818d7b609a2cb9c818ae75300f0e21effbc8 Mon Sep 17 00:00:00 2001 From: Olaf Alders Date: Wed, 14 Apr 2021 11:33:58 -0400 Subject: [PATCH 009/597] Upgrade Perl::Tidy to 20210402 --- cpanfile | 2 +- cpanfile.snapshot | 42 +++++++++++++++++++++--------------------- 2 files changed, 22 insertions(+), 22 deletions(-) diff --git a/cpanfile b/cpanfile index 69ad84c69..8693a69a5 100644 --- a/cpanfile +++ b/cpanfile @@ -190,7 +190,7 @@ requires 'LWP::ConsoleLogger::Easy'; requires 'MetaCPAN::Client', '2.017000'; requires 'Module::Faker', '0.015'; requires 'Module::Faker::Dist', '0.010'; -requires 'Perl::Tidy' => '20210111'; +requires 'Perl::Tidy' => '20210402'; requires 'Plack::Test::Agent'; requires 'Test::Code::TidyAll'; requires 'Test::More', '0.99'; diff --git a/cpanfile.snapshot b/cpanfile.snapshot index 1c2b3fe07..128369efd 100644 --- a/cpanfile.snapshot +++ b/cpanfile.snapshot @@ -6782,27 +6782,27 @@ DISTRIBUTIONS strict 0 version 0.77 warnings 0 - Perl-Tidy-20210111 - pathname: S/SH/SHANCOCK/Perl-Tidy-20210111.tar.gz - provides: - Perl::Tidy 20210111 - Perl::Tidy::Debugger 20210111 - Perl::Tidy::DevNull 20210111 - Perl::Tidy::Diagnostics 20210111 - Perl::Tidy::FileWriter 20210111 - Perl::Tidy::Formatter 20210111 - Perl::Tidy::HtmlWriter 20210111 - Perl::Tidy::IOScalar 20210111 - Perl::Tidy::IOScalarArray 20210111 - Perl::Tidy::IndentationItem 20210111 - Perl::Tidy::LineBuffer 20210111 - Perl::Tidy::LineSink 20210111 - Perl::Tidy::LineSource 20210111 - Perl::Tidy::Logger 20210111 - Perl::Tidy::Tokenizer 20210111 - Perl::Tidy::VerticalAligner 20210111 - Perl::Tidy::VerticalAligner::Alignment 20210111 - Perl::Tidy::VerticalAligner::Line 20210111 + Perl-Tidy-20210402 + pathname: S/SH/SHANCOCK/Perl-Tidy-20210402.tar.gz + provides: + Perl::Tidy 20210402 + Perl::Tidy::Debugger 20210402 + Perl::Tidy::DevNull 20210402 + Perl::Tidy::Diagnostics 20210402 + Perl::Tidy::FileWriter 20210402 + Perl::Tidy::Formatter 20210402 + Perl::Tidy::HtmlWriter 20210402 + Perl::Tidy::IOScalar 20210402 + Perl::Tidy::IOScalarArray 20210402 + Perl::Tidy::IndentationItem 20210402 + Perl::Tidy::LineBuffer 20210402 + Perl::Tidy::LineSink 20210402 + Perl::Tidy::LineSource 20210402 + Perl::Tidy::Logger 20210402 + Perl::Tidy::Tokenizer 20210402 + Perl::Tidy::VerticalAligner 20210402 + Perl::Tidy::VerticalAligner::Alignment 20210402 + Perl::Tidy::VerticalAligner::Line 20210402 requirements: ExtUtils::MakeMaker 0 PerlIO-gzip-0.20 From cbc58735658122f66c340136fbd33b7aee4b4851 Mon Sep 17 00:00:00 2001 From: Olaf Alders Date: Wed, 14 Apr 2021 11:34:08 -0400 Subject: [PATCH 010/597] Tidy --- lib/MetaCPAN/Script/Author.pm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/MetaCPAN/Script/Author.pm b/lib/MetaCPAN/Script/Author.pm index 932914de4..b3cf6307b 100644 --- a/lib/MetaCPAN/Script/Author.pm +++ b/lib/MetaCPAN/Script/Author.pm @@ -180,7 +180,7 @@ sub author_config { # Get the most recent version my ($file) = sort { $dir->child($b)->stat->mtime <=> $dir->child($a)->stat->mtime } - grep {m/author-.*?\.json/} readdir($dh); + grep {m/author-.*?\.json/} readdir($dh); return $fallback unless ($file); $file = $dir->child($file); return $fallback if !-e $file; From b88f0e66f1311d10da4007808a49258a7ca1e71b Mon Sep 17 00:00:00 2001 From: Olaf Alders Date: Sat, 17 Apr 2021 10:44:42 -0400 Subject: [PATCH 011/597] Add workflow to create pull requests with cpanfile.snapshot updates --- .github/workflows/update-snapshot.yml | 35 +++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 .github/workflows/update-snapshot.yml diff --git a/.github/workflows/update-snapshot.yml b/.github/workflows/update-snapshot.yml new file mode 100644 index 000000000..3ce7ed5e4 --- /dev/null +++ b/.github/workflows/update-snapshot.yml @@ -0,0 +1,35 @@ +name: Update cpanfile.snapshot +on: + schedule: + - cron: "1 15 * * 0" + workflow_dispatch: +jobs: + update-dep: + runs-on: "ubuntu-20.04" + steps: + - uses: actions/checkout@v2 + - name: Install Carton + run: > + curl -sL https://git.io/cpm | perl - + install -g Carton + --show-build-log-on-failure + - name: Install deps + run: > + curl -sL https://git.io/cpm | perl - + install + --cpanfile cpanfile + --resolver metacpan + --show-build-log-on-failure + --local-lib-contained=local + - name: Maybe update cpanfile.snapshot + run: carton + - name: Create Pull Request + uses: peter-evans/create-pull-request@v3 + with: + commit-message: Update cpanfile.snapshot + title: Update cpanfile.snapshot + body: | + Auto-generated by [create-pull-request][1] + + [1]: https://github.com/peter-evans/create-pull-request + branch: update-cpanfile-snapshot From 9fdd1047b7e3af2b3290c75656704038ed8bb11d Mon Sep 17 00:00:00 2001 From: Zakariyya Mughal Date: Mon, 17 May 2021 23:40:01 -0400 Subject: [PATCH 012/597] Update links to ElasticSearch documentation Updates the documentation to the ElasticSearch 2.4 reference in order to fix the 404 errors. --- docs/API-docs.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/API-docs.md b/docs/API-docs.md index 9583cf3cb..73b855fbf 100644 --- a/docs/API-docs.md +++ b/docs/API-docs.md @@ -8,15 +8,15 @@ _All of these URLs can be tested using the [MetaCPAN Explorer](https://explorer. To learn more about the ElasticSearch query DSL (Domain-Specific Language) check out Clinton Gormley's [Terms of Endearment - ES Query DSL Explained](https://www.slideshare.net/clintongormley/terms-of-endearment-the-elasticsearch-query-dsl-explained) slides. -The query syntax is explained on ElasticSearch's [reference page](https://www.elasticsearch.org/guide/reference/query-dsl/). You can also check out this getting started tutorial about Elasticsearch [reference page](http://joelabrahamsson.com/elasticsearch-101/). +The query syntax is explained on ElasticSearch's [reference page](https://www.elastic.co/guide/en/elasticsearch/reference/2.4/query-dsl.html). You can also check out this getting started tutorial about Elasticsearch [reference page](http://joelabrahamsson.com/elasticsearch-101/). ## Being polite -Currently, the only rules around using the API are to "be polite". We have enforced an upper limit of a size of 5,000 on search requests. If you need to fetch more than 5,000 items, you should look at using the scrolling API. Search this page for "scroll" to get an example using [Search::Elasticsearch](https://metacpan.org/pod/Search::Elasticsearch) or see the [Elasticsearch scroll docs](https://www.elasticsearch.org/guide/reference/fastapi/search/scroll.html) if you are connecting in some other way. +Currently, the only rules around using the API are to "be polite". We have enforced an upper limit of a size of 5,000 on search requests. If you need to fetch more than 5,000 items, you should look at using the scrolling API. Search this page for "scroll" to get an example using [Search::Elasticsearch](https://metacpan.org/pod/Search::Elasticsearch) or see the [Elasticsearch scroll docs](https://www.elastic.co/guide/en/elasticsearch/reference/2.4/search-request-scroll.html) if you are connecting in some other way. You can certainly scroll if you are fetching less than 5,000 items. You might want to do this if you are expecting a large data set, but will still need to run many requests to get all of the required data. -Be aware that when you scroll, your docs will come back unsorted, as noted in the [ElasticSearch scan documentation](https://www.elasticsearch.org/guide/reference/fastapi/search/search-type.html). +Be aware that when you scroll, your docs will come back unsorted, as noted in the [ElasticSearch scan documentation](https://www.elastic.co/guide/en/elasticsearch/reference/2.4/search-request-search-type.html#scan). ## Identifying Yourself @@ -64,7 +64,7 @@ Joins on documents: Joins on search results is work in progress. -Restricting the joined results can be done by using the [boolean "should"](https://www.elasticsearch.org/guide/reference/query-dsl/bool-query.html) occurrence type: +Restricting the joined results can be done by using the [boolean "should"](https://www.elastic.co/guide/en/elasticsearch/reference/2.4/query-dsl-bool-query.html) occurrence type: ```sh curl -XPOST https://fastapi.metacpan.org/v1/author/PERLER?join=release -d ' From 9e1a8ea7e65db799881ceb044d38b52d3fa0679f Mon Sep 17 00:00:00 2001 From: Zakariyya Mughal Date: Sat, 29 May 2021 23:40:28 -0400 Subject: [PATCH 013/597] File queries shared by path and prefix for category example Otherwise directories that are used by releases such as: - - will not have their examples listed on their release page. Fixes . --- lib/MetaCPAN/Query/File.pm | 25 ++++++++++++------------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/lib/MetaCPAN/Query/File.pm b/lib/MetaCPAN/Query/File.pm index cc49aa121..84ef1b322 100644 --- a/lib/MetaCPAN/Query/File.pm +++ b/lib/MetaCPAN/Query/File.pm @@ -142,27 +142,26 @@ my %perl_files = ( ], ); +my @shared_path_prefix_examples = qw( + example + examples + Example + Examples + sample + samples +); + my %path_files = ( example => [ qw( eg ex - ) + ), + @shared_path_prefix_examples, ], ); -my %prefix_files = ( - example => [ - qw( - example - examples - Example - Examples - sample - samples - ) - ], -); +my %prefix_files = ( example => [ @shared_path_prefix_examples, ], ); my %file_to_type; my %type_to_regex; From 45ec6e41df2b1111eb920d377af622e3c15b9fa6 Mon Sep 17 00:00:00 2001 From: Zakariyya Mughal Date: Sat, 29 May 2021 23:49:52 -0400 Subject: [PATCH 014/597] Add demo/demos as category example For example, found in the release: - --- lib/MetaCPAN/Query/File.pm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/MetaCPAN/Query/File.pm b/lib/MetaCPAN/Query/File.pm index 84ef1b322..cfc60a393 100644 --- a/lib/MetaCPAN/Query/File.pm +++ b/lib/MetaCPAN/Query/File.pm @@ -149,6 +149,8 @@ my @shared_path_prefix_examples = qw( Examples sample samples + demo + demos ); my %path_files = ( From 4815efa379111c0122b9d2445328782bc6b8d5e3 Mon Sep 17 00:00:00 2001 From: Graham Knop Date: Sat, 12 Jun 2021 21:01:56 +0200 Subject: [PATCH 015/597] update mailmap --- .mailmap | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/.mailmap b/.mailmap index f28c7504c..8c9325def 100644 --- a/.mailmap +++ b/.mailmap @@ -2,30 +2,43 @@ Amrita Mathew Andreas Marienborg +Andreea Pirvulescu +Andreea Pirvulescu Andrew Fresh Andrew Fresh Barry Walsh Brad Lhotsky Chris Nehren +Christopher White +Christopher White +Christopher White Clinton Gormley +Ed J Gabor Szabo Grant McLean Grant McLean J. Bobby Lopez +Jess Robinson Joel Berger Johannes Plunien +Mario Zieschang Mark Fowler Matthew Horsfall (alh) Michael Peters Michael Peters Michiel Beijen +Mickey Nasriachi +Mickey Nasriachi Mickey Nasriachi Moritz Onken +Nicolas R Olaf Alders Olaf Alders +Olaf Alders Randy Stauner Renee Baecker Shawn M Moore +Shawn Sorichetti Sunny Patel Sunny Patel Talina Shrotriya @@ -35,5 +48,6 @@ Thomas Sibley Tim Bunce Vyacheslav Matyukhin Zachary Dykstra +lnation oiami oiami From 0b057d8cff4773f8cc7477d684bacb811ac8139f Mon Sep 17 00:00:00 2001 From: Mickey Nasriachi Date: Thu, 1 Jul 2021 20:06:55 +0200 Subject: [PATCH 016/597] Distribution: add defulat river values for first release [GH#1025] Initialise new distributions to a bus factor of 1 and zero dependencies --- lib/MetaCPAN/Document/Distribution.pm | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/lib/MetaCPAN/Document/Distribution.pm b/lib/MetaCPAN/Document/Distribution.pm index a5ec49cff..82ffd4bb8 100644 --- a/lib/MetaCPAN/Document/Distribution.pm +++ b/lib/MetaCPAN/Document/Distribution.pm @@ -27,6 +27,14 @@ has river => ( isa => RiverSummary, dynamic => 1, writer => '_set_river', + default => sub { + +{ + bucket => 0, + bus_factor => 1, + immediate => 0, + total => 0, + }; + }, ); sub releases { From 667d760de2dee4e86c31d690cbaafcfd08e41459 Mon Sep 17 00:00:00 2001 From: Olaf Alders Date: Mon, 5 Jul 2021 22:31:26 -0400 Subject: [PATCH 017/597] Update deps --- cpanfile | 38 +- cpanfile.snapshot | 2662 ++++++++++++++++++++------------------------- 2 files changed, 1178 insertions(+), 1522 deletions(-) diff --git a/cpanfile b/cpanfile index 8693a69a5..a91f0a342 100644 --- a/cpanfile +++ b/cpanfile @@ -8,7 +8,7 @@ requires 'Archive::Tar', '2.04'; requires 'Authen::SASL', '2.16'; requires 'BackPAN::Index', '0.42'; requires 'Captcha::reCAPTCHA', '0.99'; -requires 'Catalyst', '5.90103'; +requires 'Catalyst', '5.90128'; requires 'Catalyst::Action::RenderView'; requires 'Catalyst::Controller'; requires 'Catalyst::Controller::REST'; @@ -41,11 +41,11 @@ requires 'Cwd'; requires 'Data::DPath'; requires 'Data::Dump'; requires 'Data::Dumper'; -requires 'Data::Printer', '0.38'; -requires 'DateTime', '1.24'; +requires 'Data::Printer', '1.000004'; +requires 'DateTime', '1.54'; requires 'DateTime::Format::ISO8601'; -requires 'DBD::SQLite', '1.50'; -requires 'DBI', '1.616'; +requires 'DBD::SQLite', '1.66'; +requires 'DBI', '1.643'; requires 'Devel::ArgNames'; requires 'Digest::MD5'; requires 'Digest::SHA'; @@ -98,7 +98,7 @@ requires 'Log::Log4perl::Appender::ScreenColoredLevels'; requires 'Log::Log4perl::Catalyst'; requires 'Log::Log4perl::Layout::JSON'; requires 'LWP::Protocol::https'; -requires 'LWP::UserAgent', '6.15'; +requires 'LWP::UserAgent', '6.55'; requires 'LWP::UserAgent::Paranoid'; requires 'MetaCPAN::Moose'; requires 'MetaCPAN::Pod::XHTML'; @@ -114,7 +114,7 @@ requires 'Mojolicious::Plugin::MountPSGI', '0.14'; requires 'Mojolicious::Plugin::OpenAPI'; requires 'Mojolicious::Plugin::Web::Auth', '0.17'; requires 'Mojo::Pg', '4.08'; -requires 'Moose', '2.1403'; +requires 'Moose', '2.2015'; requires 'Moose::Role'; requires 'Moose::Util'; requires 'MooseX::Aliases'; @@ -129,20 +129,20 @@ requires 'MooseX::StrictConstructor'; requires 'MooseX::Types'; requires 'MooseX::Types::ElasticSearch', '== 0.0.4'; requires 'MooseX::Types::Moose'; -requires 'Mozilla::CA'; +requires 'Mozilla::CA', '20200520'; requires 'namespace::autoclean'; requires 'Net::DNS::Paranoid'; -requires 'Net::Fastly', '1.05'; -requires 'Net::Twitter', '4.01010'; -requires 'OrePAN2'; +requires 'Net::Fastly', '1.12'; +requires 'Net::Twitter', '4.01043'; +requires 'OrePAN2', '0.48'; requires 'Parse::CPAN::Packages::Fast', '0.09'; requires 'Parse::CSV', '2.04'; requires 'Parse::PMFile', '0.41'; requires 'Path::Iterator::Rule', '>=1.011'; -requires 'PAUSE::Permissions'; +requires 'PAUSE::Permissions', '0.17'; requires 'PerlIO::gzip'; -requires 'Pithub', '0.01033'; -requires 'Plack', '1.0039'; +requires 'Pithub', '0.01036'; +requires 'Plack', '1.0048'; requires 'Plack::App::Directory'; requires 'Plack::Middleware::Header'; requires 'Plack::Middleware::ReverseProxy'; @@ -172,20 +172,20 @@ requires 'Try::Tiny', '0.24'; requires 'Type::Tiny', '1.002001'; requires 'Types::Path::Tiny'; requires 'Types::URI'; -requires 'URI', '1.71'; +requires 'URI', '5.09'; requires 'URI::Escape'; requires 'version', '0.9901'; requires 'XML::Simple'; -requires 'YAML::XS', '0.67'; # Mojolicious::Plugin::OpenAPI YAML loading +requires 'YAML::XS', '0.83'; # Mojolicious::Plugin::OpenAPI YAML loading # test requirements requires 'App::Prove'; -requires 'Code::TidyAll', '0.74'; +requires 'Code::TidyAll', '0.78'; requires 'Code::TidyAll::Plugin::UniqueLines'; requires 'CPAN::Faker', '0.010'; requires 'Devel::Confess'; requires 'File::Copy'; -requires 'HTTP::Cookies'; +requires 'HTTP::Cookies', '6.10'; requires 'LWP::ConsoleLogger::Easy'; requires 'MetaCPAN::Client', '2.017000'; requires 'Module::Faker', '0.015'; @@ -199,7 +199,7 @@ requires 'Test::Perl::Critic'; requires 'Test::RequiresInternet'; requires 'Test::Routine', '0.012'; requires 'Test::Routine::Util', '0'; -requires 'Test::Vars', '0.014'; +requires 'Test::Vars', '0.015'; # author requirements requires 'Plack::Middleware::Rewrite'; diff --git a/cpanfile.snapshot b/cpanfile.snapshot index 128369efd..8843140cc 100644 --- a/cpanfile.snapshot +++ b/cpanfile.snapshot @@ -386,58 +386,6 @@ DISTRIBUTIONS Text::Template 0 strict 0 warnings 0 - CPAN-Meta-2.150010 - pathname: D/DA/DAGOLDEN/CPAN-Meta-2.150010.tar.gz - provides: - CPAN::Meta 2.150010 - CPAN::Meta::Converter 2.150010 - CPAN::Meta::Feature 2.150010 - CPAN::Meta::History 2.150010 - CPAN::Meta::Merge 2.150010 - CPAN::Meta::Prereqs 2.150010 - CPAN::Meta::Spec 2.150010 - CPAN::Meta::Validator 2.150010 - Parse::CPAN::Meta 2.150010 - requirements: - CPAN::Meta::Requirements 2.121 - CPAN::Meta::YAML 0.011 - Carp 0 - Encode 0 - Exporter 0 - ExtUtils::MakeMaker 6.17 - File::Spec 0.80 - JSON::PP 2.27300 - Scalar::Util 0 - perl 5.008001 - strict 0 - version 0.88 - warnings 0 - CPAN-Meta-Requirements-2.140 - pathname: D/DA/DAGOLDEN/CPAN-Meta-Requirements-2.140.tar.gz - provides: - CPAN::Meta::Requirements 2.140 - requirements: - B 0 - Carp 0 - ExtUtils::MakeMaker 6.17 - perl 5.006 - strict 0 - version 0.88 - warnings 0 - CPAN-Meta-YAML-0.018 - pathname: D/DA/DAGOLDEN/CPAN-Meta-YAML-0.018.tar.gz - provides: - CPAN::Meta::YAML 0.018 - requirements: - B 0 - Carp 0 - Exporter 0 - ExtUtils::MakeMaker 6.17 - Fcntl 0 - Scalar::Util 0 - perl 5.008001 - strict 0 - warnings 0 CPAN-Repository-0.010 pathname: O/OA/OALDERS/CPAN-Repository-0.010.tar.gz provides: @@ -457,35 +405,6 @@ DISTRIBUTIONS IO::File 1.14 IO::Zlib 1.10 Moo 0.009013 - Cache-Cache-1.08 - pathname: R/RJ/RJBS/Cache-Cache-1.08.tar.gz - provides: - Cache::BaseCache undef - Cache::BaseCacheTester undef - Cache::Cache 1.08 - Cache::CacheMetaData undef - Cache::CacheSizer undef - Cache::CacheTester undef - Cache::CacheUtils undef - Cache::FileBackend undef - Cache::FileCache undef - Cache::MemoryBackend undef - Cache::MemoryCache undef - Cache::NullCache undef - Cache::Object undef - Cache::SharedMemoryBackend undef - Cache::SharedMemoryCache undef - Cache::SizeAwareCache undef - Cache::SizeAwareCacheTester undef - Cache::SizeAwareFileCache undef - Cache::SizeAwareMemoryCache undef - Cache::SizeAwareSharedMemoryCache undef - requirements: - Digest::SHA1 2.02 - Error 0.15 - ExtUtils::MakeMaker 0 - File::Spec 0.82 - Storable 1.014 Cache-LRU-0.04 pathname: K/KA/KAZUHO/Cache-LRU-0.04.tar.gz provides: @@ -701,10 +620,10 @@ DISTRIBUTIONS MooseX::Types 0 Test::More 0 namespace::autoclean 0 - Catalyst-Runtime-5.90115 - pathname: J/JJ/JJNAPIORK/Catalyst-Runtime-5.90115.tar.gz + Catalyst-Runtime-5.90128 + pathname: H/HA/HAARG/Catalyst-Runtime-5.90128.tar.gz provides: - Catalyst 5.90115 + Catalyst 5.90128 Catalyst::Action undef Catalyst::ActionChain undef Catalyst::ActionContainer undef @@ -735,13 +654,13 @@ DISTRIBUTIONS Catalyst::Log undef Catalyst::Middleware::Stash undef Catalyst::Model undef - Catalyst::Plugin::Unicode::Encoding 99.0 + Catalyst::Plugin::Unicode::Encoding 5.90128 Catalyst::Request undef Catalyst::Request::PartData undef Catalyst::Request::Upload undef Catalyst::Response undef Catalyst::Response::Writer undef - Catalyst::Runtime 5.90115 + Catalyst::Runtime 5.90128 Catalyst::Script::CGI undef Catalyst::Script::Create undef Catalyst::Script::FastCGI undef @@ -758,34 +677,30 @@ DISTRIBUTIONS CGI::Struct 0 Carp 1.25 Class::C3::Adopt::NEXT 0.07 - Class::Data::Inheritable 0 Class::Load 0.12 Data::Dump 0 Data::OptList 0 Devel::InnerPackage 0 Encode 2.49 - ExtUtils::MakeMaker 6.59 + ExtUtils::MakeMaker 0 HTML::Entities 0 HTML::HeadParser 0 HTTP::Body 1.22 HTTP::Headers 1.64 HTTP::Request 5.814 - HTTP::Request::AsCGI 1.0 - HTTP::Request::Common 0 HTTP::Response 5.813 - HTTP::Status 0 Hash::MultiValue 0 - IO::Scalar 0 JSON::MaybeXS 1.000000 LWP 5.837 - List::MoreUtils 0 + List::Util 1.45 MRO::Compat 0 Module::Pluggable 4.7 - Moose 1.03 + Moose 2.1400 MooseX::Emulate::Class::Accessor::Fast 0.00903 MooseX::Getopt 0.48 MooseX::MethodAttributes::Role::AttrContainer::Inheritable 0.24 Path::Class 0.09 + PerlIO::utf8_strict 0 Plack 0.9991 Plack::Middleware::Conditional 0 Plack::Middleware::ContentLength 0 @@ -802,21 +717,19 @@ DISTRIBUTIONS Plack::Test::ExternalServer 0 Safe::Isa 0 Scalar::Util 0 + Socket 1.96 Stream::Buffered 0 String::RewritePrefix 0.004 Sub::Exporter 0 Task::Weaken 0 - Test::Fatal 0 - Test::More 0.88 Text::Balanced 0 Text::SimpleTable 0.03 Time::HiRes 0 Tree::Simple 1.15 - Tree::Simple::Visitor::FindByPath 0 + Tree::Simple::Visitor::FindByUID 0 Try::Tiny 0.17 URI 1.65 URI::ws 0.03 - namespace::autoclean 0.28 namespace::clean 0.23 perl 5.008003 Catalyst-View-JSON-0.36 @@ -1051,44 +964,44 @@ DISTRIBUTIONS strict 0 vars 0 warnings 0 - Code-TidyAll-0.74 - pathname: D/DR/DROLSKY/Code-TidyAll-0.74.tar.gz - provides: - Code::TidyAll 0.74 - Code::TidyAll::Cache 0.74 - Code::TidyAll::CacheModel 0.74 - Code::TidyAll::CacheModel::Shared 0.74 - Code::TidyAll::Config::INI::Reader 0.74 - Code::TidyAll::Git::Precommit 0.74 - Code::TidyAll::Git::Prereceive 0.74 - Code::TidyAll::Git::Util 0.74 - Code::TidyAll::Plugin 0.74 - Code::TidyAll::Plugin::CSSUnminifier 0.74 - Code::TidyAll::Plugin::GenericTransformer 0.74 - Code::TidyAll::Plugin::GenericValidator 0.74 - Code::TidyAll::Plugin::JSBeautify 0.74 - Code::TidyAll::Plugin::JSHint 0.74 - Code::TidyAll::Plugin::JSLint 0.74 - Code::TidyAll::Plugin::JSON 0.74 - Code::TidyAll::Plugin::MasonTidy 0.74 - Code::TidyAll::Plugin::PHPCodeSniffer 0.74 - Code::TidyAll::Plugin::PerlCritic 0.74 - Code::TidyAll::Plugin::PerlTidy 0.74 - Code::TidyAll::Plugin::PerlTidySweet 0.74 - Code::TidyAll::Plugin::PodChecker 0.74 - Code::TidyAll::Plugin::PodSpell 0.74 - Code::TidyAll::Plugin::PodTidy 0.74 - Code::TidyAll::Plugin::SortLines 0.74 - Code::TidyAll::Result 0.74 - Code::TidyAll::Role::GenericExecutable 0.74 - Code::TidyAll::Role::HasIgnore 0.74 - Code::TidyAll::Role::RunsCommand 0.74 - Code::TidyAll::Role::Tempdir 0.74 - Code::TidyAll::SVN::Precommit 0.74 - Code::TidyAll::SVN::Util 0.74 - Code::TidyAll::Util::Zglob 0.74 - Code::TidyAll::Zglob 0.74 - Test::Code::TidyAll 0.74 + Code-TidyAll-0.78 + pathname: D/DR/DROLSKY/Code-TidyAll-0.78.tar.gz + provides: + Code::TidyAll 0.78 + Code::TidyAll::Cache 0.78 + Code::TidyAll::CacheModel 0.78 + Code::TidyAll::CacheModel::Shared 0.78 + Code::TidyAll::Config::INI::Reader 0.78 + Code::TidyAll::Git::Precommit 0.78 + Code::TidyAll::Git::Prereceive 0.78 + Code::TidyAll::Git::Util 0.78 + Code::TidyAll::Plugin 0.78 + Code::TidyAll::Plugin::CSSUnminifier 0.78 + Code::TidyAll::Plugin::GenericTransformer 0.78 + Code::TidyAll::Plugin::GenericValidator 0.78 + Code::TidyAll::Plugin::JSBeautify 0.78 + Code::TidyAll::Plugin::JSHint 0.78 + Code::TidyAll::Plugin::JSLint 0.78 + Code::TidyAll::Plugin::JSON 0.78 + Code::TidyAll::Plugin::MasonTidy 0.78 + Code::TidyAll::Plugin::PHPCodeSniffer 0.78 + Code::TidyAll::Plugin::PerlCritic 0.78 + Code::TidyAll::Plugin::PerlTidy 0.78 + Code::TidyAll::Plugin::PerlTidySweet 0.78 + Code::TidyAll::Plugin::PodChecker 0.78 + Code::TidyAll::Plugin::PodSpell 0.78 + Code::TidyAll::Plugin::PodTidy 0.78 + Code::TidyAll::Plugin::SortLines 0.78 + Code::TidyAll::Result 0.78 + Code::TidyAll::Role::GenericExecutable 0.78 + Code::TidyAll::Role::HasIgnore 0.78 + Code::TidyAll::Role::RunsCommand 0.78 + Code::TidyAll::Role::Tempdir 0.78 + Code::TidyAll::SVN::Precommit 0.78 + Code::TidyAll::SVN::Util 0.78 + Code::TidyAll::Util::Zglob 0.78 + Code::TidyAll::Zglob 0.78 + Test::Code::TidyAll 0.78 requirements: Capture::Tiny 0 Config::INI::Reader 0 @@ -1170,6 +1083,7 @@ DISTRIBUTIONS Config::Any::XML undef Config::Any::YAML undef requirements: + Config::General 2.47 Module::Pluggable::Object 3.6 Config-General-2.63 pathname: T/TL/TLINDEN/Config-General-2.63.tar.gz @@ -1262,20 +1176,6 @@ DISTRIBUTIONS requirements: ExtUtils::MakeMaker 0 Pod::Text 2.08 - Crypt-DH-GMP-0.00012 - pathname: D/DM/DMAKI/Crypt-DH-GMP-0.00012.tar.gz - provides: - Crypt::DH::GMP 0.00012 - Crypt::DH::GMP::Compat undef - requirements: - Devel::CheckLib 0.4 - Devel::PPPort 3.19 - ExtUtils::MakeMaker 6.59 - ExtUtils::ParseXS 3.18 - Test::More 0 - Test::Requires 0 - XSLoader 0.02 - perl 5.0080001 DBD-Pg-3.7.0 pathname: T/TU/TURNSTEP/DBD-Pg-3.7.0.tar.gz provides: @@ -1287,13 +1187,14 @@ DISTRIBUTIONS Test::More 0.88 Time::HiRes 0 version 0 - DBD-SQLite-1.54 - pathname: I/IS/ISHIGAKI/DBD-SQLite-1.54.tar.gz + DBD-SQLite-1.66 + pathname: I/IS/ISHIGAKI/DBD-SQLite-1.66.tar.gz provides: - DBD::SQLite 1.54 + DBD::SQLite 1.66 DBD::SQLite::Constants undef - DBD::SQLite::VirtualTable 1.54 - DBD::SQLite::VirtualTable::Cursor 1.54 + DBD::SQLite::GetInfo undef + DBD::SQLite::VirtualTable 1.66 + DBD::SQLite::VirtualTable::Cursor 1.66 DBD::SQLite::VirtualTable::FileContent undef DBD::SQLite::VirtualTable::FileContent::Cursor undef DBD::SQLite::VirtualTable::PerlData undef @@ -1302,12 +1203,11 @@ DISTRIBUTIONS DBI 1.57 ExtUtils::MakeMaker 0 File::Spec 0.82 - Test::Builder 0.86 - Test::More 0.47 + Test::More 0.88 Tie::Hash 0 perl 5.006 - DBI-1.637 - pathname: T/TI/TIMB/DBI-1.637.tar.gz + DBI-1.643 + pathname: T/TI/TIMB/DBI-1.643.tar.gz provides: Bundle::DBI 12.008696 DBD::DBM 0.08 @@ -1342,6 +1242,13 @@ DISTRIBUTIONS DBD::Gofer::db 0.015327 DBD::Gofer::dr 0.015327 DBD::Gofer::st 0.015327 + DBD::Mem 0.001 + DBD::Mem::DataSource 0.001 + DBD::Mem::Statement 0.001 + DBD::Mem::Table 0.001 + DBD::Mem::db 0.001 + DBD::Mem::dr 0.001 + DBD::Mem::st 0.001 DBD::NullP 12.014715 DBD::NullP::db 12.014715 DBD::NullP::dr 12.014715 @@ -1356,7 +1263,7 @@ DISTRIBUTIONS DBD::Sponge::dr 12.010003 DBD::Sponge::st 12.010003 DBDI 12.015129 - DBI 1.637 + DBI 1.643 DBI::Const::GetInfo::ANSI 2.008697 DBI::Const::GetInfo::ODBC 2.011374 DBI::Const::GetInfoReturn 2.008697 @@ -1396,11 +1303,11 @@ DISTRIBUTIONS DBI::SQL::Nano::Table_ 1.015544 DBI::Util::CacheMemory 0.010315 DBI::Util::_accessor 0.009479 - DBI::common 1.637 + DBI::common 1.643 requirements: ExtUtils::MakeMaker 6.48 Test::Simple 0.90 - perl 5.008 + perl 5.008001 DBIx-Class-0.082840 pathname: R/RI/RIBASUSHI/DBIx-Class-0.082840.tar.gz provides: @@ -1604,28 +1511,45 @@ DISTRIBUTIONS Class::Accessor::Chained::Fast 0 Test::Exception 0 Test::More 0 - Data-Printer-0.40 - pathname: G/GA/GARU/Data-Printer-0.40.tar.gz + Data-Printer-1.000004 + pathname: G/GA/GARU/Data-Printer-1.000004.tar.gz provides: DDP undef - Data::Printer 0.40 + Data::Printer 1.000004 + Data::Printer::Common undef + Data::Printer::Config undef Data::Printer::Filter undef + Data::Printer::Filter::ARRAY undef + Data::Printer::Filter::CODE undef + Data::Printer::Filter::ContentType undef Data::Printer::Filter::DB undef Data::Printer::Filter::DateTime undef Data::Printer::Filter::Digest undef + Data::Printer::Filter::FORMAT undef + Data::Printer::Filter::GLOB undef + Data::Printer::Filter::GenericClass undef + Data::Printer::Filter::HASH undef + Data::Printer::Filter::REF undef + Data::Printer::Filter::Regexp undef + Data::Printer::Filter::SCALAR undef + Data::Printer::Filter::VSTRING undef + Data::Printer::Filter::Web undef + Data::Printer::Object undef + Data::Printer::Profile undef + Data::Printer::Profile::Dumper undef + Data::Printer::Profile::JSON undef + Data::Printer::Theme undef + Data::Printer::Theme::Classic undef + Data::Printer::Theme::Material undef + Data::Printer::Theme::Monokai undef + Data::Printer::Theme::Solarized undef requirements: - Carp 0 - Clone::PP 0 ExtUtils::MakeMaker 0 Fcntl 0 - File::HomeDir 0.91 File::Spec 0 File::Temp 0 - Package::Stash 0.3 Scalar::Util 0 - Sort::Naturally 0 - Term::ANSIColor 3 - Test::More 0.88 + Test::More 0 version 0.77 Data-Section-0.200007 pathname: R/RJ/RJBS/Data-Section-0.200007.tar.gz @@ -1657,27 +1581,27 @@ DISTRIBUTIONS Task::Weaken 0 Tie::ToObject 0.01 namespace::clean 0.19 - DateTime-1.44 - pathname: D/DR/DROLSKY/DateTime-1.44.tar.gz - provides: - DateTime 1.44 - DateTime::Duration 1.44 - DateTime::Helpers 1.44 - DateTime::Infinite 1.44 - DateTime::Infinite::Future 1.44 - DateTime::Infinite::Past 1.44 - DateTime::LeapSecond 1.44 - DateTime::PP 1.44 - DateTime::PPExtra 1.44 - DateTime::Types 1.44 + DateTime-1.54 + pathname: D/DR/DROLSKY/DateTime-1.54.tar.gz + provides: + DateTime 1.54 + DateTime::Duration 1.54 + DateTime::Helpers 1.54 + DateTime::Infinite 1.54 + DateTime::Infinite::Future 1.54 + DateTime::Infinite::Past 1.54 + DateTime::LeapSecond 1.54 + DateTime::PP 1.54 + DateTime::PPExtra 1.54 + DateTime::Types 1.54 requirements: Carp 0 DateTime::Locale 1.06 - DateTime::TimeZone 2.02 + DateTime::TimeZone 2.44 Dist::CheckConflicts 0.02 ExtUtils::MakeMaker 0 POSIX 0 - Params::ValidationCompiler 0.13 + Params::ValidationCompiler 0.26 Scalar::Util 0 Specio 0.18 Specio::Declare 0 @@ -1810,380 +1734,381 @@ DISTRIBUTIONS perl 5.008004 strict 0 warnings 0 - DateTime-TimeZone-2.15 - pathname: D/DR/DROLSKY/DateTime-TimeZone-2.15.tar.gz - provides: - DateTime::TimeZone 2.15 - DateTime::TimeZone::Africa::Abidjan 2.15 - DateTime::TimeZone::Africa::Accra 2.15 - DateTime::TimeZone::Africa::Algiers 2.15 - DateTime::TimeZone::Africa::Bissau 2.15 - DateTime::TimeZone::Africa::Cairo 2.15 - DateTime::TimeZone::Africa::Casablanca 2.15 - DateTime::TimeZone::Africa::Ceuta 2.15 - DateTime::TimeZone::Africa::El_Aaiun 2.15 - DateTime::TimeZone::Africa::Johannesburg 2.15 - DateTime::TimeZone::Africa::Juba 2.15 - DateTime::TimeZone::Africa::Khartoum 2.15 - DateTime::TimeZone::Africa::Lagos 2.15 - DateTime::TimeZone::Africa::Maputo 2.15 - DateTime::TimeZone::Africa::Monrovia 2.15 - DateTime::TimeZone::Africa::Nairobi 2.15 - DateTime::TimeZone::Africa::Ndjamena 2.15 - DateTime::TimeZone::Africa::Tripoli 2.15 - DateTime::TimeZone::Africa::Tunis 2.15 - DateTime::TimeZone::Africa::Windhoek 2.15 - DateTime::TimeZone::America::Adak 2.15 - DateTime::TimeZone::America::Anchorage 2.15 - DateTime::TimeZone::America::Araguaina 2.15 - DateTime::TimeZone::America::Argentina::Buenos_Aires 2.15 - DateTime::TimeZone::America::Argentina::Catamarca 2.15 - DateTime::TimeZone::America::Argentina::Cordoba 2.15 - DateTime::TimeZone::America::Argentina::Jujuy 2.15 - DateTime::TimeZone::America::Argentina::La_Rioja 2.15 - DateTime::TimeZone::America::Argentina::Mendoza 2.15 - DateTime::TimeZone::America::Argentina::Rio_Gallegos 2.15 - DateTime::TimeZone::America::Argentina::Salta 2.15 - DateTime::TimeZone::America::Argentina::San_Juan 2.15 - DateTime::TimeZone::America::Argentina::San_Luis 2.15 - DateTime::TimeZone::America::Argentina::Tucuman 2.15 - DateTime::TimeZone::America::Argentina::Ushuaia 2.15 - DateTime::TimeZone::America::Asuncion 2.15 - DateTime::TimeZone::America::Atikokan 2.15 - DateTime::TimeZone::America::Bahia 2.15 - DateTime::TimeZone::America::Bahia_Banderas 2.15 - DateTime::TimeZone::America::Barbados 2.15 - DateTime::TimeZone::America::Belem 2.15 - DateTime::TimeZone::America::Belize 2.15 - DateTime::TimeZone::America::Blanc_Sablon 2.15 - DateTime::TimeZone::America::Boa_Vista 2.15 - DateTime::TimeZone::America::Bogota 2.15 - DateTime::TimeZone::America::Boise 2.15 - DateTime::TimeZone::America::Cambridge_Bay 2.15 - DateTime::TimeZone::America::Campo_Grande 2.15 - DateTime::TimeZone::America::Cancun 2.15 - DateTime::TimeZone::America::Caracas 2.15 - DateTime::TimeZone::America::Cayenne 2.15 - DateTime::TimeZone::America::Chicago 2.15 - DateTime::TimeZone::America::Chihuahua 2.15 - DateTime::TimeZone::America::Costa_Rica 2.15 - DateTime::TimeZone::America::Creston 2.15 - DateTime::TimeZone::America::Cuiaba 2.15 - DateTime::TimeZone::America::Curacao 2.15 - DateTime::TimeZone::America::Danmarkshavn 2.15 - DateTime::TimeZone::America::Dawson 2.15 - DateTime::TimeZone::America::Dawson_Creek 2.15 - DateTime::TimeZone::America::Denver 2.15 - DateTime::TimeZone::America::Detroit 2.15 - DateTime::TimeZone::America::Edmonton 2.15 - DateTime::TimeZone::America::Eirunepe 2.15 - DateTime::TimeZone::America::El_Salvador 2.15 - DateTime::TimeZone::America::Fort_Nelson 2.15 - DateTime::TimeZone::America::Fortaleza 2.15 - DateTime::TimeZone::America::Glace_Bay 2.15 - DateTime::TimeZone::America::Godthab 2.15 - DateTime::TimeZone::America::Goose_Bay 2.15 - DateTime::TimeZone::America::Grand_Turk 2.15 - DateTime::TimeZone::America::Guatemala 2.15 - DateTime::TimeZone::America::Guayaquil 2.15 - DateTime::TimeZone::America::Guyana 2.15 - DateTime::TimeZone::America::Halifax 2.15 - DateTime::TimeZone::America::Havana 2.15 - DateTime::TimeZone::America::Hermosillo 2.15 - DateTime::TimeZone::America::Indiana::Indianapolis 2.15 - DateTime::TimeZone::America::Indiana::Knox 2.15 - DateTime::TimeZone::America::Indiana::Marengo 2.15 - DateTime::TimeZone::America::Indiana::Petersburg 2.15 - DateTime::TimeZone::America::Indiana::Tell_City 2.15 - DateTime::TimeZone::America::Indiana::Vevay 2.15 - DateTime::TimeZone::America::Indiana::Vincennes 2.15 - DateTime::TimeZone::America::Indiana::Winamac 2.15 - DateTime::TimeZone::America::Inuvik 2.15 - DateTime::TimeZone::America::Iqaluit 2.15 - DateTime::TimeZone::America::Jamaica 2.15 - DateTime::TimeZone::America::Juneau 2.15 - DateTime::TimeZone::America::Kentucky::Louisville 2.15 - DateTime::TimeZone::America::Kentucky::Monticello 2.15 - DateTime::TimeZone::America::La_Paz 2.15 - DateTime::TimeZone::America::Lima 2.15 - DateTime::TimeZone::America::Los_Angeles 2.15 - DateTime::TimeZone::America::Maceio 2.15 - DateTime::TimeZone::America::Managua 2.15 - DateTime::TimeZone::America::Manaus 2.15 - DateTime::TimeZone::America::Martinique 2.15 - DateTime::TimeZone::America::Matamoros 2.15 - DateTime::TimeZone::America::Mazatlan 2.15 - DateTime::TimeZone::America::Menominee 2.15 - DateTime::TimeZone::America::Merida 2.15 - DateTime::TimeZone::America::Metlakatla 2.15 - DateTime::TimeZone::America::Mexico_City 2.15 - DateTime::TimeZone::America::Miquelon 2.15 - DateTime::TimeZone::America::Moncton 2.15 - DateTime::TimeZone::America::Monterrey 2.15 - DateTime::TimeZone::America::Montevideo 2.15 - DateTime::TimeZone::America::Nassau 2.15 - DateTime::TimeZone::America::New_York 2.15 - DateTime::TimeZone::America::Nipigon 2.15 - DateTime::TimeZone::America::Nome 2.15 - DateTime::TimeZone::America::Noronha 2.15 - DateTime::TimeZone::America::North_Dakota::Beulah 2.15 - DateTime::TimeZone::America::North_Dakota::Center 2.15 - DateTime::TimeZone::America::North_Dakota::New_Salem 2.15 - DateTime::TimeZone::America::Ojinaga 2.15 - DateTime::TimeZone::America::Panama 2.15 - DateTime::TimeZone::America::Pangnirtung 2.15 - DateTime::TimeZone::America::Paramaribo 2.15 - DateTime::TimeZone::America::Phoenix 2.15 - DateTime::TimeZone::America::Port_au_Prince 2.15 - DateTime::TimeZone::America::Port_of_Spain 2.15 - DateTime::TimeZone::America::Porto_Velho 2.15 - DateTime::TimeZone::America::Puerto_Rico 2.15 - DateTime::TimeZone::America::Punta_Arenas 2.15 - DateTime::TimeZone::America::Rainy_River 2.15 - DateTime::TimeZone::America::Rankin_Inlet 2.15 - DateTime::TimeZone::America::Recife 2.15 - DateTime::TimeZone::America::Regina 2.15 - DateTime::TimeZone::America::Resolute 2.15 - DateTime::TimeZone::America::Rio_Branco 2.15 - DateTime::TimeZone::America::Santarem 2.15 - DateTime::TimeZone::America::Santiago 2.15 - DateTime::TimeZone::America::Santo_Domingo 2.15 - DateTime::TimeZone::America::Sao_Paulo 2.15 - DateTime::TimeZone::America::Scoresbysund 2.15 - DateTime::TimeZone::America::Sitka 2.15 - DateTime::TimeZone::America::St_Johns 2.15 - DateTime::TimeZone::America::Swift_Current 2.15 - DateTime::TimeZone::America::Tegucigalpa 2.15 - DateTime::TimeZone::America::Thule 2.15 - DateTime::TimeZone::America::Thunder_Bay 2.15 - DateTime::TimeZone::America::Tijuana 2.15 - DateTime::TimeZone::America::Toronto 2.15 - DateTime::TimeZone::America::Vancouver 2.15 - DateTime::TimeZone::America::Whitehorse 2.15 - DateTime::TimeZone::America::Winnipeg 2.15 - DateTime::TimeZone::America::Yakutat 2.15 - DateTime::TimeZone::America::Yellowknife 2.15 - DateTime::TimeZone::Antarctica::Casey 2.15 - DateTime::TimeZone::Antarctica::Davis 2.15 - DateTime::TimeZone::Antarctica::DumontDUrville 2.15 - DateTime::TimeZone::Antarctica::Macquarie 2.15 - DateTime::TimeZone::Antarctica::Mawson 2.15 - DateTime::TimeZone::Antarctica::Palmer 2.15 - DateTime::TimeZone::Antarctica::Rothera 2.15 - DateTime::TimeZone::Antarctica::Syowa 2.15 - DateTime::TimeZone::Antarctica::Troll 2.15 - DateTime::TimeZone::Antarctica::Vostok 2.15 - DateTime::TimeZone::Asia::Almaty 2.15 - DateTime::TimeZone::Asia::Amman 2.15 - DateTime::TimeZone::Asia::Anadyr 2.15 - DateTime::TimeZone::Asia::Aqtau 2.15 - DateTime::TimeZone::Asia::Aqtobe 2.15 - DateTime::TimeZone::Asia::Ashgabat 2.15 - DateTime::TimeZone::Asia::Atyrau 2.15 - DateTime::TimeZone::Asia::Baghdad 2.15 - DateTime::TimeZone::Asia::Baku 2.15 - DateTime::TimeZone::Asia::Bangkok 2.15 - DateTime::TimeZone::Asia::Barnaul 2.15 - DateTime::TimeZone::Asia::Beirut 2.15 - DateTime::TimeZone::Asia::Bishkek 2.15 - DateTime::TimeZone::Asia::Brunei 2.15 - DateTime::TimeZone::Asia::Chita 2.15 - DateTime::TimeZone::Asia::Choibalsan 2.15 - DateTime::TimeZone::Asia::Colombo 2.15 - DateTime::TimeZone::Asia::Damascus 2.15 - DateTime::TimeZone::Asia::Dhaka 2.15 - DateTime::TimeZone::Asia::Dili 2.15 - DateTime::TimeZone::Asia::Dubai 2.15 - DateTime::TimeZone::Asia::Dushanbe 2.15 - DateTime::TimeZone::Asia::Famagusta 2.15 - DateTime::TimeZone::Asia::Gaza 2.15 - DateTime::TimeZone::Asia::Hebron 2.15 - DateTime::TimeZone::Asia::Ho_Chi_Minh 2.15 - DateTime::TimeZone::Asia::Hong_Kong 2.15 - DateTime::TimeZone::Asia::Hovd 2.15 - DateTime::TimeZone::Asia::Irkutsk 2.15 - DateTime::TimeZone::Asia::Jakarta 2.15 - DateTime::TimeZone::Asia::Jayapura 2.15 - DateTime::TimeZone::Asia::Jerusalem 2.15 - DateTime::TimeZone::Asia::Kabul 2.15 - DateTime::TimeZone::Asia::Kamchatka 2.15 - DateTime::TimeZone::Asia::Karachi 2.15 - DateTime::TimeZone::Asia::Kathmandu 2.15 - DateTime::TimeZone::Asia::Khandyga 2.15 - DateTime::TimeZone::Asia::Kolkata 2.15 - DateTime::TimeZone::Asia::Krasnoyarsk 2.15 - DateTime::TimeZone::Asia::Kuala_Lumpur 2.15 - DateTime::TimeZone::Asia::Kuching 2.15 - DateTime::TimeZone::Asia::Macau 2.15 - DateTime::TimeZone::Asia::Magadan 2.15 - DateTime::TimeZone::Asia::Makassar 2.15 - DateTime::TimeZone::Asia::Manila 2.15 - DateTime::TimeZone::Asia::Nicosia 2.15 - DateTime::TimeZone::Asia::Novokuznetsk 2.15 - DateTime::TimeZone::Asia::Novosibirsk 2.15 - DateTime::TimeZone::Asia::Omsk 2.15 - DateTime::TimeZone::Asia::Oral 2.15 - DateTime::TimeZone::Asia::Pontianak 2.15 - DateTime::TimeZone::Asia::Pyongyang 2.15 - DateTime::TimeZone::Asia::Qatar 2.15 - DateTime::TimeZone::Asia::Qyzylorda 2.15 - DateTime::TimeZone::Asia::Riyadh 2.15 - DateTime::TimeZone::Asia::Sakhalin 2.15 - DateTime::TimeZone::Asia::Samarkand 2.15 - DateTime::TimeZone::Asia::Seoul 2.15 - DateTime::TimeZone::Asia::Shanghai 2.15 - DateTime::TimeZone::Asia::Singapore 2.15 - DateTime::TimeZone::Asia::Srednekolymsk 2.15 - DateTime::TimeZone::Asia::Taipei 2.15 - DateTime::TimeZone::Asia::Tashkent 2.15 - DateTime::TimeZone::Asia::Tbilisi 2.15 - DateTime::TimeZone::Asia::Tehran 2.15 - DateTime::TimeZone::Asia::Thimphu 2.15 - DateTime::TimeZone::Asia::Tokyo 2.15 - DateTime::TimeZone::Asia::Tomsk 2.15 - DateTime::TimeZone::Asia::Ulaanbaatar 2.15 - DateTime::TimeZone::Asia::Urumqi 2.15 - DateTime::TimeZone::Asia::Ust_Nera 2.15 - DateTime::TimeZone::Asia::Vladivostok 2.15 - DateTime::TimeZone::Asia::Yakutsk 2.15 - DateTime::TimeZone::Asia::Yangon 2.15 - DateTime::TimeZone::Asia::Yekaterinburg 2.15 - DateTime::TimeZone::Asia::Yerevan 2.15 - DateTime::TimeZone::Atlantic::Azores 2.15 - DateTime::TimeZone::Atlantic::Bermuda 2.15 - DateTime::TimeZone::Atlantic::Canary 2.15 - DateTime::TimeZone::Atlantic::Cape_Verde 2.15 - DateTime::TimeZone::Atlantic::Faroe 2.15 - DateTime::TimeZone::Atlantic::Madeira 2.15 - DateTime::TimeZone::Atlantic::Reykjavik 2.15 - DateTime::TimeZone::Atlantic::South_Georgia 2.15 - DateTime::TimeZone::Atlantic::Stanley 2.15 - DateTime::TimeZone::Australia::Adelaide 2.15 - DateTime::TimeZone::Australia::Brisbane 2.15 - DateTime::TimeZone::Australia::Broken_Hill 2.15 - DateTime::TimeZone::Australia::Currie 2.15 - DateTime::TimeZone::Australia::Darwin 2.15 - DateTime::TimeZone::Australia::Eucla 2.15 - DateTime::TimeZone::Australia::Hobart 2.15 - DateTime::TimeZone::Australia::Lindeman 2.15 - DateTime::TimeZone::Australia::Lord_Howe 2.15 - DateTime::TimeZone::Australia::Melbourne 2.15 - DateTime::TimeZone::Australia::Perth 2.15 - DateTime::TimeZone::Australia::Sydney 2.15 - DateTime::TimeZone::CET 2.15 - DateTime::TimeZone::CST6CDT 2.15 - DateTime::TimeZone::Catalog 2.15 - DateTime::TimeZone::EET 2.15 - DateTime::TimeZone::EST 2.15 - DateTime::TimeZone::EST5EDT 2.15 - DateTime::TimeZone::Europe::Amsterdam 2.15 - DateTime::TimeZone::Europe::Andorra 2.15 - DateTime::TimeZone::Europe::Astrakhan 2.15 - DateTime::TimeZone::Europe::Athens 2.15 - DateTime::TimeZone::Europe::Belgrade 2.15 - DateTime::TimeZone::Europe::Berlin 2.15 - DateTime::TimeZone::Europe::Brussels 2.15 - DateTime::TimeZone::Europe::Bucharest 2.15 - DateTime::TimeZone::Europe::Budapest 2.15 - DateTime::TimeZone::Europe::Chisinau 2.15 - DateTime::TimeZone::Europe::Copenhagen 2.15 - DateTime::TimeZone::Europe::Dublin 2.15 - DateTime::TimeZone::Europe::Gibraltar 2.15 - DateTime::TimeZone::Europe::Helsinki 2.15 - DateTime::TimeZone::Europe::Istanbul 2.15 - DateTime::TimeZone::Europe::Kaliningrad 2.15 - DateTime::TimeZone::Europe::Kiev 2.15 - DateTime::TimeZone::Europe::Kirov 2.15 - DateTime::TimeZone::Europe::Lisbon 2.15 - DateTime::TimeZone::Europe::London 2.15 - DateTime::TimeZone::Europe::Luxembourg 2.15 - DateTime::TimeZone::Europe::Madrid 2.15 - DateTime::TimeZone::Europe::Malta 2.15 - DateTime::TimeZone::Europe::Minsk 2.15 - DateTime::TimeZone::Europe::Monaco 2.15 - DateTime::TimeZone::Europe::Moscow 2.15 - DateTime::TimeZone::Europe::Oslo 2.15 - DateTime::TimeZone::Europe::Paris 2.15 - DateTime::TimeZone::Europe::Prague 2.15 - DateTime::TimeZone::Europe::Riga 2.15 - DateTime::TimeZone::Europe::Rome 2.15 - DateTime::TimeZone::Europe::Samara 2.15 - DateTime::TimeZone::Europe::Saratov 2.15 - DateTime::TimeZone::Europe::Simferopol 2.15 - DateTime::TimeZone::Europe::Sofia 2.15 - DateTime::TimeZone::Europe::Stockholm 2.15 - DateTime::TimeZone::Europe::Tallinn 2.15 - DateTime::TimeZone::Europe::Tirane 2.15 - DateTime::TimeZone::Europe::Ulyanovsk 2.15 - DateTime::TimeZone::Europe::Uzhgorod 2.15 - DateTime::TimeZone::Europe::Vienna 2.15 - DateTime::TimeZone::Europe::Vilnius 2.15 - DateTime::TimeZone::Europe::Volgograd 2.15 - DateTime::TimeZone::Europe::Warsaw 2.15 - DateTime::TimeZone::Europe::Zaporozhye 2.15 - DateTime::TimeZone::Europe::Zurich 2.15 - DateTime::TimeZone::Floating 2.15 - DateTime::TimeZone::HST 2.15 - DateTime::TimeZone::Indian::Chagos 2.15 - DateTime::TimeZone::Indian::Christmas 2.15 - DateTime::TimeZone::Indian::Cocos 2.15 - DateTime::TimeZone::Indian::Kerguelen 2.15 - DateTime::TimeZone::Indian::Mahe 2.15 - DateTime::TimeZone::Indian::Maldives 2.15 - DateTime::TimeZone::Indian::Mauritius 2.15 - DateTime::TimeZone::Indian::Reunion 2.15 - DateTime::TimeZone::Local 2.15 - DateTime::TimeZone::Local::Android 2.15 - DateTime::TimeZone::Local::Unix 2.15 - DateTime::TimeZone::Local::VMS 2.15 - DateTime::TimeZone::MET 2.15 - DateTime::TimeZone::MST 2.15 - DateTime::TimeZone::MST7MDT 2.15 - DateTime::TimeZone::OffsetOnly 2.15 - DateTime::TimeZone::OlsonDB 2.15 - DateTime::TimeZone::OlsonDB::Change 2.15 - DateTime::TimeZone::OlsonDB::Observance 2.15 - DateTime::TimeZone::OlsonDB::Rule 2.15 - DateTime::TimeZone::OlsonDB::Zone 2.15 - DateTime::TimeZone::PST8PDT 2.15 - DateTime::TimeZone::Pacific::Apia 2.15 - DateTime::TimeZone::Pacific::Auckland 2.15 - DateTime::TimeZone::Pacific::Bougainville 2.15 - DateTime::TimeZone::Pacific::Chatham 2.15 - DateTime::TimeZone::Pacific::Chuuk 2.15 - DateTime::TimeZone::Pacific::Easter 2.15 - DateTime::TimeZone::Pacific::Efate 2.15 - DateTime::TimeZone::Pacific::Enderbury 2.15 - DateTime::TimeZone::Pacific::Fakaofo 2.15 - DateTime::TimeZone::Pacific::Fiji 2.15 - DateTime::TimeZone::Pacific::Funafuti 2.15 - DateTime::TimeZone::Pacific::Galapagos 2.15 - DateTime::TimeZone::Pacific::Gambier 2.15 - DateTime::TimeZone::Pacific::Guadalcanal 2.15 - DateTime::TimeZone::Pacific::Guam 2.15 - DateTime::TimeZone::Pacific::Honolulu 2.15 - DateTime::TimeZone::Pacific::Kiritimati 2.15 - DateTime::TimeZone::Pacific::Kosrae 2.15 - DateTime::TimeZone::Pacific::Kwajalein 2.15 - DateTime::TimeZone::Pacific::Majuro 2.15 - DateTime::TimeZone::Pacific::Marquesas 2.15 - DateTime::TimeZone::Pacific::Nauru 2.15 - DateTime::TimeZone::Pacific::Niue 2.15 - DateTime::TimeZone::Pacific::Norfolk 2.15 - DateTime::TimeZone::Pacific::Noumea 2.15 - DateTime::TimeZone::Pacific::Pago_Pago 2.15 - DateTime::TimeZone::Pacific::Palau 2.15 - DateTime::TimeZone::Pacific::Pitcairn 2.15 - DateTime::TimeZone::Pacific::Pohnpei 2.15 - DateTime::TimeZone::Pacific::Port_Moresby 2.15 - DateTime::TimeZone::Pacific::Rarotonga 2.15 - DateTime::TimeZone::Pacific::Tahiti 2.15 - DateTime::TimeZone::Pacific::Tarawa 2.15 - DateTime::TimeZone::Pacific::Tongatapu 2.15 - DateTime::TimeZone::Pacific::Wake 2.15 - DateTime::TimeZone::Pacific::Wallis 2.15 - DateTime::TimeZone::UTC 2.15 - DateTime::TimeZone::WET 2.15 + DateTime-TimeZone-2.47 + pathname: D/DR/DROLSKY/DateTime-TimeZone-2.47.tar.gz + provides: + DateTime::TimeZone 2.47 + DateTime::TimeZone::Africa::Abidjan 2.47 + DateTime::TimeZone::Africa::Accra 2.47 + DateTime::TimeZone::Africa::Algiers 2.47 + DateTime::TimeZone::Africa::Bissau 2.47 + DateTime::TimeZone::Africa::Cairo 2.47 + DateTime::TimeZone::Africa::Casablanca 2.47 + DateTime::TimeZone::Africa::Ceuta 2.47 + DateTime::TimeZone::Africa::El_Aaiun 2.47 + DateTime::TimeZone::Africa::Johannesburg 2.47 + DateTime::TimeZone::Africa::Juba 2.47 + DateTime::TimeZone::Africa::Khartoum 2.47 + DateTime::TimeZone::Africa::Lagos 2.47 + DateTime::TimeZone::Africa::Maputo 2.47 + DateTime::TimeZone::Africa::Monrovia 2.47 + DateTime::TimeZone::Africa::Nairobi 2.47 + DateTime::TimeZone::Africa::Ndjamena 2.47 + DateTime::TimeZone::Africa::Sao_Tome 2.47 + DateTime::TimeZone::Africa::Tripoli 2.47 + DateTime::TimeZone::Africa::Tunis 2.47 + DateTime::TimeZone::Africa::Windhoek 2.47 + DateTime::TimeZone::America::Adak 2.47 + DateTime::TimeZone::America::Anchorage 2.47 + DateTime::TimeZone::America::Araguaina 2.47 + DateTime::TimeZone::America::Argentina::Buenos_Aires 2.47 + DateTime::TimeZone::America::Argentina::Catamarca 2.47 + DateTime::TimeZone::America::Argentina::Cordoba 2.47 + DateTime::TimeZone::America::Argentina::Jujuy 2.47 + DateTime::TimeZone::America::Argentina::La_Rioja 2.47 + DateTime::TimeZone::America::Argentina::Mendoza 2.47 + DateTime::TimeZone::America::Argentina::Rio_Gallegos 2.47 + DateTime::TimeZone::America::Argentina::Salta 2.47 + DateTime::TimeZone::America::Argentina::San_Juan 2.47 + DateTime::TimeZone::America::Argentina::San_Luis 2.47 + DateTime::TimeZone::America::Argentina::Tucuman 2.47 + DateTime::TimeZone::America::Argentina::Ushuaia 2.47 + DateTime::TimeZone::America::Asuncion 2.47 + DateTime::TimeZone::America::Atikokan 2.47 + DateTime::TimeZone::America::Bahia 2.47 + DateTime::TimeZone::America::Bahia_Banderas 2.47 + DateTime::TimeZone::America::Barbados 2.47 + DateTime::TimeZone::America::Belem 2.47 + DateTime::TimeZone::America::Belize 2.47 + DateTime::TimeZone::America::Blanc_Sablon 2.47 + DateTime::TimeZone::America::Boa_Vista 2.47 + DateTime::TimeZone::America::Bogota 2.47 + DateTime::TimeZone::America::Boise 2.47 + DateTime::TimeZone::America::Cambridge_Bay 2.47 + DateTime::TimeZone::America::Campo_Grande 2.47 + DateTime::TimeZone::America::Cancun 2.47 + DateTime::TimeZone::America::Caracas 2.47 + DateTime::TimeZone::America::Cayenne 2.47 + DateTime::TimeZone::America::Chicago 2.47 + DateTime::TimeZone::America::Chihuahua 2.47 + DateTime::TimeZone::America::Costa_Rica 2.47 + DateTime::TimeZone::America::Creston 2.47 + DateTime::TimeZone::America::Cuiaba 2.47 + DateTime::TimeZone::America::Curacao 2.47 + DateTime::TimeZone::America::Danmarkshavn 2.47 + DateTime::TimeZone::America::Dawson 2.47 + DateTime::TimeZone::America::Dawson_Creek 2.47 + DateTime::TimeZone::America::Denver 2.47 + DateTime::TimeZone::America::Detroit 2.47 + DateTime::TimeZone::America::Edmonton 2.47 + DateTime::TimeZone::America::Eirunepe 2.47 + DateTime::TimeZone::America::El_Salvador 2.47 + DateTime::TimeZone::America::Fort_Nelson 2.47 + DateTime::TimeZone::America::Fortaleza 2.47 + DateTime::TimeZone::America::Glace_Bay 2.47 + DateTime::TimeZone::America::Goose_Bay 2.47 + DateTime::TimeZone::America::Grand_Turk 2.47 + DateTime::TimeZone::America::Guatemala 2.47 + DateTime::TimeZone::America::Guayaquil 2.47 + DateTime::TimeZone::America::Guyana 2.47 + DateTime::TimeZone::America::Halifax 2.47 + DateTime::TimeZone::America::Havana 2.47 + DateTime::TimeZone::America::Hermosillo 2.47 + DateTime::TimeZone::America::Indiana::Indianapolis 2.47 + DateTime::TimeZone::America::Indiana::Knox 2.47 + DateTime::TimeZone::America::Indiana::Marengo 2.47 + DateTime::TimeZone::America::Indiana::Petersburg 2.47 + DateTime::TimeZone::America::Indiana::Tell_City 2.47 + DateTime::TimeZone::America::Indiana::Vevay 2.47 + DateTime::TimeZone::America::Indiana::Vincennes 2.47 + DateTime::TimeZone::America::Indiana::Winamac 2.47 + DateTime::TimeZone::America::Inuvik 2.47 + DateTime::TimeZone::America::Iqaluit 2.47 + DateTime::TimeZone::America::Jamaica 2.47 + DateTime::TimeZone::America::Juneau 2.47 + DateTime::TimeZone::America::Kentucky::Louisville 2.47 + DateTime::TimeZone::America::Kentucky::Monticello 2.47 + DateTime::TimeZone::America::La_Paz 2.47 + DateTime::TimeZone::America::Lima 2.47 + DateTime::TimeZone::America::Los_Angeles 2.47 + DateTime::TimeZone::America::Maceio 2.47 + DateTime::TimeZone::America::Managua 2.47 + DateTime::TimeZone::America::Manaus 2.47 + DateTime::TimeZone::America::Martinique 2.47 + DateTime::TimeZone::America::Matamoros 2.47 + DateTime::TimeZone::America::Mazatlan 2.47 + DateTime::TimeZone::America::Menominee 2.47 + DateTime::TimeZone::America::Merida 2.47 + DateTime::TimeZone::America::Metlakatla 2.47 + DateTime::TimeZone::America::Mexico_City 2.47 + DateTime::TimeZone::America::Miquelon 2.47 + DateTime::TimeZone::America::Moncton 2.47 + DateTime::TimeZone::America::Monterrey 2.47 + DateTime::TimeZone::America::Montevideo 2.47 + DateTime::TimeZone::America::Nassau 2.47 + DateTime::TimeZone::America::New_York 2.47 + DateTime::TimeZone::America::Nipigon 2.47 + DateTime::TimeZone::America::Nome 2.47 + DateTime::TimeZone::America::Noronha 2.47 + DateTime::TimeZone::America::North_Dakota::Beulah 2.47 + DateTime::TimeZone::America::North_Dakota::Center 2.47 + DateTime::TimeZone::America::North_Dakota::New_Salem 2.47 + DateTime::TimeZone::America::Nuuk 2.47 + DateTime::TimeZone::America::Ojinaga 2.47 + DateTime::TimeZone::America::Panama 2.47 + DateTime::TimeZone::America::Pangnirtung 2.47 + DateTime::TimeZone::America::Paramaribo 2.47 + DateTime::TimeZone::America::Phoenix 2.47 + DateTime::TimeZone::America::Port_au_Prince 2.47 + DateTime::TimeZone::America::Port_of_Spain 2.47 + DateTime::TimeZone::America::Porto_Velho 2.47 + DateTime::TimeZone::America::Puerto_Rico 2.47 + DateTime::TimeZone::America::Punta_Arenas 2.47 + DateTime::TimeZone::America::Rainy_River 2.47 + DateTime::TimeZone::America::Rankin_Inlet 2.47 + DateTime::TimeZone::America::Recife 2.47 + DateTime::TimeZone::America::Regina 2.47 + DateTime::TimeZone::America::Resolute 2.47 + DateTime::TimeZone::America::Rio_Branco 2.47 + DateTime::TimeZone::America::Santarem 2.47 + DateTime::TimeZone::America::Santiago 2.47 + DateTime::TimeZone::America::Santo_Domingo 2.47 + DateTime::TimeZone::America::Sao_Paulo 2.47 + DateTime::TimeZone::America::Scoresbysund 2.47 + DateTime::TimeZone::America::Sitka 2.47 + DateTime::TimeZone::America::St_Johns 2.47 + DateTime::TimeZone::America::Swift_Current 2.47 + DateTime::TimeZone::America::Tegucigalpa 2.47 + DateTime::TimeZone::America::Thule 2.47 + DateTime::TimeZone::America::Thunder_Bay 2.47 + DateTime::TimeZone::America::Tijuana 2.47 + DateTime::TimeZone::America::Toronto 2.47 + DateTime::TimeZone::America::Vancouver 2.47 + DateTime::TimeZone::America::Whitehorse 2.47 + DateTime::TimeZone::America::Winnipeg 2.47 + DateTime::TimeZone::America::Yakutat 2.47 + DateTime::TimeZone::America::Yellowknife 2.47 + DateTime::TimeZone::Antarctica::Casey 2.47 + DateTime::TimeZone::Antarctica::Davis 2.47 + DateTime::TimeZone::Antarctica::DumontDUrville 2.47 + DateTime::TimeZone::Antarctica::Macquarie 2.47 + DateTime::TimeZone::Antarctica::Mawson 2.47 + DateTime::TimeZone::Antarctica::Palmer 2.47 + DateTime::TimeZone::Antarctica::Rothera 2.47 + DateTime::TimeZone::Antarctica::Syowa 2.47 + DateTime::TimeZone::Antarctica::Troll 2.47 + DateTime::TimeZone::Antarctica::Vostok 2.47 + DateTime::TimeZone::Asia::Almaty 2.47 + DateTime::TimeZone::Asia::Amman 2.47 + DateTime::TimeZone::Asia::Anadyr 2.47 + DateTime::TimeZone::Asia::Aqtau 2.47 + DateTime::TimeZone::Asia::Aqtobe 2.47 + DateTime::TimeZone::Asia::Ashgabat 2.47 + DateTime::TimeZone::Asia::Atyrau 2.47 + DateTime::TimeZone::Asia::Baghdad 2.47 + DateTime::TimeZone::Asia::Baku 2.47 + DateTime::TimeZone::Asia::Bangkok 2.47 + DateTime::TimeZone::Asia::Barnaul 2.47 + DateTime::TimeZone::Asia::Beirut 2.47 + DateTime::TimeZone::Asia::Bishkek 2.47 + DateTime::TimeZone::Asia::Brunei 2.47 + DateTime::TimeZone::Asia::Chita 2.47 + DateTime::TimeZone::Asia::Choibalsan 2.47 + DateTime::TimeZone::Asia::Colombo 2.47 + DateTime::TimeZone::Asia::Damascus 2.47 + DateTime::TimeZone::Asia::Dhaka 2.47 + DateTime::TimeZone::Asia::Dili 2.47 + DateTime::TimeZone::Asia::Dubai 2.47 + DateTime::TimeZone::Asia::Dushanbe 2.47 + DateTime::TimeZone::Asia::Famagusta 2.47 + DateTime::TimeZone::Asia::Gaza 2.47 + DateTime::TimeZone::Asia::Hebron 2.47 + DateTime::TimeZone::Asia::Ho_Chi_Minh 2.47 + DateTime::TimeZone::Asia::Hong_Kong 2.47 + DateTime::TimeZone::Asia::Hovd 2.47 + DateTime::TimeZone::Asia::Irkutsk 2.47 + DateTime::TimeZone::Asia::Jakarta 2.47 + DateTime::TimeZone::Asia::Jayapura 2.47 + DateTime::TimeZone::Asia::Jerusalem 2.47 + DateTime::TimeZone::Asia::Kabul 2.47 + DateTime::TimeZone::Asia::Kamchatka 2.47 + DateTime::TimeZone::Asia::Karachi 2.47 + DateTime::TimeZone::Asia::Kathmandu 2.47 + DateTime::TimeZone::Asia::Khandyga 2.47 + DateTime::TimeZone::Asia::Kolkata 2.47 + DateTime::TimeZone::Asia::Krasnoyarsk 2.47 + DateTime::TimeZone::Asia::Kuala_Lumpur 2.47 + DateTime::TimeZone::Asia::Kuching 2.47 + DateTime::TimeZone::Asia::Macau 2.47 + DateTime::TimeZone::Asia::Magadan 2.47 + DateTime::TimeZone::Asia::Makassar 2.47 + DateTime::TimeZone::Asia::Manila 2.47 + DateTime::TimeZone::Asia::Nicosia 2.47 + DateTime::TimeZone::Asia::Novokuznetsk 2.47 + DateTime::TimeZone::Asia::Novosibirsk 2.47 + DateTime::TimeZone::Asia::Omsk 2.47 + DateTime::TimeZone::Asia::Oral 2.47 + DateTime::TimeZone::Asia::Pontianak 2.47 + DateTime::TimeZone::Asia::Pyongyang 2.47 + DateTime::TimeZone::Asia::Qatar 2.47 + DateTime::TimeZone::Asia::Qostanay 2.47 + DateTime::TimeZone::Asia::Qyzylorda 2.47 + DateTime::TimeZone::Asia::Riyadh 2.47 + DateTime::TimeZone::Asia::Sakhalin 2.47 + DateTime::TimeZone::Asia::Samarkand 2.47 + DateTime::TimeZone::Asia::Seoul 2.47 + DateTime::TimeZone::Asia::Shanghai 2.47 + DateTime::TimeZone::Asia::Singapore 2.47 + DateTime::TimeZone::Asia::Srednekolymsk 2.47 + DateTime::TimeZone::Asia::Taipei 2.47 + DateTime::TimeZone::Asia::Tashkent 2.47 + DateTime::TimeZone::Asia::Tbilisi 2.47 + DateTime::TimeZone::Asia::Tehran 2.47 + DateTime::TimeZone::Asia::Thimphu 2.47 + DateTime::TimeZone::Asia::Tokyo 2.47 + DateTime::TimeZone::Asia::Tomsk 2.47 + DateTime::TimeZone::Asia::Ulaanbaatar 2.47 + DateTime::TimeZone::Asia::Urumqi 2.47 + DateTime::TimeZone::Asia::Ust_Nera 2.47 + DateTime::TimeZone::Asia::Vladivostok 2.47 + DateTime::TimeZone::Asia::Yakutsk 2.47 + DateTime::TimeZone::Asia::Yangon 2.47 + DateTime::TimeZone::Asia::Yekaterinburg 2.47 + DateTime::TimeZone::Asia::Yerevan 2.47 + DateTime::TimeZone::Atlantic::Azores 2.47 + DateTime::TimeZone::Atlantic::Bermuda 2.47 + DateTime::TimeZone::Atlantic::Canary 2.47 + DateTime::TimeZone::Atlantic::Cape_Verde 2.47 + DateTime::TimeZone::Atlantic::Faroe 2.47 + DateTime::TimeZone::Atlantic::Madeira 2.47 + DateTime::TimeZone::Atlantic::Reykjavik 2.47 + DateTime::TimeZone::Atlantic::South_Georgia 2.47 + DateTime::TimeZone::Atlantic::Stanley 2.47 + DateTime::TimeZone::Australia::Adelaide 2.47 + DateTime::TimeZone::Australia::Brisbane 2.47 + DateTime::TimeZone::Australia::Broken_Hill 2.47 + DateTime::TimeZone::Australia::Darwin 2.47 + DateTime::TimeZone::Australia::Eucla 2.47 + DateTime::TimeZone::Australia::Hobart 2.47 + DateTime::TimeZone::Australia::Lindeman 2.47 + DateTime::TimeZone::Australia::Lord_Howe 2.47 + DateTime::TimeZone::Australia::Melbourne 2.47 + DateTime::TimeZone::Australia::Perth 2.47 + DateTime::TimeZone::Australia::Sydney 2.47 + DateTime::TimeZone::CET 2.47 + DateTime::TimeZone::CST6CDT 2.47 + DateTime::TimeZone::Catalog 2.47 + DateTime::TimeZone::EET 2.47 + DateTime::TimeZone::EST 2.47 + DateTime::TimeZone::EST5EDT 2.47 + DateTime::TimeZone::Europe::Amsterdam 2.47 + DateTime::TimeZone::Europe::Andorra 2.47 + DateTime::TimeZone::Europe::Astrakhan 2.47 + DateTime::TimeZone::Europe::Athens 2.47 + DateTime::TimeZone::Europe::Belgrade 2.47 + DateTime::TimeZone::Europe::Berlin 2.47 + DateTime::TimeZone::Europe::Brussels 2.47 + DateTime::TimeZone::Europe::Bucharest 2.47 + DateTime::TimeZone::Europe::Budapest 2.47 + DateTime::TimeZone::Europe::Chisinau 2.47 + DateTime::TimeZone::Europe::Copenhagen 2.47 + DateTime::TimeZone::Europe::Dublin 2.47 + DateTime::TimeZone::Europe::Gibraltar 2.47 + DateTime::TimeZone::Europe::Helsinki 2.47 + DateTime::TimeZone::Europe::Istanbul 2.47 + DateTime::TimeZone::Europe::Kaliningrad 2.47 + DateTime::TimeZone::Europe::Kiev 2.47 + DateTime::TimeZone::Europe::Kirov 2.47 + DateTime::TimeZone::Europe::Lisbon 2.47 + DateTime::TimeZone::Europe::London 2.47 + DateTime::TimeZone::Europe::Luxembourg 2.47 + DateTime::TimeZone::Europe::Madrid 2.47 + DateTime::TimeZone::Europe::Malta 2.47 + DateTime::TimeZone::Europe::Minsk 2.47 + DateTime::TimeZone::Europe::Monaco 2.47 + DateTime::TimeZone::Europe::Moscow 2.47 + DateTime::TimeZone::Europe::Oslo 2.47 + DateTime::TimeZone::Europe::Paris 2.47 + DateTime::TimeZone::Europe::Prague 2.47 + DateTime::TimeZone::Europe::Riga 2.47 + DateTime::TimeZone::Europe::Rome 2.47 + DateTime::TimeZone::Europe::Samara 2.47 + DateTime::TimeZone::Europe::Saratov 2.47 + DateTime::TimeZone::Europe::Simferopol 2.47 + DateTime::TimeZone::Europe::Sofia 2.47 + DateTime::TimeZone::Europe::Stockholm 2.47 + DateTime::TimeZone::Europe::Tallinn 2.47 + DateTime::TimeZone::Europe::Tirane 2.47 + DateTime::TimeZone::Europe::Ulyanovsk 2.47 + DateTime::TimeZone::Europe::Uzhgorod 2.47 + DateTime::TimeZone::Europe::Vienna 2.47 + DateTime::TimeZone::Europe::Vilnius 2.47 + DateTime::TimeZone::Europe::Volgograd 2.47 + DateTime::TimeZone::Europe::Warsaw 2.47 + DateTime::TimeZone::Europe::Zaporozhye 2.47 + DateTime::TimeZone::Europe::Zurich 2.47 + DateTime::TimeZone::Floating 2.47 + DateTime::TimeZone::HST 2.47 + DateTime::TimeZone::Indian::Chagos 2.47 + DateTime::TimeZone::Indian::Christmas 2.47 + DateTime::TimeZone::Indian::Cocos 2.47 + DateTime::TimeZone::Indian::Kerguelen 2.47 + DateTime::TimeZone::Indian::Mahe 2.47 + DateTime::TimeZone::Indian::Maldives 2.47 + DateTime::TimeZone::Indian::Mauritius 2.47 + DateTime::TimeZone::Indian::Reunion 2.47 + DateTime::TimeZone::Local 2.47 + DateTime::TimeZone::Local::Android 2.47 + DateTime::TimeZone::Local::Unix 2.47 + DateTime::TimeZone::Local::VMS 2.47 + DateTime::TimeZone::MET 2.47 + DateTime::TimeZone::MST 2.47 + DateTime::TimeZone::MST7MDT 2.47 + DateTime::TimeZone::OffsetOnly 2.47 + DateTime::TimeZone::OlsonDB 2.47 + DateTime::TimeZone::OlsonDB::Change 2.47 + DateTime::TimeZone::OlsonDB::Observance 2.47 + DateTime::TimeZone::OlsonDB::Rule 2.47 + DateTime::TimeZone::OlsonDB::Zone 2.47 + DateTime::TimeZone::PST8PDT 2.47 + DateTime::TimeZone::Pacific::Apia 2.47 + DateTime::TimeZone::Pacific::Auckland 2.47 + DateTime::TimeZone::Pacific::Bougainville 2.47 + DateTime::TimeZone::Pacific::Chatham 2.47 + DateTime::TimeZone::Pacific::Chuuk 2.47 + DateTime::TimeZone::Pacific::Easter 2.47 + DateTime::TimeZone::Pacific::Efate 2.47 + DateTime::TimeZone::Pacific::Enderbury 2.47 + DateTime::TimeZone::Pacific::Fakaofo 2.47 + DateTime::TimeZone::Pacific::Fiji 2.47 + DateTime::TimeZone::Pacific::Funafuti 2.47 + DateTime::TimeZone::Pacific::Galapagos 2.47 + DateTime::TimeZone::Pacific::Gambier 2.47 + DateTime::TimeZone::Pacific::Guadalcanal 2.47 + DateTime::TimeZone::Pacific::Guam 2.47 + DateTime::TimeZone::Pacific::Honolulu 2.47 + DateTime::TimeZone::Pacific::Kiritimati 2.47 + DateTime::TimeZone::Pacific::Kosrae 2.47 + DateTime::TimeZone::Pacific::Kwajalein 2.47 + DateTime::TimeZone::Pacific::Majuro 2.47 + DateTime::TimeZone::Pacific::Marquesas 2.47 + DateTime::TimeZone::Pacific::Nauru 2.47 + DateTime::TimeZone::Pacific::Niue 2.47 + DateTime::TimeZone::Pacific::Norfolk 2.47 + DateTime::TimeZone::Pacific::Noumea 2.47 + DateTime::TimeZone::Pacific::Pago_Pago 2.47 + DateTime::TimeZone::Pacific::Palau 2.47 + DateTime::TimeZone::Pacific::Pitcairn 2.47 + DateTime::TimeZone::Pacific::Pohnpei 2.47 + DateTime::TimeZone::Pacific::Port_Moresby 2.47 + DateTime::TimeZone::Pacific::Rarotonga 2.47 + DateTime::TimeZone::Pacific::Tahiti 2.47 + DateTime::TimeZone::Pacific::Tarawa 2.47 + DateTime::TimeZone::Pacific::Tongatapu 2.47 + DateTime::TimeZone::Pacific::Wake 2.47 + DateTime::TimeZone::Pacific::Wallis 2.47 + DateTime::TimeZone::UTC 2.47 + DateTime::TimeZone::WET 2.47 requirements: Class::Singleton 1.03 Cwd 3 @@ -2225,19 +2150,6 @@ DISTRIBUTIONS Test::More 0.98 parent 0 perl 5.008001 - Devel-CheckLib-1.11 - pathname: M/MA/MATTN/Devel-CheckLib-1.11.tar.gz - provides: - Devel::CheckLib 1.11 - requirements: - Exporter 0 - ExtUtils::MakeMaker 0 - File::Spec 0 - File::Temp 0.16 - IO::CaptureOutput 1.0801 - Mock::Config 0.02 - Test::More 0.62 - perl 5.00405 Devel-Confess-0.009004 pathname: H/HA/HAARG/Devel-Confess-0.009004.tar.gz provides: @@ -2265,17 +2177,19 @@ DISTRIBUTIONS requirements: ExtUtils::MakeMaker 0 Test::More 0 - Devel-OverloadInfo-0.004 - pathname: I/IL/ILMARI/Devel-OverloadInfo-0.004.tar.gz + Devel-OverloadInfo-0.007 + pathname: I/IL/ILMARI/Devel-OverloadInfo-0.007.tar.gz provides: - Devel::OverloadInfo 0.004 + Devel::OverloadInfo 0.007 requirements: + B 0 Exporter 5.57 ExtUtils::MakeMaker 0 MRO::Compat 0 Package::Stash 0.14 Scalar::Util 0 - Sub::Identify 0 + Sub::Util 1.40 + Text::ParseWords 0 overload 0 perl 5.006 strict 0 @@ -2294,11 +2208,11 @@ DISTRIBUTIONS perl 5.006001 strict 0 warnings 0 - Devel-StackTrace-2.02 - pathname: D/DR/DROLSKY/Devel-StackTrace-2.02.tar.gz + Devel-StackTrace-2.04 + pathname: D/DR/DROLSKY/Devel-StackTrace-2.04.tar.gz provides: - Devel::StackTrace 2.02 - Devel::StackTrace::Frame 2.02 + Devel::StackTrace 2.04 + Devel::StackTrace::Frame 2.04 requirements: ExtUtils::MakeMaker 0 File::Spec 0 @@ -2595,6 +2509,7 @@ DISTRIBUTIONS requirements: ExtUtils::MakeMaker 0 Mail::Address 0 + Net::DNS 0 Scalar::Util 0 Test::More 0 perl 5.006 @@ -2622,19 +2537,6 @@ DISTRIBUTIONS Encoding::FixLatin 1.03 ExtUtils::MakeMaker 6.30 Test::More 0.90 - Error-0.17025 - pathname: S/SH/SHLOMIF/Error-0.17025.tar.gz - provides: - Error 0.17025 - Error::Simple 0.17025 - Error::WarnDie undef - Error::subs undef - requirements: - Module::Build 0.280801 - Scalar::Util 0 - perl v5.6.0 - strict 0 - warnings 0 Eval-Closure-0.14 pathname: D/DO/DOY/Eval-Closure-0.14.tar.gz provides: @@ -2767,51 +2669,6 @@ DISTRIBUTIONS perl 5.006 strict 0 warnings 0 - ExtUtils-MakeMaker-7.44 - pathname: B/BI/BINGOS/ExtUtils-MakeMaker-7.44.tar.gz - provides: - ExtUtils::Command 7.44 - ExtUtils::Command::MM 7.44 - ExtUtils::Liblist 7.44 - ExtUtils::Liblist::Kid 7.44 - ExtUtils::MM 7.44 - ExtUtils::MM_AIX 7.44 - ExtUtils::MM_Any 7.44 - ExtUtils::MM_BeOS 7.44 - ExtUtils::MM_Cygwin 7.44 - ExtUtils::MM_DOS 7.44 - ExtUtils::MM_Darwin 7.44 - ExtUtils::MM_MacOS 7.44 - ExtUtils::MM_NW5 7.44 - ExtUtils::MM_OS2 7.44 - ExtUtils::MM_QNX 7.44 - ExtUtils::MM_UWIN 7.44 - ExtUtils::MM_Unix 7.44 - ExtUtils::MM_VMS 7.44 - ExtUtils::MM_VOS 7.44 - ExtUtils::MM_Win32 7.44 - ExtUtils::MM_Win95 7.44 - ExtUtils::MY 7.44 - ExtUtils::MakeMaker 7.44 - ExtUtils::MakeMaker::Config 7.44 - ExtUtils::MakeMaker::Locale 7.44 - ExtUtils::MakeMaker::_version 7.44 - ExtUtils::MakeMaker::charstar 7.44 - ExtUtils::MakeMaker::version 7.44 - ExtUtils::MakeMaker::version::regex 7.44 - ExtUtils::MakeMaker::version::vpp 7.44 - ExtUtils::Mkbootstrap 7.44 - ExtUtils::Mksymlists 7.44 - ExtUtils::testlib 7.44 - MM 7.44 - MY 7.44 - requirements: - Data::Dumper 0 - Encode 0 - File::Basename 0 - File::Spec 0.8 - Pod::Man 0 - perl 5.006 ExtUtils-MakeMaker-CPANfile-0.08 pathname: I/IS/ISHIGAKI/ExtUtils-MakeMaker-CPANfile-0.08.tar.gz provides: @@ -3255,23 +3112,21 @@ DISTRIBUTIONS perl 5.006 strict 0 warnings 0 - HTTP-Cookies-6.04 - pathname: O/OA/OALDERS/HTTP-Cookies-6.04.tar.gz + HTTP-Cookies-6.10 + pathname: O/OA/OALDERS/HTTP-Cookies-6.10.tar.gz provides: - HTTP::Cookies 6.04 - HTTP::Cookies::Microsoft 6.04 - HTTP::Cookies::Netscape 6.04 + HTTP::Cookies 6.10 + HTTP::Cookies::Microsoft 6.10 + HTTP::Cookies::Netscape 6.10 requirements: Carp 0 ExtUtils::MakeMaker 0 HTTP::Date 6 HTTP::Headers::Util 6 HTTP::Request 0 - Time::Local 0 locale 0 perl 5.008001 strict 0 - vars 0 HTTP-Daemon-6.01 pathname: G/GA/GAAS/HTTP-Daemon-6.01.tar.gz provides: @@ -3295,10 +3150,10 @@ DISTRIBUTIONS ExtUtils::MakeMaker 0 Time::Local 0 perl 5.006002 - HTTP-Entity-Parser-0.20 - pathname: K/KA/KAZEBURO/HTTP-Entity-Parser-0.20.tar.gz + HTTP-Entity-Parser-0.25 + pathname: K/KA/KAZEBURO/HTTP-Entity-Parser-0.25.tar.gz provides: - HTTP::Entity::Parser 0.20 + HTTP::Entity::Parser 0.25 HTTP::Entity::Parser::JSON undef HTTP::Entity::Parser::MultiPart undef HTTP::Entity::Parser::OctetStream undef @@ -3313,7 +3168,7 @@ DISTRIBUTIONS Module::Load 0 Stream::Buffered 0 WWW::Form::UrlEncoded 0.23 - perl 5.008005 + perl 5.008001 HTTP-Headers-Fast-0.21 pathname: T/TO/TOKUHIROM/HTTP-Headers-Fast-0.21.tar.gz provides: @@ -3411,22 +3266,6 @@ DISTRIBUTIONS ExtUtils::MakeMaker 6.36 Socket 1.94 Test::More 0 - HTTP-Tiny-0.076 - pathname: D/DA/DAGOLDEN/HTTP-Tiny-0.076.tar.gz - provides: - HTTP::Tiny 0.076 - requirements: - Carp 0 - ExtUtils::MakeMaker 6.17 - Fcntl 0 - IO::Socket 0 - MIME::Base64 0 - Socket 0 - Time::Local 0 - bytes 0 - perl 5.006 - strict 0 - warnings 0 Hash-Merge-0.298 pathname: H/HE/HERMES/Hash-Merge-0.298.tar.gz provides: @@ -3490,21 +3329,6 @@ DISTRIBUTIONS ExtUtils::MakeMaker 0 Scalar::Util 0 perl 5.008001 - IO-CaptureOutput-1.1104 - pathname: D/DA/DAGOLDEN/IO-CaptureOutput-1.1104.tar.gz - provides: - IO::CaptureOutput 1.1104 - requirements: - Carp 0 - Exporter 0 - ExtUtils::MakeMaker 6.17 - File::Basename 0 - File::Temp 0.16 - Symbol 0 - perl 5.006 - strict 0 - vars 0 - warnings 0 IO-File-AtomicChange-0.05 pathname: H/HI/HIROSE/IO-File-AtomicChange-0.05.tar.gz provides: @@ -4331,14 +4155,6 @@ DISTRIBUTIONS perl 5.008001 strict 0 warnings 0 - Mock-Config-0.03 - pathname: R/RU/RURBAN/Mock-Config-0.03.tar.gz - provides: - Mock::Config 0.03 - requirements: - ExtUtils::MakeMaker 0 - Test::More 0 - perl 5.006 Module-Build-0.4224 pathname: L/LE/LEONT/Module-Build-0.4224.tar.gz provides: @@ -4505,19 +4321,6 @@ DISTRIBUTIONS Try::Tiny 0 strict 0 warnings 0 - Module-Load-Conditional-0.70 - pathname: B/BI/BINGOS/Module-Load-Conditional-0.70.tar.gz - provides: - Module::Load::Conditional 0.70 - requirements: - ExtUtils::MakeMaker 0 - Locale::Maketext::Simple 0 - Module::CoreList 2.22 - Module::Load 0.28 - Module::Metadata 1.000005 - Params::Check 0 - Test::More 0 - version 0.69 Module-Pluggable-5.2 pathname: S/SI/SIMONW/Module-Pluggable-5.2.tar.gz provides: @@ -4848,368 +4651,458 @@ DISTRIBUTIONS MooX::Types::MooseLike 0.23 Test::Fatal 0.003 Test::More 0.96 - Moose-2.2007 - pathname: E/ET/ETHER/Moose-2.2007.tar.gz - provides: - Class::MOP 2.2007 - Class::MOP::Attribute 2.2007 - Class::MOP::Class 2.2007 - Class::MOP::Instance 2.2007 - Class::MOP::Method 2.2007 - Class::MOP::Method::Accessor 2.2007 - Class::MOP::Method::Constructor 2.2007 - Class::MOP::Method::Generated 2.2007 - Class::MOP::Method::Inlined 2.2007 - Class::MOP::Method::Meta 2.2007 - Class::MOP::Method::Wrapped 2.2007 - Class::MOP::Module 2.2007 - Class::MOP::Object 2.2007 - Class::MOP::Overload 2.2007 - Class::MOP::Package 2.2007 - Moose 2.2007 - Moose::Cookbook 2.2007 - Moose::Cookbook::Basics::BankAccount_MethodModifiersAndSubclassing 2.2007 - Moose::Cookbook::Basics::BinaryTree_AttributeFeatures 2.2007 - Moose::Cookbook::Basics::BinaryTree_BuilderAndLazyBuild 2.2007 - Moose::Cookbook::Basics::Company_Subtypes 2.2007 - Moose::Cookbook::Basics::DateTime_ExtendingNonMooseParent 2.2007 - Moose::Cookbook::Basics::Document_AugmentAndInner 2.2007 - Moose::Cookbook::Basics::Genome_OverloadingSubtypesAndCoercion 2.2007 - Moose::Cookbook::Basics::HTTP_SubtypesAndCoercion 2.2007 - Moose::Cookbook::Basics::Immutable 2.2007 - Moose::Cookbook::Basics::Person_BUILDARGSAndBUILD 2.2007 - Moose::Cookbook::Basics::Point_AttributesAndSubclassing 2.2007 - Moose::Cookbook::Extending::Debugging_BaseClassRole 2.2007 - Moose::Cookbook::Extending::ExtensionOverview 2.2007 - Moose::Cookbook::Extending::Mooseish_MooseSugar 2.2007 - Moose::Cookbook::Legacy::Debugging_BaseClassReplacement 2.2007 - Moose::Cookbook::Legacy::Labeled_AttributeMetaclass 2.2007 - Moose::Cookbook::Legacy::Table_ClassMetaclass 2.2007 - Moose::Cookbook::Meta::GlobRef_InstanceMetaclass 2.2007 - Moose::Cookbook::Meta::Labeled_AttributeTrait 2.2007 - Moose::Cookbook::Meta::PrivateOrPublic_MethodMetaclass 2.2007 - Moose::Cookbook::Meta::Table_MetaclassTrait 2.2007 - Moose::Cookbook::Meta::WhyMeta 2.2007 - Moose::Cookbook::Roles::ApplicationToInstance 2.2007 - Moose::Cookbook::Roles::Comparable_CodeReuse 2.2007 - Moose::Cookbook::Roles::Restartable_AdvancedComposition 2.2007 - Moose::Cookbook::Snack::Keywords 2.2007 - Moose::Cookbook::Snack::Types 2.2007 - Moose::Cookbook::Style 2.2007 - Moose::Exception 2.2007 - Moose::Exception::AccessorMustReadWrite 2.2007 - Moose::Exception::AddParameterizableTypeTakesParameterizableType 2.2007 - Moose::Exception::AddRoleTakesAMooseMetaRoleInstance 2.2007 - Moose::Exception::AddRoleToARoleTakesAMooseMetaRole 2.2007 - Moose::Exception::ApplyTakesABlessedInstance 2.2007 - Moose::Exception::AttachToClassNeedsAClassMOPClassInstanceOrASubclass 2.2007 - Moose::Exception::AttributeConflictInRoles 2.2007 - Moose::Exception::AttributeConflictInSummation 2.2007 - Moose::Exception::AttributeExtensionIsNotSupportedInRoles 2.2007 - Moose::Exception::AttributeIsRequired 2.2007 - Moose::Exception::AttributeMustBeAnClassMOPMixinAttributeCoreOrSubclass 2.2007 - Moose::Exception::AttributeNamesDoNotMatch 2.2007 - Moose::Exception::AttributeValueIsNotAnObject 2.2007 - Moose::Exception::AttributeValueIsNotDefined 2.2007 - Moose::Exception::AutoDeRefNeedsArrayRefOrHashRef 2.2007 - Moose::Exception::BadOptionFormat 2.2007 - Moose::Exception::BothBuilderAndDefaultAreNotAllowed 2.2007 - Moose::Exception::BuilderDoesNotExist 2.2007 - Moose::Exception::BuilderMethodNotSupportedForAttribute 2.2007 - Moose::Exception::BuilderMethodNotSupportedForInlineAttribute 2.2007 - Moose::Exception::BuilderMustBeAMethodName 2.2007 - Moose::Exception::CallingMethodOnAnImmutableInstance 2.2007 - Moose::Exception::CallingReadOnlyMethodOnAnImmutableInstance 2.2007 - Moose::Exception::CanExtendOnlyClasses 2.2007 - Moose::Exception::CanOnlyConsumeRole 2.2007 - Moose::Exception::CanOnlyWrapBlessedCode 2.2007 - Moose::Exception::CanReblessOnlyIntoASubclass 2.2007 - Moose::Exception::CanReblessOnlyIntoASuperclass 2.2007 - Moose::Exception::CannotAddAdditionalTypeCoercionsToUnion 2.2007 - Moose::Exception::CannotAddAsAnAttributeToARole 2.2007 - Moose::Exception::CannotApplyBaseClassRolesToRole 2.2007 - Moose::Exception::CannotAssignValueToReadOnlyAccessor 2.2007 - Moose::Exception::CannotAugmentIfLocalMethodPresent 2.2007 - Moose::Exception::CannotAugmentNoSuperMethod 2.2007 - Moose::Exception::CannotAutoDerefWithoutIsa 2.2007 - Moose::Exception::CannotAutoDereferenceTypeConstraint 2.2007 - Moose::Exception::CannotCalculateNativeType 2.2007 - Moose::Exception::CannotCallAnAbstractBaseMethod 2.2007 - Moose::Exception::CannotCallAnAbstractMethod 2.2007 - Moose::Exception::CannotCoerceAWeakRef 2.2007 - Moose::Exception::CannotCoerceAttributeWhichHasNoCoercion 2.2007 - Moose::Exception::CannotCreateHigherOrderTypeWithoutATypeParameter 2.2007 - Moose::Exception::CannotCreateMethodAliasLocalMethodIsPresent 2.2007 - Moose::Exception::CannotCreateMethodAliasLocalMethodIsPresentInClass 2.2007 - Moose::Exception::CannotDelegateLocalMethodIsPresent 2.2007 - Moose::Exception::CannotDelegateWithoutIsa 2.2007 - Moose::Exception::CannotFindDelegateMetaclass 2.2007 - Moose::Exception::CannotFindType 2.2007 - Moose::Exception::CannotFindTypeGivenToMatchOnType 2.2007 - Moose::Exception::CannotFixMetaclassCompatibility 2.2007 - Moose::Exception::CannotGenerateInlineConstraint 2.2007 - Moose::Exception::CannotInitializeMooseMetaRoleComposite 2.2007 - Moose::Exception::CannotInlineTypeConstraintCheck 2.2007 - Moose::Exception::CannotLocatePackageInINC 2.2007 - Moose::Exception::CannotMakeMetaclassCompatible 2.2007 - Moose::Exception::CannotOverrideALocalMethod 2.2007 - Moose::Exception::CannotOverrideBodyOfMetaMethods 2.2007 - Moose::Exception::CannotOverrideLocalMethodIsPresent 2.2007 - Moose::Exception::CannotOverrideNoSuperMethod 2.2007 - Moose::Exception::CannotRegisterUnnamedTypeConstraint 2.2007 - Moose::Exception::CannotUseLazyBuildAndDefaultSimultaneously 2.2007 - Moose::Exception::CircularReferenceInAlso 2.2007 - Moose::Exception::ClassDoesNotHaveInitMeta 2.2007 - Moose::Exception::ClassDoesTheExcludedRole 2.2007 - Moose::Exception::ClassNamesDoNotMatch 2.2007 - Moose::Exception::CloneObjectExpectsAnInstanceOfMetaclass 2.2007 - Moose::Exception::CodeBlockMustBeACodeRef 2.2007 - Moose::Exception::CoercingWithoutCoercions 2.2007 - Moose::Exception::CoercionAlreadyExists 2.2007 - Moose::Exception::CoercionNeedsTypeConstraint 2.2007 - Moose::Exception::ConflictDetectedInCheckRoleExclusions 2.2007 - Moose::Exception::ConflictDetectedInCheckRoleExclusionsInToClass 2.2007 - Moose::Exception::ConstructClassInstanceTakesPackageName 2.2007 - Moose::Exception::CouldNotCreateMethod 2.2007 - Moose::Exception::CouldNotCreateWriter 2.2007 - Moose::Exception::CouldNotEvalConstructor 2.2007 - Moose::Exception::CouldNotEvalDestructor 2.2007 - Moose::Exception::CouldNotFindTypeConstraintToCoerceFrom 2.2007 - Moose::Exception::CouldNotGenerateInlineAttributeMethod 2.2007 - Moose::Exception::CouldNotLocateTypeConstraintForUnion 2.2007 - Moose::Exception::CouldNotParseType 2.2007 - Moose::Exception::CreateMOPClassTakesArrayRefOfAttributes 2.2007 - Moose::Exception::CreateMOPClassTakesArrayRefOfSuperclasses 2.2007 - Moose::Exception::CreateMOPClassTakesHashRefOfMethods 2.2007 - Moose::Exception::CreateTakesArrayRefOfRoles 2.2007 - Moose::Exception::CreateTakesHashRefOfAttributes 2.2007 - Moose::Exception::CreateTakesHashRefOfMethods 2.2007 - Moose::Exception::DefaultToMatchOnTypeMustBeCodeRef 2.2007 - Moose::Exception::DelegationToAClassWhichIsNotLoaded 2.2007 - Moose::Exception::DelegationToARoleWhichIsNotLoaded 2.2007 - Moose::Exception::DelegationToATypeWhichIsNotAClass 2.2007 - Moose::Exception::DoesRequiresRoleName 2.2007 - Moose::Exception::EnumCalledWithAnArrayRefAndAdditionalArgs 2.2007 - Moose::Exception::EnumValuesMustBeString 2.2007 - Moose::Exception::ExtendsMissingArgs 2.2007 - Moose::Exception::HandlesMustBeAHashRef 2.2007 - Moose::Exception::IllegalInheritedOptions 2.2007 - Moose::Exception::IllegalMethodTypeToAddMethodModifier 2.2007 - Moose::Exception::IncompatibleMetaclassOfSuperclass 2.2007 - Moose::Exception::InitMetaRequiresClass 2.2007 - Moose::Exception::InitializeTakesUnBlessedPackageName 2.2007 - Moose::Exception::InstanceBlessedIntoWrongClass 2.2007 - Moose::Exception::InstanceMustBeABlessedReference 2.2007 - Moose::Exception::InvalidArgPassedToMooseUtilMetaRole 2.2007 - Moose::Exception::InvalidArgumentToMethod 2.2007 - Moose::Exception::InvalidArgumentsToTraitAliases 2.2007 - Moose::Exception::InvalidBaseTypeGivenToCreateParameterizedTypeConstraint 2.2007 - Moose::Exception::InvalidHandleValue 2.2007 - Moose::Exception::InvalidHasProvidedInARole 2.2007 - Moose::Exception::InvalidNameForType 2.2007 - Moose::Exception::InvalidOverloadOperator 2.2007 - Moose::Exception::InvalidRoleApplication 2.2007 - Moose::Exception::InvalidTypeConstraint 2.2007 - Moose::Exception::InvalidTypeGivenToCreateParameterizedTypeConstraint 2.2007 - Moose::Exception::InvalidValueForIs 2.2007 - Moose::Exception::IsaDoesNotDoTheRole 2.2007 - Moose::Exception::IsaLacksDoesMethod 2.2007 - Moose::Exception::LazyAttributeNeedsADefault 2.2007 - Moose::Exception::Legacy 2.2007 - Moose::Exception::MOPAttributeNewNeedsAttributeName 2.2007 - Moose::Exception::MatchActionMustBeACodeRef 2.2007 - Moose::Exception::MessageParameterMustBeCodeRef 2.2007 - Moose::Exception::MetaclassIsAClassNotASubclassOfGivenMetaclass 2.2007 - Moose::Exception::MetaclassIsARoleNotASubclassOfGivenMetaclass 2.2007 - Moose::Exception::MetaclassIsNotASubclassOfGivenMetaclass 2.2007 - Moose::Exception::MetaclassMustBeASubclassOfMooseMetaClass 2.2007 - Moose::Exception::MetaclassMustBeASubclassOfMooseMetaRole 2.2007 - Moose::Exception::MetaclassMustBeDerivedFromClassMOPClass 2.2007 - Moose::Exception::MetaclassNotLoaded 2.2007 - Moose::Exception::MetaclassTypeIncompatible 2.2007 - Moose::Exception::MethodExpectedAMetaclassObject 2.2007 - Moose::Exception::MethodExpectsFewerArgs 2.2007 - Moose::Exception::MethodExpectsMoreArgs 2.2007 - Moose::Exception::MethodModifierNeedsMethodName 2.2007 - Moose::Exception::MethodNameConflictInRoles 2.2007 - Moose::Exception::MethodNameNotFoundInInheritanceHierarchy 2.2007 - Moose::Exception::MethodNameNotGiven 2.2007 - Moose::Exception::MustDefineAMethodName 2.2007 - Moose::Exception::MustDefineAnAttributeName 2.2007 - Moose::Exception::MustDefineAnOverloadOperator 2.2007 - Moose::Exception::MustHaveAtLeastOneValueToEnumerate 2.2007 - Moose::Exception::MustPassAHashOfOptions 2.2007 - Moose::Exception::MustPassAMooseMetaRoleInstanceOrSubclass 2.2007 - Moose::Exception::MustPassAPackageNameOrAnExistingClassMOPPackageInstance 2.2007 - Moose::Exception::MustPassEvenNumberOfArguments 2.2007 - Moose::Exception::MustPassEvenNumberOfAttributeOptions 2.2007 - Moose::Exception::MustProvideANameForTheAttribute 2.2007 - Moose::Exception::MustSpecifyAtleastOneMethod 2.2007 - Moose::Exception::MustSpecifyAtleastOneRole 2.2007 - Moose::Exception::MustSpecifyAtleastOneRoleToApplicant 2.2007 - Moose::Exception::MustSupplyAClassMOPAttributeInstance 2.2007 - Moose::Exception::MustSupplyADelegateToMethod 2.2007 - Moose::Exception::MustSupplyAMetaclass 2.2007 - Moose::Exception::MustSupplyAMooseMetaAttributeInstance 2.2007 - Moose::Exception::MustSupplyAnAccessorTypeToConstructWith 2.2007 - Moose::Exception::MustSupplyAnAttributeToConstructWith 2.2007 - Moose::Exception::MustSupplyArrayRefAsCurriedArguments 2.2007 - Moose::Exception::MustSupplyPackageNameAndName 2.2007 - Moose::Exception::NeedsTypeConstraintUnionForTypeCoercionUnion 2.2007 - Moose::Exception::NeitherAttributeNorAttributeNameIsGiven 2.2007 - Moose::Exception::NeitherClassNorClassNameIsGiven 2.2007 - Moose::Exception::NeitherRoleNorRoleNameIsGiven 2.2007 - Moose::Exception::NeitherTypeNorTypeNameIsGiven 2.2007 - Moose::Exception::NoAttributeFoundInSuperClass 2.2007 - Moose::Exception::NoBodyToInitializeInAnAbstractBaseClass 2.2007 - Moose::Exception::NoCasesMatched 2.2007 - Moose::Exception::NoConstraintCheckForTypeConstraint 2.2007 - Moose::Exception::NoDestructorClassSpecified 2.2007 - Moose::Exception::NoImmutableTraitSpecifiedForClass 2.2007 - Moose::Exception::NoParentGivenToSubtype 2.2007 - Moose::Exception::OnlyInstancesCanBeCloned 2.2007 - Moose::Exception::OperatorIsRequired 2.2007 - Moose::Exception::OverloadConflictInSummation 2.2007 - Moose::Exception::OverloadRequiresAMetaClass 2.2007 - Moose::Exception::OverloadRequiresAMetaMethod 2.2007 - Moose::Exception::OverloadRequiresAMetaOverload 2.2007 - Moose::Exception::OverloadRequiresAMethodNameOrCoderef 2.2007 - Moose::Exception::OverloadRequiresAnOperator 2.2007 - Moose::Exception::OverloadRequiresNamesForCoderef 2.2007 - Moose::Exception::OverrideConflictInComposition 2.2007 - Moose::Exception::OverrideConflictInSummation 2.2007 - Moose::Exception::PackageDoesNotUseMooseExporter 2.2007 - Moose::Exception::PackageNameAndNameParamsNotGivenToWrap 2.2007 - Moose::Exception::PackagesAndModulesAreNotCachable 2.2007 - Moose::Exception::ParameterIsNotSubtypeOfParent 2.2007 - Moose::Exception::ReferencesAreNotAllowedAsDefault 2.2007 - Moose::Exception::RequiredAttributeLacksInitialization 2.2007 - Moose::Exception::RequiredAttributeNeedsADefault 2.2007 - Moose::Exception::RequiredMethodsImportedByClass 2.2007 - Moose::Exception::RequiredMethodsNotImplementedByClass 2.2007 - Moose::Exception::Role::Attribute 2.2007 - Moose::Exception::Role::AttributeName 2.2007 - Moose::Exception::Role::Class 2.2007 - Moose::Exception::Role::EitherAttributeOrAttributeName 2.2007 - Moose::Exception::Role::Instance 2.2007 - Moose::Exception::Role::InstanceClass 2.2007 - Moose::Exception::Role::InvalidAttributeOptions 2.2007 - Moose::Exception::Role::Method 2.2007 - Moose::Exception::Role::ParamsHash 2.2007 - Moose::Exception::Role::Role 2.2007 - Moose::Exception::Role::RoleForCreate 2.2007 - Moose::Exception::Role::RoleForCreateMOPClass 2.2007 - Moose::Exception::Role::TypeConstraint 2.2007 - Moose::Exception::RoleDoesTheExcludedRole 2.2007 - Moose::Exception::RoleExclusionConflict 2.2007 - Moose::Exception::RoleNameRequired 2.2007 - Moose::Exception::RoleNameRequiredForMooseMetaRole 2.2007 - Moose::Exception::RolesDoNotSupportAugment 2.2007 - Moose::Exception::RolesDoNotSupportExtends 2.2007 - Moose::Exception::RolesDoNotSupportInner 2.2007 - Moose::Exception::RolesDoNotSupportRegexReferencesForMethodModifiers 2.2007 - Moose::Exception::RolesInCreateTakesAnArrayRef 2.2007 - Moose::Exception::RolesListMustBeInstancesOfMooseMetaRole 2.2007 - Moose::Exception::SingleParamsToNewMustBeHashRef 2.2007 - Moose::Exception::TriggerMustBeACodeRef 2.2007 - Moose::Exception::TypeConstraintCannotBeUsedForAParameterizableType 2.2007 - Moose::Exception::TypeConstraintIsAlreadyCreated 2.2007 - Moose::Exception::TypeParameterMustBeMooseMetaType 2.2007 - Moose::Exception::UnableToCanonicalizeHandles 2.2007 - Moose::Exception::UnableToCanonicalizeNonRolePackage 2.2007 - Moose::Exception::UnableToRecognizeDelegateMetaclass 2.2007 - Moose::Exception::UndefinedHashKeysPassedToMethod 2.2007 - Moose::Exception::UnionCalledWithAnArrayRefAndAdditionalArgs 2.2007 - Moose::Exception::UnionTakesAtleastTwoTypeNames 2.2007 - Moose::Exception::ValidationFailedForInlineTypeConstraint 2.2007 - Moose::Exception::ValidationFailedForTypeConstraint 2.2007 - Moose::Exception::WrapTakesACodeRefToBless 2.2007 - Moose::Exception::WrongTypeConstraintGiven 2.2007 - Moose::Exporter 2.2007 - Moose::Intro 2.2007 - Moose::Manual 2.2007 - Moose::Manual::Attributes 2.2007 - Moose::Manual::BestPractices 2.2007 - Moose::Manual::Classes 2.2007 - Moose::Manual::Concepts 2.2007 - Moose::Manual::Construction 2.2007 - Moose::Manual::Contributing 2.2007 - Moose::Manual::Delegation 2.2007 - Moose::Manual::Delta 2.2007 - Moose::Manual::Exceptions 2.2007 - Moose::Manual::Exceptions::Manifest 2.2007 - Moose::Manual::FAQ 2.2007 - Moose::Manual::MOP 2.2007 - Moose::Manual::MethodModifiers 2.2007 - Moose::Manual::MooseX 2.2007 - Moose::Manual::Resources 2.2007 - Moose::Manual::Roles 2.2007 - Moose::Manual::Support 2.2007 - Moose::Manual::Types 2.2007 - Moose::Manual::Unsweetened 2.2007 - Moose::Meta::Attribute 2.2007 - Moose::Meta::Attribute::Native 2.2007 - Moose::Meta::Attribute::Native::Trait::Array 2.2007 - Moose::Meta::Attribute::Native::Trait::Bool 2.2007 - Moose::Meta::Attribute::Native::Trait::Code 2.2007 - Moose::Meta::Attribute::Native::Trait::Counter 2.2007 - Moose::Meta::Attribute::Native::Trait::Hash 2.2007 - Moose::Meta::Attribute::Native::Trait::Number 2.2007 - Moose::Meta::Attribute::Native::Trait::String 2.2007 - Moose::Meta::Class 2.2007 - Moose::Meta::Instance 2.2007 - Moose::Meta::Method 2.2007 - Moose::Meta::Method::Accessor 2.2007 - Moose::Meta::Method::Augmented 2.2007 - Moose::Meta::Method::Constructor 2.2007 - Moose::Meta::Method::Delegation 2.2007 - Moose::Meta::Method::Destructor 2.2007 - Moose::Meta::Method::Meta 2.2007 - Moose::Meta::Method::Overridden 2.2007 - Moose::Meta::Role 2.2007 - Moose::Meta::Role::Application 2.2007 - Moose::Meta::Role::Application::RoleSummation 2.2007 - Moose::Meta::Role::Application::ToClass 2.2007 - Moose::Meta::Role::Application::ToInstance 2.2007 - Moose::Meta::Role::Application::ToRole 2.2007 - Moose::Meta::Role::Attribute 2.2007 - Moose::Meta::Role::Composite 2.2007 - Moose::Meta::Role::Method 2.2007 - Moose::Meta::Role::Method::Conflicting 2.2007 - Moose::Meta::Role::Method::Required 2.2007 - Moose::Meta::TypeCoercion 2.2007 - Moose::Meta::TypeCoercion::Union 2.2007 - Moose::Meta::TypeConstraint 2.2007 - Moose::Meta::TypeConstraint::Class 2.2007 - Moose::Meta::TypeConstraint::DuckType 2.2007 - Moose::Meta::TypeConstraint::Enum 2.2007 - Moose::Meta::TypeConstraint::Parameterizable 2.2007 - Moose::Meta::TypeConstraint::Parameterized 2.2007 - Moose::Meta::TypeConstraint::Registry 2.2007 - Moose::Meta::TypeConstraint::Role 2.2007 - Moose::Meta::TypeConstraint::Union 2.2007 - Moose::Object 2.2007 - Moose::Role 2.2007 - Moose::Spec::Role 2.2007 - Moose::Unsweetened 2.2007 - Moose::Util 2.2007 - Moose::Util::MetaRole 2.2007 - Moose::Util::TypeConstraints 2.2007 - Test::Moose 2.2007 - metaclass 2.2007 - oose 2.2007 + Moose-2.2015 + pathname: E/ET/ETHER/Moose-2.2015.tar.gz + provides: + Class::MOP 2.2015 + Class::MOP::Attribute 2.2015 + Class::MOP::Class 2.2015 + Class::MOP::Class::Immutable::Trait 2.2015 + Class::MOP::Deprecated 2.2015 + Class::MOP::Instance 2.2015 + Class::MOP::Method 2.2015 + Class::MOP::Method::Accessor 2.2015 + Class::MOP::Method::Constructor 2.2015 + Class::MOP::Method::Generated 2.2015 + Class::MOP::Method::Inlined 2.2015 + Class::MOP::Method::Meta 2.2015 + Class::MOP::Method::Wrapped 2.2015 + Class::MOP::MiniTrait 2.2015 + Class::MOP::Mixin 2.2015 + Class::MOP::Mixin::AttributeCore 2.2015 + Class::MOP::Mixin::HasAttributes 2.2015 + Class::MOP::Mixin::HasMethods 2.2015 + Class::MOP::Mixin::HasOverloads 2.2015 + Class::MOP::Module 2.2015 + Class::MOP::Object 2.2015 + Class::MOP::Overload 2.2015 + Class::MOP::Package 2.2015 + Moose 2.2015 + Moose::Cookbook 2.2015 + Moose::Cookbook::Basics::BankAccount_MethodModifiersAndSubclassing 2.2015 + Moose::Cookbook::Basics::BinaryTree_AttributeFeatures 2.2015 + Moose::Cookbook::Basics::BinaryTree_BuilderAndLazyBuild 2.2015 + Moose::Cookbook::Basics::Company_Subtypes 2.2015 + Moose::Cookbook::Basics::DateTime_ExtendingNonMooseParent 2.2015 + Moose::Cookbook::Basics::Document_AugmentAndInner 2.2015 + Moose::Cookbook::Basics::Genome_OverloadingSubtypesAndCoercion 2.2015 + Moose::Cookbook::Basics::HTTP_SubtypesAndCoercion 2.2015 + Moose::Cookbook::Basics::Immutable 2.2015 + Moose::Cookbook::Basics::Person_BUILDARGSAndBUILD 2.2015 + Moose::Cookbook::Basics::Point_AttributesAndSubclassing 2.2015 + Moose::Cookbook::Extending::Debugging_BaseClassRole 2.2015 + Moose::Cookbook::Extending::ExtensionOverview 2.2015 + Moose::Cookbook::Extending::Mooseish_MooseSugar 2.2015 + Moose::Cookbook::Legacy::Debugging_BaseClassReplacement 2.2015 + Moose::Cookbook::Legacy::Labeled_AttributeMetaclass 2.2015 + Moose::Cookbook::Legacy::Table_ClassMetaclass 2.2015 + Moose::Cookbook::Meta::GlobRef_InstanceMetaclass 2.2015 + Moose::Cookbook::Meta::Labeled_AttributeTrait 2.2015 + Moose::Cookbook::Meta::PrivateOrPublic_MethodMetaclass 2.2015 + Moose::Cookbook::Meta::Table_MetaclassTrait 2.2015 + Moose::Cookbook::Meta::WhyMeta 2.2015 + Moose::Cookbook::Roles::ApplicationToInstance 2.2015 + Moose::Cookbook::Roles::Comparable_CodeReuse 2.2015 + Moose::Cookbook::Roles::Restartable_AdvancedComposition 2.2015 + Moose::Cookbook::Snack::Keywords 2.2015 + Moose::Cookbook::Snack::Types 2.2015 + Moose::Cookbook::Style 2.2015 + Moose::Deprecated 2.2015 + Moose::Exception 2.2015 + Moose::Exception::AccessorMustReadWrite 2.2015 + Moose::Exception::AddParameterizableTypeTakesParameterizableType 2.2015 + Moose::Exception::AddRoleTakesAMooseMetaRoleInstance 2.2015 + Moose::Exception::AddRoleToARoleTakesAMooseMetaRole 2.2015 + Moose::Exception::ApplyTakesABlessedInstance 2.2015 + Moose::Exception::AttachToClassNeedsAClassMOPClassInstanceOrASubclass 2.2015 + Moose::Exception::AttributeConflictInRoles 2.2015 + Moose::Exception::AttributeConflictInSummation 2.2015 + Moose::Exception::AttributeExtensionIsNotSupportedInRoles 2.2015 + Moose::Exception::AttributeIsRequired 2.2015 + Moose::Exception::AttributeMustBeAnClassMOPMixinAttributeCoreOrSubclass 2.2015 + Moose::Exception::AttributeNamesDoNotMatch 2.2015 + Moose::Exception::AttributeValueIsNotAnObject 2.2015 + Moose::Exception::AttributeValueIsNotDefined 2.2015 + Moose::Exception::AutoDeRefNeedsArrayRefOrHashRef 2.2015 + Moose::Exception::BadOptionFormat 2.2015 + Moose::Exception::BothBuilderAndDefaultAreNotAllowed 2.2015 + Moose::Exception::BuilderDoesNotExist 2.2015 + Moose::Exception::BuilderMethodNotSupportedForAttribute 2.2015 + Moose::Exception::BuilderMethodNotSupportedForInlineAttribute 2.2015 + Moose::Exception::BuilderMustBeAMethodName 2.2015 + Moose::Exception::CallingMethodOnAnImmutableInstance 2.2015 + Moose::Exception::CallingReadOnlyMethodOnAnImmutableInstance 2.2015 + Moose::Exception::CanExtendOnlyClasses 2.2015 + Moose::Exception::CanOnlyConsumeRole 2.2015 + Moose::Exception::CanOnlyWrapBlessedCode 2.2015 + Moose::Exception::CanReblessOnlyIntoASubclass 2.2015 + Moose::Exception::CanReblessOnlyIntoASuperclass 2.2015 + Moose::Exception::CannotAddAdditionalTypeCoercionsToUnion 2.2015 + Moose::Exception::CannotAddAsAnAttributeToARole 2.2015 + Moose::Exception::CannotApplyBaseClassRolesToRole 2.2015 + Moose::Exception::CannotAssignValueToReadOnlyAccessor 2.2015 + Moose::Exception::CannotAugmentIfLocalMethodPresent 2.2015 + Moose::Exception::CannotAugmentNoSuperMethod 2.2015 + Moose::Exception::CannotAutoDerefWithoutIsa 2.2015 + Moose::Exception::CannotAutoDereferenceTypeConstraint 2.2015 + Moose::Exception::CannotCalculateNativeType 2.2015 + Moose::Exception::CannotCallAnAbstractBaseMethod 2.2015 + Moose::Exception::CannotCallAnAbstractMethod 2.2015 + Moose::Exception::CannotCoerceAWeakRef 2.2015 + Moose::Exception::CannotCoerceAttributeWhichHasNoCoercion 2.2015 + Moose::Exception::CannotCreateHigherOrderTypeWithoutATypeParameter 2.2015 + Moose::Exception::CannotCreateMethodAliasLocalMethodIsPresent 2.2015 + Moose::Exception::CannotCreateMethodAliasLocalMethodIsPresentInClass 2.2015 + Moose::Exception::CannotDelegateLocalMethodIsPresent 2.2015 + Moose::Exception::CannotDelegateWithoutIsa 2.2015 + Moose::Exception::CannotFindDelegateMetaclass 2.2015 + Moose::Exception::CannotFindType 2.2015 + Moose::Exception::CannotFindTypeGivenToMatchOnType 2.2015 + Moose::Exception::CannotFixMetaclassCompatibility 2.2015 + Moose::Exception::CannotGenerateInlineConstraint 2.2015 + Moose::Exception::CannotInitializeMooseMetaRoleComposite 2.2015 + Moose::Exception::CannotInlineTypeConstraintCheck 2.2015 + Moose::Exception::CannotLocatePackageInINC 2.2015 + Moose::Exception::CannotMakeMetaclassCompatible 2.2015 + Moose::Exception::CannotOverrideALocalMethod 2.2015 + Moose::Exception::CannotOverrideBodyOfMetaMethods 2.2015 + Moose::Exception::CannotOverrideLocalMethodIsPresent 2.2015 + Moose::Exception::CannotOverrideNoSuperMethod 2.2015 + Moose::Exception::CannotRegisterUnnamedTypeConstraint 2.2015 + Moose::Exception::CannotUseLazyBuildAndDefaultSimultaneously 2.2015 + Moose::Exception::CircularReferenceInAlso 2.2015 + Moose::Exception::ClassDoesNotHaveInitMeta 2.2015 + Moose::Exception::ClassDoesTheExcludedRole 2.2015 + Moose::Exception::ClassNamesDoNotMatch 2.2015 + Moose::Exception::CloneObjectExpectsAnInstanceOfMetaclass 2.2015 + Moose::Exception::CodeBlockMustBeACodeRef 2.2015 + Moose::Exception::CoercingWithoutCoercions 2.2015 + Moose::Exception::CoercionAlreadyExists 2.2015 + Moose::Exception::CoercionNeedsTypeConstraint 2.2015 + Moose::Exception::ConflictDetectedInCheckRoleExclusions 2.2015 + Moose::Exception::ConflictDetectedInCheckRoleExclusionsInToClass 2.2015 + Moose::Exception::ConstructClassInstanceTakesPackageName 2.2015 + Moose::Exception::CouldNotCreateMethod 2.2015 + Moose::Exception::CouldNotCreateWriter 2.2015 + Moose::Exception::CouldNotEvalConstructor 2.2015 + Moose::Exception::CouldNotEvalDestructor 2.2015 + Moose::Exception::CouldNotFindTypeConstraintToCoerceFrom 2.2015 + Moose::Exception::CouldNotGenerateInlineAttributeMethod 2.2015 + Moose::Exception::CouldNotLocateTypeConstraintForUnion 2.2015 + Moose::Exception::CouldNotParseType 2.2015 + Moose::Exception::CreateMOPClassTakesArrayRefOfAttributes 2.2015 + Moose::Exception::CreateMOPClassTakesArrayRefOfSuperclasses 2.2015 + Moose::Exception::CreateMOPClassTakesHashRefOfMethods 2.2015 + Moose::Exception::CreateTakesArrayRefOfRoles 2.2015 + Moose::Exception::CreateTakesHashRefOfAttributes 2.2015 + Moose::Exception::CreateTakesHashRefOfMethods 2.2015 + Moose::Exception::DefaultToMatchOnTypeMustBeCodeRef 2.2015 + Moose::Exception::DelegationToAClassWhichIsNotLoaded 2.2015 + Moose::Exception::DelegationToARoleWhichIsNotLoaded 2.2015 + Moose::Exception::DelegationToATypeWhichIsNotAClass 2.2015 + Moose::Exception::DoesRequiresRoleName 2.2015 + Moose::Exception::EnumCalledWithAnArrayRefAndAdditionalArgs 2.2015 + Moose::Exception::EnumValuesMustBeString 2.2015 + Moose::Exception::ExtendsMissingArgs 2.2015 + Moose::Exception::HandlesMustBeAHashRef 2.2015 + Moose::Exception::IllegalInheritedOptions 2.2015 + Moose::Exception::IllegalMethodTypeToAddMethodModifier 2.2015 + Moose::Exception::IncompatibleMetaclassOfSuperclass 2.2015 + Moose::Exception::InitMetaRequiresClass 2.2015 + Moose::Exception::InitializeTakesUnBlessedPackageName 2.2015 + Moose::Exception::InstanceBlessedIntoWrongClass 2.2015 + Moose::Exception::InstanceMustBeABlessedReference 2.2015 + Moose::Exception::InvalidArgPassedToMooseUtilMetaRole 2.2015 + Moose::Exception::InvalidArgumentToMethod 2.2015 + Moose::Exception::InvalidArgumentsToTraitAliases 2.2015 + Moose::Exception::InvalidBaseTypeGivenToCreateParameterizedTypeConstraint 2.2015 + Moose::Exception::InvalidHandleValue 2.2015 + Moose::Exception::InvalidHasProvidedInARole 2.2015 + Moose::Exception::InvalidNameForType 2.2015 + Moose::Exception::InvalidOverloadOperator 2.2015 + Moose::Exception::InvalidRoleApplication 2.2015 + Moose::Exception::InvalidTypeConstraint 2.2015 + Moose::Exception::InvalidTypeGivenToCreateParameterizedTypeConstraint 2.2015 + Moose::Exception::InvalidValueForIs 2.2015 + Moose::Exception::IsaDoesNotDoTheRole 2.2015 + Moose::Exception::IsaLacksDoesMethod 2.2015 + Moose::Exception::LazyAttributeNeedsADefault 2.2015 + Moose::Exception::Legacy 2.2015 + Moose::Exception::MOPAttributeNewNeedsAttributeName 2.2015 + Moose::Exception::MatchActionMustBeACodeRef 2.2015 + Moose::Exception::MessageParameterMustBeCodeRef 2.2015 + Moose::Exception::MetaclassIsAClassNotASubclassOfGivenMetaclass 2.2015 + Moose::Exception::MetaclassIsARoleNotASubclassOfGivenMetaclass 2.2015 + Moose::Exception::MetaclassIsNotASubclassOfGivenMetaclass 2.2015 + Moose::Exception::MetaclassMustBeASubclassOfMooseMetaClass 2.2015 + Moose::Exception::MetaclassMustBeASubclassOfMooseMetaRole 2.2015 + Moose::Exception::MetaclassMustBeDerivedFromClassMOPClass 2.2015 + Moose::Exception::MetaclassNotLoaded 2.2015 + Moose::Exception::MetaclassTypeIncompatible 2.2015 + Moose::Exception::MethodExpectedAMetaclassObject 2.2015 + Moose::Exception::MethodExpectsFewerArgs 2.2015 + Moose::Exception::MethodExpectsMoreArgs 2.2015 + Moose::Exception::MethodModifierNeedsMethodName 2.2015 + Moose::Exception::MethodNameConflictInRoles 2.2015 + Moose::Exception::MethodNameNotFoundInInheritanceHierarchy 2.2015 + Moose::Exception::MethodNameNotGiven 2.2015 + Moose::Exception::MustDefineAMethodName 2.2015 + Moose::Exception::MustDefineAnAttributeName 2.2015 + Moose::Exception::MustDefineAnOverloadOperator 2.2015 + Moose::Exception::MustHaveAtLeastOneValueToEnumerate 2.2015 + Moose::Exception::MustPassAHashOfOptions 2.2015 + Moose::Exception::MustPassAMooseMetaRoleInstanceOrSubclass 2.2015 + Moose::Exception::MustPassAPackageNameOrAnExistingClassMOPPackageInstance 2.2015 + Moose::Exception::MustPassEvenNumberOfArguments 2.2015 + Moose::Exception::MustPassEvenNumberOfAttributeOptions 2.2015 + Moose::Exception::MustProvideANameForTheAttribute 2.2015 + Moose::Exception::MustSpecifyAtleastOneMethod 2.2015 + Moose::Exception::MustSpecifyAtleastOneRole 2.2015 + Moose::Exception::MustSpecifyAtleastOneRoleToApplicant 2.2015 + Moose::Exception::MustSupplyAClassMOPAttributeInstance 2.2015 + Moose::Exception::MustSupplyADelegateToMethod 2.2015 + Moose::Exception::MustSupplyAMetaclass 2.2015 + Moose::Exception::MustSupplyAMooseMetaAttributeInstance 2.2015 + Moose::Exception::MustSupplyAnAccessorTypeToConstructWith 2.2015 + Moose::Exception::MustSupplyAnAttributeToConstructWith 2.2015 + Moose::Exception::MustSupplyArrayRefAsCurriedArguments 2.2015 + Moose::Exception::MustSupplyPackageNameAndName 2.2015 + Moose::Exception::NeedsTypeConstraintUnionForTypeCoercionUnion 2.2015 + Moose::Exception::NeitherAttributeNorAttributeNameIsGiven 2.2015 + Moose::Exception::NeitherClassNorClassNameIsGiven 2.2015 + Moose::Exception::NeitherRoleNorRoleNameIsGiven 2.2015 + Moose::Exception::NeitherTypeNorTypeNameIsGiven 2.2015 + Moose::Exception::NoAttributeFoundInSuperClass 2.2015 + Moose::Exception::NoBodyToInitializeInAnAbstractBaseClass 2.2015 + Moose::Exception::NoCasesMatched 2.2015 + Moose::Exception::NoConstraintCheckForTypeConstraint 2.2015 + Moose::Exception::NoDestructorClassSpecified 2.2015 + Moose::Exception::NoImmutableTraitSpecifiedForClass 2.2015 + Moose::Exception::NoParentGivenToSubtype 2.2015 + Moose::Exception::OnlyInstancesCanBeCloned 2.2015 + Moose::Exception::OperatorIsRequired 2.2015 + Moose::Exception::OverloadConflictInSummation 2.2015 + Moose::Exception::OverloadRequiresAMetaClass 2.2015 + Moose::Exception::OverloadRequiresAMetaMethod 2.2015 + Moose::Exception::OverloadRequiresAMetaOverload 2.2015 + Moose::Exception::OverloadRequiresAMethodNameOrCoderef 2.2015 + Moose::Exception::OverloadRequiresAnOperator 2.2015 + Moose::Exception::OverloadRequiresNamesForCoderef 2.2015 + Moose::Exception::OverrideConflictInComposition 2.2015 + Moose::Exception::OverrideConflictInSummation 2.2015 + Moose::Exception::PackageDoesNotUseMooseExporter 2.2015 + Moose::Exception::PackageNameAndNameParamsNotGivenToWrap 2.2015 + Moose::Exception::PackagesAndModulesAreNotCachable 2.2015 + Moose::Exception::ParameterIsNotSubtypeOfParent 2.2015 + Moose::Exception::ReferencesAreNotAllowedAsDefault 2.2015 + Moose::Exception::RequiredAttributeLacksInitialization 2.2015 + Moose::Exception::RequiredAttributeNeedsADefault 2.2015 + Moose::Exception::RequiredMethodsImportedByClass 2.2015 + Moose::Exception::RequiredMethodsNotImplementedByClass 2.2015 + Moose::Exception::Role::Attribute 2.2015 + Moose::Exception::Role::AttributeName 2.2015 + Moose::Exception::Role::Class 2.2015 + Moose::Exception::Role::EitherAttributeOrAttributeName 2.2015 + Moose::Exception::Role::Instance 2.2015 + Moose::Exception::Role::InstanceClass 2.2015 + Moose::Exception::Role::InvalidAttributeOptions 2.2015 + Moose::Exception::Role::Method 2.2015 + Moose::Exception::Role::ParamsHash 2.2015 + Moose::Exception::Role::Role 2.2015 + Moose::Exception::Role::RoleForCreate 2.2015 + Moose::Exception::Role::RoleForCreateMOPClass 2.2015 + Moose::Exception::Role::TypeConstraint 2.2015 + Moose::Exception::RoleDoesTheExcludedRole 2.2015 + Moose::Exception::RoleExclusionConflict 2.2015 + Moose::Exception::RoleNameRequired 2.2015 + Moose::Exception::RoleNameRequiredForMooseMetaRole 2.2015 + Moose::Exception::RolesDoNotSupportAugment 2.2015 + Moose::Exception::RolesDoNotSupportExtends 2.2015 + Moose::Exception::RolesDoNotSupportInner 2.2015 + Moose::Exception::RolesDoNotSupportRegexReferencesForMethodModifiers 2.2015 + Moose::Exception::RolesInCreateTakesAnArrayRef 2.2015 + Moose::Exception::RolesListMustBeInstancesOfMooseMetaRole 2.2015 + Moose::Exception::SingleParamsToNewMustBeHashRef 2.2015 + Moose::Exception::TriggerMustBeACodeRef 2.2015 + Moose::Exception::TypeConstraintCannotBeUsedForAParameterizableType 2.2015 + Moose::Exception::TypeConstraintIsAlreadyCreated 2.2015 + Moose::Exception::TypeParameterMustBeMooseMetaType 2.2015 + Moose::Exception::UnableToCanonicalizeHandles 2.2015 + Moose::Exception::UnableToCanonicalizeNonRolePackage 2.2015 + Moose::Exception::UnableToRecognizeDelegateMetaclass 2.2015 + Moose::Exception::UndefinedHashKeysPassedToMethod 2.2015 + Moose::Exception::UnionCalledWithAnArrayRefAndAdditionalArgs 2.2015 + Moose::Exception::UnionTakesAtleastTwoTypeNames 2.2015 + Moose::Exception::ValidationFailedForInlineTypeConstraint 2.2015 + Moose::Exception::ValidationFailedForTypeConstraint 2.2015 + Moose::Exception::WrapTakesACodeRefToBless 2.2015 + Moose::Exception::WrongTypeConstraintGiven 2.2015 + Moose::Exporter 2.2015 + Moose::Intro 2.2015 + Moose::Manual 2.2015 + Moose::Manual::Attributes 2.2015 + Moose::Manual::BestPractices 2.2015 + Moose::Manual::Classes 2.2015 + Moose::Manual::Concepts 2.2015 + Moose::Manual::Construction 2.2015 + Moose::Manual::Contributing 2.2015 + Moose::Manual::Delegation 2.2015 + Moose::Manual::Delta 2.2015 + Moose::Manual::Exceptions 2.2015 + Moose::Manual::Exceptions::Manifest 2.2015 + Moose::Manual::FAQ 2.2015 + Moose::Manual::MOP 2.2015 + Moose::Manual::MethodModifiers 2.2015 + Moose::Manual::MooseX 2.2015 + Moose::Manual::Resources 2.2015 + Moose::Manual::Roles 2.2015 + Moose::Manual::Support 2.2015 + Moose::Manual::Types 2.2015 + Moose::Manual::Unsweetened 2.2015 + Moose::Meta::Attribute 2.2015 + Moose::Meta::Attribute::Native 2.2015 + Moose::Meta::Attribute::Native::Trait 2.2015 + Moose::Meta::Attribute::Native::Trait::Array 2.2015 + Moose::Meta::Attribute::Native::Trait::Bool 2.2015 + Moose::Meta::Attribute::Native::Trait::Code 2.2015 + Moose::Meta::Attribute::Native::Trait::Counter 2.2015 + Moose::Meta::Attribute::Native::Trait::Hash 2.2015 + Moose::Meta::Attribute::Native::Trait::Number 2.2015 + Moose::Meta::Attribute::Native::Trait::String 2.2015 + Moose::Meta::Class 2.2015 + Moose::Meta::Class::Immutable::Trait 2.2015 + Moose::Meta::Instance 2.2015 + Moose::Meta::Method 2.2015 + Moose::Meta::Method::Accessor 2.2015 + Moose::Meta::Method::Accessor::Native 2.2015 + Moose::Meta::Method::Accessor::Native::Array 2.2015 + Moose::Meta::Method::Accessor::Native::Array::Writer 2.2015 + Moose::Meta::Method::Accessor::Native::Array::accessor 2.2015 + Moose::Meta::Method::Accessor::Native::Array::clear 2.2015 + Moose::Meta::Method::Accessor::Native::Array::count 2.2015 + Moose::Meta::Method::Accessor::Native::Array::delete 2.2015 + Moose::Meta::Method::Accessor::Native::Array::elements 2.2015 + Moose::Meta::Method::Accessor::Native::Array::first 2.2015 + Moose::Meta::Method::Accessor::Native::Array::first_index 2.2015 + Moose::Meta::Method::Accessor::Native::Array::get 2.2015 + Moose::Meta::Method::Accessor::Native::Array::grep 2.2015 + Moose::Meta::Method::Accessor::Native::Array::insert 2.2015 + Moose::Meta::Method::Accessor::Native::Array::is_empty 2.2015 + Moose::Meta::Method::Accessor::Native::Array::join 2.2015 + Moose::Meta::Method::Accessor::Native::Array::map 2.2015 + Moose::Meta::Method::Accessor::Native::Array::natatime 2.2015 + Moose::Meta::Method::Accessor::Native::Array::pop 2.2015 + Moose::Meta::Method::Accessor::Native::Array::push 2.2015 + Moose::Meta::Method::Accessor::Native::Array::reduce 2.2015 + Moose::Meta::Method::Accessor::Native::Array::set 2.2015 + Moose::Meta::Method::Accessor::Native::Array::shallow_clone 2.2015 + Moose::Meta::Method::Accessor::Native::Array::shift 2.2015 + Moose::Meta::Method::Accessor::Native::Array::shuffle 2.2015 + Moose::Meta::Method::Accessor::Native::Array::sort 2.2015 + Moose::Meta::Method::Accessor::Native::Array::sort_in_place 2.2015 + Moose::Meta::Method::Accessor::Native::Array::splice 2.2015 + Moose::Meta::Method::Accessor::Native::Array::uniq 2.2015 + Moose::Meta::Method::Accessor::Native::Array::unshift 2.2015 + Moose::Meta::Method::Accessor::Native::Bool::not 2.2015 + Moose::Meta::Method::Accessor::Native::Bool::set 2.2015 + Moose::Meta::Method::Accessor::Native::Bool::toggle 2.2015 + Moose::Meta::Method::Accessor::Native::Bool::unset 2.2015 + Moose::Meta::Method::Accessor::Native::Code::execute 2.2015 + Moose::Meta::Method::Accessor::Native::Code::execute_method 2.2015 + Moose::Meta::Method::Accessor::Native::Collection 2.2015 + Moose::Meta::Method::Accessor::Native::Counter::Writer 2.2015 + Moose::Meta::Method::Accessor::Native::Counter::dec 2.2015 + Moose::Meta::Method::Accessor::Native::Counter::inc 2.2015 + Moose::Meta::Method::Accessor::Native::Counter::reset 2.2015 + Moose::Meta::Method::Accessor::Native::Counter::set 2.2015 + Moose::Meta::Method::Accessor::Native::Hash 2.2015 + Moose::Meta::Method::Accessor::Native::Hash::Writer 2.2015 + Moose::Meta::Method::Accessor::Native::Hash::accessor 2.2015 + Moose::Meta::Method::Accessor::Native::Hash::clear 2.2015 + Moose::Meta::Method::Accessor::Native::Hash::count 2.2015 + Moose::Meta::Method::Accessor::Native::Hash::defined 2.2015 + Moose::Meta::Method::Accessor::Native::Hash::delete 2.2015 + Moose::Meta::Method::Accessor::Native::Hash::elements 2.2015 + Moose::Meta::Method::Accessor::Native::Hash::exists 2.2015 + Moose::Meta::Method::Accessor::Native::Hash::get 2.2015 + Moose::Meta::Method::Accessor::Native::Hash::is_empty 2.2015 + Moose::Meta::Method::Accessor::Native::Hash::keys 2.2015 + Moose::Meta::Method::Accessor::Native::Hash::kv 2.2015 + Moose::Meta::Method::Accessor::Native::Hash::set 2.2015 + Moose::Meta::Method::Accessor::Native::Hash::shallow_clone 2.2015 + Moose::Meta::Method::Accessor::Native::Hash::values 2.2015 + Moose::Meta::Method::Accessor::Native::Number::abs 2.2015 + Moose::Meta::Method::Accessor::Native::Number::add 2.2015 + Moose::Meta::Method::Accessor::Native::Number::div 2.2015 + Moose::Meta::Method::Accessor::Native::Number::mod 2.2015 + Moose::Meta::Method::Accessor::Native::Number::mul 2.2015 + Moose::Meta::Method::Accessor::Native::Number::set 2.2015 + Moose::Meta::Method::Accessor::Native::Number::sub 2.2015 + Moose::Meta::Method::Accessor::Native::Reader 2.2015 + Moose::Meta::Method::Accessor::Native::String::append 2.2015 + Moose::Meta::Method::Accessor::Native::String::chomp 2.2015 + Moose::Meta::Method::Accessor::Native::String::chop 2.2015 + Moose::Meta::Method::Accessor::Native::String::clear 2.2015 + Moose::Meta::Method::Accessor::Native::String::inc 2.2015 + Moose::Meta::Method::Accessor::Native::String::length 2.2015 + Moose::Meta::Method::Accessor::Native::String::match 2.2015 + Moose::Meta::Method::Accessor::Native::String::prepend 2.2015 + Moose::Meta::Method::Accessor::Native::String::replace 2.2015 + Moose::Meta::Method::Accessor::Native::String::substr 2.2015 + Moose::Meta::Method::Accessor::Native::Writer 2.2015 + Moose::Meta::Method::Augmented 2.2015 + Moose::Meta::Method::Constructor 2.2015 + Moose::Meta::Method::Delegation 2.2015 + Moose::Meta::Method::Destructor 2.2015 + Moose::Meta::Method::Meta 2.2015 + Moose::Meta::Method::Overridden 2.2015 + Moose::Meta::Mixin::AttributeCore 2.2015 + Moose::Meta::Object::Trait 2.2015 + Moose::Meta::Role 2.2015 + Moose::Meta::Role::Application 2.2015 + Moose::Meta::Role::Application::RoleSummation 2.2015 + Moose::Meta::Role::Application::ToClass 2.2015 + Moose::Meta::Role::Application::ToInstance 2.2015 + Moose::Meta::Role::Application::ToRole 2.2015 + Moose::Meta::Role::Attribute 2.2015 + Moose::Meta::Role::Composite 2.2015 + Moose::Meta::Role::Method 2.2015 + Moose::Meta::Role::Method::Conflicting 2.2015 + Moose::Meta::Role::Method::Required 2.2015 + Moose::Meta::TypeCoercion 2.2015 + Moose::Meta::TypeCoercion::Union 2.2015 + Moose::Meta::TypeConstraint 2.2015 + Moose::Meta::TypeConstraint::Class 2.2015 + Moose::Meta::TypeConstraint::DuckType 2.2015 + Moose::Meta::TypeConstraint::Enum 2.2015 + Moose::Meta::TypeConstraint::Parameterizable 2.2015 + Moose::Meta::TypeConstraint::Parameterized 2.2015 + Moose::Meta::TypeConstraint::Registry 2.2015 + Moose::Meta::TypeConstraint::Role 2.2015 + Moose::Meta::TypeConstraint::Union 2.2015 + Moose::Object 2.2015 + Moose::Role 2.2015 + Moose::Spec::Role 2.2015 + Moose::Unsweetened 2.2015 + Moose::Util 2.2015 + Moose::Util::MetaRole 2.2015 + Moose::Util::TypeConstraints 2.2015 + Moose::Util::TypeConstraints::Builtins 2.2015 + Test::Moose 2.2015 + metaclass 2.2015 + oose 2.2015 requirements: Carp 1.22 Class::Load 0.09 Class::Load::XS 0.01 Data::OptList 0.107 Devel::GlobalDestruction 0 - Devel::OverloadInfo 0.004 - Devel::StackTrace 1.33 + Devel::OverloadInfo 0.005 + Devel::StackTrace 2.03 Dist::CheckConflicts 0.02 Eval::Closure 0.04 ExtUtils::MakeMaker 0 - List::Util 1.45 + List::Util 1.56 MRO::Compat 0.05 Module::Runtime 0.014 Module::Runtime::Conflicts 0.002 @@ -5219,7 +5112,6 @@ DISTRIBUTIONS Params::Util 1.00 Scalar::Util 1.19 Sub::Exporter 0.980 - Sub::Identify 0 Sub::Name 0.20 Try::Tiny 0.17 parent 0.223 @@ -5552,10 +5444,10 @@ DISTRIBUTIONS Scalar::Util 1.14 XSLoader 0.02 perl 5.008005 - Mozilla-CA-20160104 - pathname: A/AB/ABH/Mozilla-CA-20160104.tar.gz + Mozilla-CA-20200520 + pathname: A/AB/ABH/Mozilla-CA-20200520.tar.gz provides: - Mozilla::CA 20160104 + Mozilla::CA 20200520 requirements: ExtUtils::MakeMaker 0 Test 0 @@ -5690,10 +5582,10 @@ DISTRIBUTIONS Test::More 0.98 parent 0 perl 5.008008 - Net-Fastly-1.09 - pathname: F/FA/FASTLY/Net-Fastly-1.09.tar.gz + Net-Fastly-1.12 + pathname: F/FA/FASTLY/Net-Fastly-1.12.tar.gz provides: - Net::Fastly 1.09 + Net::Fastly 1.12 Net::Fastly::Backend undef Net::Fastly::BelongsToServiceAndVersion undef Net::Fastly::Client undef @@ -5729,13 +5621,13 @@ DISTRIBUTIONS URI 0 URI::Escape 0 YAML 0 - Net-HTTP-6.17 - pathname: O/OA/OALDERS/Net-HTTP-6.17.tar.gz + Net-HTTP-6.21 + pathname: O/OA/OALDERS/Net-HTTP-6.21.tar.gz provides: - Net::HTTP 6.17 - Net::HTTP::Methods 6.17 - Net::HTTP::NB 6.17 - Net::HTTPS 6.17 + Net::HTTP 6.21 + Net::HTTP::Methods 6.21 + Net::HTTP::NB 6.21 + Net::HTTPS 6.21 requirements: Carp 0 Compress::Raw::Zlib 0 @@ -5746,7 +5638,6 @@ DISTRIBUTIONS base 0 perl 5.006002 strict 0 - vars 0 warnings 0 Net-OAuth-0.28 pathname: K/KG/KGRENNAN/Net-OAuth-0.28.tar.gz @@ -5786,63 +5677,6 @@ DISTRIBUTIONS Test::More 0.66 Test::Warn 0.21 URI::Escape 3.28 - Net-OpenID-Common-1.20 - pathname: W/WR/WROG/Net-OpenID-Common-1.20.tar.gz - provides: - Net::OpenID::Common 1.20 - Net::OpenID::Extension 1.20 - Net::OpenID::Extension::SimpleRegistration 1.20 - Net::OpenID::Extension::SimpleRegistration::Request 1.20 - Net::OpenID::Extension::SimpleRegistration::Response 1.20 - Net::OpenID::ExtensionMessage 1.20 - Net::OpenID::IndirectMessage 1.20 - Net::OpenID::URIFetch 1.20 - Net::OpenID::URIFetch::Response 1.20 - Net::OpenID::Yadis 1.20 - Net::OpenID::Yadis::Service 1.20 - OpenID::util 1.20 - requirements: - Crypt::DH::GMP 0.00011 - Encode 0 - ExtUtils::MakeMaker 0 - HTML::Parser 3.40 - HTTP::Headers::Util 0 - HTTP::Message 5.814 - HTTP::Request 0 - HTTP::Status 0 - MIME::Base64 0 - Math::BigInt 0 - Time::Local 0 - XML::Simple 0 - Net-OpenID-Consumer-1.18 - pathname: W/WR/WROG/Net-OpenID-Consumer-1.18.tar.gz - provides: - Net::OpenID::Association 1.18 - Net::OpenID::ClaimedIdentity 1.18 - Net::OpenID::Consumer 1.18 - Net::OpenID::VerifiedIdentity 1.18 - requirements: - Digest::SHA 0 - ExtUtils::MakeMaker 0 - HTTP::Request 0 - JSON 0 - LWP::UserAgent 0 - MIME::Base64 0 - Net::OpenID::Common 1.19 - Storable 0 - Time::Local 0 - URI 0 - Net-OpenID-Server-1.09 - pathname: R/RO/ROBN/Net-OpenID-Server-1.09.tar.gz - provides: - Net::OpenID::Server 1.09 - requirements: - Digest::SHA 0 - ExtUtils::MakeMaker 6.31 - MIME::Base64 0 - Net::OpenID::Common 1.11 - Test::More 0 - URI 0 Net-SSLeay-1.82 pathname: M/MI/MIKEM/Net-SSLeay-1.82.tar.gz provides: @@ -5887,37 +5721,37 @@ DISTRIBUTIONS POSIX 0 Socket 0 Time::HiRes 0 - Net-Twitter-4.01042 - pathname: M/MM/MMIMS/Net-Twitter-4.01042.tar.gz - provides: - Net::Identica 4.01042 - Net::Twitter 4.01042 - Net::Twitter::API 4.01042 - Net::Twitter::Core 4.01042 - Net::Twitter::Error 4.01042 - Net::Twitter::Meta::Method 4.01042 - Net::Twitter::OAuth 4.01042 - Net::Twitter::Role::API::Lists 4.01042 - Net::Twitter::Role::API::REST 4.01042 - Net::Twitter::Role::API::RESTv1_1 4.01042 - Net::Twitter::Role::API::Search 4.01042 - Net::Twitter::Role::API::Search::Trends 4.01042 - Net::Twitter::Role::API::TwitterVision 4.01042 - Net::Twitter::Role::API::Upload 4.01042 - Net::Twitter::Role::API::UploadMedia 4.01042 - Net::Twitter::Role::AppAuth 4.01042 - Net::Twitter::Role::AutoCursor 4.01042 - Net::Twitter::Role::InflateObjects 4.01042 - Net::Twitter::Role::Legacy 4.01042 - Net::Twitter::Role::OAuth 4.01042 - Net::Twitter::Role::RateLimit 4.01042 - Net::Twitter::Role::RetryOnError 4.01042 - Net::Twitter::Role::SimulateCursors 4.01042 - Net::Twitter::Role::WrapError 4.01042 - Net::Twitter::Role::WrapResult 4.01042 - Net::Twitter::Search 4.01042 - Net::Twitter::Types 4.01042 - Net::Twitter::WrappedResult 4.01042 + Net-Twitter-4.01043 + pathname: M/MM/MMIMS/Net-Twitter-4.01043.tar.gz + provides: + Net::Identica 4.01043 + Net::Twitter 4.01043 + Net::Twitter::API 4.01043 + Net::Twitter::Core 4.01043 + Net::Twitter::Error 4.01043 + Net::Twitter::Meta::Method 4.01043 + Net::Twitter::OAuth 4.01043 + Net::Twitter::Role::API::Lists 4.01043 + Net::Twitter::Role::API::REST 4.01043 + Net::Twitter::Role::API::RESTv1_1 4.01043 + Net::Twitter::Role::API::Search 4.01043 + Net::Twitter::Role::API::Search::Trends 4.01043 + Net::Twitter::Role::API::TwitterVision 4.01043 + Net::Twitter::Role::API::Upload 4.01043 + Net::Twitter::Role::API::UploadMedia 4.01043 + Net::Twitter::Role::AppAuth 4.01043 + Net::Twitter::Role::AutoCursor 4.01043 + Net::Twitter::Role::InflateObjects 4.01043 + Net::Twitter::Role::Legacy 4.01043 + Net::Twitter::Role::OAuth 4.01043 + Net::Twitter::Role::RateLimit 4.01043 + Net::Twitter::Role::RetryOnError 4.01043 + Net::Twitter::Role::SimulateCursors 4.01043 + Net::Twitter::Role::WrapError 4.01043 + Net::Twitter::Role::WrapResult 4.01043 + Net::Twitter::Search 4.01043 + Net::Twitter::Types 4.01043 + Net::Twitter::WrappedResult 4.01043 requirements: Carp::Clan 0 Class::Load 0 @@ -5969,10 +5803,10 @@ DISTRIBUTIONS Storable 2.11 Test::More 0.47 perl 5.005 - OrePAN2-0.46 - pathname: O/OA/OALDERS/OrePAN2-0.46.tar.gz + OrePAN2-0.48 + pathname: O/OA/OALDERS/OrePAN2-0.48.tar.gz provides: - OrePAN2 0.46 + OrePAN2 0.48 OrePAN2::Auditor undef OrePAN2::CLI::Indexer undef OrePAN2::CLI::Inject undef @@ -5983,10 +5817,11 @@ DISTRIBUTIONS OrePAN2::Repository::Cache undef requirements: Archive::Extract 0.72 - Archive::Tar 0 + Archive::Tar 1.46 CPAN::Meta 2.13156 Class::Accessor::Lite 0.05 Digest::MD5 0 + ExtUtils::MakeMaker 7.06 File::Path 0 File::Temp 0 File::pushd 0 @@ -6004,7 +5839,7 @@ DISTRIBUTIONS Moo 1.007000 MooX::Options 0 Parse::CPAN::Meta 1.4414 - Parse::CPAN::Packages 2.39 + Parse::CPAN::Packages::Fast 0.09 Parse::LocalDistribution 0.14 Parse::PMFile 0.29 Path::Tiny 0 @@ -6014,6 +5849,7 @@ DISTRIBUTIONS Type::Params 0 Types::URI 0 autodie 0 + feature 0 parent 0 perl 5.008005 version 0.9912 @@ -6363,12 +6199,12 @@ DISTRIBUTIONS strict 0 vars 0 warnings 0 - Params-ValidationCompiler-0.24 - pathname: D/DR/DROLSKY/Params-ValidationCompiler-0.24.tar.gz + Params-ValidationCompiler-0.30 + pathname: D/DR/DROLSKY/Params-ValidationCompiler-0.30.tar.gz provides: - Params::ValidationCompiler 0.24 - Params::ValidationCompiler::Compiler 0.24 - Params::ValidationCompiler::Exceptions 0.24 + Params::ValidationCompiler 0.30 + Params::ValidationCompiler::Compiler 0.30 + Params::ValidationCompiler::Exceptions 0.30 requirements: B 0 Carp 0 @@ -6821,68 +6657,75 @@ DISTRIBUTIONS perl 5.008 strict 0 warnings 0 - Pithub-0.01033 - pathname: O/OA/OALDERS/Pithub-0.01033.tar.gz - provides: - Pithub 0.01033 - Pithub::Base 0.01033 - Pithub::Events 0.01033 - Pithub::Gists 0.01033 - Pithub::Gists::Comments 0.01033 - Pithub::GitData 0.01033 - Pithub::GitData::Blobs 0.01033 - Pithub::GitData::Commits 0.01033 - Pithub::GitData::References 0.01033 - Pithub::GitData::Tags 0.01033 - Pithub::GitData::Trees 0.01033 - Pithub::Issues 0.01033 - Pithub::Issues::Assignees 0.01033 - Pithub::Issues::Comments 0.01033 - Pithub::Issues::Events 0.01033 - Pithub::Issues::Labels 0.01033 - Pithub::Issues::Milestones 0.01033 - Pithub::Orgs 0.01033 - Pithub::Orgs::Members 0.01033 - Pithub::Orgs::Teams 0.01033 - Pithub::PullRequests 0.01033 - Pithub::PullRequests::Comments 0.01033 - Pithub::Repos 0.01033 - Pithub::Repos::Collaborators 0.01033 - Pithub::Repos::Commits 0.01033 - Pithub::Repos::Contents 0.01033 - Pithub::Repos::Downloads 0.01033 - Pithub::Repos::Forks 0.01033 - Pithub::Repos::Hooks 0.01033 - Pithub::Repos::Keys 0.01033 - Pithub::Repos::Releases 0.01033 - Pithub::Repos::Releases::Assets 0.01033 - Pithub::Repos::Starring 0.01033 - Pithub::Repos::Stats 0.01033 - Pithub::Repos::Statuses 0.01033 - Pithub::Repos::Watching 0.01033 - Pithub::Result 0.01033 - Pithub::Result::SharedCache 0.01033 - Pithub::Search 0.01033 - Pithub::SearchV3 0.01033 - Pithub::Users 0.01033 - Pithub::Users::Emails 0.01033 - Pithub::Users::Followers 0.01033 - Pithub::Users::Keys 0.01033 + Pithub-0.01036 + pathname: O/OA/OALDERS/Pithub-0.01036.tar.gz + provides: + Pithub 0.01036 + Pithub::Base 0.01036 + Pithub::Events 0.01036 + Pithub::Gists 0.01036 + Pithub::Gists::Comments 0.01036 + Pithub::GitData 0.01036 + Pithub::GitData::Blobs 0.01036 + Pithub::GitData::Commits 0.01036 + Pithub::GitData::References 0.01036 + Pithub::GitData::Tags 0.01036 + Pithub::GitData::Trees 0.01036 + Pithub::Issues 0.01036 + Pithub::Issues::Assignees 0.01036 + Pithub::Issues::Comments 0.01036 + Pithub::Issues::Events 0.01036 + Pithub::Issues::Labels 0.01036 + Pithub::Issues::Milestones 0.01036 + Pithub::Markdown 0.01036 + Pithub::Orgs 0.01036 + Pithub::Orgs::Members 0.01036 + Pithub::Orgs::Teams 0.01036 + Pithub::PullRequests 0.01036 + Pithub::PullRequests::Comments 0.01036 + Pithub::PullRequests::Reviewers 0.01036 + Pithub::Repos 0.01036 + Pithub::Repos::Collaborators 0.01036 + Pithub::Repos::Commits 0.01036 + Pithub::Repos::Contents 0.01036 + Pithub::Repos::Downloads 0.01036 + Pithub::Repos::Forks 0.01036 + Pithub::Repos::Hooks 0.01036 + Pithub::Repos::Keys 0.01036 + Pithub::Repos::Releases 0.01036 + Pithub::Repos::Releases::Assets 0.01036 + Pithub::Repos::Starring 0.01036 + Pithub::Repos::Stats 0.01036 + Pithub::Repos::Statuses 0.01036 + Pithub::Repos::Watching 0.01036 + Pithub::Result 0.01036 + Pithub::Result::SharedCache 0.01036 + Pithub::Search 0.01036 + Pithub::SearchV3 0.01036 + Pithub::Users 0.01036 + Pithub::Users::Emails 0.01036 + Pithub::Users::Followers 0.01036 + Pithub::Users::Keys 0.01036 requirements: Array::Iterator 0 - Cache::LRU 0.04 + Cache::LRU 0 + Carp 0 ExtUtils::MakeMaker 0 - HTTP::Message 0 - JSON::MaybeXS 1.003003 - LWP::Protocol::https 0 + HTTP::Headers 0 + HTTP::Request 0 + HTTP::Request::Common 0 + JSON::MaybeXS 0 LWP::UserAgent 0 - Moo 1.001000 - Plack-1.0044 - pathname: M/MI/MIYAGAWA/Plack-1.0044.tar.gz + Moo 0 + Moo::Role 0 + URI 0 + perl 5.010 + Plack-1.0048 + pathname: M/MI/MIYAGAWA/Plack-1.0048.tar.gz provides: HTTP::Message::PSGI undef HTTP::Server::PSGI undef - Plack 1.0044 + Plack 1.0048 Plack::App::CGIBin undef Plack::App::Cascade undef Plack::App::Directory undef @@ -6941,9 +6784,9 @@ DISTRIBUTIONS Plack::Middleware::XFramework undef Plack::Middleware::XSendfile undef Plack::Recursive::ForwardRequest undef - Plack::Request 1.0044 + Plack::Request 1.0048 Plack::Request::Upload undef - Plack::Response 1.0044 + Plack::Response 1.0048 Plack::Runner undef Plack::TempBuffer undef Plack::Test undef @@ -6963,7 +6806,7 @@ DISTRIBUTIONS File::ShareDir 1.00 File::ShareDir::Install 0.06 Filesys::Notify::Simple 0 - HTTP::Entity::Parser 0.17 + HTTP::Entity::Parser 0.25 HTTP::Headers::Fast 0.18 HTTP::Message 5.814 HTTP::Tiny 0.034 @@ -7340,13 +7183,13 @@ DISTRIBUTIONS ExtUtils::MakeMaker 0 Scalar::Util 0 perl 5.006 - Scalar-List-Utils-1.55 - pathname: P/PE/PEVANS/Scalar-List-Utils-1.55.tar.gz + Scalar-List-Utils-1.56 + pathname: P/PE/PEVANS/Scalar-List-Utils-1.56.tar.gz provides: - List::Util 1.55 - List::Util::XS 1.55 - Scalar::Util 1.55 - Sub::Util 1.55 + List::Util 1.56 + List::Util::XS 1.56 + Scalar::Util 1.56 + Sub::Util 1.56 requirements: ExtUtils::MakeMaker 0 perl 5.006 @@ -7879,17 +7722,6 @@ DISTRIBUTIONS Try::Tiny 0.07 strict 0 warnings 0 - Test-HTTP-Server-Simple-0.11 - pathname: A/AL/ALEXMV/Test-HTTP-Server-Simple-0.11.tar.gz - provides: - Test::HTTP::Server::Simple 0.11 - requirements: - ExtUtils::MakeMaker 0 - HTTP::Server::Simple 0 - NEXT 0 - Test::Builder 0 - Test::Builder::Tester 1.04 - Test::More 0 Test-InDistDir-1.112071 pathname: M/MI/MITHALDU/Test-InDistDir-1.112071.tar.gz provides: @@ -7946,30 +7778,6 @@ DISTRIBUTIONS Test::Builder::Tester 1.02 Test::More 0.42 overload 0 - Test-OpenID-Consumer-0.03 - pathname: T/TS/TSIBLEY/Test-OpenID-Consumer-0.03.tar.gz - provides: - Test::OpenID::Consumer 0.03 - requirements: - Cache::FileCache 0 - ExtUtils::MakeMaker 6.36 - HTTP::Server::Simple 0 - LWP::UserAgent::Paranoid 0.97 - Net::OpenID::Consumer 0 - Test::Builder 0 - Test::HTTP::Server::Simple 0 - Test-OpenID-Server-0.03 - pathname: T/TS/TSIBLEY/Test-OpenID-Server-0.03.tar.gz - provides: - Test::OpenID::Server 0.03 - requirements: - ExtUtils::MakeMaker 6.36 - HTTP::Server::Simple 0 - Net::OpenID::Server 0 - Test::HTTP::Server::Simple 0 - Test::OpenID::Consumer 0 - Test::WWW::Mechanize 0 - Test::Warnings 0.009 Test-Perl-Critic-1.03 pathname: T/TH/THALJEF/Test-Perl-Critic-1.03.tar.gz provides: @@ -8052,84 +7860,6 @@ DISTRIBUTIONS Test::Builder::Module 0 Test::More 0.88 perl 5.008_001 - Test-Simple-1.302175 - pathname: E/EX/EXODIST/Test-Simple-1.302175.tar.gz - provides: - Test2 1.302175 - Test2::API 1.302175 - Test2::API::Breakage 1.302175 - Test2::API::Context 1.302175 - Test2::API::Instance 1.302175 - Test2::API::Stack 1.302175 - Test2::Event 1.302175 - Test2::Event::Bail 1.302175 - Test2::Event::Diag 1.302175 - Test2::Event::Encoding 1.302175 - Test2::Event::Exception 1.302175 - Test2::Event::Fail 1.302175 - Test2::Event::Generic 1.302175 - Test2::Event::Note 1.302175 - Test2::Event::Ok 1.302175 - Test2::Event::Pass 1.302175 - Test2::Event::Plan 1.302175 - Test2::Event::Skip 1.302175 - Test2::Event::Subtest 1.302175 - Test2::Event::TAP::Version 1.302175 - Test2::Event::V2 1.302175 - Test2::Event::Waiting 1.302175 - Test2::EventFacet 1.302175 - Test2::EventFacet::About 1.302175 - Test2::EventFacet::Amnesty 1.302175 - Test2::EventFacet::Assert 1.302175 - Test2::EventFacet::Control 1.302175 - Test2::EventFacet::Error 1.302175 - Test2::EventFacet::Hub 1.302175 - Test2::EventFacet::Info 1.302175 - Test2::EventFacet::Info::Table 1.302175 - Test2::EventFacet::Meta 1.302175 - Test2::EventFacet::Parent 1.302175 - Test2::EventFacet::Plan 1.302175 - Test2::EventFacet::Render 1.302175 - Test2::EventFacet::Trace 1.302175 - Test2::Formatter 1.302175 - Test2::Formatter::TAP 1.302175 - Test2::Hub 1.302175 - Test2::Hub::Interceptor 1.302175 - Test2::Hub::Interceptor::Terminator 1.302175 - Test2::Hub::Subtest 1.302175 - Test2::IPC 1.302175 - Test2::IPC::Driver 1.302175 - Test2::IPC::Driver::Files 1.302175 - Test2::Tools::Tiny 1.302175 - Test2::Util 1.302175 - Test2::Util::ExternalMeta 1.302175 - Test2::Util::Facets2Legacy 1.302175 - Test2::Util::HashBase 1.302175 - Test2::Util::Trace 1.302175 - Test::Builder 1.302175 - Test::Builder::Formatter 1.302175 - Test::Builder::IO::Scalar 2.114 - Test::Builder::Module 1.302175 - Test::Builder::Tester 1.302175 - Test::Builder::Tester::Color 1.302175 - Test::Builder::Tester::Tie 1.302175 - Test::Builder::TodoDiag 1.302175 - Test::More 1.302175 - Test::Simple 1.302175 - Test::Tester 1.302175 - Test::Tester::Capture 1.302175 - Test::Tester::CaptureRunner 1.302175 - Test::Tester::Delegate 1.302175 - Test::use::ok 1.302175 - ok 1.302175 - requirements: - ExtUtils::MakeMaker 0 - File::Spec 0 - File::Temp 0 - Scalar::Util 1.13 - Storable 0 - perl 5.006002 - utf8 0 Test-SubCalls-1.09 pathname: A/AD/ADAMK/Test-SubCalls-1.09.tar.gz provides: @@ -8154,16 +7884,15 @@ DISTRIBUTIONS Test::SharedFork 0.29 Time::HiRes 0 perl 5.008001 - Test-Vars-0.014 - pathname: D/DR/DROLSKY/Test-Vars-0.014.tar.gz + Test-Vars-0.015 + pathname: G/GF/GFUJI/Test-Vars-0.015.tar.gz provides: - Test::Vars 0.014 + Test::Vars 0.015 requirements: B 0 ExtUtils::MakeMaker 6.59 List::Util 1.33 Module::Build::Tiny 0.035 - Test::More 0.88 parent 0 perl 5.010000 Test-WWW-Mechanize-1.48 @@ -8211,19 +7940,6 @@ DISTRIBUTIONS Test::Builder 0.13 Test::Builder::Tester 1.02 perl 5.006 - Test-Warnings-0.026 - pathname: E/ET/ETHER/Test-Warnings-0.026.tar.gz - provides: - Test::Warnings 0.026 - requirements: - Carp 0 - Exporter 0 - ExtUtils::MakeMaker 0 - Test::Builder 0 - parent 0 - perl 5.006 - strict 0 - warnings 0 Text-CSV_XS-1.34 pathname: H/HM/HMBRAND/Text-CSV_XS-1.34.tgz provides: @@ -8528,52 +8244,53 @@ DISTRIBUTIONS perl 5.006 strict 0 warnings 0 - URI-1.72 - pathname: E/ET/ETHER/URI-1.72.tar.gz - provides: - URI 1.72 - URI::Escape 3.31 - URI::Heuristic 4.20 - URI::IRI 1.72 - URI::QueryParam 1.72 - URI::Split 1.72 - URI::URL 5.04 - URI::WithBase 2.20 - URI::data 1.72 - URI::file 4.21 - URI::file::Base 1.72 - URI::file::FAT 1.72 - URI::file::Mac 1.72 - URI::file::OS2 1.72 - URI::file::QNX 1.72 - URI::file::Unix 1.72 - URI::file::Win32 1.72 - URI::ftp 1.72 - URI::gopher 1.72 - URI::http 1.72 - URI::https 1.72 - URI::ldap 1.72 - URI::ldapi 1.72 - URI::ldaps 1.72 - URI::mailto 1.72 - URI::mms 1.72 - URI::news 1.72 - URI::nntp 1.72 - URI::pop 1.72 - URI::rlogin 1.72 - URI::rsync 1.72 - URI::rtsp 1.72 - URI::rtspu 1.72 - URI::sftp 1.72 - URI::sip 1.72 - URI::sips 1.72 - URI::snews 1.72 - URI::ssh 1.72 - URI::telnet 1.72 - URI::tn3270 1.72 - URI::urn 1.72 - URI::urn::isbn 1.72 - URI::urn::oid 1.72 + URI-5.09 + pathname: O/OA/OALDERS/URI-5.09.tar.gz + provides: + URI 5.09 + URI::Escape 5.09 + URI::Heuristic 5.09 + URI::IRI 5.09 + URI::QueryParam 5.09 + URI::Split 5.09 + URI::URL 5.09 + URI::WithBase 5.09 + URI::data 5.09 + URI::file 5.09 + URI::file::Base 5.09 + URI::file::FAT 5.09 + URI::file::Mac 5.09 + URI::file::OS2 5.09 + URI::file::QNX 5.09 + URI::file::Unix 5.09 + URI::file::Win32 5.09 + URI::ftp 5.09 + URI::gopher 5.09 + URI::http 5.09 + URI::https 5.09 + URI::ldap 5.09 + URI::ldapi 5.09 + URI::ldaps 5.09 + URI::mailto 5.09 + URI::mms 5.09 + URI::news 5.09 + URI::nntp 5.09 + URI::nntps 5.09 + URI::pop 5.09 + URI::rlogin 5.09 + URI::rsync 5.09 + URI::rtsp 5.09 + URI::rtspu 5.09 + URI::sftp 5.09 + URI::sip 5.09 + URI::sips 5.09 + URI::snews 5.09 + URI::ssh 5.09 + URI::telnet 5.09 + URI::tn3270 5.09 + URI::urn 5.09 + URI::urn::isbn 5.09 + URI::urn::oid 5.09 requirements: Carp 0 Cwd 0 @@ -8875,13 +8592,6 @@ DISTRIBUTIONS XML::SAX 0.15 XML::SAX::Expat 0 perl 5.008 - XSLoader-0.24 - pathname: S/SA/SAPER/XSLoader-0.24.tar.gz - provides: - XSLoader 0.24 - requirements: - ExtUtils::MakeMaker 0 - Test::More 0.47 YAML-1.24 pathname: T/TI/TINITA/YAML-1.24.tar.gz provides: @@ -8910,11 +8620,11 @@ DISTRIBUTIONS requirements: ExtUtils::MakeMaker 0 perl 5.008001 - YAML-LibYAML-0.75 - pathname: T/TI/TINITA/YAML-LibYAML-0.75.tar.gz + YAML-LibYAML-0.83 + pathname: T/TI/TINITA/YAML-LibYAML-0.83.tar.gz provides: - YAML::LibYAML 0.75 - YAML::XS 0.75 + YAML::LibYAML 0.83 + YAML::XS 0.83 YAML::XS::LibYAML undef requirements: ExtUtils::MakeMaker 0 @@ -8968,79 +8678,35 @@ DISTRIBUTIONS XSLoader 0 lib 0 perl 5.008001 - libnet-3.11 - pathname: S/SH/SHAY/libnet-3.11.tar.gz - provides: - Net undef - Net::Cmd 3.11 - Net::Config 3.11 - Net::Domain 3.11 - Net::FTP 3.11 - Net::FTP::A 3.11 - Net::FTP::E 3.11 - Net::FTP::I 3.11 - Net::FTP::L 3.11 - Net::FTP::_SSL_SingleSessionCache 3.11 - Net::FTP::dataconn 3.11 - Net::NNTP 3.11 - Net::NNTP::_SSL 3.11 - Net::Netrc 3.11 - Net::POP3 3.11 - Net::POP3::_SSL 3.11 - Net::SMTP 3.11 - Net::SMTP::_SSL 3.11 - Net::Time 3.11 - requirements: - Carp 0 - Errno 0 - Exporter 0 - ExtUtils::MakeMaker 6.64 - Fcntl 0 - File::Basename 0 - FileHandle 0 - Getopt::Std 0 - IO::File 0 - IO::Select 0 - IO::Socket 1.05 - POSIX 0 - Socket 2.016 - Symbol 0 - Time::Local 0 - constant 0 - perl 5.008001 - strict 0 - utf8 0 - vars 0 - warnings 0 - libwww-perl-6.29 - pathname: O/OA/OALDERS/libwww-perl-6.29.tar.gz - provides: - LWP 6.29 - LWP::Authen::Basic 6.29 - LWP::Authen::Digest 6.29 - LWP::Authen::Ntlm 6.29 - LWP::ConnCache 6.29 - LWP::Debug 6.29 - LWP::Debug::TraceHTTP 6.29 - LWP::DebugFile 6.29 - LWP::MemberMixin 6.29 - LWP::Protocol 6.29 - LWP::Protocol::MyFTP 6.29 - LWP::Protocol::cpan 6.29 - LWP::Protocol::data 6.29 - LWP::Protocol::file 6.29 - LWP::Protocol::ftp 6.29 - LWP::Protocol::gopher 6.29 - LWP::Protocol::http 6.29 - LWP::Protocol::loopback 6.29 - LWP::Protocol::mailto 6.29 - LWP::Protocol::nntp 6.29 - LWP::Protocol::nogo 6.29 - LWP::RobotUA 6.29 - LWP::Simple 6.29 - LWP::UserAgent 6.29 + libwww-perl-6.55 + pathname: O/OA/OALDERS/libwww-perl-6.55.tar.gz + provides: + LWP 6.55 + LWP::Authen::Basic 6.55 + LWP::Authen::Digest 6.55 + LWP::Authen::Ntlm 6.55 + LWP::ConnCache 6.55 + LWP::Debug 6.55 + LWP::Debug::TraceHTTP 6.55 + LWP::DebugFile 6.55 + LWP::MemberMixin 6.55 + LWP::Protocol 6.55 + LWP::Protocol::cpan 6.55 + LWP::Protocol::data 6.55 + LWP::Protocol::file 6.55 + LWP::Protocol::ftp 6.55 + LWP::Protocol::gopher 6.55 + LWP::Protocol::http 6.55 + LWP::Protocol::loopback 6.55 + LWP::Protocol::mailto 6.55 + LWP::Protocol::nntp 6.55 + LWP::Protocol::nogo 6.55 + LWP::RobotUA 6.55 + LWP::Simple 6.55 + LWP::UserAgent 6.55 libwww::perl undef requirements: + CPAN::Meta::Requirements 2.120620 Digest::MD5 0 Encode 2.12 Encode::Locale 0 @@ -9051,19 +8717,19 @@ DISTRIBUTIONS HTML::Entities 0 HTML::HeadParser 0 HTTP::Cookies 6 - HTTP::Daemon 6 HTTP::Date 6 HTTP::Negotiate 6 HTTP::Request 6 HTTP::Request::Common 6 HTTP::Response 6 - HTTP::Status 6 + HTTP::Status 6.07 IO::Select 0 IO::Socket 0 LWP::MediaTypes 6 MIME::Base64 2.1 + Module::Metadata 0 Net::FTP 2.58 - Net::HTTP 6.07 + Net::HTTP 6.18 Scalar::Util 0 Try::Tiny 0 URI 1.10 @@ -9120,13 +8786,3 @@ DISTRIBUTIONS indirect 0 multidimensional 0 perl 5.006 - version-0.9924 - pathname: J/JP/JPEACOCK/version-0.9924.tar.gz - provides: - version 0.9924 - version::regex 0.9924 - version::vpp 0.9924 - version::vxs 0.9924 - requirements: - ExtUtils::MakeMaker 0 - perl 5.006002 From 0f5c14d72543a5286912b0ee8686c2c17d210079 Mon Sep 17 00:00:00 2001 From: Olaf Alders Date: Fri, 9 Jul 2021 15:48:10 -0400 Subject: [PATCH 018/597] Fix exception thrown when we try to find reverse deps on an unauthorized module In this case a search for /v1/reverse_dependencies/dist/Math-Calc-Units returned a 500 The reason is that this module is marked as latest, but also not marked as authorized, presumably because it includes Parse::Yapp::Driver. So, it does not meet the conditions of the query as set in MetaCPAN::Query::Release::_get_latest_release(). _get_latest_release() was assuming success and returning a hashref with no name and author rather than returning false. Because we did not short-circuit here, a later query failed with "No value specified for term query". This will now return a 404: { "code" : 404, "message" : "The requested info could not be found" } --- lib/MetaCPAN/Query/Release.pm | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/lib/MetaCPAN/Query/Release.pm b/lib/MetaCPAN/Query/Release.pm index 7e612af39..563da8f11 100644 --- a/lib/MetaCPAN/Query/Release.pm +++ b/lib/MetaCPAN/Query/Release.pm @@ -758,10 +758,12 @@ sub _get_latest_release { my ($release_info) = map { $_->{fields} } @{ $release->{hits}{hits} }; single_valued_arrayref_to_scalar($release_info); - return +{ + return $release_info->{name} && $release_info->{author} + ? +{ name => $release_info->{name}, author => $release_info->{author}, - }; + } + : undef; } sub _get_provided_modules { From 5df07cfa4c40d66a17f0099ef0010e17d6f52c20 Mon Sep 17 00:00:00 2001 From: Olaf Alders Date: Fri, 9 Jul 2021 16:54:17 -0400 Subject: [PATCH 019/597] Add more reverse dependency tests --- t/model/release/reverse_dependencies.t | 11 +++++++++-- t/query/release.t | 20 ++++++++++++++++++++ 2 files changed, 29 insertions(+), 2 deletions(-) create mode 100644 t/query/release.t diff --git a/t/model/release/reverse_dependencies.t b/t/model/release/reverse_dependencies.t index 170663d47..ffcd118ad 100644 --- a/t/model/release/reverse_dependencies.t +++ b/t/model/release/reverse_dependencies.t @@ -7,7 +7,7 @@ use Test::More; my $c = 'MetaCPAN::Server'; -subtest 'reverse_dependencies' => sub { +subtest 'distribution reverse_dependencies' => sub { my $data = [ sort { $a->[1] cmp $b->[1] } map +[ @{$_}{qw(author name)} ], @@ -27,7 +27,7 @@ subtest 'reverse_dependencies' => sub { ); }; -subtest 'reverse_dependencies' => sub { +subtest 'module reverse_dependencies' => sub { my $data = [ map +[ @{$_}{qw(author name)} ], @{ @@ -43,4 +43,11 @@ subtest 'reverse_dependencies' => sub { ); }; +subtest 'no reverse_dependencies' => sub { + my $data + = $c->model('CPAN::Release')->raw->requires('DoesNotExist')->{data}; + + is_deeply( $data, [], 'Found no reverse dependencies for module.' ); +}; + done_testing; diff --git a/t/query/release.t b/t/query/release.t new file mode 100644 index 000000000..584684982 --- /dev/null +++ b/t/query/release.t @@ -0,0 +1,20 @@ +use strict; +use warnings; + +use lib 't/lib'; + +use MetaCPAN::Query::Release (); +use MetaCPAN::Server::Test (); +use Test::More; + +my $query + = MetaCPAN::Query::Release->new( + es => MetaCPAN::Server::Test::model->es() ); + +is( $query->_get_latest_release('DoesNotExist'), + undef, '_get_latest_release returns undef when release does not exist' ); + +is( $query->reverse_dependencies('DoesNotExist'), + undef, 'reverse_dependencies returns undef when release does not exist' ); + +done_testing(); From 1499ff5ef37097a78038ea7e52b83364811ba974 Mon Sep 17 00:00:00 2001 From: Olaf Alders Date: Fri, 9 Jul 2021 17:08:30 -0400 Subject: [PATCH 020/597] Ensure that _get_provided_modules() returns undef on failure --- lib/MetaCPAN/Query/Release.pm | 12 ++++++------ t/query/release.t | 16 ++++++++++++++++ 2 files changed, 22 insertions(+), 6 deletions(-) diff --git a/lib/MetaCPAN/Query/Release.pm b/lib/MetaCPAN/Query/Release.pm index 563da8f11..6fb6673d4 100644 --- a/lib/MetaCPAN/Query/Release.pm +++ b/lib/MetaCPAN/Query/Release.pm @@ -787,12 +787,12 @@ sub _get_provided_modules { } ); - return [ - map { $_->{name} } - grep { $_->{indexed} && $_->{authorized} } - map { @{ $_->{_source}{module} } } - @{ $provided_modules->{hits}{hits} } - ]; + my @modules = map { $_->{name} } + grep { $_->{indexed} && $_->{authorized} } + map { @{ $_->{_source}{module} } } + @{ $provided_modules->{hits}{hits} }; + + return @modules ? \@modules : undef; } sub _fix_sort_value { diff --git a/t/query/release.t b/t/query/release.t index 584684982..acc114005 100644 --- a/t/query/release.t +++ b/t/query/release.t @@ -17,4 +17,20 @@ is( $query->_get_latest_release('DoesNotExist'), is( $query->reverse_dependencies('DoesNotExist'), undef, 'reverse_dependencies returns undef when release does not exist' ); +is( + $query->_get_provided_modules( + { author => 'OALDERS', name => 'DOESNOTEXIST', } + ), + undef, + '_get_provided_modules returns undef when modules cannot be found' +); + +is_deeply( + $query->_get_provided_modules( + { author => 'DOY', name => 'Try-Tiny-0.21', } + ), + ['Try::Tiny'], + '_get_provided_modules returns undef when modules cannot be found' +); + done_testing(); From 8399420b0d9d3abbb13a50d93eb9696bff5667d2 Mon Sep 17 00:00:00 2001 From: Graham Knop Date: Fri, 16 Jul 2021 12:20:42 +0200 Subject: [PATCH 021/597] respond to deserialization errors with json If there is an error while deserializing, it is nicer to respond with a JSON response, rather than plain text. Use a custom Deserialize action class, which puts the error into the stash where either the Serialize action class or the JSON view expects. And then skip the rest of the request. --- lib/MetaCPAN/Server/Action/Deserialize.pm | 28 +++++++++++++++ lib/MetaCPAN/Server/Controller.pm | 6 ++-- t/server/controller/bad_content.t | 42 +++++++++++++++++++++++ 3 files changed, 73 insertions(+), 3 deletions(-) create mode 100644 lib/MetaCPAN/Server/Action/Deserialize.pm create mode 100644 t/server/controller/bad_content.t diff --git a/lib/MetaCPAN/Server/Action/Deserialize.pm b/lib/MetaCPAN/Server/Action/Deserialize.pm new file mode 100644 index 000000000..54a3469d9 --- /dev/null +++ b/lib/MetaCPAN/Server/Action/Deserialize.pm @@ -0,0 +1,28 @@ +package MetaCPAN::Server::Action::Deserialize; +use Moose; +extends 'Catalyst::Action::Deserialize'; +use Cpanel::JSON::XS qw(encode_json); + +around serialize_bad_request => sub { + my $orig = shift; + my $self = shift; + my ( $c, $content_type, $error ) = @_; + + $c->res->status(400); + + my $full_error + = "Content-Type $content_type had a problem with your request.\n$error"; + $full_error =~ s{ at .*? line \d+\.\n\z}{}; + + $c->stash( + { + rest => { + error => $full_error, + }, + } + ); + + return undef; +}; + +1; diff --git a/lib/MetaCPAN/Server/Controller.pm b/lib/MetaCPAN/Server/Controller.pm index 7a3985d97..1c6ab8fa6 100644 --- a/lib/MetaCPAN/Server/Controller.pm +++ b/lib/MetaCPAN/Server/Controller.pm @@ -93,13 +93,13 @@ sub get : Path('') : Args(1) { ['The requested field(s) could not be found'] ); } -sub all : Path('') : Args(0) : ActionClass('Deserialize') { +sub all : Path('') : Args(0) : ActionClass('~Deserialize') { my ( $self, $c ) = @_; $c->req->params->{q} ||= '*' unless ( $c->req->data ); $c->forward('search'); } -sub search : Path('_search') : ActionClass('Deserialize') { +sub search : Path('_search') : ActionClass('~Deserialize') { my ( $self, $c ) = @_; my $req = $c->req; @@ -129,7 +129,7 @@ sub search : Path('_search') : ActionClass('Deserialize') { } or do { $self->internal_error( $c, $@ ) }; } -sub join : ActionClass('Deserialize') { +sub join : ActionClass('~Deserialize') { my ( $self, $c ) = @_; my $joins = $self->relationships; my @req_joins = $c->req->param('join'); diff --git a/t/server/controller/bad_content.t b/t/server/controller/bad_content.t new file mode 100644 index 000000000..a06a0b800 --- /dev/null +++ b/t/server/controller/bad_content.t @@ -0,0 +1,42 @@ +use strict; +use warnings; +use lib 't/lib'; + +use Cpanel::JSON::XS (); +use MetaCPAN::Server (); +use MetaCPAN::TestHelpers; +use Plack::Test; +use Test::More; +use Ref::Util qw( is_arrayref is_hashref ); + +my $app = MetaCPAN::Server->new->to_app(); +my $test = Plack::Test->create($app); + +subtest "broken body content" => sub { + my $source = q[ + { "query : { } } + ]; + + for my $type (qw( release file )) { + my $url = "/$type/_search"; + my $request = HTTP::Request->new( 'POST', $url, [], $source ); + + subtest "check with '$type' controller" => sub { + my $res = $test->request($request); + + ok( $res, "GET $url" ); + is( $res->code, 400, "code 400" ); + is( + $res->header('content-type'), + 'application/json; charset=utf-8', + 'Content-type' + ); + my $content + = eval { Cpanel::JSON::XS::decode_json( $res->content ) }; + ok( is_hashref($content), 'content is a JSON object' ); + ok $content->{error}, 'content includes includes error'; + }; + } +}; + +done_testing; From febff290f509db740c20fbaf8cb8714138eb141b Mon Sep 17 00:00:00 2001 From: "Hugo (domibay-hugo)" Date: Thu, 19 Aug 2021 23:25:40 +0100 Subject: [PATCH 022/597] merge Bad Request tests --- t/server/controller/bad_content.t | 42 ---------------- t/server/controller/bad_request.t | 79 +++++++++++++++++++++++++++++++ 2 files changed, 79 insertions(+), 42 deletions(-) delete mode 100644 t/server/controller/bad_content.t create mode 100644 t/server/controller/bad_request.t diff --git a/t/server/controller/bad_content.t b/t/server/controller/bad_content.t deleted file mode 100644 index a06a0b800..000000000 --- a/t/server/controller/bad_content.t +++ /dev/null @@ -1,42 +0,0 @@ -use strict; -use warnings; -use lib 't/lib'; - -use Cpanel::JSON::XS (); -use MetaCPAN::Server (); -use MetaCPAN::TestHelpers; -use Plack::Test; -use Test::More; -use Ref::Util qw( is_arrayref is_hashref ); - -my $app = MetaCPAN::Server->new->to_app(); -my $test = Plack::Test->create($app); - -subtest "broken body content" => sub { - my $source = q[ - { "query : { } } - ]; - - for my $type (qw( release file )) { - my $url = "/$type/_search"; - my $request = HTTP::Request->new( 'POST', $url, [], $source ); - - subtest "check with '$type' controller" => sub { - my $res = $test->request($request); - - ok( $res, "GET $url" ); - is( $res->code, 400, "code 400" ); - is( - $res->header('content-type'), - 'application/json; charset=utf-8', - 'Content-type' - ); - my $content - = eval { Cpanel::JSON::XS::decode_json( $res->content ) }; - ok( is_hashref($content), 'content is a JSON object' ); - ok $content->{error}, 'content includes includes error'; - }; - } -}; - -done_testing; diff --git a/t/server/controller/bad_request.t b/t/server/controller/bad_request.t new file mode 100644 index 000000000..5f2d1b710 --- /dev/null +++ b/t/server/controller/bad_request.t @@ -0,0 +1,79 @@ +use strict; +use warnings; +use lib 't/lib'; + +use Cpanel::JSON::XS qw( decode_json ); +use MetaCPAN::Server (); +use Plack::Test qw(); +use Test::More; +use Ref::Util qw( is_hashref ); + +my $app = MetaCPAN::Server->new->to_app(); +my $test = Plack::Test->create($app); + +my $sbigqueryjson = q({ + "query": { + "query_string": { + "query": "cpanfile" + } + }, + "filter": { + "and": [ + { + "term": { + "status": "latest" + } + } + ] + }, + "fields": ["distribution", "release", "module.name", "name", "path", "download_url"], + "size": "5001" +}); + +my @tests = ( + [ + 'broken body content', + 400, + q[ { "query : { } } ], + 'error', + 'unexpected end of string', + ], + [ + 'plain text query', + 400, 'some content as invalid JSON', + 'error', 'malformed JSON string', + ], + [ + 'big result query', 416, $sbigqueryjson, 'message', 'exceeds maximum', + ], +); + +for (@tests) { + my ( $title, $code, $query, $field, $check ) = @$_; + + subtest $title => sub { + for my $type (qw( release file )) { + my $url = "/$type/_search"; + my $request = HTTP::Request->new( 'POST', $url, [], $query ); + + subtest "check with '$type' controller" => sub { + my $res = $test->request($request); + + ok( $res, "GET $url" ); + is( $res->code, $code, "code [$code] as expected" ); + is( + $res->header('content-type'), + 'application/json; charset=utf-8', + 'Content-type' + ); + my $content = eval { decode_json( $res->content ) }; + ok( is_hashref($content), 'response is a JSON object' ); + ok $content->{$field}, "response includes field '$field'"; + ok $content->{$field} =~ /$check/i, + 'response error message as expected'; + }; + } + }; +} + +done_testing; From a8d7de3e6a49214a238cd95747ea50afa80fba6f Mon Sep 17 00:00:00 2001 From: Graham Knop Date: Sun, 29 Aug 2021 09:36:43 +0200 Subject: [PATCH 023/597] tidy --- t/server/controller/bad_request.t | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/t/server/controller/bad_request.t b/t/server/controller/bad_request.t index 5f2d1b710..7af2ce5eb 100644 --- a/t/server/controller/bad_request.t +++ b/t/server/controller/bad_request.t @@ -40,7 +40,7 @@ my @tests = ( ], [ 'plain text query', - 400, 'some content as invalid JSON', + 400, 'some content as invalid JSON', 'error', 'malformed JSON string', ], [ @@ -53,7 +53,7 @@ for (@tests) { subtest $title => sub { for my $type (qw( release file )) { - my $url = "/$type/_search"; + my $url = "/$type/_search"; my $request = HTTP::Request->new( 'POST', $url, [], $query ); subtest "check with '$type' controller" => sub { From c23ed16a79d66190fceb1b45825687114b06749e Mon Sep 17 00:00:00 2001 From: Graham Knop Date: Sun, 29 Aug 2021 08:28:29 +0200 Subject: [PATCH 024/597] fix filters in download_url end point Releases on backpan should not be allowed unless an explicit version is given. This appears to have been a mistake when converting the query from cpanminus. --- lib/MetaCPAN/Document/File/Set.pm | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/lib/MetaCPAN/Document/File/Set.pm b/lib/MetaCPAN/Document/File/Set.pm index d17c3f798..1cd503b08 100644 --- a/lib/MetaCPAN/Document/File/Set.pm +++ b/lib/MetaCPAN/Document/File/Set.pm @@ -257,12 +257,13 @@ sub find_download_url { my $version = $args->{version}; my $explicit_version = $version && $version =~ /==/; - # exclude backpan if dev, and - # require released modules if neither dev nor explicit version - my @filters - = $dev ? { not => { term => { status => 'backpan' } } } - : !$explicit_version ? { term => { maturity => 'released' } } - : (); + my @filters; + if ( !$explicit_version ) { + push @filters, { not => { term => { status => 'backpan' } } }; + if ( !$dev ) { + push @filters, { term => { maturity => 'released' } }; + } + } my $version_filters = $self->_version_filters($version); From a7dafa4a7a9622e4fe40282a945fd2bbea4b5ee0 Mon Sep 17 00:00:00 2001 From: Olaf Alders Date: Mon, 25 Oct 2021 17:38:07 -0400 Subject: [PATCH 025/597] Update Mozilla::CA from 20200520 to 20211001 --- cpanfile | 2 +- cpanfile.snapshot | 7 +++---- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/cpanfile b/cpanfile index a91f0a342..dd6d3ec3b 100644 --- a/cpanfile +++ b/cpanfile @@ -129,7 +129,7 @@ requires 'MooseX::StrictConstructor'; requires 'MooseX::Types'; requires 'MooseX::Types::ElasticSearch', '== 0.0.4'; requires 'MooseX::Types::Moose'; -requires 'Mozilla::CA', '20200520'; +requires 'Mozilla::CA', '20211001'; requires 'namespace::autoclean'; requires 'Net::DNS::Paranoid'; requires 'Net::Fastly', '1.12'; diff --git a/cpanfile.snapshot b/cpanfile.snapshot index 8843140cc..2fa3972e1 100644 --- a/cpanfile.snapshot +++ b/cpanfile.snapshot @@ -5444,13 +5444,12 @@ DISTRIBUTIONS Scalar::Util 1.14 XSLoader 0.02 perl 5.008005 - Mozilla-CA-20200520 - pathname: A/AB/ABH/Mozilla-CA-20200520.tar.gz + Mozilla-CA-20211001 + pathname: A/AB/ABH/Mozilla-CA-20211001.tar.gz provides: - Mozilla::CA 20200520 + Mozilla::CA 20211001 requirements: ExtUtils::MakeMaker 0 - Test 0 perl 5.006 Net-CIDR-Lite-0.21 pathname: D/DO/DOUGW/Net-CIDR-Lite-0.21.tar.gz From 00ebffba877a9062d5ff89a4241681d52f260b6d Mon Sep 17 00:00:00 2001 From: Shawn Sorichetti Date: Tue, 26 Oct 2021 09:19:32 -0400 Subject: [PATCH 026/597] Update URI from 5.09 to 5.10 --- cpanfile | 2 +- cpanfile.snapshot | 195 +++++++++++----------------------------------- 2 files changed, 48 insertions(+), 149 deletions(-) diff --git a/cpanfile b/cpanfile index dd6d3ec3b..143a5b15d 100644 --- a/cpanfile +++ b/cpanfile @@ -172,7 +172,7 @@ requires 'Try::Tiny', '0.24'; requires 'Type::Tiny', '1.002001'; requires 'Types::Path::Tiny'; requires 'Types::URI'; -requires 'URI', '5.09'; +requires 'URI', '5.10'; requires 'URI::Escape'; requires 'version', '0.9901'; requires 'XML::Simple'; diff --git a/cpanfile.snapshot b/cpanfile.snapshot index 2fa3972e1..b318f17ad 100644 --- a/cpanfile.snapshot +++ b/cpanfile.snapshot @@ -98,19 +98,6 @@ DISTRIBUTIONS Params::Check 0.07 Test::More 0 if 0 - Archive-Peek-0.35 - pathname: L/LB/LBROCARD/Archive-Peek-0.35.tar.gz - provides: - Archive::Peek 0.35 - Archive::Peek::Tar undef - Archive::Peek::Zip undef - requirements: - Archive::Tar 0 - Archive::Zip 0 - ExtUtils::MakeMaker 0 - Moose 0 - MooseX::Types::Path::Class 0 - Test::More 0 Archive-Zip-1.59 pathname: P/PH/PHRED/Archive-Zip-1.59.tar.gz provides: @@ -953,17 +940,6 @@ DISTRIBUTIONS ExtUtils::MakeMaker 0 Storable 0 perl 5.008001 - Clone-PP-1.07 - pathname: N/NE/NEILB/Clone-PP-1.07.tar.gz - provides: - Clone::PP 1.07 - requirements: - Exporter 0 - ExtUtils::MakeMaker 0 - perl 5.006 - strict 0 - vars 0 - warnings 0 Code-TidyAll-0.78 pathname: D/DR/DROLSKY/Code-TidyAll-0.78.tar.gz provides: @@ -2827,18 +2803,6 @@ DISTRIBUTIONS perl 5.008 strict 0 warnings 0 - File-Slurp-9999.19 - pathname: U/UR/URI/File-Slurp-9999.19.tar.gz - provides: - File::Slurp 9999.19 - FileSlurp_12 9999.13 - requirements: - Carp 0 - Exporter 0 - ExtUtils::MakeMaker 0 - Fcntl 0 - POSIX 0 - perl 5.004 File-Spec-Native-1.004 pathname: R/RW/RWSTAUNER/File-Spec-Native-1.004.tar.gz provides: @@ -3127,21 +3091,6 @@ DISTRIBUTIONS locale 0 perl 5.008001 strict 0 - HTTP-Daemon-6.01 - pathname: G/GA/GAAS/HTTP-Daemon-6.01.tar.gz - provides: - HTTP::Daemon 6.01 - HTTP::Daemon::ClientConn 6.01 - requirements: - ExtUtils::MakeMaker 0 - HTTP::Date 6 - HTTP::Request 6 - HTTP::Response 6 - HTTP::Status 6 - IO::Socket 0 - LWP::MediaTypes 6 - Sys::Hostname 0 - perl 5.008001 HTTP-Date-6.02 pathname: G/GA/GAAS/HTTP-Date-6.02.tar.gz provides: @@ -5374,19 +5323,6 @@ DISTRIBUTIONS Module::Build 0.3601 MooseX::Types 0 Search::Elasticsearch 0 - MooseX-Types-Path-Class-0.09 - pathname: E/ET/ETHER/MooseX-Types-Path-Class-0.09.tar.gz - provides: - MooseX::Types::Path::Class 0.09 - requirements: - Module::Build::Tiny 0.034 - MooseX::Types 0 - MooseX::Types::Moose 0 - Path::Class 0.16 - if 0 - perl 5.006 - strict 0 - warnings 0 MooseX-Types-Structured-0.36 pathname: E/ET/ETHER/MooseX-Types-Structured-0.36.tar.gz provides: @@ -6216,26 +6152,6 @@ DISTRIBUTIONS overload 0 strict 0 warnings 0 - Parse-CPAN-Packages-2.40 - pathname: M/MI/MITHALDU/Parse-CPAN-Packages-2.40.tar.gz - provides: - Parse::CPAN::Packages 2.40 - Parse::CPAN::Packages::Distribution undef - Parse::CPAN::Packages::Package undef - requirements: - Archive::Peek 0 - CPAN::DistnameInfo 0 - Compress::Zlib 0 - ExtUtils::MakeMaker 0 - File::Slurp 0 - Moo 0 - PPI 0 - Path::Class 0 - Test::InDistDir 0 - Test::More 0 - Type::Utils 0 - Types::Standard 0 - version 0 Parse-CPAN-Packages-Fast-0.09 pathname: S/SR/SREZIC/Parse-CPAN-Packages-Fast-0.09.tar.gz provides: @@ -7293,13 +7209,6 @@ DISTRIBUTIONS overload 0 strict 0 warnings 0 - Sort-Naturally-1.03 - pathname: B/BI/BINGOS/Sort-Naturally-1.03.tar.gz - provides: - Sort::Naturally 1.03 - requirements: - ExtUtils::MakeMaker 0 - perl 5 Sort-Versions-1.62 pathname: N/NE/NEILB/Sort-Versions-1.62.tar.gz provides: @@ -7721,16 +7630,6 @@ DISTRIBUTIONS Try::Tiny 0.07 strict 0 warnings 0 - Test-InDistDir-1.112071 - pathname: M/MI/MITHALDU/Test-InDistDir-1.112071.tar.gz - provides: - Test::InDistDir 1.112071 - requirements: - ExtUtils::MakeMaker 6.30 - File::Find 0 - File::Spec 0 - File::Temp 0 - Test::More 0 Test-LongString-0.17 pathname: R/RG/RGARCIA/Test-LongString-0.17.tar.gz provides: @@ -8243,53 +8142,53 @@ DISTRIBUTIONS perl 5.006 strict 0 warnings 0 - URI-5.09 - pathname: O/OA/OALDERS/URI-5.09.tar.gz - provides: - URI 5.09 - URI::Escape 5.09 - URI::Heuristic 5.09 - URI::IRI 5.09 - URI::QueryParam 5.09 - URI::Split 5.09 - URI::URL 5.09 - URI::WithBase 5.09 - URI::data 5.09 - URI::file 5.09 - URI::file::Base 5.09 - URI::file::FAT 5.09 - URI::file::Mac 5.09 - URI::file::OS2 5.09 - URI::file::QNX 5.09 - URI::file::Unix 5.09 - URI::file::Win32 5.09 - URI::ftp 5.09 - URI::gopher 5.09 - URI::http 5.09 - URI::https 5.09 - URI::ldap 5.09 - URI::ldapi 5.09 - URI::ldaps 5.09 - URI::mailto 5.09 - URI::mms 5.09 - URI::news 5.09 - URI::nntp 5.09 - URI::nntps 5.09 - URI::pop 5.09 - URI::rlogin 5.09 - URI::rsync 5.09 - URI::rtsp 5.09 - URI::rtspu 5.09 - URI::sftp 5.09 - URI::sip 5.09 - URI::sips 5.09 - URI::snews 5.09 - URI::ssh 5.09 - URI::telnet 5.09 - URI::tn3270 5.09 - URI::urn 5.09 - URI::urn::isbn 5.09 - URI::urn::oid 5.09 + URI-5.10 + pathname: O/OA/OALDERS/URI-5.10.tar.gz + provides: + URI 5.10 + URI::Escape 5.10 + URI::Heuristic 5.10 + URI::IRI 5.10 + URI::QueryParam 5.10 + URI::Split 5.10 + URI::URL 5.10 + URI::WithBase 5.10 + URI::data 5.10 + URI::file 5.10 + URI::file::Base 5.10 + URI::file::FAT 5.10 + URI::file::Mac 5.10 + URI::file::OS2 5.10 + URI::file::QNX 5.10 + URI::file::Unix 5.10 + URI::file::Win32 5.10 + URI::ftp 5.10 + URI::gopher 5.10 + URI::http 5.10 + URI::https 5.10 + URI::ldap 5.10 + URI::ldapi 5.10 + URI::ldaps 5.10 + URI::mailto 5.10 + URI::mms 5.10 + URI::news 5.10 + URI::nntp 5.10 + URI::nntps 5.10 + URI::pop 5.10 + URI::rlogin 5.10 + URI::rsync 5.10 + URI::rtsp 5.10 + URI::rtspu 5.10 + URI::sftp 5.10 + URI::sip 5.10 + URI::sips 5.10 + URI::snews 5.10 + URI::ssh 5.10 + URI::telnet 5.10 + URI::tn3270 5.10 + URI::urn 5.10 + URI::urn::isbn 5.10 + URI::urn::oid 5.10 requirements: Carp 0 Cwd 0 From 529f8ee461b4c4e495ebcbc1846878373a75fb88 Mon Sep 17 00:00:00 2001 From: Shawn Sorichetti Date: Tue, 26 Oct 2021 12:58:25 -0400 Subject: [PATCH 027/597] Update LWP::UserAgent 6.55 to 6.58 --- cpanfile | 2 +- cpanfile.snapshot | 54 +++++++++++++++++++++++------------------------ 2 files changed, 28 insertions(+), 28 deletions(-) diff --git a/cpanfile b/cpanfile index 143a5b15d..c41caaf0a 100644 --- a/cpanfile +++ b/cpanfile @@ -98,7 +98,7 @@ requires 'Log::Log4perl::Appender::ScreenColoredLevels'; requires 'Log::Log4perl::Catalyst'; requires 'Log::Log4perl::Layout::JSON'; requires 'LWP::Protocol::https'; -requires 'LWP::UserAgent', '6.55'; +requires 'LWP::UserAgent', '6.58'; requires 'LWP::UserAgent::Paranoid'; requires 'MetaCPAN::Moose'; requires 'MetaCPAN::Pod::XHTML'; diff --git a/cpanfile.snapshot b/cpanfile.snapshot index b318f17ad..46b3e7c8d 100644 --- a/cpanfile.snapshot +++ b/cpanfile.snapshot @@ -8576,32 +8576,32 @@ DISTRIBUTIONS XSLoader 0 lib 0 perl 5.008001 - libwww-perl-6.55 - pathname: O/OA/OALDERS/libwww-perl-6.55.tar.gz - provides: - LWP 6.55 - LWP::Authen::Basic 6.55 - LWP::Authen::Digest 6.55 - LWP::Authen::Ntlm 6.55 - LWP::ConnCache 6.55 - LWP::Debug 6.55 - LWP::Debug::TraceHTTP 6.55 - LWP::DebugFile 6.55 - LWP::MemberMixin 6.55 - LWP::Protocol 6.55 - LWP::Protocol::cpan 6.55 - LWP::Protocol::data 6.55 - LWP::Protocol::file 6.55 - LWP::Protocol::ftp 6.55 - LWP::Protocol::gopher 6.55 - LWP::Protocol::http 6.55 - LWP::Protocol::loopback 6.55 - LWP::Protocol::mailto 6.55 - LWP::Protocol::nntp 6.55 - LWP::Protocol::nogo 6.55 - LWP::RobotUA 6.55 - LWP::Simple 6.55 - LWP::UserAgent 6.55 + libwww-perl-6.58 + pathname: O/OA/OALDERS/libwww-perl-6.58.tar.gz + provides: + LWP 6.58 + LWP::Authen::Basic 6.58 + LWP::Authen::Digest 6.58 + LWP::Authen::Ntlm 6.58 + LWP::ConnCache 6.58 + LWP::Debug 6.58 + LWP::Debug::TraceHTTP 6.58 + LWP::DebugFile 6.58 + LWP::MemberMixin 6.58 + LWP::Protocol 6.58 + LWP::Protocol::cpan 6.58 + LWP::Protocol::data 6.58 + LWP::Protocol::file 6.58 + LWP::Protocol::ftp 6.58 + LWP::Protocol::gopher 6.58 + LWP::Protocol::http 6.58 + LWP::Protocol::loopback 6.58 + LWP::Protocol::mailto 6.58 + LWP::Protocol::nntp 6.58 + LWP::Protocol::nogo 6.58 + LWP::RobotUA 6.58 + LWP::Simple 6.58 + LWP::UserAgent 6.58 libwww::perl undef requirements: CPAN::Meta::Requirements 2.120620 @@ -8633,7 +8633,7 @@ DISTRIBUTIONS URI 1.10 URI::Escape 0 WWW::RobotRules 6 - base 0 + parent 0.217 perl 5.008001 strict 0 warnings 0 From 1098c716a19a080bcb1cd5dc0c14c3aad09b1973 Mon Sep 17 00:00:00 2001 From: Shawn Sorichetti Date: Tue, 26 Oct 2021 17:14:36 -0400 Subject: [PATCH 028/597] Update Try::Tiny 0.24 to 0.30 --- cpanfile | 2 +- cpanfile.snapshot | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/cpanfile b/cpanfile index c41caaf0a..476e14db9 100644 --- a/cpanfile +++ b/cpanfile @@ -168,7 +168,7 @@ requires 'Starman'; requires 'strictures', '1'; requires 'Throwable::Error'; requires 'Time::Local'; -requires 'Try::Tiny', '0.24'; +requires 'Try::Tiny', '0.30'; requires 'Type::Tiny', '1.002001'; requires 'Types::Path::Tiny'; requires 'Types::URI'; diff --git a/cpanfile.snapshot b/cpanfile.snapshot index 46b3e7c8d..3902e6935 100644 --- a/cpanfile.snapshot +++ b/cpanfile.snapshot @@ -8032,10 +8032,10 @@ DISTRIBUTIONS base 0 strict 0 warnings 0 - Try-Tiny-0.28 - pathname: E/ET/ETHER/Try-Tiny-0.28.tar.gz + Try-Tiny-0.30 + pathname: E/ET/ETHER/Try-Tiny-0.30.tar.gz provides: - Try::Tiny 0.28 + Try::Tiny 0.30 requirements: Carp 0 Exporter 5.57 From d3766cd574b5752c206b7de247a173ef387c93bb Mon Sep 17 00:00:00 2001 From: Shawn Sorichetti Date: Wed, 27 Oct 2021 09:57:10 -0400 Subject: [PATCH 029/597] Update MetaCPAN::Client 2.017000 to 2.029000 --- cpanfile | 2 +- cpanfile.snapshot | 45 +++++++++++++++++++++++---------------------- 2 files changed, 24 insertions(+), 23 deletions(-) diff --git a/cpanfile b/cpanfile index 476e14db9..6f509c8ad 100644 --- a/cpanfile +++ b/cpanfile @@ -187,7 +187,7 @@ requires 'Devel::Confess'; requires 'File::Copy'; requires 'HTTP::Cookies', '6.10'; requires 'LWP::ConsoleLogger::Easy'; -requires 'MetaCPAN::Client', '2.017000'; +requires 'MetaCPAN::Client', '2.029000'; requires 'Module::Faker', '0.015'; requires 'Module::Faker::Dist', '0.010'; requires 'Perl::Tidy' => '20210402'; diff --git a/cpanfile.snapshot b/cpanfile.snapshot index 3902e6935..ebf2c55ab 100644 --- a/cpanfile.snapshot +++ b/cpanfile.snapshot @@ -3983,28 +3983,29 @@ DISTRIBUTIONS Fennec::Lite 0 Test::Exception 0 Test::More 0 - MetaCPAN-Client-2.019000 - pathname: M/MI/MICKEY/MetaCPAN-Client-2.019000.tar.gz - provides: - MetaCPAN::Client 2.019000 - MetaCPAN::Client::Author 2.019000 - MetaCPAN::Client::Distribution 2.019000 - MetaCPAN::Client::DownloadURL 2.019000 - MetaCPAN::Client::Favorite 2.019000 - MetaCPAN::Client::File 2.019000 - MetaCPAN::Client::Mirror 2.019000 - MetaCPAN::Client::Module 2.019000 - MetaCPAN::Client::Package 2.019000 - MetaCPAN::Client::Permission 2.019000 - MetaCPAN::Client::Pod 2.019000 - MetaCPAN::Client::Rating 2.019000 - MetaCPAN::Client::Release 2.019000 - MetaCPAN::Client::Request 2.019000 - MetaCPAN::Client::ResultSet 2.019000 - MetaCPAN::Client::Role::Entity 2.019000 - MetaCPAN::Client::Role::HasUA 2.019000 - MetaCPAN::Client::Scroll 2.019000 - MetaCPAN::Client::Types 2.019000 + MetaCPAN-Client-2.029000 + pathname: M/MI/MICKEY/MetaCPAN-Client-2.029000.tar.gz + provides: + MetaCPAN::Client 2.029000 + MetaCPAN::Client::Author 2.029000 + MetaCPAN::Client::Cover 2.029000 + MetaCPAN::Client::Distribution 2.029000 + MetaCPAN::Client::DownloadURL 2.029000 + MetaCPAN::Client::Favorite 2.029000 + MetaCPAN::Client::File 2.029000 + MetaCPAN::Client::Mirror 2.029000 + MetaCPAN::Client::Module 2.029000 + MetaCPAN::Client::Package 2.029000 + MetaCPAN::Client::Permission 2.029000 + MetaCPAN::Client::Pod 2.029000 + MetaCPAN::Client::Rating 2.029000 + MetaCPAN::Client::Release 2.029000 + MetaCPAN::Client::Request 2.029000 + MetaCPAN::Client::ResultSet 2.029000 + MetaCPAN::Client::Role::Entity 2.029000 + MetaCPAN::Client::Role::HasUA 2.029000 + MetaCPAN::Client::Scroll 2.029000 + MetaCPAN::Client::Types 2.029000 requirements: Carp 0 ExtUtils::MakeMaker 7.1101 From dace831340ed4793df1e64b40a746266ff4bd9e9 Mon Sep 17 00:00:00 2001 From: Bodo Hugo Barwich Date: Sat, 18 Dec 2021 20:31:29 +0000 Subject: [PATCH 030/597] Methods await() and check_health() --- lib/MetaCPAN/Role/Script.pm | 241 +++++++++++++++++++++++++++++++++++- 1 file changed, 237 insertions(+), 4 deletions(-) diff --git a/lib/MetaCPAN/Role/Script.pm b/lib/MetaCPAN/Role/Script.pm index da11e0890..ba27bec00 100644 --- a/lib/MetaCPAN/Role/Script.pm +++ b/lib/MetaCPAN/Role/Script.pm @@ -6,7 +6,7 @@ use ElasticSearchX::Model::Document::Types qw(:all); use Git::Helpers qw( checkout_root ); use Log::Contextual qw( :log :dlog ); use MetaCPAN::Model (); -use MetaCPAN::Types::TypeTiny qw( Bool Int Path Str ); +use MetaCPAN::Types::TypeTiny qw( Bool HashRef Int Path Str ); use Mojo::Server (); use Term::ANSIColor qw( colored ); use IO::Interactive qw( is_interactive ); @@ -35,6 +35,22 @@ has die_on_error => ( documentation => 'Die on errors instead of simply logging', ); +has exit_code => ( + isa => Int, + is => 'rw', + default => 0, + documentation => 'Exit Code to be returned on termination', +); + +has arg_await_timeout => ( + init_arg => 'await', + is => 'ro', + isa => Int, + default => 15, + documentation => + 'seconds before connection is considered failed with timeout', +); + has ua => ( is => 'ro', lazy => 1, @@ -71,6 +87,27 @@ has index => ( 'Index to use, defaults to "cpan" (when used: also export ES_SCRIPT_INDEX)', ); +has cluster_info => ( + isa => HashRef, + traits => ['Hash'], + is => 'rw', + default => sub { {} }, +); + +has indices_info => ( + isa => HashRef, + traits => ['Hash'], + is => 'rw', + default => sub { {} }, +); + +has aliases_info => ( + isa => HashRef, + traits => ['Hash'], + is => 'rw', + default => sub { {} }, +); + has port => ( isa => Int, is => 'ro', @@ -123,13 +160,27 @@ sub BUILDARGS { } sub handle_error { - my ( $self, $error ) = @_; + my ( $self, $error, $die_always ) = @_; + + # Die if configured (for the test suite). + $die_always = $self->die_on_error unless defined $die_always; # Always log. log_fatal {$error}; - # Die if configured (for the test suite). - Carp::croak $error if $self->die_on_error; + $! = $self->exit_code if ( $self->exit_code != 0 ); + + Carp::croak $error if $die_always; +} + +sub print_error { + my ( $self, $error ) = @_; + + # Always log. + log_error {$error}; + + # Display Error in red + print colored( ['bold red'], "*** ERROR ***: $error" ), "\n"; } sub index { @@ -195,6 +246,114 @@ before run => sub { #Dlog_debug {"Connected to $_"} $self->remote; }; +sub check_health { + my ( $self, $irefresh ) = @_; + my $ihealth = 0; + + $irefresh = 0 unless ( defined $irefresh ); + + $ihealth = $self->await; + + if ($ihealth) { + if ( $irefresh || scalar( keys %{ $self->indices_info } ) == 0 ) { + my $sinfo_rs + = $self->es->cat->indices( h => [ 'index', 'health' ] ); + + $self->indices_info( {} ); + + while ( $sinfo_rs =~ /^([^[:space:]]+) +([^[:space:]]+)/gm ) { + $self->indices_info->{$1} + = { 'index_name' => $1, 'health' => $2 }; + + $ihealth = 0 if ( $2 eq 'red' ); + } + } + else { + foreach ( keys %{ $self->indices_info } ) { + $ihealth = 0 + if ( $self->indices_info->{$_}->{'health'} eq 'red' ); + } + } + } + + if ($ihealth) { + if ( $irefresh || scalar( keys %{ $self->aliases_info } ) == 0 ) { + my $sinfo_rs + = $self->es->cat->aliases( h => [ 'alias', 'index' ] ); + + $self->aliases_info( {} ); + + while ( $sinfo_rs =~ /^([^[:space:]]+) +([^[:space:]]+)/gm ) { + $self->aliases_info->{$1} + = { 'alias_name' => $1, 'index' => $2 }; + } + } + + $ihealth = 0 if ( scalar( keys %{ $self->aliases_info } ) == 0 ); + } + + return $ihealth; +} + +sub await { + my $self = $_[0]; + my $iready = 0; + + if ( scalar( keys %{ $self->cluster_info } ) == 0 ) { + my $es = $self->es; + my $iseconds = 0; + + log_info {"Awaiting Elasticsearch ..."}; + + do { + eval { + $iready = $es->ping; + + if ($iready) { + log_info { + "Awaiting $iseconds / " + . $self->arg_await_timeout + . " : ready" + }; + + $self->cluster_info( \%{ $es->info } ); + } + }; + + if ($@) { + if ( $iseconds < $self->arg_await_timeout ) { + log_info { + "Awaiting $iseconds / " + . $self->arg_await_timeout + . " : unavailable - sleeping ..." + }; + + sleep(1); + + $iseconds++; + } + else { + log_error { + "Awaiting $iseconds / " + . $self->arg_await_timeout + . " : unavailable - timeout!" + }; + + #Set System Error: 112 - EHOSTDOWN - Host is down + $self->exit_code(112); + $self->handle_error( $@, 1 ); + } + } + } while ( !$iready && $iseconds <= $self->arg_await_timeout ); + } + else { + #ElasticSearch Service is available + $iready = 1; + } + + return $iready; +} + sub are_you_sure { my ( $self, $msg ) = @_; @@ -216,8 +375,82 @@ __END__ =pod +=head1 NAME + +MetaCPAN::Role::Script - Base Role which is used by many command line applications + =head1 SYNOPSIS Roles which should be available to all modules. +=head1 OPTIONS + +This Role makes the command line application accept the following options + +=over 4 + +=item Option C<--await 15> + +This option will set the I. +After C seconds the Application will fail with an Exception and the Exit Code [112] +(C<112 - EHOSTDOWN - Host is down>) will be returned + + bin/metacpan --await 15 + +See L> + +=back + +=head1 METHODS + +This Role provides the following methods + +=over 4 + +=item C + +This method uses the +L|https://metacpan.org/pod/Search::Elasticsearch::Client::2_0::Direct#ping()> +method to verify the service availabilty and wait for C seconds. +When the service does not become available within C seconds it re-throws the +Exception from the C and sets C< $! > to C< 112 >. +The C generates a C<"Search::Elasticsearch::Error::NoNodes"> Exception. +When the service is available it will populate the C C structure with the basic information +about the cluster. +See L