NAME
    CPAN::Reporter::Smoker - Turnkey CPAN Testers smoking

VERSION
    This documentation describes version 0.03.

SYNOPSIS
         $ perl -MCPAN::Reporter::Smoker -e start

DESCRIPTION
    Rudimentary smoke tester for CPAN Testers, built upon CPAN::Reporter.
    Use at your own risk. It requires CPAN::Reporter 1.08 or higher.

    Currently, CPAN::Reporter::Smoker requires zero independent
    configuration; instead it uses configuration settings from CPAN.pm and
    CPAN::Reporter.

    Once started, it retrieves a list of distributions from the configured
    CPAN mirror and begins testing them in reverse order of upload. It will
    skip any distribution which has already had a report sent by
    CPAN::Reporter.

    Features (or bugs, depending on your point of view):

    *   No configuration needed

    *   Tests each distribution as a separate CPAN process -- each
        distribution has prerequisites like build_requires satisfied from
        scratch

    *   Continues until finished or until interrupted with CTRL-C

    Current limitations:

    *   Doesn't check skip files before handing off to CPAN to test

    *   Does not check for new distributions to test while running, only
        when starting up

    *   Does not attempt to retest distributions that had reports discarded
        because of prerequisites that could not be satisfied

  Warning
    Smoke testing downloads and runs programs other people have uploaded to
    CPAN. These programs could do anything to your system, including
    deleting everything on it. Do not run CPAN::Reporter::Smoker unless you
    are prepared to take these risks.

HINTS
  Selection of distributions to test
    Only the most recently uploaded developer and normal releases will be
    tested, and only if the developer release is newer than the regular
    release indexed by PAUSE.

    For example, if Foo-Bar-0.01, Foo-Bar-0.02, Foo-Bar-0.03_01 and
    Foo-Bar-0.03_02 are on CPAN, only Foo-Bar-0.02 and Foo-Bar-0.03_02 will
    be tested, and in reverse order of when they were uploaded. Once
    Foo-Bar-0.04 is released and indexed, Foo-Bar-0.03_02 will not longer be
    tested.

    To avoid testing script or other tarballs, developer distributions
    included must have a base distribution name that resembles a
    distribution tarball already indexed by PAUSE. If the first upload of
    distribution to PAUSE is a developer release -- Baz-Bam-0.00_01.tar.gz
    -- it will not be tested as there is no indexed Baz-Bam appearing in
    CPAN's 02packages.details.txt file.

    Unauthorized tarballs are treated like developer releases and will be
    tested if they resemble an indexed distribution and are newer than the
    indexed tarball.

    Perl, parrot, kurila, Pugs and similar distributions will not be tested.
    The skip list is based on CPAN::Mini and matches as follows:

         qr{(?:
                      /(?:emb|syb|bio)?perl-\d 
                    | /(?:parrot|ponie|kurila|Perl6-Pugs)-\d 
                    | /perl-?5\.004 
                    | /perl_mlb\.zip 
         )}xi,

  CPAN::Mini
    Because distributions must be retrieved from a CPAN mirror, the smoker
    may cause heavy network load and will reptitively download common build
    prerequisites.

    An alternative is to use CPAN::Mini to create a local CPAN mirror and to
    point CPAN's "urllist" to the local mirror.

         $ cpan
         cpan> o conf urllist unshift file:///path/to/minicpan
         cpan> o conf commit

    However, CPAN::Reporter::Smoker needs the "find-ls.gz" file, which
    CPAN::Mini does not mirror by default. Add it to a .minicpanrc file in
    your home directory to include it in your local CPAN mirror.

         also_mirror: indices/find-ls.gz

    Note that CPAN::Mini does not mirror developer versions. Therefore, a
    live, network CPAN Mirror will be needed in the urllist to retrieve
    these.

  Skip files
    CPAN::Reporter (since 1.07_01) supports skipfiles to prevent copying
    authors on reports or from sending reports at all for certain
    distributions or authors' modules. Use these to stop sending reports if
    someone complains. See CPAN::Reporter::Config for more details.

    A future version may utilize these to avoid testing modules in the
    skiplist instead of taking the time to test them and then just not send
    the report.

  CPAN cache bloat
    CPAN will use a lot of scratch space to download, build and test
    modules. Use CPAN's built-in cache management configuration to let it
    purge the cache periodically if you don't want to do this manually.

         $ cpan
         cpan> o conf init build_cache scan_cache
         cpan> o conf commit

  CPAN verbosity
    Recent versions of CPAN are verbose by default, but include some lesser
    known configuration settings to minimize this for untarring
    distributions and for loading support modules. Setting the verbosity for
    these to 'none' will minimize some of the clutter to the screen as
    distributions are tested.

         $ cpan
         cpan> o conf init /verbosity/
         cpan> o conf commit

USAGE
  "start()"
    Starts smoke testing using defaults already in CPAN::Config and
    CPAN::Reporter's .cpanreporter directory. Runs until all distributions
    are tested or the process is halted with CTRL-C or otherwise killed.

ENVIRONMENT
    Automatically sets the following environment variables to true values
    while running:

    *   "AUTOMATED_TESTING" -- signal that tests are being run by an
        automated smoke testing program (i.e. don't expect interactivity)

    *   "PERL_MM_USE_DEFAULT" -- accept ExtUtils::MakeMaker prompt()
        defaults

BUGS
    Please report any bugs or feature using the CPAN Request Tracker. Bugs
    can be submitted through the web interface at
    <http://rt.cpan.org/Dist/Display.html?Queue=CPAN-Reporter-Smoker>

    When submitting a bug or request, please include a test-file or a patch
    to an existing test-file that illustrates the bug or desired feature.

SEE ALSO
    *   CPAN

    *   CPAN::Reporter

    *   CPAN::Testers

AUTHOR
    David A. Golden (DAGOLDEN)

COPYRIGHT AND LICENSE
    Copyright (c) 2008 by David A. Golden

    Licensed under the Apache License, Version 2.0 (the "License"); you may
    not use this file except in compliance with the License. You may obtain
    a copy of the License at <http://www.apache.org/licenses/LICENSE-2.0>

    Files produced as output though the use of this software, shall not be
    considered Derivative Works, but shall be considered the original work
    of the Licensor.

    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    See the License for the specific language governing permissions and
    limitations under the License.

