1
0
Fork 0
mirror of https://github.com/perlbot/perlbuut synced 2025-06-07 15:55:42 -04:00

Creating new cpanfile that only covers the bot

This commit is contained in:
Ryan Voots 2020-10-26 12:59:32 -07:00
parent 74a0b0aa3b
commit 0e6cede20a
5 changed files with 152 additions and 322 deletions

View file

@ -1,7 +0,0 @@
Usage:
% scan-prereqs-cpanfile
--diff=META.json # Generate diff from META.json
--diff=cpanfile # Generate diff from cpanfile
--ignore=extlib/

View file

@ -1,164 +0,0 @@
--- cpanfile_scanned 2017-06-21 17:40:10.000000000 -0400
+++ cpanfile_sorted 2017-06-21 17:41:53.000000000 -0400
@@ -1,80 +1,91 @@
requires 'autodie';
requires 'Cache::FastMmap';
requires 'Cache::File';
requires 'Cache::Mmap';
requires 'Config::General';
requires 'Cpanel::JSON::XS';
requires 'Data::Dumper';
requires 'DBD::SQLite';
requires 'DBI';
requires 'Encode';
requires 'HTTP::Status';
requires 'IO::String';
requires 'JSON::MaybeXS';
requires 'perl', '5.24';
requires 'POE';
requires 'POE::Component::IRC';
requires 'POE::Component::IRC::Common';
requires 'POE::Component::IRC::Plugin::AutoJoin';
requires 'POE::Component::IRC::Plugin::Connector';
requires 'POE::Component::IRC::Plugin::NickReclaim';
requires 'POE::Component::IRC::State';
requires 'POE::Component::Server::SimpleHTTP';
requires 'POE::Component::Server::TCP';
requires 'POE::Filter::Line';
requires 'POE::Filter::Reference';
requires 'POE::Filter::Stream';
requires 'POE::Session';
requires 'POE::Wheel::ReadWrite';
requires 'POE::Wheel::Run';
requires 'POE::Wheel::SocketFactory';
requires 'Scalar::Util';
requires 'Socket';
requires 'Sys::Linux::Mount';
requires 'Sys::Linux::Namespace';
requires 'Template';
requires 'Term::ANSIColor';
requires 'Text::ParseWords';
requires 'Tie::Hash::NamedCapture';
requires 'Data::Dumper';
requires 'BSD::Resource';
requires 'Cache::FastMmap';
requires 'Parse::RecDescent';
requires 'Text::Glob';
-requires 'Memoize';
feature 'perlbot_plugins' => sub {
requires 'App::EvalServerAdvanced::Protocol';
requires 'Text::Metaphone';
requires 'Geo::IP';
requires 'WWW::Mechanize';
requires 'WWW::Shorten';
-requires 'WWW::Shorten::TinyURL';
requires 'DBD::SQLite::BundledExtensions';
};
feature 'eval_needed' => {
-requires 'Linux::Clone';
requires 'Moo';
requires 'Linux::Seccomp';
+requires 'Mojo::Collection';
+requires 'Mojo::DOM';
+requires 'Mojo::DOM::CSS';
requires 'Moo';
+requires 'Marpa::R2';
requires 'JSON';
+requires 'JSON::PP';
+requires 'JSON::Tiny';
+requires 'JSON::XS';
+requires 'arybase';
+requires 'autovivification';
+requires 'bigint';
+requires 'Capture::Tiny';
+requires 'Class::Tiny';
requires 'BSD::Resource';
+requires 'Syntax::Keyword::Try';
+requires 'Capture::Tiny';
+requires 'Class::Tiny';
+requires 'Cpanel::JSON::XS';
+requires 'Cwd';
+requires 'Data::Munge';
+requires 'Date::Parse';
+requires 'DateTime';
+requires 'DateTimeX::Easy';
+requires 'Digest::MD5';
+requires 'Digest::SHA';
+requires 'Errno';
+requires 'File::Glob';
+requires 'File::Open';
requires 'File::Slurper';
requires 'File::Temp';
}
feature 'eval_optional' => {
}
--- cpanfile_scanned 2017-06-21 18:24:13.000000000 -0400
+++ cpanfile_sorted 2017-06-21 17:41:53.000000000 -0400
@@ -1,50 +1,91 @@
requires 'Encode';
+requires 'Function::Parameters';
+requires 'Future';
+requires 'Geo::IP';
+requires 'HTML::TreeBuilder';
+requires 'HTML::TreeBuilder::XPath';
+requires 'indirect';
+requires 'IO::Async';
+requires 'IPC::Run';
+requires 'JSON';
requires 'JSON::MaybeXS';
+requires 'JSON::PP';
+requires 'JSON::Tiny';
+requires 'JSON::XS';
-requires 'Linux::Clone';
requires 'Linux::Seccomp';
+requires 'List::MoreUtils';
+requires 'List::SomeUtils';
requires 'List::Util';
+requires 'List::UtilsBy';
+requires 'LWP::Protocol::https';
+requires 'Marpa::R2';
+requires 'Math::BigFloat';
+requires 'Math::BigInt';
+requires 'Math::BigRat';
+requires 'Math::Round';
+requires 'Mojo::Collection';
+requires 'Mojo::DOM';
+requires 'Mojo::DOM::CSS';
+requires 'Moose';
+requires 'MooseX::Declare';
+requires 'Net::Dict';
+requires 'Net::DNS';
+requires 'Net::INET6Glue::INET_is_INET6';
+requires 'Path::Tiny';
requires 'Perl::Tidy';
requires 'Permute::Named::Iter';
+requires 'POE';
+requires 'POE::Component::IRC';
+requires 'POE::Component::IRC::Common';
+requires 'POSIX';
+requires 'Quote::Code';
+requires 'Rand::MersenneTwister';
+requires 'Regexp::Common';
+requires 'Return::MultiLevel';
+requires 'Scalar::MoreUtils';
+requires 'Scalar::Util'; #Required by Data::Dumper
+requires 'Switch::Plain';
+requires 'Syntax::Keyword::Try';
+requires 'Sys::Linux::Namespace'.013;
+requires 'Text::Levenshtein';
+requires 'Text::Metaphone';
+requires 'Time::Moment';
+requires 'Try::Tiny::ByClass';
+requires 'Types::Standard';
+requires 'URI::Encode';
+requires 'WWW::Mechanize';
+requires 'WWW::Shorten';
+requires 'XML::RSS::Parser';
+requires 'YAPE::Regex::Explain';

