reformat a bit
[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 Dist-Zilla-Plugin-Test-DistManifest    # ???
112 Dist-Zilla-Plugin-Test-Portability     # ???
113 Dist-Zilla-Plugin-Test-Synopsis        # ???
114 Dist-Zilla-Plugin-Test-UnusedVars      # ???
115 Lingua-TreeTagger                      # ???
116 POE-Component-CPAN-Mirror-Multiplexer  # ???
117 POE-Component-Client-CouchDB           # ???
118 POE-Component-Github                   # ???
119 POE-Component-Metabase-Relay-Server    # ???
120 POE-Component-Server-SimpleHTTP-PreFork  # ???
121 Tapper-Testplan                        # ??? (hangs)
122 Test-Daily                             # ???
123 WWW-Alltop                             # ???
124 WWW-Hashdb                             # ??? (hangs, pegging cpu)
125 WebService-Async                       # ??? (hangs, pegging cpu)
126 WebService-LOC-CongRec                 # ???
127 Zucchini                               # ??? (hangs)
128
129 # not in cpan index for some reason
130 Hopkins                                # not found on cpan (?)
131 PostScript-Barcode                     # not found on cpan (?)
132
133 # failing for a reason
134 AI-ExpertSystem-Advanced               # no tests
135 API-Assembla                           # no tests
136 Algorithm-KernelKMeans                 # mx-types-common changes broke it
137 AnyEvent-Inotify-Simple                # ??? (maybe issue with test::sweet)
138 AnyEvent-JSONRPC                       # tests require recommended deps
139 AnyEvent-Retry                         # mx-types-common changes broke it
140 AnyEvent-ZeroMQ                        # requires zeromq installation
141 App-Dataninja                          # bad M::I install in inc/
142 App-ForExample                         # getopt::chain is broken
143 App-Magpie                             # deps on URPM which doesn't exist
144 App-PgCryobit                          # requires postgres installation
145 App-TemplateServer                     # broken use of types
146 App-TemplateServer-Provider-HTML-Template  # dep on app-templateserver
147 App-TemplateServer-Provider-Mason      # dep on app-templateserver
148 App-TemplateServer-Provider-TD         # dep on app-templateserver
149 App-TimeTracker                        # git::repository is broken
150 App-USBKeyCopyCon                      # gtk tests are graphical
151 App-mkfeyorm                           # no tests
152 Archive-RPM                            # requires cpio
153 Bio-MAGETAB                            # datetime-format-datemanip is broken
154 Bot-Applebot                           # no tests
155 Bot-Backbone                           # broken deps
156 Business-UPS-Tracking                  # broken
157 CHI-Driver-Redis                       # requires redis server
158 CPAN-Mini-Webserver                    # undeclared dep on lingua-stopwords
159 Cache-Profile                          # broken
160 Catalyst-Authentication-Credential-Facebook-OAuth2  # no tests
161 Catalyst-Authentication-Store-Fey-ORM  # no tests
162 Catalyst-Authentication-Store-LDAP-AD-Class  # pod coverage fail
163 Catalyst-Controller-MovableType        # no tests
164 Catalyst-Controller-Resources          # broken
165
166 # dep resolution failures or something (these pass when run manually)
167 AXL-Client-Simple
168 Alien-ActiveMQ
169 Alien-Ditaa
170 App-Benchmark-Accessors
171 Bot-BasicBot-Pluggable
172 Bot-BasicBot-Pluggable-Module-JIRA
173 CPAN-Digger
174 Cantella-Worker
175 Cantella-Worker-Role-Beanstalk
176
177 # failing for some reason or another (need to look into this)
178 Catalyst-Engine-Stomp
179 Catalyst-Model-MenuGrinder
180 Catalyst-Model-Search-ElasticSearch
181 Catalyst-Model-Sedna
182 Catalyst-Plugin-Continuation
183 Catalyst-Plugin-ErrorCatcher-ActiveMQ-Stomp
184 Catalyst-Plugin-Session
185 Catalyst-Plugin-SwiffUploaderCookieHack
186 Catalyst-TraitFor-Component-ConfigPerSite
187 Catalyst-TraitFor-Controller-jQuery-jqGrid
188 Catalyst-View-ByCode
189 Catalyst-View-RDF
190 CatalystX-Declare
191 CatalystX-MooseComponent
192 CatalystX-Restarter-GTK
193 CatalystX-RoleApplicator
194 CatalystX-SimpleAPI
195 CatalystX-SimpleLogin
196 CatalystX-Syntax-Action
197 CatalystX-Usul
198 Cave-Wrapper
199 Chart-Clicker
200 Chart-Weather-Forecast
201 Cheater
202 Chef
203 Class-OWL
204 Code-Statistics
205 Cogwheel
206 Constructible
207 Coro-Amazon-SimpleDB
208 Crypt-PBKDF2
209 Curses-Toolkit
210 DBICx-Modeler-Generator
211 DBIx-Class-DeploymentHandler
212 DBIx-PgLink
213 DBIx-SchemaChecksum
214 Data-Apache-mod_status
215 Data-PackageName
216 Data-Pipeline
217 Data-SearchEngine-ElasticSearch
218 DayDayUp
219 Devel-Events
220 Devel-IntelliPerl
221 Dist-Zilla-Plugin-DualLife
222 Dist-Zilla-Plugin-GitFlow
223 Dist-Zilla-Plugin-MetaResourcesFromGit
224 Dist-Zilla-Plugin-ProgCriticTests
225 Dist-Zilla-Plugin-Rsync
226 Dist-Zilla-Plugin-SVK
227 Dist-Zilla-Plugin-Test-CPAN-Changes
228 Dist-Zilla-Plugin-Test-Kwalitee
229 Dist-Zilla-PluginBundle-ARODLAND
230 Dist-Zilla-PluginBundle-Author-OLIVER
231 Dist-Zilla-PluginBundle-FLORA
232 Dist-Zilla-PluginBundle-NIGELM
233 Dist-Zilla-PluginBundle-NUFFIN
234 Dist-Zilla-PluginBundle-RBUELS
235 DustyDB
236 ELF-Extract-Sections
237 ETLp
238 FCGI-Engine
239 FFmpeg-Thumbnail
240 Fedora-App-MaintainerTools
241 Fedora-App-ReviewTool
242 Fey-SQL-Pg
243 File-DataClass
244 Finance-Bank-SentinelBenefits-Csv401kConverter
245 Finance-Bank-SuomenVerkkomaksut
246 Forest-Tree-Viewer-Gtk2
247 Form-Factory
248 Frost
249 GOBO
250 Games-AssaultCube
251 Games-HotPotato
252 Games-Pandemic
253 Games-RailRoad
254 Games-Risk
255 Games-Tetris-Complete
256 Gearman-Driver
257 Geo-Calc
258 Getopt-Chain
259 Gitalist
260 Google-Spreadsheet-Agent
261 Grades
262 Graphics-Primitive-Driver-Cairo
263 Graphics-Primitive-Driver-CairoPango
264 HTML-FormHandler
265 HTML-FormHandler-Model-DBIC
266 HTML-TreeBuilderX-ASP_NET
267 Hobocamp
268 Horris
269 IM-Engine-Plugin-Dispatcher
270 IMS-CP-Manifest
271 IO-Multiplex-Intermediary
272 Image-Placeholder
273 JavaScript-Framework-jQuery
274 Jungle
275 Kafka-Client
276 Kamaitachi
277 KiokuDB-Backend-BDB
278 KiokuDB-Backend-Files
279 LWP-UserAgent-OfflineCache
280 Locale-Handle-Pluggable
281 Locale-MO-File
282 Log-Dispatch-Gtk2-Notify
283 MSWord-ToHTML
284 Mail-Summary-Tools
285 Mason
286 MediaWiki-USERINFO
287 Mildew
288 MooseX-APIRole
289 MooseX-Attribute-Prototype
290 MooseX-AutoImmute
291 MooseX-DBIC-Scaffold
292 MooseX-DOM
293 MooseX-Declare
294 MooseX-Documenter
295 MooseX-Error-Exception-Class
296 MooseX-Meta-Attribute-Index
297 MooseX-Meta-Attribute-Lvalue
298 MooseX-Method-Signatures
299 MooseX-MultiMethods
300 MooseX-MultiObject
301 MooseX-POE
302 MooseX-Params
303 MooseX-Struct
304 MooseX-TrackDirty-Attributes
305 MooseX-Workers
306 Net-Douban
307 Net-Dropbox
308 Net-FluidDB
309 Net-Fluidinfo
310 Net-HTTP-Factual
311 Net-Journyx
312 Net-Parliament
313 Net-Plurk
314 Net-Recurly
315 Net-StackExchange
316 Net-Topsy
317 NetHack-Item
318 NetHack-Monster-Spoiler
319 Nginx-Control
320 ODG-Record
321 POE-Component-Client-MPD
322 POE-Component-DirWatch
323 POE-Component-DirWatch-Object
324 POE-Component-IRC-Plugin-Role
325 POE-Component-MessageQueue
326 POE-Component-ResourcePool
327 POE-Component-Server-MySQL
328 POE-Component-Server-PSGI
329 POE-Component-Server-SimpleHTTP
330 POE-Test-Helpers
331 POEx-ProxySession
332 POEx-PubSub
333 POEx-WorkerPool
334 Paludis-UseCleaner
335 Parse-CPAN-Ratings
336 Parse-FixedRecord
337 Perlanet
338 Perlbal-Control
339 Pg-BulkCopy
340 Pod-Weaver-Section-Encoding
341 Proc-Safetynet
342 Queue-Leaky
343 RDF-Server
344 RPC-Any
345 Random-Quantum
346 Reaction
347 Reflex
348 Reflexive-Role-Collective
349 Reflexive-Role-DataMover
350 Reflexive-Role-TCPServer
351 Reflexive-Stream-Filtering
352 SRS-EPP-Proxy
353 STD
354 Scene-Graph
355 Schedule-Pluggable
356 SchemaEvolution
357 Server-Control
358 SilkiX-Converter-Kwiki
359 SimpleDB-Class
360 String-Blender
361 TAEB
362 Tail-Tool
363 Tapper-Installer
364 Tapper-MCP
365 Tapper-MCP-MessageReceiver
366 Tapper-Reports-API
367 Telephone-Mnemonic-US
368 Template-Plugin-Heritable
369 Test-A8N
370 Test-BDD-Cucumber
371 Test-Sweet
372 Test-System
373 Thorium
374 Tk-Role-Dialog
375 TryCatch
376 TryCatch-Error
377 VANAMBURG-SEMPROG-SimpleGraph
378 VCI
379 Verby
380 W3C-XMLSchema
381 WWW-FMyLife
382 WWW-Fandango
383 WWW-Getsy
384 WWW-Getsy
385 WWW-Mechanize-Cached
386 WWW-MenuGrinder
387 WWW-Metalgate
388 WWW-Scramble
389 WWW-StaticBlog
390 WWW-Yahoo-Lyrics-JP
391 Weaving-Tablet
392 WebNano-Controller-CRUD
393 WebService-Buxfer
394 WebService-CloudFlare-Host
395 WebService-SlimTimer
396 WebService-Yes24
397 WiX3
398 XIRCD
399 XML-Ant-BuildFile
400 XML-EPP
401 XML-LibXSLT-Easy
402 XML-Rabbit
403 XML-Schematron
404 YUM-RepoQuery
405 Yukki
406 mobirc
407 namespace-alias