X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=xt%2Fauthor%2Ftest-my-dependents.t;h=727ff0538d7094ee3925b63d48191e9776997bd3;hb=9acdcfbb44b2193ef52b7509f98f0a6d5471ea1c;hp=e66a5bc4aaaebc741164e93f8a46a71d9cba7ebb;hpb=4bc1dbce5b40007f1acdc8672b4b7265a2d0e550;p=gitmo%2FMoose.git diff --git a/xt/author/test-my-dependents.t b/xt/author/test-my-dependents.t index e66a5bc..727ff05 100644 --- a/xt/author/test-my-dependents.t +++ b/xt/author/test-my-dependents.t @@ -10,256 +10,396 @@ BEGIN { } use Test::Requires { - 'Test::DependentModules' => '0.01', # skip all if not installed + 'Archive::Zip' => 0, # or else .zip dists won't be able to be installed + 'Test::DependentModules' => '0.09', # skip all if not installed + 'MetaCPAN::API' => '0.33', }; -use Test::DependentModules qw( test_all_dependents test_module ); +use Test::DependentModules qw( test_all_dependents test_modules ); use DateTime; -use Class::MOP (); +use List::MoreUtils qw(any); use Moose (); diag( 'Test run performed at: ' . DateTime->now - . ' with Class::MOP ' - . Class::MOP->VERSION - . ' and Moose ' + . ' with Moose ' . Moose->VERSION ); $ENV{PERL_TEST_DM_LOG_DIR} = abs_path('.'); -delete $ENV{AUTHOR_TESTING}; +delete @ENV{ qw( AUTHOR_TESTING RELEASE_TESTING SMOKE_TESTING ) }; -my $exclude = qr/^Acme-/x; +$ENV{ANY_MOOSE} = 'Moose'; -if ( $ENV{MOOSE_TEST_MD_ALL} ) { - test_all_dependents( 'Moose', { exclude => $exclude } ); - done_testing; -} -else { - my @modules = map { chomp; $_ } ; - plan tests => scalar @modules; - test_module($_) for @modules; -} +my $mcpan = MetaCPAN::API->new; +my $res = $mcpan->post( + '/release/_search' => { + query => { match_all => {} }, + size => 5000, + filter => { and => [ + { or => [ + { term => { 'release.dependency.module' => 'Moose' } }, + { term => { 'release.dependency.module' => 'Moose::Role' } }, + { term => { 'release.dependency.module' => 'Moose::Exporter' } }, + { term => { 'release.dependency.module' => 'Class::MOP' } }, + { term => { 'release.dependency.module' => 'MooseX::Role::Parameterized' } }, + { term => { 'release.dependency.module' => 'Any::Moose' } }, + ] }, + { term => { 'release.status' => 'latest' } }, + { term => { 'release.maturity' => 'released' } }, + ] }, + fields => 'distribution' + } +); + +my %skip = map { $_ => 1 } grep { /\w/ } map { chomp; s/\s*#.*$//; $_ } ; +my @skip_prefix = qw(Acme Task Bundle); +my %name_fix = ( + 'App-PipeFilter' => 'App::PipeFilter::Generic', + 'Constructible' => 'Constructible::Maxima', + 'DCOLLINS-ANN-Locals' => 'DCOLLINS::ANN::Robot', + 'Dist-Zilla-Deb' => 'Dist::Zilla::Plugin::Deb::VersionFromChangelog', + 'Dist-Zilla-Plugin-TemplateFile' => 'Dist::Zilla::Plugin::TemplateFiles', + 'Dist-Zilla-Plugins-CJM' => 'Dist::Zilla::Plugin::TemplateCJM', + 'OWL-Simple' => 'OWL::Simple::Class', + 'Patterns-ChainOfResponsibility' => 'Patterns::ChainOfResponsibility::Application', + 'Role-Identifiable' => 'Role::Identifiable::HasIdent', + 'X11-XCB' => 'X11::XCB::Connection', + 'XML-Ant-BuildFile' => 'XML::Ant::BuildFile::Project', + 'helm' => 'Helm', + 'marc-moose' => 'MARC::Moose', + 'mobirc' => 'App::Mobirc', + 'smokebrew' => 'App::SmokeBrew', + 'v6-alpha' => 'v6', +); +my @modules = map { exists $name_fix{$_} ? $name_fix{$_} : $_ } + sort + grep { !$skip{$_} } + grep { my $dist = $_; !any { $dist =~ /^$_-/ } @skip_prefix } + map { $_->{fields}{distribution} } + @{ $res->{hits}{hits} }; + +plan tests => scalar @modules; +test_modules(@modules); + +# Modules that are known to fail +# PRANG - failing for quite some time (since before 2.0400) __DATA__ -Moose::Autobox -MooseX::ABC -MooseX::APIRole -MooseX::AbstractFactory -MooseX::Accessors::ReadWritePrivate -MooseX::Aliases -MooseX::AlwaysCoerce -MooseX::App::Cmd -MooseX::Async -MooseX::Attribute::ENV -MooseX::Atom -MooseX::Attribute::Deflator -MooseX::Attribute::Dependent -MooseX::AttributeCloner -MooseX::AttributeDefaults -MooseX::AttributeHelpers -MooseX::AttributeIndexes -MooseX::AttributeInflate -MooseX::AttributeTree -MooseX::Attributes::Curried -MooseX::AuthorizedMethods -MooseX::AutoDestruct -MooseX::AutoImmute -MooseX::BatmanBeforeRobin -MooseX::Blessed::Reconstruct -MooseX::CascadeClearing -MooseX::ChainedAccessors::Accessor -MooseX::ClassAttribute -MooseX::Clone -MooseX::CompileTime::Traits -MooseX::ComposedBehavior -MooseX::ConfigFromFile -MooseX::Configuration -MooseX::Constructor::AllErrors -MooseX::Contract -MooseX::Control -MooseX::CurriedHandles -MooseX::Daemonize -MooseX::Declare -MooseX::DeepAccessors -MooseX::Emulate::Class::Accessor::Fast -MooseX::Error::Trap -MooseX::FileAttribute -MooseX::File_or_DB::Storage -MooseX::FollowPBP -MooseX::Getopt -MooseX::Getopt::Defanged -MooseX::HasDefaults -MooseX::GlobRef -MooseX::Has::Sugar -MooseX::HasDefaults -MooseX::InsideOut -MooseX::Iterator -MooseX::KeyedMutex -MooseX::LazyLogDispatch -MooseX::LazyRequire -MooseX::Lexical::Types -MooseX::LexicalRoleApplication -MooseX::Lists -MooseX::LogDispatch -MooseX::Log::Log4perl -MooseX::MakeImmutable -MooseX::Mangle -MooseX::MarkAsMethods -MooseX::Meta::Attribute::Index -MooseX::Meta::Attribute::Lvalue -MooseX::Meta::TypeConstraint::ForceCoercion -MooseX::Meta::TypeConstraint::Intersection -MooseX::MetaDescription -MooseX::Method -MooseX::MethodAttributes -MooseX::Method::Signatures -MooseX::MultiInitArg -MooseX::MultiMethods -MooseX::MultiObject -MooseX::MutatorAttributes -MooseX::Net::API -MooseX::NonMoose -MooseX::Object::Pluggable -MooseX::OneArgNew -MooseX::Param -MooseX::Params::Validate -MooseX::Plaggerize -MooseX::POE -MooseX::Privacy -MooseX::PrivateSetters -MooseX::RelatedClassRoles -MooseX::Role::BuildInstanceOf -MooseX::Role::Cmd -MooseX::Role::DBIx::Connector -MooseX::Role::Matcher -MooseX::Role::Parameterized -MooseX::Role::Pluggable -MooseX::Role::Restricted -MooseX::Role::Strict -MooseX::Role::Timer -MooseX::Role::TraitConstructor -MooseX::Role::WithOverloading -MooseX::Runnable -MooseX::Scaffold -MooseX::SemiAffordanceAccessor -MooseX::SetOnce -MooseX::SimpleConfig -MooseX::Singleton -MooseX::SingletonMethod -MooseX::SlurpyConstructor -MooseX::Storage -MooseX::Storage::Format::XML::Simple -MooseX::StrictConstructor -MooseX::SymmetricAttribute -MooseX::Templated -MooseX::Timestamp -MooseX::Traits -MooseX::Traits::Attribute::CascadeClear -MooseX::Traits::Attribute::MergeHashRef -MooseX::Traits::Pluggable -MooseX::TransactionalMethods -MooseX::TypeMap -MooseX::Types -MooseX::Types::Authen::Passphrase -MooseX::Types::Buf -MooseX::Types::Common -MooseX::Types::Data::GUID -MooseX::Types::DateTime -MooseX::Types::DateTime::ButMaintained -MooseX::Types::DateTime::W3C -MooseX::Types::Digest -MooseX::Types::Email -MooseX::Types::IO -MooseX::Types::ISO8601 -MooseX::Types::Implements -MooseX::Types::JSON -MooseX::Types::LWP::UserAgent -MooseX::Types::LoadableClass -MooseX::Types::Locale::Country -MooseX::Types::Locale::Language -MooseX::Types::Log::Dispatch -MooseX::Types::Meta -MooseX::Types::Moose::MutualCoercion -MooseX::Types::NetAddr::IP -MooseX::Types::Parameterizable -MooseX::Types::Path::Class -MooseX::Types::Set::Object -MooseX::Types::Signal -MooseX::Types::Structured -MooseX::Types::URI -MooseX::Types::UUID -MooseX::Types::UniStr -MooseX::Types::Varchar -MooseX::UndefTolerant -MooseX::WithCache -MooseX::Workers -MooseX::YAML -App::Nopaste -App::Termcast -Bread::Board -Cache::Ref -Cantella::Worker -Carp::REPL -Catalyst -Catalyst::Devel -CatalystX::Declare -Chart::Clicker -CHI -Config::MVP -Crypt::Util -Data::Stream::Bulk -Data::Visitor -DBIx::Class -Devel::REPL -Dist::Zilla -Email::MIME::Kit -Email::Sender -FCGI::Engine -Fey -Fey::ORM -File::ChangeNotify -Forest -Frost -Git::PurePerl +# won't build, for actual reasons: +App-CPAN2Pkg # Tk doesn't compile +App-Fotagger # Imager doesn't compile +Black-Board # not found on cpan because of mxd +CM-Permutation # OpenGL uses graphics in Makefile.PL +Dackup # depends on running ssh +Date-Biorhythm # Date::Business prompts in Makefile.PL +Data-Collector # depends on running ssh +POE-Component-OpenSSH # depends on running ssh +Perl-Dist-Strawberry-BuildPerl-5123 # windows only +Perl-Dist-WiX # windows only +Perl-Dist-WiX-BuildPerl-5123 # windows only +Test-SFTP # Term::ReadPassword prompts in tests +VirtualBox-Manage # not found on cpan because of mxd +helm # depends on running ssh + +# won't build, for unknown reasons +App-HistHub # ??? +App-Twitch # ??? +CPAN-Patches # ??? +CPAN-Patches-Plugin-Debian # ??? +Debian-Apt-PM # ??? +Dist-Zilla-Plugin-BuildSelf # ??? +Dist-Zilla-Plugin-ModuleBuildTiny # ??? +Dist-Zilla-Plugin-Test-DistManifest # ??? +Dist-Zilla-Plugin-Test-Portability # ??? +Dist-Zilla-Plugin-Test-Synopsis # ??? +Dist-Zilla-Plugin-Test-UnusedVars # ??? +Lingua-TreeTagger # ??? +POE-Component-CPAN-Mirror-Multiplexer # ??? +POE-Component-Client-CouchDB # ??? +POE-Component-Github # ??? +POE-Component-Metabase-Relay-Server # ??? +POE-Component-Server-SimpleHTTP-PreFork # ??? +Tapper-Testplan # ??? (hangs) +Test-Daily # ??? +WWW-Alltop # ??? +WWW-Hashdb # ??? (hangs, pegging cpu) +WebService-Async # ??? (hangs, pegging cpu) +WebService-LOC-CongRec # ??? +Zucchini # ??? (hangs) + +# not in cpan index for some reason +Hopkins # not found on cpan (?) +PostScript-Barcode # not found on cpan (?) + +# failing for a reason +AI-ExpertSystem-Advanced # no tests +API-Assembla # no tests +Algorithm-KernelKMeans # mx-types-common changes broke it +Alien-ActiveMQ # can't install activemq +AnyEvent-Inotify-Simple # ??? (maybe issue with test::sweet) +AnyEvent-JSONRPC # tests require recommended deps +AnyEvent-Retry # mx-types-common changes broke it +AnyEvent-ZeroMQ # requires zeromq installation +App-Dataninja # bad M::I install in inc/ +App-ForExample # getopt::chain is broken +App-Magpie # deps on URPM which doesn't exist +App-PgCryobit # requires postgres installation +App-TemplateServer # broken use of types +App-TemplateServer-Provider-HTML-Template # dep on app-templateserver +App-TemplateServer-Provider-Mason # dep on app-templateserver +App-TemplateServer-Provider-TD # dep on app-templateserver +App-TimeTracker # git::repository is broken +App-USBKeyCopyCon # gtk tests are graphical +App-mkfeyorm # no tests +Archive-RPM # requires cpio +Bio-MAGETAB # datetime-format-datemanip is broken +Bot-Applebot # no tests +Bot-Backbone # broken deps +Business-UPS-Tracking # broken +CHI-Driver-Redis # requires redis server +CPAN-Mini-Webserver # undeclared dep on lingua-stopwords +Cache-Profile # broken +Catalyst-Authentication-Credential-Facebook-OAuth2 # no tests +Catalyst-Authentication-Store-Fey-ORM # no tests +Catalyst-Authentication-Store-LDAP-AD-Class # pod coverage fail +Catalyst-Controller-MovableType # no tests +Catalyst-Controller-Resources # broken +Catalyst-Engine-Stomp # requires alien::activemq +Catalyst-Model-MenuGrinder # no tests +Catalyst-Model-Search-ElasticSearch # requires elasticsearch +Catalyst-Model-Sedna # deps on Alien-Sedna which doesn't exist +Catalyst-Plugin-Continuation # undeclared dep +Catalyst-Plugin-ErrorCatcher-ActiveMQ-Stomp # pod coverage fail +Catalyst-Plugin-SwiffUploaderCookieHack # undeclared dep +Catalyst-TraitFor-Component-ConfigPerSite # undeclared dep +Catalyst-TraitFor-Controller-jQuery-jqGrid # bad test (missing files) +CatalystX-MooseComponent # broken +CatalystX-Restarter-GTK # gtk tests are graphical +CatalystX-RoleApplicator # broken +CatalystX-SimpleAPI # depends on ::RoleApplicator +CatalystX-SimpleLogin # broken +CatalystX-Usul # proc::processtable doesn't load +Cave-Wrapper # requires cave to be installed +Cheater # parse::randgen is broken +Class-OWL # uses CMOP::Class without loading cmop +Cogwheel # uses ancient moose apis +Constructible # GD::SVG is a broken dist +Coro-Amazon-SimpleDB # amazon::simpledb::client doesn't exist +DBICx-Modeler-Generator # broken (weirdly) +DBIx-PgLink # requires postgres installation +DBIx-SchemaChecksum # broken +Data-Apache-mod_status # invalid characters in type name +Data-PackageName # broken +Data-Pipeline # uses ancient moose apis +DayDayUp # MojoX-Fixup-XHTML doesn't exist +Devel-Events # broken (role conflict) +Dist-Zilla-Plugin-ProgCriticTests # broken +Dist-Zilla-Plugin-SVK # requires svn bindings +DustyDB # uses old moose apis +ELF-Extract-Sections # uses stash entries with :: +ETLp # uses stash entries with :: +FFmpeg-Thumbnail # undeclared dep +Fedora-App-MaintainerTools # requires rpm to be installed +Fedora-App-ReviewTool # requires koji to be installed +File-DataClass # XML::DTD is a broken dist +Finance-Bank-SentinelBenefits-Csv401kConverter # uses stash entries with :: +Forest-Tree-Viewer-Gtk2 # gtk tests are graphical +Form-Factory # uses old moose apis +Frost # broken +GOBO # coerce with no coercion +Games-Pandemic # tk doesn't build +Games-RailRoad # tk doesn't build +Games-Risk # tk doesn't build +Games-Tetris-Complete # requires threads +Getopt-Chain # p::d::builder changed dists +Google-Spreadsheet-Agent # pod::coverage fail +HTML-TreeBuilderX-ASP_NET # broken +Hobocamp # configure_requires needs EU::CChecker +Horris # App::Horris isn't on cpan +IM-Engine-Plugin-Dispatcher # p::d::declarative changed dists +JavaScript-Framework-jQuery # coerce with no coercion +Jungle # broken +Kamaitachi # pod::coverage fail +KiokuDB-Backend-Files # broken +Locale-MO-File # broken +Log-Dispatch-Gtk2-Notify # gtk tests are graphical +MSWord-ToHTML # requires abiword to be installed +Mail-Summary-Tools # DT::Format::DateManip is broken +MediaWiki-USERINFO # broken +MooseX-Attribute-Prototype # uses old moose apis +MooseX-DBIC-Scaffold # needs unreleased sql-translator +MooseX-DOM # "no Moose" unimports confess +MooseX-Documenter # broken +MooseX-Error-Exception-Class # metaclass compat breakage +MooseX-Meta-Attribute-Index # old moose apis +MooseX-Meta-Attribute-Lvalue # old moose apis +MooseX-Struct # ancient moose apis +MooseX-TrackDirty-Attributes # old moose apis +Net-Douban # broken +Net-Dropbox # no tests +Net-FluidDB # broken +Net-Fluidinfo # broken +Net-HTTP-Factual # broken +Net-Journyx # broken +Net-Parliament # broken +Net-Plurk # broken +Net-Recurly # no tests +Net-StackExchange # broken +NetHack-Item # NH::Monster::Spoiler is broken +NetHack-Monster-Spoiler # broken (MX::CA issues) +Nginx-Control # requires nginx to be installed +ODG-Record # Test::Benchmark broken +POE-Component-DirWatch-Object # broken +POE-Component-ResourcePool # broken +POE-Component-Server-MySQL # no tests +POE-Component-Server-PSGI # broken deps +POEx-ProxySession # broken deps +POEx-PubSub # broken deps +POEx-WorkerPool # broken deps +Paludis-UseCleaner # needs cave::wrapper +Parse-FixedRecord # broken +Perlanet # HTML::Tidy requires tidyp +Perlbal-Control # proc::processtable doesn't load +Pg-BulkCopy # hardcodes /usr/bin/perl +Queue-Leaky # broken +Random-Quantum # no tests +RDF-Server # "no Moose" unimports confess +RPC-Any # broken +Reaction # signatures is broken +Reflexive-Role-Collective # broken (reflex::role changes?) +Reflexive-Role-DataMover # broken (reflex::role changes?) +Reflexive-Role-TCPServer # broken (reflex::role changes?) +SRS-EPP-Proxy # depends on xml::epp +STD # no tests +Scene-Graph # has '+attr' in roles +SchemaEvolution # no tests +Server-Control # proc::processtable doesn't load +SilkiX-Converter-Kwiki # file::mimeinfo expects (?-xism: +SimpleDB-Class # requires memcached +String-Blender # broken +TAEB # broken +Tail-Tool # Getopt::Alt doesn't exist +Tapper-Installer # sys::info::driver::linux is broken +Tapper-MCP # sys::info::driver::linux is broken +Tapper-MCP-MessageReceiver # sys::info::driver::linux is broken +Tapper-Reports-API # sys::info::driver::linux is broken +Telephone-Mnemonic-US # rpm-build-perl is broken +Test-A8N # broken +Thorium # requires Hobocamp +Tk-Role-Dialog # tk won't compile +TryCatch-Error # broken +Verby # requires poe::component::resourcepool +WWW-FMyLife # broken +WWW-Fandango # bad dist +WWW-Metalgate # Cache is broken +WWW-Scramble # pod::coverage fail +WWW-StaticBlog # time::sofar is broken +WWW-Yahoo-Lyrics-JP # broken +Weaving-Tablet # tk doesn't compile +WebService-Buxfer # no tests +WebService-CloudFlare-Host # no tests +WebService-Yes24 # broken +WiX3 # broken +XIRCD # undeclared deps +XML-EPP # coerce without coercion +Yukki # git::repository is broken +mobirc # http::engine broken +namespace-alias # won't compile + +# dep resolution failures or something (these pass when run manually) +AXL-Client-Simple +Alien-Ditaa +App-Benchmark-Accessors +Bot-BasicBot-Pluggable +Bot-BasicBot-Pluggable-Module-JIRA +CPAN-Digger +Cantella-Worker +Cantella-Worker-Role-Beanstalk +Catalyst-Plugin-Session +Catalyst-View-ByCode +Catalyst-View-RDF +CatalystX-Declare +CatalystX-Syntax-Action +Chart-Clicker +Chart-Weather-Forecast +Chef +Code-Statistics +Crypt-PBKDF2 +Curses-Toolkit +DBIx-Class-DeploymentHandler +Data-SearchEngine-ElasticSearch +Devel-IntelliPerl +Dist-Zilla-Plugin-DualLife +Dist-Zilla-Plugin-GitFlow +Dist-Zilla-Plugin-MetaResourcesFromGit +Dist-Zilla-Plugin-Rsync +Dist-Zilla-Plugin-Test-CPAN-Changes +Dist-Zilla-Plugin-Test-Kwalitee +Dist-Zilla-PluginBundle-ARODLAND +Dist-Zilla-PluginBundle-Author-OLIVER +Dist-Zilla-PluginBundle-FLORA +Dist-Zilla-PluginBundle-NIGELM +Dist-Zilla-PluginBundle-NUFFIN +Dist-Zilla-PluginBundle-RBUELS +FCGI-Engine +Fey-SQL-Pg +Finance-Bank-SuomenVerkkomaksut +Games-AssaultCube +Games-HotPotato +Gearman-Driver +Geo-Calc Gitalist -Hailo -HTML::FormHandler -IM::Engine -JSON::RPC::Common -JSORB -KiokuDB -KiokuDB::Backend::DBI -KiokuX::Model::Role::Annotations -KiokuX::User -Lighttpd::Control -Locale::POFileManager -Markdent -Metabase -MojoMojo -Mongoose -namespace::autoclean -Net::HTTP::API -Net::Twitter -Path::Class::Versioned -Path::Router -Perl::PrereqScanner -Pod::Elemental -Pod::Weaver -PRANG -Reaction +Grades +Graphics-Primitive-Driver-Cairo +Graphics-Primitive-Driver-CairoPango +HTML-FormHandler +HTML-FormHandler-Model-DBIC +IMS-CP-Manifest +IO-Multiplex-Intermediary +Image-Placeholder +Kafka-Client +KiokuDB-Backend-BDB +LWP-UserAgent-OfflineCache +Locale-Handle-Pluggable +Mason +Mildew +MooseX-APIRole +MooseX-AutoImmute +MooseX-Declare +MooseX-Method-Signatures +MooseX-MultiMethods +MooseX-MultiObject +MooseX-POE +MooseX-Params +MooseX-Workers +Net-Topsy +POE-Component-Client-MPD +POE-Component-DirWatch +POE-Component-IRC-Plugin-Role +POE-Component-MessageQueue +POE-Component-Server-SimpleHTTP +POE-Test-Helpers +Parse-CPAN-Ratings +Pod-Weaver-Section-Encoding +Proc-Safetynet Reflex -Resource::Pack -Role::Subsystem -Search::GIN -Silki -Test::Able -Test::Routine -Test::Sweet -Throwable -Throwable::X +Reflexive-Stream-Filtering +Schedule-Pluggable +Template-Plugin-Heritable +Test-BDD-Cucumber +Test-Sweet +Test-System TryCatch -WWW::AdventCalendar -Web::Hippie -XML::Rabbit -XML::Schematron -XML::Toolkit +VANAMBURG-SEMPROG-SimpleGraph +VCI +W3C-XMLSchema +WWW-Getsy +WWW-Mechanize-Cached +WWW-MenuGrinder +WebNano-Controller-CRUD +WebService-SlimTimer +XML-Ant-BuildFile +XML-LibXSLT-Easy +XML-Rabbit +XML-Schematron +YUM-RepoQuery