View file

@ -1,50 +0,0 @@
requires 'BSD::Resource';
requires 'Cache::FastMmap';
requires 'Cache::File';
requires 'Cache::Mmap';
requires 'Config::General';
requires 'DBD::SQLite';
requires 'DBI';
requires 'Encode';
requires 'File::Slurper';
requires 'File::Temp';
requires 'HTTP::Status';
requires 'IO::String';
requires 'JSON::MaybeXS';
requires 'Linux::Clone';
requires 'Linux::Seccomp';
requires 'List::Util';
requires 'Memoize';
requires 'Moo';
requires 'POE';
requires 'POE::Component::IRC';
requires 'POE::Component::IRC::Common';
requires 'POE::Component::IRC::Plugin::AutoJoin';
requires 'POE::Component::IRC::Plugin::Connector';
requires 'POE::Component::IRC::Plugin::NickReclaim';
requires 'POE::Component::IRC::State';
requires 'POE::Component::Server::SimpleHTTP';
requires 'POE::Component::Server::TCP';
requires 'POE::Filter::Line';
requires 'POE::Filter::Reference';
requires 'POE::Filter::Stream';
requires 'POE::Session';
requires 'POE::Wheel::ReadWrite';
requires 'POE::Wheel::Run';
requires 'POE::Wheel::SocketFactory';
requires 'Parse::RecDescent';
requires 'Perl::Tidy';
requires 'Permute::Named::Iter';
requires 'Scalar::Util';
requires 'Socket';
requires 'Sys::Linux::Mount';
requires 'Sys::Linux::Namespace';
requires 'Template';
requires 'Term::ANSIColor';
requires 'Text::Glob';
requires 'Text::Handlebars';
requires 'Text::Metaphone';
requires 'Text::ParseWords';
requires 'Tie::Hash::NamedCapture';
requires 'autodie';
requires 'perl', '5.24';

View file

@ -1,23 +0,0 @@
use strict;
use warnings;
use Module::CPANfile;
use Data::Dumper;
my $file = Module::CPANfile->load("/home/ryan/bots/perlbuut/cpanfile");
my $prereqs = $file->prereqs;
my @phases = $prereqs->phases;
my @prereqs;
for my $phase (@phases) {
# TODO try/catch and check other types
for my $type (qw/requires recommends/) {
push @prereqs, $prereqs->requirements_for($phase, $type)->required_modules;
}
}
# TODO uniq
print Dumper(\@prereqs);

