Codebase list libcpan-reporter-smoker-perl / 354402b
New upstream snapshot. Debian Janitor 2 years ago
23 changed file(s) with 285 addition(s) and 1566 deletion(s). Raw diff Collapse all Expand all
0 David Golden <dagolden@cpan.org> <xdg@xdg.me>
00 Revision history for Perl module CPAN::Reporter::Smoker
1
2 {{$NEXT}}
13
24 0.29 2017-04-15 09:52:48-04:00 America/New_York
35
+0
-207
LICENSE less more
0 This software is Copyright (c) 2017 by David Golden.
1
2 This is free software, licensed under:
3
4 The Apache License, Version 2.0, January 2004
5
6 Apache License
7 Version 2.0, January 2004
8 http://www.apache.org/licenses/
9
10 TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
11
12 1. Definitions.
13
14 "License" shall mean the terms and conditions for use, reproduction,
15 and distribution as defined by Sections 1 through 9 of this document.
16
17 "Licensor" shall mean the copyright owner or entity authorized by
18 the copyright owner that is granting the License.
19
20 "Legal Entity" shall mean the union of the acting entity and all
21 other entities that control, are controlled by, or are under common
22 control with that entity. For the purposes of this definition,
23 "control" means (i) the power, direct or indirect, to cause the
24 direction or management of such entity, whether by contract or
25 otherwise, or (ii) ownership of fifty percent (50%) or more of the
26 outstanding shares, or (iii) beneficial ownership of such entity.
27
28 "You" (or "Your") shall mean an individual or Legal Entity
29 exercising permissions granted by this License.
30
31 "Source" form shall mean the preferred form for making modifications,
32 including but not limited to software source code, documentation
33 source, and configuration files.
34
35 "Object" form shall mean any form resulting from mechanical
36 transformation or translation of a Source form, including but
37 not limited to compiled object code, generated documentation,
38 and conversions to other media types.
39
40 "Work" shall mean the work of authorship, whether in Source or
41 Object form, made available under the License, as indicated by a
42 copyright notice that is included in or attached to the work
43 (an example is provided in the Appendix below).
44
45 "Derivative Works" shall mean any work, whether in Source or Object
46 form, that is based on (or derived from) the Work and for which the
47 editorial revisions, annotations, elaborations, or other modifications
48 represent, as a whole, an original work of authorship. For the purposes
49 of this License, Derivative Works shall not include works that remain
50 separable from, or merely link (or bind by name) to the interfaces of,
51 the Work and Derivative Works thereof.
52
53 "Contribution" shall mean any work of authorship, including
54 the original version of the Work and any modifications or additions
55 to that Work or Derivative Works thereof, that is intentionally
56 submitted to Licensor for inclusion in the Work by the copyright owner
57 or by an individual or Legal Entity authorized to submit on behalf of
58 the copyright owner. For the purposes of this definition, "submitted"
59 means any form of electronic, verbal, or written communication sent
60 to the Licensor or its representatives, including but not limited to
61 communication on electronic mailing lists, source code control systems,
62 and issue tracking systems that are managed by, or on behalf of, the
63 Licensor for the purpose of discussing and improving the Work, but
64 excluding communication that is conspicuously marked or otherwise
65 designated in writing by the copyright owner as "Not a Contribution."
66
67 "Contributor" shall mean Licensor and any individual or Legal Entity
68 on behalf of whom a Contribution has been received by Licensor and
69 subsequently incorporated within the Work.
70
71 2. Grant of Copyright License. Subject to the terms and conditions of
72 this License, each Contributor hereby grants to You a perpetual,
73 worldwide, non-exclusive, no-charge, royalty-free, irrevocable
74 copyright license to reproduce, prepare Derivative Works of,
75 publicly display, publicly perform, sublicense, and distribute the
76 Work and such Derivative Works in Source or Object form.
77
78 3. Grant of Patent License. Subject to the terms and conditions of
79 this License, each Contributor hereby grants to You a perpetual,
80 worldwide, non-exclusive, no-charge, royalty-free, irrevocable
81 (except as stated in this section) patent license to make, have made,
82 use, offer to sell, sell, import, and otherwise transfer the Work,
83 where such license applies only to those patent claims licensable
84 by such Contributor that are necessarily infringed by their
85 Contribution(s) alone or by combination of their Contribution(s)
86 with the Work to which such Contribution(s) was submitted. If You
87 institute patent litigation against any entity (including a
88 cross-claim or counterclaim in a lawsuit) alleging that the Work
89 or a Contribution incorporated within the Work constitutes direct
90 or contributory patent infringement, then any patent licenses
91 granted to You under this License for that Work shall terminate
92 as of the date such litigation is filed.
93
94 4. Redistribution. You may reproduce and distribute copies of the
95 Work or Derivative Works thereof in any medium, with or without
96 modifications, and in Source or Object form, provided that You
97 meet the following conditions:
98
99 (a) You must give any other recipients of the Work or
100 Derivative Works a copy of this License; and
101
102 (b) You must cause any modified files to carry prominent notices
103 stating that You changed the files; and
104
105 (c) You must retain, in the Source form of any Derivative Works
106 that You distribute, all copyright, patent, trademark, and
107 attribution notices from the Source form of the Work,
108 excluding those notices that do not pertain to any part of
109 the Derivative Works; and
110
111 (d) If the Work includes a "NOTICE" text file as part of its
112 distribution, then any Derivative Works that You distribute must
113 include a readable copy of the attribution notices contained
114 within such NOTICE file, excluding those notices that do not
115 pertain to any part of the Derivative Works, in at least one
116 of the following places: within a NOTICE text file distributed
117 as part of the Derivative Works; within the Source form or
118 documentation, if provided along with the Derivative Works; or,
119 within a display generated by the Derivative Works, if and
120 wherever such third-party notices normally appear. The contents
121 of the NOTICE file are for informational purposes only and
122 do not modify the License. You may add Your own attribution
123 notices within Derivative Works that You distribute, alongside
124 or as an addendum to the NOTICE text from the Work, provided
125 that such additional attribution notices cannot be construed
126 as modifying the License.
127
128 You may add Your own copyright statement to Your modifications and
129 may provide additional or different license terms and conditions
130 for use, reproduction, or distribution of Your modifications, or
131 for any such Derivative Works as a whole, provided Your use,
132 reproduction, and distribution of the Work otherwise complies with
133 the conditions stated in this License.
134
135 5. Submission of Contributions. Unless You explicitly state otherwise,
136 any Contribution intentionally submitted for inclusion in the Work
137 by You to the Licensor shall be under the terms and conditions of
138 this License, without any additional terms or conditions.
139 Notwithstanding the above, nothing herein shall supersede or modify
140 the terms of any separate license agreement you may have executed
141 with Licensor regarding such Contributions.
142
143 6. Trademarks. This License does not grant permission to use the trade
144 names, trademarks, service marks, or product names of the Licensor,
145 except as required for reasonable and customary use in describing the
146 origin of the Work and reproducing the content of the NOTICE file.
147
148 7. Disclaimer of Warranty. Unless required by applicable law or
149 agreed to in writing, Licensor provides the Work (and each
150 Contributor provides its Contributions) on an "AS IS" BASIS,
151 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
152 implied, including, without limitation, any warranties or conditions
153 of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
154 PARTICULAR PURPOSE. You are solely responsible for determining the
155 appropriateness of using or redistributing the Work and assume any
156 risks associated with Your exercise of permissions under this License.
157
158 8. Limitation of Liability. In no event and under no legal theory,
159 whether in tort (including negligence), contract, or otherwise,
160 unless required by applicable law (such as deliberate and grossly
161 negligent acts) or agreed to in writing, shall any Contributor be
162 liable to You for damages, including any direct, indirect, special,
163 incidental, or consequential damages of any character arising as a
164 result of this License or out of the use or inability to use the
165 Work (including but not limited to damages for loss of goodwill,
166 work stoppage, computer failure or malfunction, or any and all
167 other commercial damages or losses), even if such Contributor
168 has been advised of the possibility of such damages.
169
170 9. Accepting Warranty or Additional Liability. While redistributing
171 the Work or Derivative Works thereof, You may choose to offer,
172 and charge a fee for, acceptance of support, warranty, indemnity,
173 or other liability obligations and/or rights consistent with this
174 License. However, in accepting such obligations, You may act only
175 on Your own behalf and on Your sole responsibility, not on behalf
176 of any other Contributor, and only if You agree to indemnify,
177 defend, and hold each Contributor harmless for any liability
178 incurred by, or claims asserted against, such Contributor by reason
179 of your accepting any such warranty or additional liability.
180
181 END OF TERMS AND CONDITIONS
182
183 APPENDIX: How to apply the Apache License to your work.
184
185 To apply the Apache License to your work, attach the following
186 boilerplate notice, with the fields enclosed by brackets "[]"
187 replaced with your own identifying information. (Don't include
188 the brackets!) The text should be enclosed in the appropriate
189 comment syntax for the file format. We also recommend that a
190 file or class name and description of purpose be included on the
191 same "printed page" as the copyright notice for easier
192 identification within third-party archives.
193
194 Copyright [yyyy] [name of copyright owner]
195
196 Licensed under the Apache License, Version 2.0 (the "License");
197 you may not use this file except in compliance with the License.
198 You may obtain a copy of the License at
199
200 http://www.apache.org/licenses/LICENSE-2.0
201
202 Unless required by applicable law or agreed to in writing, software
203 distributed under the License is distributed on an "AS IS" BASIS,
204 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
205 See the License for the specific language governing permissions and
206 limitations under the License.
0 # This file was automatically generated by Dist::Zilla::Plugin::Manifest v6.009.
0 .mailmap
1 Changes
12 CONTRIBUTING.mkdn
2 Changes
3 LICENSE
4 MANIFEST
5 META.json
6 META.yml
7 Makefile.PL
8 README
9 Todo
10 cpanfile
3 CPAN-Reporter-Smoker-0.30/META.json
4 CPAN-Reporter-Smoker-0.30/META.yml
115 dist.ini
126 lib/CPAN/Reporter/Smoker.pm
7 Makefile.PL
8 MANIFEST This list of files
139 perlcritic.rc
14 t/00-report-prereqs.dd
15 t/00-report-prereqs.t
10 README.mkdn
1611 t/00load.t
12 t/args.t
1713 t/CPAN/authors/01mailrc.txt.gz
1814 t/CPAN/authors/id/A/AN/ANDK/Bogus-OSUnsupported-0.01.tar.gz
1915 t/CPAN/authors/id/A/AN/ANDK/CHECKSUMS
2016 t/CPAN/authors/id/D/DA/DAGOLDEN/Bogus-Fail-0.01.tar.gz
17 t/CPAN/authors/id/D/DA/DAGOLDEN/Bogus-Pass-0.01.tar.gz
2118 t/CPAN/authors/id/D/DA/DAGOLDEN/Bogus-PL-Fail-0.01.tar.gz
22 t/CPAN/authors/id/D/DA/DAGOLDEN/Bogus-Pass-0.01.tar.gz
2319 t/CPAN/authors/id/D/DA/DAGOLDEN/Bundle-Fake-1.00.tar.gz
2420 t/CPAN/authors/id/D/DA/DAGOLDEN/CHECKSUMS
2521 t/CPAN/authors/id/J/JH/JHI/Bogus-Fail-0.01_01.tar.gz
2824 t/CPAN/authors/id/P/P6/P6DISTS/Perl6/Test-Harness-666.tar.gz
2925 t/CPAN/authors/id/P/PE/PETDANCE/CHECKSUMS
3026 t/CPAN/authors/id/P/PE/PETDANCE/Test-Harness-2.62.tar.gz
27 t/CPAN/indices/find-ls.gz
3128 t/CPAN/indices/README
32 t/CPAN/indices/find-ls.gz
3329 t/CPAN/modules/02packages.details.txt.gz
3430 t/CPAN/modules/03modlist.data.gz
3531 t/CPAN/update-checksums.pl
36 t/args.t
37 t/data/MyConfig.pm
3832 t/data/disabled.yml
3933 t/data/dist-list
34 t/data/MyConfig.pm
4035 t/lib/DotDirs.pm
4136 t/lib/Test/Reporter.pm
4237 t/parse_module_index.t
5045 t/smoke-list-file.t
5146 t/smoke-restart.t
5247 t/smoke-reverse.t
53 xt/author/00-compile.t
54 xt/author/critic.t
55 xt/author/pod-coverage.t
56 xt/author/pod-spell.t
57 xt/author/pod-syntax.t
58 xt/author/portability.t
59 xt/author/test-version.t
60 xt/release/distmeta.t
61 xt/release/minimum-version.t
48 Todo
49 META.yml Module YAML meta-data (added by MakeMaker)
50 META.json Module JSON meta-data (added by MakeMaker)
22 "author" : [
33 "David Golden <dagolden@cpan.org>"
44 ],
5 "dynamic_config" : 0,
6 "generated_by" : "Dist::Zilla version 6.009, CPAN::Meta::Converter version 2.150010",
5 "dynamic_config" : 1,
6 "generated_by" : "ExtUtils::MakeMaker version 7.44, CPAN::Meta::Converter version 2.150010",
77 "license" : [
88 "apache_2_0"
99 ],
1414 "name" : "CPAN-Reporter-Smoker",
1515 "no_index" : {
1616 "directory" : [
17 "corpus",
18 "examples",
1917 "t",
20 "xt"
21 ],
22 "package" : [
23 "DB"
18 "inc"
2419 ]
2520 },
2621 "prereqs" : {
22 "build" : {
23 "requires" : {
24 "ExtUtils::MakeMaker" : "0"
25 }
26 },
2727 "configure" : {
2828 "requires" : {
29 "ExtUtils::MakeMaker" : "6.17",
30 "perl" : "5.006"
31 }
32 },
33 "develop" : {
34 "requires" : {
35 "Dist::Zilla" : "5",
36 "Dist::Zilla::Plugin::Encoding" : "0",
37 "Dist::Zilla::Plugin::Prereqs" : "0",
38 "Dist::Zilla::Plugin::RemovePrereqs" : "0",
39 "Dist::Zilla::PluginBundle::DAGOLDEN" : "0.072",
40 "English" : "0",
41 "File::Spec" : "0",
42 "File::Temp" : "0",
43 "IO::Handle" : "0",
44 "IPC::Open3" : "0",
45 "Pod::Coverage::TrustPod" : "0",
46 "Pod::Wordlist" : "0",
47 "Software::License::Apache_2_0" : "0",
48 "Test::CPAN::Meta" : "0",
49 "Test::MinimumVersion" : "0",
50 "Test::More" : "0",
51 "Test::Pod" : "1.41",
52 "Test::Pod::Coverage" : "1.08",
53 "Test::Portability::Files" : "0",
54 "Test::Spelling" : "0.12",
55 "Test::Version" : "1",
56 "blib" : "1.01"
29 "ExtUtils::MakeMaker" : "6.17"
5730 }
5831 },
5932 "runtime" : {
8154 }
8255 },
8356 "test" : {
84 "recommends" : {
85 "CPAN::Meta" : "2.120900"
86 },
8757 "requires" : {
8858 "CPAN::Checksums" : "0",
8959 "Cwd" : "3.27",
9565 "IO::File" : "0",
9666 "Test::More" : "0.62",
9767 "lib" : "0",
98 "perl" : "5.010",
9968 "vars" : "0"
10069 }
10170 }
10271 },
103 "provides" : {
104 "CPAN::Reporter::Smoker" : {
105 "file" : "lib/CPAN/Reporter/Smoker.pm",
106 "version" : "0.29"
107 }
108 },
10972 "release_status" : "stable",
110 "resources" : {
111 "bugtracker" : {
112 "web" : "https://github.com/cpan-testers/CPAN-Reporter-Smoker/issues"
113 },
114 "homepage" : "https://github.com/cpan-testers/CPAN-Reporter-Smoker",
115 "repository" : {
116 "type" : "git",
117 "url" : "https://github.com/cpan-testers/CPAN-Reporter-Smoker.git",
118 "web" : "https://github.com/cpan-testers/CPAN-Reporter-Smoker"
119 }
120 },
121 "version" : "0.29",
122 "x_authority" : "cpan:DAGOLDEN",
123 "x_contributors" : [
124 "Alexandr Ciornii <alexchorny@gmail.com>",
125 "Christian Walde <walde.christian@googlemail.com>",
126 "gregor herrmann <gregoa@cpan.org>"
127 ],
128 "x_serialization_backend" : "Cpanel::JSON::XS version 3.0225"
73 "version" : "0.30",
74 "x_serialization_backend" : "JSON::PP version 4.04"
12975 }
130
1212 IO::File: '0'
1313 Test::More: '0.62'
1414 lib: '0'
15 perl: '5.010'
1615 vars: '0'
1716 configure_requires:
1817 ExtUtils::MakeMaker: '6.17'
19 perl: '5.006'
20 dynamic_config: 0
21 generated_by: 'Dist::Zilla version 6.009, CPAN::Meta::Converter version 2.150010'
18 dynamic_config: 1
19 generated_by: 'ExtUtils::MakeMaker version 7.44, CPAN::Meta::Converter version 2.150010'
2220 license: apache
2321 meta-spec:
2422 url: http://module-build.sourceforge.net/META-spec-v1.4.html
2624 name: CPAN-Reporter-Smoker
2725 no_index:
2826 directory:
29 - corpus
30 - examples
3127 - t
32 - xt
33 package:
34 - DB
35 provides:
36 CPAN::Reporter::Smoker:
37 file: lib/CPAN/Reporter/Smoker.pm
38 version: '0.29'
28 - inc
3929 requires:
4030 CPAN: '1.93'
4131 CPAN::HandleConfig: '0'
5747 perl: '5.010'
5848 strict: '0'
5949 warnings: '0'
60 resources:
61 bugtracker: https://github.com/cpan-testers/CPAN-Reporter-Smoker/issues
62 homepage: https://github.com/cpan-testers/CPAN-Reporter-Smoker
63 repository: https://github.com/cpan-testers/CPAN-Reporter-Smoker.git
64 version: '0.29'
65 x_authority: cpan:DAGOLDEN
66 x_contributors:
67 - 'Alexandr Ciornii <alexchorny@gmail.com>'
68 - 'Christian Walde <walde.christian@googlemail.com>'
69 - 'gregor herrmann <gregoa@cpan.org>'
70 x_serialization_backend: 'YAML::Tiny version 1.69'
50 version: '0.30'
51 x_serialization_backend: 'CPAN::Meta::YAML version 0.018'
0 # This file was automatically generated by Dist::Zilla::Plugin::MakeMaker v6.009.
10 use strict;
21 use warnings;
32
4948 "lib" => 0,
5049 "vars" => 0
5150 },
52 "VERSION" => "0.29",
51 "VERSION" => "0.30",
5352 "test" => {
5453 "TESTS" => "t/*.t"
5554 }
+0
-419
README less more
0 NAME
1 CPAN::Reporter::Smoker - Turnkey CPAN Testers smoking
2
3 VERSION
4 version 0.29
5
6 SYNOPSIS
7 $ perl -MCPAN::Reporter::Smoker -e start
8
9 DESCRIPTION
10 Rudimentary smoke tester for CPAN Testers, built upon CPAN::Reporter.
11 Use at your own risk. It requires a recent version of CPAN::Reporter to
12 run.
13
14 Currently, CPAN::Reporter::Smoker requires zero independent
15 configuration; instead it uses configuration settings from CPAN.pm and
16 CPAN::Reporter.
17
18 Once started, it retrieves a list of distributions from the configured
19 CPAN mirror and begins testing them in reverse order of upload. It will
20 skip any distribution which has already had a report sent by
21 CPAN::Reporter.
22
23 Features (or bugs, depending on your point of view):
24
25 * No configuration needed
26
27 * Tests each distribution as a separate CPAN process -- each
28 distribution has prerequisites like build_requires satisfied from
29 scratch
30
31 * Automatically checks for new distributions every twelve hours or as
32 otherwise specified
33
34 * Continues until interrupted with CTRL-C
35
36 * Checks CPAN.pm "distroprefs" to see if distributions should be
37 skipped (before handing off to CPAN)
38
39 Current limitations:
40
41 * Does not attempt to retest distributions that had reports discarded
42 because of prerequisites that could not be satisfied
43
44 * Does not test trial version if there is no non-trial version
45
46 WARNING -- smoke testing is risky
47 Smoke testing will download and run programs that other people have
48 uploaded to CPAN. These programs could do anything to your system,
49 including deleting everything on it. Do not run CPAN::Reporter::Smoker
50 unless you are prepared to take these risks.
51
52 USAGE
53 "start()"
54 Starts smoke testing using defaults already in CPAN::Config and
55 CPAN::Reporter's .cpanreporter directory. Runs until all distributions
56 are tested or the process is halted with CTRL-C or otherwise killed.
57
58 "start()" supports several optional arguments:
59
60 * "clean_cache_after" -- number of distributions that will be tested
61 before checking to see if the CPAN build cache needs to be cleaned
62 up (not including any prerequisites tested). Must be a positive
63 integer. Defaults to 100
64
65 * "list" -- if provided, this list of distributions will be tested
66 instead of all of CPAN. May be a reference to an array of
67 distribution names or may be a filename containing one distribution
68 name per line. Distribution names must be of the form
69 'AUTHOR/Dist-Name-0.00.tar.gz'
70
71 * "restart_delay" -- number of seconds that must elapse before
72 restarting smoke testing. This will reload indices to search for new
73 distributions and restart testing from the most recent distribution.
74 Must be a positive integer; Defaults to 43200 seconds (12 hours)
75
76 * "skip_dev_versions" -- if true, unindexed distributions will not be
77 tested. Valid values are 0 or 1. Defaults to 0.
78
79 * "set_term_title" -- toggle for whether the terminal titlebar will be
80 updated with the distribution being smoke tested and the starting
81 time of the test. Helps determine if a test is hung and which
82 distribution might be responsible. Valid values are 0 or 1. Defaults
83 to 1
84
85 * "status_file" -- during testing, the name of the distribution under
86 test and a timestamp are written to this file. The file is removed
87 after the test is complete. This helps identify a problem
88 distribution if testing hangs or crashes the computer. If the
89 argument includes a path, all directories to the file must exist.
90 Defaults to "smoker-status-$$.txt" in File::Spec->tmpdir.
91
92 * "install" -- toggle for whether the distribution should be installed
93 after successful testing. Can be useful to avoid prerequisite
94 re-building and growing PERL5LIB for the cost of disk space used for
95 installed modules. Valid values are 0 or 1. Defaults to 0
96
97 * "reverse" -- toggle the order in which releases are tested. When set
98 to 1, testing starts from the older release not the most recent one
99 (or the last distribution if --list is provided). Valid values are 0
100 or 1. Defaults to 0
101
102 * "random" -- toggle whether to randomize distribution test order.
103 When set to 1, the list of releases is shuffled. Valid values are 0
104 or 1. Defaults to 0
105
106 * "force_trust" -- toggle whether to override CPAN's
107 "trust_test_report_history" option. When set to 1,
108 "trust_test_report_history" is set to 1. When set to 0,
109 "trust_test_report_history" is left alone and whatever the user has
110 configured for their CPAN client is used. Valid values are 0 or 1.
111 Defaults to 0
112
113 * "reload_history_period" -- after this period in seconds, history of
114 modules smoked will be reloaded when possible. Default value 1800
115 seconds (30 minutes).
116
117 HINTS
118 Selection of distributions to test
119 Only the most recently uploaded developer and normal releases will be
120 tested, and only if the developer release is newer than the regular
121 release indexed by PAUSE.
122
123 For example, if Foo-Bar-0.01, Foo-Bar-0.02, Foo-Bar-0.03_01 and
124 Foo-Bar-0.03_02 are on CPAN, only Foo-Bar-0.02 and Foo-Bar-0.03_02 will
125 be tested, and in reverse order of when they were uploaded. Once
126 Foo-Bar-0.04 is released and indexed, Foo-Bar-0.03_02 will not longer be
127 tested.
128
129 To avoid testing script or other tarballs, developer distributions
130 included must have a base distribution name that resembles a
131 distribution tarball already indexed by PAUSE. If the first upload of
132 distribution to PAUSE is a developer release -- Baz-Bam-0.00_01.tar.gz
133 -- it will not be tested as there is no indexed Baz-Bam appearing in
134 CPAN's 02packages.details.txt file.
135
136 Unauthorized tarballs are treated like developer releases and will be
137 tested if they resemble an indexed distribution and are newer than the
138 indexed tarball.
139
140 Perl, parrot, kurila, Pugs and similar distributions will not be tested.
141 The skip list is based on CPAN::Mini and matches as follows:
142
143 qr{(?:
144 /(?:emb|syb|bio)?perl-\d
145 | /(?:parrot|ponie|kurila|Perl6-Pugs)-\d
146 | /perl-?5\.004
147 | /perl_mlb\.zip
148 )}xi,
149
150 Bundles and mod_perl distributions will also not be tested, though
151 mod_perl is likely to be requested as a dependency by many modules. See
152 the next section for how to tell CPAN.pm not to test certain
153 dependencies.
154
155 Skipping additional distributions
156 If certain distributions hang, crash or otherwise cause trouble, you can
157 use CPAN's "distroprefs" system to disable them. If a distribution is
158 disabled, it won't be built or tested. If a distribution's dependency is
159 disabled, a failing test is just discarded.
160
161 The first step is configuring a directory for distroprefs files:
162
163 $ cpan
164 cpan> o conf init prefs_dir
165 cpan> o conf commit
166
167 Next, ensure that either the YAML or YAML::Syck module is installed.
168 (YAML::Syck is faster). Then create a file in the "prefs_dir" directory
169 to hold the list of distributions to disable, e.g. call it
170 "disabled.yml"
171
172 In that file, you can add blocks of YAML code to disable distributions.
173 The match criteria "distribution" is a regex that matches against the
174 canonical name of a distribution, e.g. "AUTHOR/Foo-Bar-3.14.tar.gz".
175
176 Here is a sample file to show you some syntax (don't actually use these,
177 though):
178
179 ---
180 comment: "Tests take too long"
181 match:
182 distribution: "^DAGOLDEN/CPAN-Reporter-\d"
183 disabled: 1
184 ---
185 comment: "Skip Win32 distributions"
186 match:
187 distribution: "/Win32"
188 disabled: 1
189 ---
190 comment: "Skip distributions by Andy Lester"
191 match:
192 distribution: "^PETDANCE"
193 disabled: 1
194
195 Please note that disabling distributions like this will also disable
196 them for normal, non-smoke usage of CPAN.pm.
197
198 One distribution that I would recommend either installing up front or
199 else disabling with distroprefs is mod_perl, as it is a common
200 requirement for many Apache:: modules but does not (easily) build and
201 test under automation.
202
203 ---
204 comment: "Don't build mod_perl if required by some other module"
205 match:
206 distribution: "/mod_perl-\d"
207 disabled: 1
208
209 Distroprefs are more powerful than this -- they can be used to automate
210 responses to prompts in distributions, set environment variables,
211 specify additional dependencies and so on. Read the docs for CPAN.pm for
212 more and look in the "distroprefs" directory in the CPAN distribution
213 tarball for examples.
214
215 Using a local CPAN::Mini mirror
216 Because distributions must be retrieved from a CPAN mirror, the smoker
217 may cause heavy network load and will repetitively download common build
218 prerequisites.
219
220 An alternative is to use CPAN::Mini to create a local CPAN mirror and to
221 point CPAN's "urllist" to the local mirror.
222
223 $ cpan
224 cpan> o conf urllist unshift file:///path/to/minicpan
225 cpan> o conf commit
226
227 However, CPAN::Reporter::Smoker needs the "find-ls.gz" file, which
228 CPAN::Mini does not mirror by default. Add it to a .minicpanrc file in
229 your home directory to include it in your local CPAN mirror.
230
231 also_mirror: indices/find-ls.gz
232
233 Note that CPAN::Mini does not mirror developer versions. Therefore, a
234 live, network CPAN Mirror will be needed in the urllist to retrieve
235 these.
236
237 Note that CPAN requires the LWP module to be installed to use a local
238 CPAN mirror.
239
240 Alternatively, you might experiment with the alpha-quality release of
241 CPAN::Mini::Devel, which subclasses CPAN::Mini to retrieve developer
242 distributions (and find-ls.gz) using the same logic as
243 CPAN::Reporter::Smoker.
244
245 Timing out hanging tests
246 CPAN::Reporter (since 1.08) supports a 'command_timeout' configuration
247 option. Set this option in the CPAN::Reporter configuration file to time
248 out tests that hang up or get stuck at a prompt. Set it to a high-value
249 to avoid timing out a lengthy tests that are still running -- 1000 or
250 more seconds is probably enough.
251
252 Warning -- on Win32, terminating processes via the command_timeout is
253 equivalent to SIGKILL and could cause system instability or later
254 deadlocks
255
256 This option is still considered experimental.
257
258 Avoiding repetitive prerequisite testing
259 Because CPAN::Reporter::Smoker satisfies all requirements from scratch,
260 common dependencies (e.g. Class::Accessor) will be unpacked, built and
261 tested repeatedly.
262
263 As of version 1.92_56, CPAN supports the "trust_test_report_history"
264 config option. When set, CPAN will check the last test report for a
265 distribution. If one is found, the results of that test are used instead
266 of running tests again.
267
268 $ cpan
269 cpan> o conf init trust_test_report_history
270 cpan> o conf commit
271
272 Avoiding repetitive prerequisite builds (EXPERIMENTAL)
273 CPAN has a "build_dir_reuse" config option. When set (and if a YAML
274 module is installed and configured), CPAN will attempt to make build
275 directories persistent. This has the potential to save substantial time
276 and space during smoke testing. CPAN::Reporter::Smoker will recognize if
277 this option is set and make adjustments to the test process to keep
278 PERL5LIB from growing uncontrollably as the number of persistent
279 directories increases.
280
281 NOTE: Support for "build_dir_reuse" is highly experimental. Wait for at
282 least CPAN version 1.92_62 before trying this option.
283
284 $ cpan
285 cpan> o conf init build_dir_reuse
286 cpan> o conf commit
287
288 Stopping early if a prerequisite fails
289 Normally, CPAN.pm continues testing a distribution even if a
290 prerequisite fails to build or fails testing. Some distributions may
291 pass their tests even without a listed prerequisite, but most just fail
292 (and CPAN::Reporter discards failures if prerequisites are not met).
293
294 As of version 1.92_57, CPAN supports the "halt_on_failure" config
295 option. When set, a prerequisite failure stops further processing.
296
297 $ cpan
298 cpan> o conf init halt_on_failure
299 cpan> o conf commit
300
301 However, a disadvantage of halting early is that no DISCARD grade is
302 recorded in the history. The next time CPAN::Reporter::Smoker runs, the
303 distribution will be tested again from scratch. It may be better to let
304 all prerequisites finish so the distribution can fail its test and be
305 flagged with DISCARD so it will be skipped in the future.
306
307 CPAN cache bloat
308 CPAN will use a lot of scratch space to download, build and test
309 modules. Use CPAN's built-in cache management configuration to let it
310 purge the cache periodically if you don't want to do this manually. When
311 configured, the cache will be purged on start and after a certain number
312 of distributions have been tested as determined by the
313 "clean_cache_after" option for the "start()" function.
314
315 $ cpan
316 cpan> o conf init build_cache scan_cache
317 cpan> o conf commit
318
319 CPAN verbosity
320 Recent versions of CPAN are verbose by default, but include some lesser
321 known configuration settings to minimize this for untarring
322 distributions and for loading support modules. Setting the verbosity for
323 these to 'none' will minimize some of the clutter to the screen as
324 distributions are tested.
325
326 $ cpan
327 cpan> o conf init /verbosity/
328 cpan> o conf commit
329
330 Saving reports to files instead of sending directly
331 In some cases, such as when smoke testing using a development or
332 prerelease toolchain module like Test-Harness, it may be preferable to
333 save reports to files in a directory for review prior to submitting
334 them. To do this, manually set the "transport" option in your
335 CPAN::Reporter config file to use the Test::Reporter::Transport::File
336 transport.
337
338 transport=File /path/to/directory
339
340 After review, send saved reports using Test::Reporter:
341
342 Test::Reporter->new()->read($filename)->send()
343
344 ENVIRONMENT
345 Automatically sets the following environment variables to true values
346 while running:
347
348 * "AUTOMATED_TESTING" -- signal that tests are being run by an
349 automated smoke testing program (i.e. don't expect interactivity)
350
351 * "PERL_MM_USE_DEFAULT" -- accept ExtUtils::MakeMaker prompt()
352 defaults
353
354 * "PERL_EXTUTILS_AUTOINSTALL" -- set to '--defaultdeps' for default
355 dependencies
356
357 The following environment variables, if set, will modify the behavior of
358 CPAN::Reporter::Smoker. Generally, they are only required during the
359 testing of CPAN::Reporter::Smoker
360
361 * "PERL_CR_SMOKER_RUNONCE" -- if true, "start()" will exit after all
362 distributions are tested instead of sleeping for the "restart_delay"
363 and then continuing
364
365 * "PERL_CR_SMOKER_SHORTCUT" -- if true, "start()" will process
366 arguments (if any) but will return before starting smoke testing;
367 used for testing argument handling by "start()"
368
369 BUGS
370 Please report any bugs or feature using the CPAN Request Tracker. Bugs
371 can be submitted through the web interface at
372 <http://rt.cpan.org/Dist/Display.html?Queue=CPAN-Reporter-Smoker>
373
374 When submitting a bug or request, please include a test-file or a patch
375 to an existing test-file that illustrates the bug or desired feature.
376
377 SEE ALSO
378 * CPAN
379
380 * CPAN::Reporter
381
382 * CPAN::Testers
383
384 * CPAN::Mini
385
386 * CPAN::Mini::Devel
387
388 SUPPORT
389 Bugs / Feature Requests
390 Please report any bugs or feature requests through the issue tracker at
391 <https://github.com/cpan-testers/CPAN-Reporter-Smoker/issues>. You will
392 be notified automatically of any progress on your issue.
393
394 Source Code
395 This is open source software. The code repository is available for
396 public review and contribution under the terms of the license.
397
398 <https://github.com/cpan-testers/CPAN-Reporter-Smoker>
399
400 git clone https://github.com/cpan-testers/CPAN-Reporter-Smoker.git
401
402 AUTHOR
403 David Golden <dagolden@cpan.org>
404
405 CONTRIBUTORS
406 * Alexandr Ciornii <alexchorny@gmail.com>
407
408 * Christian Walde <walde.christian@googlemail.com>
409
410 * gregor herrmann <gregoa@cpan.org>
411
412 COPYRIGHT AND LICENSE
413 This software is Copyright (c) 2017 by David Golden.
414
415 This is free software, licensed under:
416
417 The Apache License, Version 2.0, January 2004
418
0 ## HOW TO CONTRIBUTE
1
2 Thank you for considering contributing to this distribution. This file
3 contains instructions that will help you work with the source code.
4
5 The distribution is managed with Dist::Zilla. This means that many of the
6 usual files you might expect are not in the repository, but are generated at
7 release time, as is much of the documentation. Some generated files are
8 kept in the repository as a convenience (e.g. Makefile.PL or cpanfile).
9
10 Generally, **you do not need Dist::Zilla to contribute patches**. You do need
11 Dist::Zilla to create a tarball. See below for guidance.
12
13 ### Getting dependencies
14
15 If you have App::cpanminus 1.6 or later installed, you can use `cpanm` to
16 satisfy dependencies like this:
17
18 $ cpanm --installdeps .
19
20 Otherwise, look for either a `Makefile.PL` or `cpanfile` file for
21 a list of dependencies to satisfy.
22
23 ### Running tests
24
25 You can run tests directly using the `prove` tool:
26
27 $ prove -l
28 $ prove -lv t/some_test_file.t
29
30 For most of my distributions, `prove` is entirely sufficient for you to test any
31 patches you have. I use `prove` for 99% of my testing during development.
32
33 ### Code style and tidying
34
35 Please try to match any existing coding style. If there is a `.perltidyrc`
36 file, please install Perl::Tidy and use perltidy before submitting patches.
37
38 If there is a `tidyall.ini` file, you can also install Code::TidyAll and run
39 `tidyall` on a file or `tidyall -a` to tidy all files.
40
41 ### Patching documentation
42
43 Much of the documentation Pod is generated at release time. Some is
44 generated boilerplate; other documentation is built from pseudo-POD
45 directives in the source like C<=method> or C<=func>.
46
47 If you would like to submit a documentation edit, please limit yourself to
48 the documentation you see.
49
50 If you see typos or documentation issues in the generated docs, please
51 email or open a bug ticket instead of patching.
52
53 ### Where to send patches and pull requests
54
55 If you found this distribution on Github, sending a pull-request is the
56 best way to contribute.
57
58 If a pull-request isn't possible, a bug ticket with a patch file is the
59 next best option.
60
61 As a last resort, an email to the author(s) is acceptable.
62
63 ## Installing and using Dist::Zilla
64
65 Dist::Zilla is not required for contributing, but if you'd like to learn
66 more, this section will get you up to speed.
67
68 Dist::Zilla is a very powerful authoring tool, optimized for maintaining a
69 large number of distributions with a high degree of automation, but it has a
70 large dependency chain, a bit of a learning curve and requires a number of
71 author-specific plugins.
72
73 To install it from CPAN, I recommend one of the following approaches for
74 the quickest installation:
75
76 # using CPAN.pm, but bypassing non-functional pod tests
77 $ cpan TAP::Harness::Restricted
78 $ PERL_MM_USE_DEFAULT=1 HARNESS_CLASS=TAP::Harness::Restricted cpan Dist::Zilla
79
80 # using cpanm, bypassing *all* tests
81 $ cpanm -n Dist::Zilla
82
83 In either case, it's probably going to take about 10 minutes. Go for a walk,
84 go get a cup of your favorite beverage, take a bathroom break, or whatever.
85 When you get back, Dist::Zilla should be ready for you.
86
87 Then you need to install any plugins specific to this distribution:
88
89 $ cpan `dzil authordeps`
90 $ dzil authordeps | cpanm
91
92 Once installed, here are some dzil commands you might try:
93
94 $ dzil build
95 $ dzil test
96 $ dzil xtest
97
98 You can learn more about Dist::Zilla at http://dzil.org/
99
+0
-69
cpanfile less more
0 requires "CPAN" => "1.93";
1 requires "CPAN::HandleConfig" => "0";
2 requires "CPAN::Reporter::History" => "1.1702";
3 requires "CPAN::Tarzip" => "0";
4 requires "Carp" => "0";
5 requires "Compress::Zlib" => "1.2";
6 requires "Exporter" => "0";
7 requires "ExtUtils::MakeMaker" => "6.46";
8 requires "Fcntl" => "0";
9 requires "File::Basename" => "0";
10 requires "File::Spec" => "3.27";
11 requires "File::Temp" => "0.20";
12 requires "List::Util" => "1.03";
13 requires "Module::Build" => "0.30";
14 requires "Probe::Perl" => "0.01";
15 requires "Term::Title" => "0.01";
16 requires "Test::Reporter" => "1.58";
17 requires "perl" => "5.010";
18 requires "strict" => "0";
19 requires "warnings" => "0";
20
21 on 'test' => sub {
22 requires "CPAN::Checksums" => "0";
23 requires "Cwd" => "3.27";
24 requires "ExtUtils::MakeMaker" => "6.46";
25 requires "File::Find" => "0";
26 requires "File::Path" => "0";
27 requires "File::Spec" => "3.27";
28 requires "IO::CaptureOutput" => "1.06";
29 requires "IO::File" => "0";
30 requires "Test::More" => "0.62";
31 requires "lib" => "0";
32 requires "perl" => "5.010";
33 requires "vars" => "0";
34 };
35
36 on 'test' => sub {
37 recommends "CPAN::Meta" => "2.120900";
38 };
39
40 on 'configure' => sub {
41 requires "ExtUtils::MakeMaker" => "6.17";
42 requires "perl" => "5.006";
43 };
44
45 on 'develop' => sub {
46 requires "Dist::Zilla" => "5";
47 requires "Dist::Zilla::Plugin::Encoding" => "0";
48 requires "Dist::Zilla::Plugin::Prereqs" => "0";
49 requires "Dist::Zilla::Plugin::RemovePrereqs" => "0";
50 requires "Dist::Zilla::PluginBundle::DAGOLDEN" => "0.072";
51 requires "English" => "0";
52 requires "File::Spec" => "0";
53 requires "File::Temp" => "0";
54 requires "IO::Handle" => "0";
55 requires "IPC::Open3" => "0";
56 requires "Pod::Coverage::TrustPod" => "0";
57 requires "Pod::Wordlist" => "0";
58 requires "Software::License::Apache_2_0" => "0";
59 requires "Test::CPAN::Meta" => "0";
60 requires "Test::MinimumVersion" => "0";
61 requires "Test::More" => "0";
62 requires "Test::Pod" => "1.41";
63 requires "Test::Pod::Coverage" => "1.08";
64 requires "Test::Portability::Files" => "0";
65 requires "Test::Spelling" => "0.12";
66 requires "Test::Version" => "1";
67 requires "blib" => "1.01";
68 };
0 libcpan-reporter-smoker-perl (0.29-2) UNRELEASED; urgency=medium
0 libcpan-reporter-smoker-perl (0.29+git20170415.1.aab3079-1) UNRELEASED; urgency=medium
11
22 [ Damyan Ivanov ]
33 * declare conformance with Policy 4.1.3 (no changes needed)
1414 * Set upstream metadata fields: Bug-Submit.
1515 * Remove obsolete fields Contact, Name from debian/upstream/metadata
1616 (already present in machine-readable debian/copyright).
17 * New upstream snapshot.
1718
18 -- Damyan Ivanov <dmn@debian.org> Sun, 03 Dec 2017 22:43:23 +0000
19 -- Damyan Ivanov <dmn@debian.org> Thu, 23 Sep 2021 12:27:12 -0000
1920
2021 libcpan-reporter-smoker-perl (0.29-1) unstable; urgency=medium
2122
22 use warnings;
33 package CPAN::Reporter::Smoker;
44
5 our $VERSION = '0.29';
5 our $VERSION = '0.30';
66
77 use Carp;
88 use Config;
549549
550550 __END__
551551
552 =pod
553
554 =encoding UTF-8
555
556 =head1 NAME
557
558 CPAN::Reporter::Smoker - Turnkey CPAN Testers smoking
559
560 =head1 VERSION
561
562 version 0.29
563
564 =head1 SYNOPSIS
565
566 $ perl -MCPAN::Reporter::Smoker -e start
567
568 =head1 DESCRIPTION
569
570 Rudimentary smoke tester for CPAN Testers, built upon L<CPAN::Reporter>. Use
552 =begin wikidoc
553
554 = SYNOPSIS
555
556 $ perl -MCPAN::Reporter::Smoker -e start
557
558 = DESCRIPTION
559
560 Rudimentary smoke tester for CPAN Testers, built upon [CPAN::Reporter]. Use
571561 at your own risk. It requires a recent version of CPAN::Reporter to run.
572562
573563 Currently, CPAN::Reporter::Smoker requires zero independent configuration;
579569
580570 Features (or bugs, depending on your point of view):
581571
582 =over
583
584 =item *
585
586 No configuration needed
587
588 =item *
589
590 Tests each distribution as a separate CPAN process -- each distribution
572 * No configuration needed
573 * Tests each distribution as a separate CPAN process -- each distribution
591574 has prerequisites like build_requires satisfied from scratch
592
593 =item *
594
595 Automatically checks for new distributions every twelve hours or as
575 * Automatically checks for new distributions every twelve hours or as
596576 otherwise specified
597
598 =item *
599
600 Continues until interrupted with CTRL-C
601
602 =item *
603
604 Checks CPAN.pm "distroprefs" to see if distributions should be skipped
577 * Continues until interrupted with CTRL-C
578 * Checks CPAN.pm "distroprefs" to see if distributions should be skipped
605579 (before handing off to CPAN)
606580
607 =back
608
609581 Current limitations:
610582
611 =over
612
613 =item *
614
615 Does not attempt to retest distributions that had reports discarded because
583 * Does not attempt to retest distributions that had reports discarded because
616584 of prerequisites that could not be satisfied
617
618 =item *
619
620 Does not test trial version if there is no non-trial version
621
622 =back
623
624 =head2 WARNING -- smoke testing is risky
585 * Does not test trial version if there is no non-trial version
586
587 == WARNING -- smoke testing is risky
625588
626589 Smoke testing will download and run programs that other people have uploaded to
627 CPAN. These programs could do B<anything> to your system, including deleting
590 CPAN. These programs could do *anything* to your system, including deleting
628591 everything on it. Do not run CPAN::Reporter::Smoker unless you are prepared to
629592 take these risks.
630593
631 =head1 USAGE
632
633 =head2 C<<< start() >>>
594 = USAGE
595
596 == {start()}
634597
635598 Starts smoke testing using defaults already in CPAN::Config and
636599 CPAN::Reporter's .cpanreporter directory. Runs until all distributions are
637600 tested or the process is halted with CTRL-C or otherwise killed.
638601
639 C<<< start() >>> supports several optional arguments:
640
641 =over
642
643 =item *
644
645 C<<< clean_cache_after >>> -- number of distributions that will be tested
602 {start()} supports several optional arguments:
603
604 * {clean_cache_after} -- number of distributions that will be tested
646605 before checking to see if the CPAN build cache needs to be cleaned up
647606 (not including any prerequisites tested). Must be a positive integer.
648607 Defaults to 100
649
650 =item *
651
652 C<<< list >>> -- if provided, this list of distributions will be tested instead
608 * {list} -- if provided, this list of distributions will be tested instead
653609 of all of CPAN. May be a reference to an array of distribution names or may
654610 be a filename containing one distribution name per line. Distribution names
655 must be of the form 'AUTHORE<sol>Dist-Name-0.00.tar.gz'
656
657 =item *
658
659 C<<< restart_delay >>> -- number of seconds that must elapse before restarting
611 must be of the form 'AUTHOR/Dist-Name-0.00.tar.gz'
612 * {restart_delay} -- number of seconds that must elapse before restarting
660613 smoke testing. This will reload indices to search for new distributions
661614 and restart testing from the most recent distribution. Must be a positive
662615 integer; Defaults to 43200 seconds (12 hours)
663
664 =item *
665
666 C<<< skip_dev_versions >>> -- if true, unindexed distributions will not be tested.
616 * {skip_dev_versions} -- if true, unindexed distributions will not be tested.
667617 Valid values are 0 or 1. Defaults to 0.
668
669 =item *
670
671 C<<< set_term_title >>> -- toggle for whether the terminal titlebar will be
618 * {set_term_title} -- toggle for whether the terminal titlebar will be
672619 updated with the distribution being smoke tested and the starting time
673620 of the test. Helps determine if a test is hung and which distribution
674621 might be responsible. Valid values are 0 or 1. Defaults to 1
675
676 =item *
677
678 C<<< status_file >>> -- during testing, the name of the distribution under test
622 * {status_file} -- during testing, the name of the distribution under test
679623 and a timestamp are written to this file. The file is removed after the
680624 test is complete. This helps identify a problem distribution if testing
681625 hangs or crashes the computer. If the argument includes a path, all
682 directories to the file must exist. Defaults to C<<< smoker-status-$$.txt >>>
683 in File::Spec-E<gt>tmpdir.
684
685 =item *
686
687 C<<< install >>> -- toggle for whether the distribution should be installed
626 directories to the file must exist. Defaults to {smoker-status-$$.txt}
627 in File::Spec->tmpdir.
628 * {install} -- toggle for whether the distribution should be installed
688629 after successful testing. Can be useful to avoid prerequisite re-building
689630 and growing PERL5LIB for the cost of disk space used for installed
690631 modules. Valid values are 0 or 1. Defaults to 0
691
692 =item *
693
694 C<<< reverse >>> -- toggle the order in which releases are tested. When set to 1,
632 * {reverse} -- toggle the order in which releases are tested. When set to 1,
695633 testing starts from the older release not the most recent one (or the last
696634 distribution if --list is provided). Valid values are 0 or 1. Defaults to 0
697
698 =item *
699
700 C<<< random >>> -- toggle whether to randomize distribution test order. When set to 1,
635 * {random} -- toggle whether to randomize distribution test order. When set to 1,
701636 the list of releases is shuffled. Valid values are 0 or 1. Defaults to 0
702
703 =item *
704
705 C<<< force_trust >>> -- toggle whether to override CPAN's
706 C<<< trust_test_report_history >>> option. When set to 1, C<<< trust_test_report_history >>>
707 is set to 1. When set to 0, C<<< trust_test_report_history >>> is left alone and
637 * {force_trust} -- toggle whether to override CPAN's
638 {trust_test_report_history} option. When set to 1, {trust_test_report_history}
639 is set to 1. When set to 0, {trust_test_report_history} is left alone and
708640 whatever the user has configured for their CPAN client is used.
709641 Valid values are 0 or 1. Defaults to 0
710
711 =item *
712
713 C<<< reload_history_period >>> -- after this period in seconds, history of modules
642 * {reload_history_period} -- after this period in seconds, history of modules
714643 smoked will be reloaded when possible.
715644 Default value 1800 seconds (30 minutes).
716645
717 =back
718
719 =head1 HINTS
720
721 =head2 Selection of distributions to test
646 = HINTS
647
648 == Selection of distributions to test
722649
723650 Only the most recently uploaded developer and normal releases will be
724651 tested, and only if the developer release is newer than the regular release
742669 Perl, parrot, kurila, Pugs and similar distributions will not be tested. The
743670 skip list is based on CPAN::Mini and matches as follows:
744671
745 qr{(?:
746 /(?:emb|syb|bio)?perl-\d
747 | /(?:parrot|ponie|kurila|Perl6-Pugs)-\d
748 | /perl-?5\.004
749 | /perl_mlb\.zip
750 )}xi,
672 qr{(?:
673 /(?:emb|syb|bio)?perl-\d
674 | /(?:parrot|ponie|kurila|Perl6-Pugs)-\d
675 | /perl-?5\.004
676 | /perl_mlb\.zip
677 )}xi,
751678
752679 Bundles and mod_perl distributions will also not be tested, though mod_perl is
753680 likely to be requested as a dependency by many modules. See the next section
754681 for how to tell CPAN.pm not to test certain dependencies.
755682
756 =head2 Skipping additional distributions
683 == Skipping additional distributions
757684
758685 If certain distributions hang, crash or otherwise cause trouble, you can use
759686 CPAN's "distroprefs" system to disable them. If a distribution is disabled, it
762689
763690 The first step is configuring a directory for distroprefs files:
764691
765 $ cpan
766 cpan> o conf init prefs_dir
767 cpan> o conf commit
768
769 Next, ensure that either the L<YAML> or L<YAML::Syck> module is installed.
770 (YAML::Syck is faster). Then create a file in the C<<< prefs_dir >>> directory
771 to hold the list of distributions to disable, e.g. call it C<<< disabled.yml >>>
692 $ cpan
693 cpan> o conf init prefs_dir
694 cpan> o conf commit
695
696 Next, ensure that either the [YAML] or [YAML::Syck] module is installed.
697 (YAML::Syck is faster). Then create a file in the {prefs_dir} directory
698 to hold the list of distributions to disable, e.g. call it {disabled.yml}
772699
773700 In that file, you can add blocks of YAML code to disable distributions. The
774701 match criteria "distribution" is a regex that matches against the canonical
775 name of a distribution, e.g. C<<< AUTHOR/Foo-Bar-3.14.tar.gz >>>.
702 name of a distribution, e.g. {AUTHOR/Foo-Bar-3.14.tar.gz}.
776703
777704 Here is a sample file to show you some syntax (don't actually use these,
778705 though):
779706
780 ---
781 comment: "Tests take too long"
782 match:
783 distribution: "^DAGOLDEN/CPAN-Reporter-\d"
784 disabled: 1
785 ---
786 comment: "Skip Win32 distributions"
787 match:
788 distribution: "/Win32"
789 disabled: 1
790 ---
791 comment: "Skip distributions by Andy Lester"
792 match:
793 distribution: "^PETDANCE"
794 disabled: 1
707 ---
708 comment: "Tests take too long"
709 match:
710 distribution: "^DAGOLDEN/CPAN-Reporter-\d"
711 disabled: 1
712 ---
713 comment: "Skip Win32 distributions"
714 match:
715 distribution: "/Win32"
716 disabled: 1
717 ---
718 comment: "Skip distributions by Andy Lester"
719 match:
720 distribution: "^PETDANCE"
721 disabled: 1
795722
796723 Please note that disabling distributions like this will also disable them
797724 for normal, non-smoke usage of CPAN.pm.
800727 disabling with distroprefs is mod_perl, as it is a common requirement for many
801728 Apache:: modules but does not (easily) build and test under automation.
802729
803 ---
804 comment: "Don't build mod_perl if required by some other module"
805 match:
806 distribution: "/mod_perl-\d"
807 disabled: 1
730 ---
731 comment: "Don't build mod_perl if required by some other module"
732 match:
733 distribution: "/mod_perl-\d"
734 disabled: 1
808735
809736 Distroprefs are more powerful than this -- they can be used to automate
810737 responses to prompts in distributions, set environment variables, specify
812739 look in the "distroprefs" directory in the CPAN distribution tarball for
813740 examples.
814741
815 =head2 Using a local CPAN::Mini mirror
742 == Using a local CPAN::Mini mirror
816743
817744 Because distributions must be retrieved from a CPAN mirror, the smoker may
818745 cause heavy network load and will repetitively download common build
819746 prerequisites.
820747
821 An alternative is to use L<CPAN::Mini> to create a local CPAN mirror and to
822 point CPAN's C<<< urllist >>> to the local mirror.
823
824 $ cpan
825 cpan> o conf urllist unshift file:///path/to/minicpan
826 cpan> o conf commit
827
828 However, CPAN::Reporter::Smoker needs the C<<< find-ls.gz >>> file, which
748 An alternative is to use [CPAN::Mini] to create a local CPAN mirror and to
749 point CPAN's {urllist} to the local mirror.
750
751 $ cpan
752 cpan> o conf urllist unshift file:///path/to/minicpan
753 cpan> o conf commit
754
755 However, CPAN::Reporter::Smoker needs the {find-ls.gz} file, which
829756 CPAN::Mini does not mirror by default. Add it to a .minicpanrc file in your
830757 home directory to include it in your local CPAN mirror.
831758
832 also_mirror: indices/find-ls.gz
759 also_mirror: indices/find-ls.gz
833760
834761 Note that CPAN::Mini does not mirror developer versions. Therefore, a
835762 live, network CPAN Mirror will be needed in the urllist to retrieve these.
838765 mirror.
839766
840767 Alternatively, you might experiment with the alpha-quality release of
841 L<CPAN::Mini::Devel>, which subclasses CPAN::Mini to retrieve developer
768 [CPAN::Mini::Devel], which subclasses CPAN::Mini to retrieve developer
842769 distributions (and find-ls.gz) using the same logic as
843770 CPAN::Reporter::Smoker.
844771
845 =head2 Timing out hanging tests
772 == Timing out hanging tests
846773
847774 CPAN::Reporter (since 1.08) supports a 'command_timeout' configuration option.
848775 Set this option in the CPAN::Reporter configuration file to time out tests that
855782
856783 This option is still considered experimental.
857784
858 =head2 Avoiding repetitive prerequisite testing
785 == Avoiding repetitive prerequisite testing
859786
860787 Because CPAN::Reporter::Smoker satisfies all requirements from scratch, common
861788 dependencies (e.g. Class::Accessor) will be unpacked, built and tested
862789 repeatedly.
863790
864 As of version 1.92_56, CPAN supports the C<<< trust_test_report_history >>> config
791 As of version 1.92_56, CPAN supports the {trust_test_report_history} config
865792 option. When set, CPAN will check the last test report for a distribution.
866793 If one is found, the results of that test are used instead of running tests
867794 again.
868795
869 $ cpan
870 cpan> o conf init trust_test_report_history
871 cpan> o conf commit
872
873 =head2 Avoiding repetitive prerequisite builds (EXPERIMENTAL)
874
875 CPAN has a C<<< build_dir_reuse >>> config option. When set (and if a YAML module is
796 $ cpan
797 cpan> o conf init trust_test_report_history
798 cpan> o conf commit
799
800 == Avoiding repetitive prerequisite builds (EXPERIMENTAL)
801
802 CPAN has a {build_dir_reuse} config option. When set (and if a YAML module is
876803 installed and configured), CPAN will attempt to make build directories
877804 persistent. This has the potential to save substantial time and space during
878805 smoke testing. CPAN::Reporter::Smoker will recognize if this option is set
879806 and make adjustments to the test process to keep PERL5LIB from growing
880807 uncontrollably as the number of persistent directories increases.
881808
882 B<NOTE:> Support for C<<< build_dir_reuse >>> is highly experimental. Wait for at least
809 *NOTE:* Support for {build_dir_reuse} is highly experimental. Wait for at least
883810 CPAN version 1.92_62 before trying this option.
884811
885 $ cpan
886 cpan> o conf init build_dir_reuse
887 cpan> o conf commit
888
889 =head2 Stopping early if a prerequisite fails
812 $ cpan
813 cpan> o conf init build_dir_reuse
814 cpan> o conf commit
815
816 == Stopping early if a prerequisite fails
890817
891818 Normally, CPAN.pm continues testing a distribution even if a prerequisite fails
892819 to build or fails testing. Some distributions may pass their tests even
893820 without a listed prerequisite, but most just fail (and CPAN::Reporter discards
894821 failures if prerequisites are not met).
895822
896 As of version 1.92_57, CPAN supports the C<<< halt_on_failure >>> config option.
823 As of version 1.92_57, CPAN supports the {halt_on_failure} config option.
897824 When set, a prerequisite failure stops further processing.
898825
899 $ cpan
900 cpan> o conf init halt_on_failure
901 cpan> o conf commit
826 $ cpan
827 cpan> o conf init halt_on_failure
828 cpan> o conf commit
902829
903830 However, a disadvantage of halting early is that no DISCARD grade is
904831 recorded in the history. The next time CPAN::Reporter::Smoker runs, the
906833 prerequisites finish so the distribution can fail its test and be flagged
907834 with DISCARD so it will be skipped in the future.
908835
909 =head2 CPAN cache bloat
836 == CPAN cache bloat
910837
911838 CPAN will use a lot of scratch space to download, build and test modules. Use
912839 CPAN's built-in cache management configuration to let it purge the cache
913840 periodically if you don't want to do this manually. When configured, the cache
914841 will be purged on start and after a certain number of distributions have
915 been tested as determined by the C<<< clean_cache_after >>> option for the
916 C<<< start() >>> function.
917
918 $ cpan
919 cpan> o conf init build_cache scan_cache
920 cpan> o conf commit
921
922 =head2 CPAN verbosity
842 been tested as determined by the {clean_cache_after} option for the
843 {start()} function.
844
845 $ cpan
846 cpan> o conf init build_cache scan_cache
847 cpan> o conf commit
848
849 == CPAN verbosity
923850
924851 Recent versions of CPAN are verbose by default, but include some lesser
925852 known configuration settings to minimize this for untarring distributions and
926853 for loading support modules. Setting the verbosity for these to 'none' will
927854 minimize some of the clutter to the screen as distributions are tested.
928855
929 $ cpan
930 cpan> o conf init /verbosity/
931 cpan> o conf commit
932
933 =head2 Saving reports to files instead of sending directly
856 $ cpan
857 cpan> o conf init /verbosity/
858 cpan> o conf commit
859
860 == Saving reports to files instead of sending directly
934861
935862 In some cases, such as when smoke testing using a development or prerelease
936863 toolchain module like Test-Harness, it may be preferable to save reports to
937864 files in a directory for review prior to submitting them. To do this,
938 manually set the C<<< transport >>> option in your CPAN::Reporter config file to use
939 the L<Test::Reporter::Transport::File> transport.
940
941 transport=File /path/to/directory
865 manually set the {transport} option in your CPAN::Reporter config file to use
866 the [Test::Reporter::Transport::File] transport.
867
868 transport=File /path/to/directory
942869
943870 After review, send saved reports using Test::Reporter:
944871
945 Test::Reporter->new()->read($filename)->send()
946
947 =head1 ENVIRONMENT
872 Test::Reporter->new()->read($filename)->send()
873
874 = ENVIRONMENT
948875
949876 Automatically sets the following environment variables to true values
950877 while running:
951878
952 =over
953
954 =item *
955
956 C<<< AUTOMATED_TESTING >>> -- signal that tests are being run by an automated
879 * {AUTOMATED_TESTING} -- signal that tests are being run by an automated
957880 smoke testing program (i.e. don't expect interactivity)
958
959 =item *
960
961 C<<< PERL_MM_USE_DEFAULT >>> -- accept L<ExtUtils::MakeMaker> prompt() defaults
962
963 =item *
964
965 C<<< PERL_EXTUTILS_AUTOINSTALL >>> -- set to '--defaultdeps' for default
881 * {PERL_MM_USE_DEFAULT} -- accept [ExtUtils::MakeMaker] prompt() defaults
882 * {PERL_EXTUTILS_AUTOINSTALL} -- set to '--defaultdeps' for default
966883 dependencies
967
968 =back
969884
970885 The following environment variables, if set, will modify the behavior of
971886 CPAN::Reporter::Smoker. Generally, they are only required during the
972887 testing of CPAN::Reporter::Smoker
973888
974 =over
975
976 =item *
977
978 C<<< PERL_CR_SMOKER_RUNONCE >>> -- if true, C<<< start() >>> will exit after all
979 distributions are tested instead of sleeping for the C<<< restart_delay >>>
889 * {PERL_CR_SMOKER_RUNONCE} -- if true, {start()} will exit after all
890 distributions are tested instead of sleeping for the {restart_delay}
980891 and then continuing
981
982 =item *
983
984 C<<< PERL_CR_SMOKER_SHORTCUT >>> -- if true, C<<< start() >>> will process arguments (if
892 * {PERL_CR_SMOKER_SHORTCUT} -- if true, {start()} will process arguments (if
985893 any) but will return before starting smoke testing; used for testing argument
986 handling by C<<< start() >>>
987
988 =back
989
990 =head1 BUGS
894 handling by {start()}
895
896 = BUGS
991897
992898 Please report any bugs or feature using the CPAN Request Tracker.
993899 Bugs can be submitted through the web interface at
994 L<http://rt.cpan.org/Dist/Display.html?Queue=CPAN-Reporter-Smoker>
900 [http://rt.cpan.org/Dist/Display.html?Queue=CPAN-Reporter-Smoker]
995901
996902 When submitting a bug or request, please include a test-file or a patch to an
997903 existing test-file that illustrates the bug or desired feature.
998904
999 =head1 SEE ALSO
1000
1001 =over
1002
1003 =item *
1004
1005 L<CPAN>
1006
1007 =item *
1008
1009 L<CPAN::Reporter>
1010
1011 =item *
1012
1013 L<CPAN::Testers>
1014
1015 =item *
1016
1017 L<CPAN::Mini>
1018
1019 =item *
1020
1021 L<CPAN::Mini::Devel>
1022
1023 =back
1024
1025 =for :stopwords cpan testmatrix url annocpan anno bugtracker rt cpants kwalitee diff irc mailto metadata placeholders metacpan
1026
1027 =head1 SUPPORT
1028
1029 =head2 Bugs / Feature Requests
1030
1031 Please report any bugs or feature requests through the issue tracker
1032 at L<https://github.com/cpan-testers/CPAN-Reporter-Smoker/issues>.
1033 You will be notified automatically of any progress on your issue.
1034
1035 =head2 Source Code
1036
1037 This is open source software. The code repository is available for
1038 public review and contribution under the terms of the license.
1039
1040 L<https://github.com/cpan-testers/CPAN-Reporter-Smoker>
1041
1042 git clone https://github.com/cpan-testers/CPAN-Reporter-Smoker.git
1043
1044 =head1 AUTHOR
1045
1046 David Golden <dagolden@cpan.org>
1047
1048 =head1 CONTRIBUTORS
1049
1050 =for stopwords Alexandr Ciornii Christian Walde gregor herrmann
1051
1052 =over 4
1053
1054 =item *
1055
1056 Alexandr Ciornii <alexchorny@gmail.com>
1057
1058 =item *
1059
1060 Christian Walde <walde.christian@googlemail.com>
1061
1062 =item *
1063
1064 gregor herrmann <gregoa@cpan.org>
1065
1066 =back
1067
1068 =head1 COPYRIGHT AND LICENSE
1069
1070 This software is Copyright (c) 2017 by David Golden.
1071
1072 This is free software, licensed under:
1073
1074 The Apache License, Version 2.0, January 2004
905 = SEE ALSO
906
907 * [CPAN]
908 * [CPAN::Reporter]
909 * [CPAN::Testers]
910 * [CPAN::Mini]
911 * [CPAN::Mini::Devel]
1075912
1076913 =cut
+0
-79
t/00-report-prereqs.dd less more
0 do { my $x = {
1 'configure' => {
2 'requires' => {
3 'ExtUtils::MakeMaker' => '6.17',
4 'perl' => '5.006'
5 }
6 },
7 'develop' => {
8 'requires' => {
9 'Dist::Zilla' => '5',
10 'Dist::Zilla::Plugin::Encoding' => '0',
11 'Dist::Zilla::Plugin::Prereqs' => '0',
12 'Dist::Zilla::Plugin::RemovePrereqs' => '0',
13 'Dist::Zilla::PluginBundle::DAGOLDEN' => '0.072',
14 'English' => '0',
15 'File::Spec' => '0',
16 'File::Temp' => '0',
17 'IO::Handle' => '0',
18 'IPC::Open3' => '0',
19 'Pod::Coverage::TrustPod' => '0',
20 'Pod::Wordlist' => '0',
21 'Software::License::Apache_2_0' => '0',
22 'Test::CPAN::Meta' => '0',
23 'Test::MinimumVersion' => '0',
24 'Test::More' => '0',
25 'Test::Pod' => '1.41',
26 'Test::Pod::Coverage' => '1.08',
27 'Test::Portability::Files' => '0',
28 'Test::Spelling' => '0.12',
29 'Test::Version' => '1',
30 'blib' => '1.01'
31 }
32 },
33 'runtime' => {
34 'requires' => {
35 'CPAN' => '1.93',
36 'CPAN::HandleConfig' => '0',
37 'CPAN::Reporter::History' => '1.1702',
38 'CPAN::Tarzip' => '0',
39 'Carp' => '0',
40 'Compress::Zlib' => '1.2',
41 'Exporter' => '0',
42 'ExtUtils::MakeMaker' => '6.46',
43 'Fcntl' => '0',
44 'File::Basename' => '0',
45 'File::Spec' => '3.27',
46 'File::Temp' => '0.20',
47 'List::Util' => '1.03',
48 'Module::Build' => '0.30',
49 'Probe::Perl' => '0.01',
50 'Term::Title' => '0.01',
51 'Test::Reporter' => '1.58',
52 'perl' => '5.010',
53 'strict' => '0',
54 'warnings' => '0'
55 }
56 },
57 'test' => {
58 'recommends' => {
59 'CPAN::Meta' => '2.120900'
60 },
61 'requires' => {
62 'CPAN::Checksums' => '0',
63 'Cwd' => '3.27',
64 'ExtUtils::MakeMaker' => '6.46',
65 'File::Find' => '0',
66 'File::Path' => '0',
67 'File::Spec' => '3.27',
68 'IO::CaptureOutput' => '1.06',
69 'IO::File' => '0',
70 'Test::More' => '0.62',
71 'lib' => '0',
72 'perl' => '5.010',
73 'vars' => '0'
74 }
75 }
76 };
77 $x;
78 }
+0
-183
t/00-report-prereqs.t less more
0 #!perl
1
2 use strict;
3 use warnings;
4
5 # This test was generated by Dist::Zilla::Plugin::Test::ReportPrereqs 0.025
6
7 use Test::More tests => 1;
8
9 use ExtUtils::MakeMaker;
10 use File::Spec;
11
12 # from $version::LAX
13 my $lax_version_re =
14 qr/(?: undef | (?: (?:[0-9]+) (?: \. | (?:\.[0-9]+) (?:_[0-9]+)? )?
15 |
16 (?:\.[0-9]+) (?:_[0-9]+)?
17 ) | (?:
18 v (?:[0-9]+) (?: (?:\.[0-9]+)+ (?:_[0-9]+)? )?
19 |
20 (?:[0-9]+)? (?:\.[0-9]+){2,} (?:_[0-9]+)?
21 )
22 )/x;
23
24 # hide optional CPAN::Meta modules from prereq scanner
25 # and check if they are available
26 my $cpan_meta = "CPAN::Meta";
27 my $cpan_meta_pre = "CPAN::Meta::Prereqs";
28 my $HAS_CPAN_META = eval "require $cpan_meta; $cpan_meta->VERSION('2.120900')" && eval "require $cpan_meta_pre"; ## no critic
29
30 # Verify requirements?
31 my $DO_VERIFY_PREREQS = 1;
32
33 sub _max {
34 my $max = shift;
35 $max = ( $_ > $max ) ? $_ : $max for @_;
36 return $max;
37 }
38
39 sub _merge_prereqs {
40 my ($collector, $prereqs) = @_;
41
42 # CPAN::Meta::Prereqs object
43 if (ref $collector eq $cpan_meta_pre) {
44 return $collector->with_merged_prereqs(
45 CPAN::Meta::Prereqs->new( $prereqs )
46 );
47 }
48
49 # Raw hashrefs
50 for my $phase ( keys %$prereqs ) {
51 for my $type ( keys %{ $prereqs->{$phase} } ) {
52 for my $module ( keys %{ $prereqs->{$phase}{$type} } ) {
53 $collector->{$phase}{$type}{$module} = $prereqs->{$phase}{$type}{$module};
54 }
55 }
56 }
57
58 return $collector;
59 }
60
61 my @include = qw(
62
63 );
64
65 my @exclude = qw(
66
67 );
68
69 # Add static prereqs to the included modules list
70 my $static_prereqs = do 't/00-report-prereqs.dd';
71
72 # Merge all prereqs (either with ::Prereqs or a hashref)
73 my $full_prereqs = _merge_prereqs(
74 ( $HAS_CPAN_META ? $cpan_meta_pre->new : {} ),
75 $static_prereqs
76 );
77
78 # Add dynamic prereqs to the included modules list (if we can)
79 my ($source) = grep { -f } 'MYMETA.json', 'MYMETA.yml';
80 if ( $source && $HAS_CPAN_META
81 && (my $meta = eval { CPAN::Meta->load_file($source) } )
82 ) {
83 $full_prereqs = _merge_prereqs($full_prereqs, $meta->prereqs);
84 }
85 else {
86 $source = 'static metadata';
87 }
88
89 my @full_reports;
90 my @dep_errors;
91 my $req_hash = $HAS_CPAN_META ? $full_prereqs->as_string_hash : $full_prereqs;
92
93 # Add static includes into a fake section
94 for my $mod (@include) {
95 $req_hash->{other}{modules}{$mod} = 0;
96 }
97
98 for my $phase ( qw(configure build test runtime develop other) ) {
99 next unless $req_hash->{$phase};
100 next if ($phase eq 'develop' and not $ENV{AUTHOR_TESTING});
101
102 for my $type ( qw(requires recommends suggests conflicts modules) ) {
103 next unless $req_hash->{$phase}{$type};
104
105 my $title = ucfirst($phase).' '.ucfirst($type);
106 my @reports = [qw/Module Want Have/];
107
108 for my $mod ( sort keys %{ $req_hash->{$phase}{$type} } ) {
109 next if $mod eq 'perl';
110 next if grep { $_ eq $mod } @exclude;
111
112 my $file = $mod;
113 $file =~ s{::}{/}g;
114 $file .= ".pm";
115 my ($prefix) = grep { -e File::Spec->catfile($_, $file) } @INC;
116
117 my $want = $req_hash->{$phase}{$type}{$mod};
118 $want = "undef" unless defined $want;
119 $want = "any" if !$want && $want == 0;
120
121 my $req_string = $want eq 'any' ? 'any version required' : "version '$want' required";
122
123 if ($prefix) {
124 my $have = MM->parse_version( File::Spec->catfile($prefix, $file) );
125 $have = "undef" unless defined $have;
126 push @reports, [$mod, $want, $have];
127
128 if ( $DO_VERIFY_PREREQS && $HAS_CPAN_META && $type eq 'requires' ) {
129 if ( $have !~ /\A$lax_version_re\z/ ) {
130 push @dep_errors, "$mod version '$have' cannot be parsed ($req_string)";
131 }
132 elsif ( ! $full_prereqs->requirements_for( $phase, $type )->accepts_module( $mod => $have ) ) {
133 push @dep_errors, "$mod version '$have' is not in required range '$want'";
134 }
135 }
136 }
137 else {
138 push @reports, [$mod, $want, "missing"];
139
140 if ( $DO_VERIFY_PREREQS && $type eq 'requires' ) {
141 push @dep_errors, "$mod is not installed ($req_string)";
142 }
143 }
144 }
145
146 if ( @reports ) {
147 push @full_reports, "=== $title ===\n\n";
148
149 my $ml = _max( map { length $_->[0] } @reports );
150 my $wl = _max( map { length $_->[1] } @reports );
151 my $hl = _max( map { length $_->[2] } @reports );
152
153 if ($type eq 'modules') {
154 splice @reports, 1, 0, ["-" x $ml, "", "-" x $hl];
155 push @full_reports, map { sprintf(" %*s %*s\n", -$ml, $_->[0], $hl, $_->[2]) } @reports;
156 }
157 else {
158 splice @reports, 1, 0, ["-" x $ml, "-" x $wl, "-" x $hl];
159 push @full_reports, map { sprintf(" %*s %*s %*s\n", -$ml, $_->[0], $wl, $_->[1], $hl, $_->[2]) } @reports;
160 }
161
162 push @full_reports, "\n";
163 }
164 }
165 }
166
167 if ( @full_reports ) {
168 diag "\nVersions for all modules listed in $source (including optional ones):\n\n", @full_reports;
169 }
170
171 if ( @dep_errors ) {
172 diag join("\n",
173 "\n*** WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING ***\n",
174 "The following REQUIRED prerequisites were not satisfied:\n",
175 @dep_errors,
176 "\n"
177 );
178 }
179
180 pass;
181
182 # vim: ts=4 sts=4 sw=4 et:
+0
-63
xt/author/00-compile.t less more
0 use 5.006;
1 use strict;
2 use warnings;
3
4 # this test was generated with Dist::Zilla::Plugin::Test::Compile 2.056
5
6 use Test::More;
7
8 plan tests => 2;
9
10 my @module_files = (
11 'CPAN/Reporter/Smoker.pm'
12 );
13
14
15
16 # fake home for cpan-testers
17 use File::Temp;
18 local $ENV{HOME} = File::Temp::tempdir( CLEANUP => 1 );
19
20
21 my @switches = (
22 -d 'blib' ? '-Mblib' : '-Ilib',
23 );
24
25 use File::Spec;
26 use IPC::Open3;
27 use IO::Handle;
28
29 open my $stdin, '<', File::Spec->devnull or die "can't open devnull: $!";
30
31 my @warnings;
32 for my $lib (@module_files)
33 {
34 # see L<perlfaq8/How can I capture STDERR from an external command?>
35 my $stderr = IO::Handle->new;
36
37 diag('Running: ', join(', ', map { my $str = $_; $str =~ s/'/\\'/g; q{'} . $str . q{'} }
38 $^X, @switches, '-e', "require q[$lib]"))
39 if $ENV{PERL_COMPILE_TEST_DEBUG};
40
41 my $pid = open3($stdin, '>&STDERR', $stderr, $^X, @switches, '-e', "require q[$lib]");
42 binmode $stderr, ':crlf' if $^O eq 'MSWin32';
43 my @_warnings = <$stderr>;
44 waitpid($pid, 0);
45 is($?, 0, "$lib loaded ok");
46
47 shift @_warnings if @_warnings and $_warnings[0] =~ /^Using .*\bblib/
48 and not eval { require blib; blib->VERSION('1.01') };
49
50 if (@_warnings)
51 {
52 warn @_warnings;
53 push @warnings, @_warnings;
54 }
55 }
56
57
58
59 is(scalar(@warnings), 0, 'no warnings found')
60 or diag 'got warnings: ', ( Test::More->can('explain') ? Test::More::explain(\@warnings) : join("\n", '', @warnings) );
61
62
+0
-12
xt/author/critic.t less more
0 #!perl
1
2 use strict;
3 use warnings;
4
5 use Test::More;
6 use English qw(-no_match_vars);
7
8 eval "use Test::Perl::Critic";
9 plan skip_all => 'Test::Perl::Critic required to criticise code' if $@;
10 Test::Perl::Critic->import( -profile => "perlcritic.rc" ) if -e "perlcritic.rc";
11 all_critic_ok();
+0
-7
xt/author/pod-coverage.t less more
0 #!perl
1 # This file was automatically generated by Dist::Zilla::Plugin::PodCoverageTests.
2
3 use Test::Pod::Coverage 1.08;
4 use Pod::Coverage::TrustPod;
5
6 all_pod_coverage_ok({ coverage_class => 'Pod::Coverage::TrustPod' });
+0
-43
xt/author/pod-spell.t less more
0 use strict;
1 use warnings;
2 use Test::More;
3
4 # generated by Dist::Zilla::Plugin::Test::PodSpelling 2.007004
5 use Test::Spelling 0.12;
6 use Pod::Wordlist;
7
8
9 add_stopwords(<DATA>);
10 all_pod_files_spelling_ok( qw( bin lib ) );
11 __DATA__
12 Alexandr
13 Bam
14 Baz
15 CPAN
16 CTRL
17 Christian
18 Ciornii
19 David
20 Distroprefs
21 Golden
22 Reporter
23 SIGKILL
24 Smoker
25 Walde
26 alexchorny
27 cpanreporter
28 dagolden
29 defaultdeps
30 distroprefs
31 gregoa
32 gregor
33 herrmann
34 kurila
35 lib
36 minicpanrc
37 prerelease
38 titlebar
39 unindexed
40 untarring
41 urllist
42 walde
+0
-7
xt/author/pod-syntax.t less more
0 #!perl
1 # This file was automatically generated by Dist::Zilla::Plugin::PodSyntaxTests.
2 use strict; use warnings;
3 use Test::More;
4 use Test::Pod 1.41;
5
6 all_pod_files_ok();
+0
-10
xt/author/portability.t less more
0 use strict;
1 use warnings;
2
3 use Test::More;
4
5 eval 'use Test::Portability::Files';
6 plan skip_all => 'Test::Portability::Files required for testing portability'
7 if $@;
8 options(test_one_dot => 0);
9 run_tests();
+0
-23
xt/author/test-version.t less more
0 use strict;
1 use warnings;
2 use Test::More;
3
4 # generated by Dist::Zilla::Plugin::Test::Version 1.09
5 use Test::Version;
6
7 my @imports = qw( version_all_ok );
8
9 my $params = {
10 is_strict => 0,
11 has_version => 1,
12 multiple => 0,
13
14 };
15
16 push @imports, $params
17 if version->parse( $Test::Version::VERSION ) >= version->parse('1.002');
18
19 Test::Version->import(@imports);
20
21 version_all_ok;
22 done_testing;
+0
-6
xt/release/distmeta.t less more
0 #!perl
1 # This file was automatically generated by Dist::Zilla::Plugin::MetaTests.
2
3 use Test::CPAN::Meta;
4
5 meta_yaml_ok();
+0
-8
xt/release/minimum-version.t less more
0 #!perl
1
2 use Test::More;
3
4 eval "use Test::MinimumVersion";
5 plan skip_all => "Test::MinimumVersion required for testing minimum versions"
6 if $@;
7 all_minimum_version_ok( qq{5.010} );