better test-my-dependents script (needs work still)
[gitmo/Moose.git] / xt / author / test-my-dependents.t
1 use strict;
2 use warnings;
3
4 use Cwd qw( abs_path );
5 use Test::More;
6
7 BEGIN {
8     plan skip_all => 'This test will not run unless you set MOOSE_TEST_MD to a true value'
9         unless $ENV{MOOSE_TEST_MD};
10 }
11
12 use Test::Requires {
13     'Test::DependentModules' => '0.09', # skip all if not installed
14     'MetaCPAN::API' => '0.33',
15 };
16 use Test::DependentModules qw( test_all_dependents test_modules );
17
18 use DateTime;
19 use List::MoreUtils qw(any);
20 use Moose ();
21
22 diag(     'Test run performed at: '
23         . DateTime->now
24         . ' with Moose '
25         . Moose->VERSION );
26
27 $ENV{PERL_TEST_DM_LOG_DIR} = abs_path('.');
28 delete @ENV{ qw( AUTHOR_TESTING RELEASE_TESTING SMOKE_TESTING ) };
29
30 my $mcpan = MetaCPAN::API->new;
31 my $res = $mcpan->post(
32     '/release/_search' => {
33         query  => { match_all => {} },
34         size   => 5000,
35         filter => { and => [
36             { or => [
37                 { term => { 'release.dependency.module' => 'Moose' } },
38                 { term => { 'release.dependency.module' => 'Moose::Role' } },
39                 { term => { 'release.dependency.module' => 'Moose::Exporter' } },
40                 { term => { 'release.dependency.module' => 'Class::MOP' } },
41                 { term => { 'release.dependency.module' => 'MooseX::Role::Parameterized' } },
42             ] },
43             { term => { 'release.status'   => 'latest' } },
44             { term => { 'release.maturity' => 'released' } },
45         ] },
46         fields => 'distribution'
47     }
48 );
49
50 my %skip = map { $_ => 1 } grep { /\w/ } map { chomp; s/\s*#.*$//; $_ } <DATA>;
51 my @skip_prefix = qw(Acme Task Bundle);
52 my %name_fix = (
53     'App-PipeFilter'                 => 'App::PipeFilter::Generic',
54     'Constructible'                  => 'Constructible::Maxima',
55     'DCOLLINS-ANN-Locals'            => 'DCOLLINS::ANN::Robot',
56     'Dist-Zilla-Deb'                 => 'Dist::Zilla::Plugin::Deb::VersionFromChangelog',
57     'Dist-Zilla-Plugin-TemplateFile' => 'Dist::Zilla::Plugin::TemplateFiles',
58     'Dist-Zilla-Plugins-CJM'         => 'Dist::Zilla::Plugin::TemplateCJM',
59     'OWL-Simple'                     => 'OWL::Simple::Class',
60     'Patterns-ChainOfResponsibility' => 'Patterns::ChainOfResponsibility::Application',
61     'Role-Identifiable'              => 'Role::Identifiable::HasIdent',
62     'X11-XCB'                        => 'X11::XCB::Connection',
63     'XML-Ant-BuildFile'              => 'XML::Ant::BuildFile::Project',
64     'helm'                           => 'Helm',
65     'marc-moose'                     => 'MARC::Moose',
66     'mobirc'                         => 'App::Mobirc',
67     'smokebrew'                      => 'App::SmokeBrew',
68     'v6-alpha'                       => 'v6',
69 );
70 my @modules = map  { exists $name_fix{$_} ? $name_fix{$_} : $_ }
71               sort
72               grep { !$skip{$_} }
73               grep { my $dist = $_; !any { $dist =~ /^$_-/ } @skip_prefix }
74               map  { $_->{fields}{distribution} }
75               @{ $res->{hits}{hits} };
76
77 plan tests => scalar @modules;
78 test_modules(@modules);
79
80 # Modules that are known to fail
81 # PRANG - failing for quite some time (since before 2.0400)
82
83 __DATA__
84 # notes:
85 # need Archive::Zip, or .zip dists won't be able to be installed
86
87 # won't build, for actual reasons:
88 App-CPAN2Pkg                            # Tk doesn't compile
89 App-Fotagger                            # Imager doesn't compile
90 Black-Board                             # not found on cpan because of mxd
91 CM-Permutation                          # OpenGL uses graphics in Makefile.PL
92 Dackup                                  # depends on running ssh
93 Date-Biorhythm                          # Date::Business prompts in Makefile.PL
94 Data-Collector                          # depends on running ssh
95 POE-Component-OpenSSH                   # depends on running ssh
96 Perl-Dist-Strawberry-BuildPerl-5123     # windows only
97 Perl-Dist-WiX                           # windows only
98 Perl-Dist-WiX-BuildPerl-5123            # windows only
99 Test-SFTP                               # Term::ReadPassword prompts in tests
100 VirtualBox-Manage                       # not found on cpan because of mxd
101 helm                                    # depends on running ssh
102
103 # won't build, for unknown reasons
104 App-HistHub                             # ???
105 App-Twitch                              # ???
106 CPAN-Patches                            # ???
107 CPAN-Patches-Plugin-Debian              # ???
108 Debian-Apt-PM                           # ???
109 Dist-Zilla-Plugin-BuildSelf             # ???
110 Dist-Zilla-Plugin-ModuleBuildTiny       # ???
111 Lingua-TreeTagger                       # ???
112 POE-Component-CPAN-Mirror-Multiplexer   # ???
113 POE-Component-Client-CouchDB            # ???
114 POE-Component-Github                    # ???
115 POE-Component-Metabase-Relay-Server     # ???
116 POE-Component-Server-SimpleHTTP-PreFork # ???
117 Tapper-Testplan                         # ??? (hangs)
118 Test-Daily                              # ???
119 WWW-Alltop                              # ???
120 WWW-Hashdb                              # ??? (hangs, pegging cpu)
121 WebService-Async                        # ??? (hangs, pegging cpu)
122 WebService-LOC-CongRec                  # ???
123 Zucchini                                # ??? (hangs)
124
125 # not in cpan index for some reason
126 Dist-Zilla-Plugin-Test-DistManifest     # not found on cpan (?)
127 Dist-Zilla-Plugin-Test-MinimumVersion   # not found on cpan (?)
128 Dist-Zilla-Plugin-Test-Portability      # not found on cpan (?)
129 Dist-Zilla-Plugin-Test-Synopsis         # not found on cpan (?)
130 Dist-Zilla-Plugin-Test-UnusedVars       # not found on cpan (?)
131 Hopkins                                 # not found on cpan (?)
132 PostScript-Barcode                      # not found on cpan (?)
133
134 # failing for some reason or another (need to look into this)
135 AI-ExpertSystem-Advanced
136 API-Assembla
137 AXL-Client-Simple
138 Algorithm-KernelKMeans
139 Alien-ActiveMQ
140 Alien-Ditaa
141 AnyEvent-Inotify-Simple
142 AnyEvent-JSONRPC
143 AnyEvent-Retry
144 AnyEvent-ZeroMQ
145 App-Benchmark-Accessors
146 App-Dataninja
147 App-ForExample
148 App-Magpie
149 App-PgCryobit
150 App-TemplateServer
151 App-TemplateServer-Provider-HTML-Template
152 App-TemplateServer-Provider-Mason
153 App-TemplateServer-Provider-TD
154 App-TimeTracker
155 App-USBKeyCopyCon
156 App-mkfeyorm
157 Archive-RPM
158 Bio-MAGETAB
159 Bot-Applebot
160 Bot-Backbone
161 Bot-BasicBot-Pluggable
162 Bot-BasicBot-Pluggable-Module-JIRA
163 Business-UPS-Tracking
164 CHI-Driver-Redis
165 CPAN-Digger
166 CPAN-Mini-Webserver
167 Cache-Profile
168 Cantella-Worker
169 Cantella-Worker-Role-Beanstalk
170 Catalyst-Authentication-Credential-Facebook-OAuth2
171 Catalyst-Authentication-Store-Fey-ORM
172 Catalyst-Authentication-Store-LDAP-AD-Class
173 Catalyst-Controller-MovableType
174 Catalyst-Controller-Resources
175 Catalyst-Engine-Stomp
176 Catalyst-Model-MenuGrinder
177 Catalyst-Model-Search-ElasticSearch
178 Catalyst-Model-Sedna
179 Catalyst-Plugin-Continuation
180 Catalyst-Plugin-ErrorCatcher-ActiveMQ-Stomp
181 Catalyst-Plugin-Session
182 Catalyst-Plugin-SwiffUploaderCookieHack
183 Catalyst-TraitFor-Component-ConfigPerSite
184 Catalyst-TraitFor-Controller-jQuery-jqGrid
185 Catalyst-View-ByCode
186 Catalyst-View-RDF
187 CatalystX-Declare
188 CatalystX-MooseComponent
189 CatalystX-Restarter-GTK
190 CatalystX-RoleApplicator
191 CatalystX-SimpleAPI
192 CatalystX-SimpleLogin
193 CatalystX-Syntax-Action
194 CatalystX-Usul
195 Cave-Wrapper
196 Chart-Clicker
197 Chart-Weather-Forecast
198 Cheater
199 Chef
200 Class-OWL
201 Code-Statistics
202 Cogwheel
203 Constructible
204 Coro-Amazon-SimpleDB
205 Crypt-PBKDF2
206 Curses-Toolkit
207 DBICx-Modeler-Generator
208 DBIx-Class-DeploymentHandler
209 DBIx-PgLink
210 DBIx-SchemaChecksum
211 Data-Apache-mod_status
212 Data-PackageName
213 Data-Pipeline
214 Data-SearchEngine-ElasticSearch
215 DayDayUp
216 Devel-Events
217 Devel-IntelliPerl
218 Dist-Zilla-Plugin-DualLife
219 Dist-Zilla-Plugin-GitFlow
220 Dist-Zilla-Plugin-MetaResourcesFromGit
221 Dist-Zilla-Plugin-ProgCriticTests
222 Dist-Zilla-Plugin-Rsync
223 Dist-Zilla-Plugin-SVK
224 Dist-Zilla-Plugin-Test-CPAN-Changes
225 Dist-Zilla-Plugin-Test-Kwalitee
226 Dist-Zilla-PluginBundle-ARODLAND
227 Dist-Zilla-PluginBundle-Author-OLIVER
228 Dist-Zilla-PluginBundle-FLORA
229 Dist-Zilla-PluginBundle-NIGELM
230 Dist-Zilla-PluginBundle-NUFFIN
231 Dist-Zilla-PluginBundle-RBUELS
232 DustyDB
233 ELF-Extract-Sections
234 ETLp
235 FCGI-Engine
236 FFmpeg-Thumbnail
237 Fedora-App-MaintainerTools
238 Fedora-App-ReviewTool
239 Fey-SQL-Pg
240 File-DataClass
241 Finance-Bank-SentinelBenefits-Csv401kConverter
242 Finance-Bank-SuomenVerkkomaksut
243 Forest-Tree-Viewer-Gtk2
244 Form-Factory
245 Frost
246 GOBO
247 Games-AssaultCube
248 Games-HotPotato
249 Games-Pandemic
250 Games-RailRoad
251 Games-Risk
252 Games-Tetris-Complete
253 Gearman-Driver
254 Geo-Calc
255 Getopt-Chain
256 Gitalist
257 Google-Spreadsheet-Agent
258 Grades
259 Graphics-Primitive-Driver-Cairo
260 Graphics-Primitive-Driver-CairoPango
261 HTML-FormHandler
262 HTML-FormHandler-Model-DBIC
263 HTML-TreeBuilderX-ASP_NET
264 Hobocamp
265 Horris
266 IM-Engine-Plugin-Dispatcher
267 IMS-CP-Manifest
268 IO-Multiplex-Intermediary
269 Image-Placeholder
270 JavaScript-Framework-jQuery
271 Jungle
272 Kafka-Client
273 Kamaitachi
274 KiokuDB-Backend-BDB
275 KiokuDB-Backend-Files
276 LWP-UserAgent-OfflineCache
277 Locale-Handle-Pluggable
278 Locale-MO-File
279 Log-Dispatch-Gtk2-Notify
280 MSWord-ToHTML
281 Mail-Summary-Tools
282 Mason
283 MediaWiki-USERINFO
284 Mildew
285 MooseX-APIRole
286 MooseX-Attribute-Prototype
287 MooseX-AutoImmute
288 MooseX-DBIC-Scaffold
289 MooseX-DOM
290 MooseX-Declare
291 MooseX-Documenter
292 MooseX-Error-Exception-Class
293 MooseX-Meta-Attribute-Index
294 MooseX-Meta-Attribute-Lvalue
295 MooseX-Method-Signatures
296 MooseX-MultiMethods
297 MooseX-MultiObject
298 MooseX-POE
299 MooseX-Params
300 MooseX-Struct
301 MooseX-TrackDirty-Attributes
302 MooseX-Workers
303 Net-Douban
304 Net-Dropbox
305 Net-FluidDB
306 Net-Fluidinfo
307 Net-HTTP-Factual
308 Net-Journyx
309 Net-Parliament
310 Net-Plurk
311 Net-Recurly
312 Net-StackExchange
313 Net-Topsy
314 NetHack-Item
315 NetHack-Monster-Spoiler
316 Nginx-Control
317 ODG-Record
318 POE-Component-Client-MPD
319 POE-Component-DirWatch
320 POE-Component-DirWatch-Object
321 POE-Component-IRC-Plugin-Role
322 POE-Component-MessageQueue
323 POE-Component-ResourcePool
324 POE-Component-Server-MySQL
325 POE-Component-Server-PSGI
326 POE-Component-Server-SimpleHTTP
327 POE-Test-Helpers
328 POEx-ProxySession
329 POEx-PubSub
330 POEx-WorkerPool
331 Paludis-UseCleaner
332 Parse-CPAN-Ratings
333 Parse-FixedRecord
334 Perlanet
335 Perlbal-Control
336 Pg-BulkCopy
337 Pod-Weaver-Section-Encoding
338 Proc-Safetynet
339 Queue-Leaky
340 RDF-Server
341 RPC-Any
342 Random-Quantum
343 Reaction
344 Reflex
345 Reflexive-Role-Collective
346 Reflexive-Role-DataMover
347 Reflexive-Role-TCPServer
348 Reflexive-Stream-Filtering
349 SRS-EPP-Proxy
350 STD
351 Scene-Graph
352 Schedule-Pluggable
353 SchemaEvolution
354 Server-Control
355 SilkiX-Converter-Kwiki
356 SimpleDB-Class
357 String-Blender
358 TAEB
359 Tail-Tool
360 Tapper-Installer
361 Tapper-MCP
362 Tapper-MCP-MessageReceiver
363 Tapper-Reports-API
364 Telephone-Mnemonic-US
365 Template-Plugin-Heritable
366 Test-A8N
367 Test-BDD-Cucumber
368 Test-Sweet
369 Test-System
370 Thorium
371 Tk-Role-Dialog
372 TryCatch
373 TryCatch-Error
374 VANAMBURG-SEMPROG-SimpleGraph
375 VCI
376 Verby
377 W3C-XMLSchema
378 WWW-FMyLife
379 WWW-Fandango
380 WWW-Getsy
381 WWW-Getsy
382 WWW-Mechanize-Cached
383 WWW-MenuGrinder
384 WWW-Metalgate
385 WWW-Scramble
386 WWW-StaticBlog
387 WWW-Yahoo-Lyrics-JP
388 Weaving-Tablet
389 WebNano-Controller-CRUD
390 WebService-Buxfer
391 WebService-CloudFlare-Host
392 WebService-SlimTimer
393 WebService-Yes24
394 WiX3
395 XIRCD
396 XML-Ant-BuildFile
397 XML-EPP
398 XML-LibXSLT-Easy
399 XML-Rabbit
400 XML-Schematron
401 YUM-RepoQuery
402 Yukki
403 mobirc
404 namespace-alias