View file

@ -1,91 +1,165 @@
requires 'App::EvalServerAdvanced'; requires 'Sys::Linux::Namespace' => 'v0.13.0';
requires 'arybase'; requires 'POE';
requires 'autovivification'; requires 'Parse::RecDescent';
requires 'bigint';
requires 'BSD::Resource';
requires 'Cache::FastMmap';
requires 'Capture::Tiny';
requires 'Class::Tiny';
requires 'Config::General'; requires 'Config::General';
requires 'Cpanel::JSON::XS'; requires 'Cache::FastMmap';
requires 'Cwd'; requires 'POE::Component::IRC::Common';
requires 'Data::Dumper'; requires 'POE::Component::IRC';
requires 'Data::Munge'; requires 'Text::Handlebars';
requires 'Date::Parse';
requires 'DateTime'; requires 'Geo::IP';
requires 'DateTimeX::Easy'; requires 'XML::RSS::Parser';
requires 'WWW::Shorten';
requires 'WWW::Mechanize';
requires 'URI::Encode';
requires 'Text::Glob';
requires 'DBD::SQLite'; requires 'DBD::SQLite';
requires 'DBD::SQLite::BundledExtensions';
requires 'DBI'; requires 'DBI';
requires 'Net::DNS';
requires 'HTML::TreeBuilder';
requires 'Net::INET6Glue::INET_is_INET6';
requires 'Net::Dict';
requires 'HTML::TreeBuilder::XPath';
requires 'Data::Dumper';
requires 'Scalar::Util'; #Required by Data::Dumper
requires 'BSD::Resource';
requires 'File::Glob';
requires 'POSIX';
requires 'POSIX::strptime';
requires 'List::Util';
requires 'List::MoreUtils';
requires 'List::UtilsBy';
requires 'Data::Munge';
requires 'Scalar::MoreUtils';
requires 'Regexp::Common';
requires 'Encode';
requires 'Digest::MD5'; requires 'Digest::MD5';
requires 'Digest::SHA'; requires 'Digest::SHA';
requires 'Encode'; requires 'DateTime';
requires 'Errno'; requires 'DateTimeX::Easy';
requires 'File::Glob'; requires 'Date::Parse';
requires 'File::Open';
requires 'File::Slurper';
requires 'File::Temp';
requires 'Function::Parameters';
requires 'Future';
requires 'Geo::IP';
requires 'HTML::TreeBuilder';
requires 'HTML::TreeBuilder::XPath';
requires 'indirect';
requires 'IO::Async';
requires 'IPC::Run';
requires 'JSON';
requires 'JSON::MaybeXS';
requires 'JSON::PP';
requires 'JSON::Tiny';
requires 'JSON::XS';
requires 'Linux::Seccomp';
requires 'List::MoreUtils';
requires 'List::SomeUtils';
requires 'List::Util';
requires 'List::UtilsBy';
requires 'LWP::Protocol::https';
requires 'Marpa::R2';
requires 'Math::BigFloat';
requires 'Math::BigInt';
requires 'Math::BigRat';
requires 'Math::Round';
requires 'Mojo::Collection';
requires 'Mojo::DOM';
requires 'Mojo::DOM::CSS';
requires 'Moo';
requires 'Moose'; requires 'Moose';
requires 'MooseX::Declare'; requires 'MooseX::Declare';
requires 'Net::Dict';
requires 'Net::DNS'; requires 'Function::Parameters';
requires 'Net::INET6Glue::INET_is_INET6';
requires 'Parse::RecDescent';
requires 'Path::Tiny';
requires 'Perl::Tidy';
requires 'Permute::Named::Iter';
requires 'POE';
requires 'POE::Component::IRC';
requires 'POE::Component::IRC::Common';
requires 'POSIX';
requires 'Quote::Code';
requires 'Rand::MersenneTwister'; requires 'Rand::MersenneTwister';
requires 'Regexp::Common'; # requires 'arybase'; # removed in 5.29
requires 'Return::MultiLevel'; requires 'Errno';
requires 'Scalar::MoreUtils'; requires 'JSON';
requires 'Scalar::Util'; #Required by Data::Dumper requires 'JSON::PP';
requires 'JSON::XS';
requires 'JSON::MaybeXS';
requires 'Cpanel::JSON::XS';
requires 'LWP::Protocol::https';
requires 'Mojo::DOM';
requires 'Mojo::DOM::CSS';
requires 'Mojo::Collection';
requires 'YAPE::Regex::Explain';
requires 'bigint';
requires 'Math::BigInt';
requires 'Math::BigFloat';
requires 'Math::BigRat';
requires 'indirect';
requires 'Moo';
requires 'autovivification';
requires 'Linux::Seccomp';
requires 'Cwd';
# requires 'Algorithm::Permute';
requires 'File::Slurper';
requires 'Path::Tiny';
requires 'Time::Moment';
requires 'Switch::Plain'; requires 'Switch::Plain';
requires 'Syntax::Keyword::Try'; requires 'Quote::Code';
requires 'Sys::Linux::Namespace'.013; # requires 'JSON::Tiny'; # broken in the canary
requires 'Text::Glob';
requires 'Text::Handlebars'; requires 'List::SomeUtils';
requires 'IO::Async';
requires 'Future';
requires 'Class::Tiny';
requires 'Capture::Tiny';
requires 'Return::MultiLevel';
requires 'Try::Tiny::ByClass';
requires 'IPC::Run';
requires 'Text::Metaphone';
requires 'DBD::SQLite::BundledExtensions';
requires 'Text::Levenshtein'; requires 'Text::Levenshtein';
requires 'Text::Metaphone'; requires 'Text::Metaphone';
requires 'Text::Metaphone'; requires 'Math::Round';
requires 'Time::Moment';
requires 'Try::Tiny::ByClass';
requires 'Twitter::API'; requires 'Twitter::API';
requires 'Types::Standard'; requires 'Types::Standard';
requires 'URI::Encode'; requires 'Perl::Tidy';
requires 'WWW::Mechanize'; requires 'File::Temp';
requires 'WWW::Shorten'; requires 'Permute::Named::Iter';
requires 'XML::RSS::Parser'; requires 'Marpa::R2';
requires 'YAPE::Regex::Explain'; requires 'Syntax::Keyword::Try';
requires 'File::Open';
requires 'App::EvalServerAdvanced';
requires 'Dir::ls';
requires 'Object::Tap';
requires 'XML::LibXML';
# requires 'Sereal'; # comment out temporarily
requires 'Email::Sender::Transport::Test';
requires 'Task::Kensho::Async';
requires 'Task::Kensho::Config';
#requires 'Task::Kensho::Date';
#requires 'Task::Kensho::DBDev';
requires 'Task::Kensho::Email';
requires 'Task::Kensho::Logging';
requires 'Task::Kensho::ModuleDev';
requires 'Task::Kensho::OOP';
#requires 'Task::Kensho::Testing';
#requires 'Task::Kensho::XML';
requires 'Text::Unidecode';
requires 'experimental';
requires 'Math::Calc::Parser';
requires 'ReadonlyX';
requires 'Const::Fast';
requires 'DateTime::Event::Holiday::US';
requires 'App::EvalServerAdvanced::ConstantCalc';
requires 'Crypt::OpenSSL::X509';
requires 'Math::Random::Secure'; # undeclared dep of Data::Random::Flexible
requires 'Data::Random::Flexible';
requires 'Acme::AsciiEmoji';
requires 'PadWalker';
requires 'Encode::Simple';
requires 'PPR';
requires 'Keyword::Simple';
requires 'Unicode::UTF8';
requires 'List::Gather';
requires 'Lingua::EN::Inflexion';
requires 'local::lib';
requires 'Array::Utils';
requires 'DBD::SQLite';
requires 'Mojo::SQLite';
requires 'FFI::Platypus';
requires 'Perl6::Take';
requires 'List::AllUtils';
requires 'IRC::FromANSI::Tiny';
requires 'Unicode::GCString';
requires 'Unicode::Util';
requires 'Unicode::Collate';
requires 'more';
requires 'Data::Dumper::Compact';
requires 'Carp::Always';
requires 'V';
requires 'Path::Tiny';
requires 'CryptX';
requires 'MIME::Base64';
requires 'DateTime::Event::Cron';
requires 'Regexp::Assemble';
requires 'Regexp::Optimizer';