CPAN-Reporter-Smoker

 view release on metacpan or  search on metacpan

Changes  view on Meta::CPAN

0.21 - Wed Sep 29 07:45:04 EDT 2010

    Fixed:

    - Skips t/smoke-disabled.t unless YAML is installed

0.20 Mon Sep 27 21:02:21 EDT 2010

    Added:

    - Checks distroprefs for skipping before firing up a CPAN test process
      [Christian Walde]

    - New 'reverse' option to reverse distribution test order
      [Serguei Trouchelle]

    - New 'force_trust' option to switch on CPAN's trust_test_report_history
      (instead of relying on the existing CPAN configuration)

    Fixed:

Changes  view on Meta::CPAN

    - Changed: if CPAN config option 'build_dir_reuse' is true and CPAN has
      the 'reset_tested' method, then 'reset_tested' will be called prior
      to each distribution's smoke test to limit PERL5INC to direct
      dependencies only instead of all available build directories

    - Documented: how to use (and limitations of) CPAN's build_dir_reuse
      config option

0.09 Wed Apr 23 22:56:17 EDT 2008

    - Documented: CPAN distroprefs option is 'prefs_dir' not 'pref_dir'
      (Serguei Trouchelle)

0.08 Mon Mar 24 13:46:46 EDT 2008

    - Changed: smoker now maintains a cache of distributions seen during 
      a session to speed up skipping distributions already tested when
      the smoker rechecks indices and restarts testing
    
    - Fixed: our $SIG{INT} handler now installed *after* CPAN.pm installs its 
      handler so we take precedence

0.07 Mon Mar 10 08:32:50 EDT 2008

    - Added: Sets title of terminal window (xterm or Win32) to indicate 
      current distribution being smoked (adds Term::Title as prereq)

    - Changed: interrupting smoker with CTRL-C now shows what distribution
      was interrupted (helpful for disabling in distroprefs)

    - Changed: progress message -- added blank line before to help it stand out
      and localtime() timestamp to help see how long a test has been running
      (e.g is it hung?)

    - Documented: how to use 'trust_test_report_history' and 'halt_on_failure' 
      config options from the latest dev release of CPAN.pm

    - Documented: cache purge happens when indices are checked for new distros

0.06 Thu Mar  6 10:12:26 EST 2008

    - Added documentation on using distroprefs to skip building and testing
      certain distributions

    - Edited other usage hints for clarity

0.05 Tue Feb 26 22:56:12 EST 2008

    - Smoker now periodically checks for new distributions; added
      "restart_delay" option (default 12 hours) to control frequency
    
    - Added support for CPAN cache scanning on start and at each restart (if

README  view on Meta::CPAN


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

    *   Automatically checks for new distributions every twelve hours or as
        otherwise specified

    *   Continues until interrupted with CTRL-C

    *   Checks CPAN.pm "distroprefs" to see if distributions should be
        skipped (before handing off to CPAN)

    Current limitations:

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

    *   Does not test trial version if there is no non-trial version

  WARNING -- smoke testing is risky

README  view on Meta::CPAN

             | /perl_mlb\.zip
         )}xi,

    Bundles and mod_perl distributions will also not be tested, though
    mod_perl is likely to be requested as a dependency by many modules. See
    the next section for how to tell CPAN.pm not to test certain
    dependencies.

  Skipping additional distributions
    If certain distributions hang, crash or otherwise cause trouble, you can
    use CPAN's "distroprefs" system to disable them. If a distribution is
    disabled, it won't be built or tested. If a distribution's dependency is
    disabled, a failing test is just discarded.

    The first step is configuring a directory for distroprefs files:

         $ cpan
         cpan> o conf init prefs_dir
         cpan> o conf commit

    Next, ensure that either the YAML or YAML::Syck module is installed.
    (YAML::Syck is faster). Then create a file in the "prefs_dir" directory
    to hold the list of distributions to disable, e.g. call it
    "disabled.yml"

    In that file, you can add blocks of YAML code to disable distributions.
    The match criteria "distribution" is a regex that matches against the
    canonical name of a distribution, e.g. "AUTHOR/Foo-Bar-3.14.tar.gz".

    Here is a sample file to show you some syntax (don't actually use these,
    though):

README  view on Meta::CPAN

         ---
         comment: "Skip distributions by Andy Lester"
         match:
             distribution: "^PETDANCE"
         disabled: 1

    Please note that disabling distributions like this will also disable
    them for normal, non-smoke usage of CPAN.pm.

    One distribution that I would recommend either installing up front or
    else disabling with distroprefs is mod_perl, as it is a common
    requirement for many Apache:: modules but does not (easily) build and
    test under automation.

         ---
         comment: "Don't build mod_perl if required by some other module"
         match:
             distribution: "/mod_perl-\d"
         disabled: 1

    Distroprefs are more powerful than this -- they can be used to automate
    responses to prompts in distributions, set environment variables,
    specify additional dependencies and so on. Read the docs for CPAN.pm for
    more and look in the "distroprefs" directory in the CPAN distribution
    tarball for examples.

  Using a local CPAN::Mini mirror
    Because distributions must be retrieved from a CPAN mirror, the smoker
    may cause heavy network load and will repetitively 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.

Todo  view on Meta::CPAN


- try to make TTY sane (if possible) after each smoke run

- clear CPAN build cache on start?

# Low/Maybe

- if interrupted,  be more helpful
    - offer to send email to bug-Dist-Name@rt.cpan.org? (use Net::SMTP and
      CPAN::Reporter mail host?)
    - if CPAN has distroprefs, offer to auto-disable the current distro, or
      at least to open distroprefs in editor?
    
- retest discards after some period of time
    - would need CPAN::Reporter::History to keep timestamp
    - or after failing deps are updated -- but how to discover what these are?
      would need changes to CPAN::Reporter history logging to separately
      log DISCARD with the missing dependencies
    - but halt_on_failure prevents a DISCARD message, so then what?  
      Maybe this does need to be logged via CPAN::Reporter::Smoker

- docs: suggest that they join cpan-testers-discuss mailing list

dist.ini  view on Meta::CPAN

author            = David Golden <dagolden@cpan.org>
license           = Apache_2_0
copyright_holder  = David Golden

[@DAGOLDEN]
:version = 0.072
stopwords = unindexed
stopwords = Bam
stopwords = Baz
stopwords = CTRL
stopwords = Distroprefs
stopwords = SIGKILL
stopwords = cpanreporter
stopwords = defaultdeps
stopwords = distroprefs
stopwords = kurila
stopwords = minicpanrc
stopwords = prerelease
stopwords = titlebar
stopwords = untarring
stopwords = urllist

[Prereqs]
ExtUtils::MakeMaker = 6.46
Module::Build       = 0.30

lib/CPAN/Reporter/Smoker.pm  view on Meta::CPAN

      if ( $seen{$base}++ ) {
        $CPAN::Frontend->mywarn(
          "Smoker: already tested $base [$count]\n");
        next DIST;
      }
      elsif ( $args{filter} and $args{filter}->($dist) ) {
        $CPAN::Frontend->mywarn(
          "Smoker: dist skipped $base [$count]\n");
        next DIST;
      }
      elsif ( CPAN::Distribution->new(%{$dist})->prefs->{disabled} ) {
        $CPAN::Frontend->mywarn(
          "Smoker: dist disabled $base [$count]\n");
        next DIST;
      }
      else {
        # record distribution being smoked
        my $time = scalar localtime();
        my $msg = "$base [$count] at $time";
        if ( $args{set_term_title} ) {
          Term::Title::set_titlebar( "Smoking $msg" );

lib/CPAN/Reporter/Smoker.pm  view on Meta::CPAN


Automatically checks for new distributions every twelve hours or as
otherwise specified

=item *

Continues until interrupted with CTRL-C

=item *

Checks CPAN.pm "distroprefs" to see if distributions should be skipped
(before handing off to CPAN)

=back

Current limitations:

=over

=item *

lib/CPAN/Reporter/Smoker.pm  view on Meta::CPAN

         | /perl_mlb\.zip
     )}xi,

Bundles and mod_perl distributions will also not be tested, though mod_perl is
likely to be requested as a dependency by many modules.  See the next section
for how to tell CPAN.pm not to test certain dependencies.

=head2 Skipping additional distributions

If certain distributions hang, crash or otherwise cause trouble, you can use
CPAN's "distroprefs" system to disable them.  If a distribution is disabled, it
won't be built or tested.  If a distribution's dependency is disabled, a
failing test is just discarded.

The first step is configuring a directory for distroprefs files:

     $ cpan
     cpan> o conf init prefs_dir
     cpan> o conf commit

Next, ensure that either the L<YAML> or L<YAML::Syck> module is installed.
(YAML::Syck is faster).  Then create a file in the C<<< prefs_dir >>> directory
to hold the list of distributions to disable, e.g. call it C<<< disabled.yml >>>

In that file, you can add blocks of YAML code to disable distributions.  The
match criteria "distribution" is a regex that matches against the canonical
name of a distribution, e.g. C<<< AUTHOR/Foo-Bar-3.14.tar.gz >>>.

Here is a sample file to show you some syntax (don't actually use these,
though):

     ---

lib/CPAN/Reporter/Smoker.pm  view on Meta::CPAN

     ---
     comment: "Skip distributions by Andy Lester"
     match:
         distribution: "^PETDANCE"
     disabled: 1

Please note that disabling distributions like this will also disable them
for normal, non-smoke usage of CPAN.pm.

One distribution that I would recommend either installing up front or else
disabling with distroprefs is mod_perl, as it is a common requirement for many
Apache:: modules but does not (easily) build and test under automation.

     ---
     comment: "Don't build mod_perl if required by some other module"
     match:
         distribution: "/mod_perl-\d"
     disabled: 1

Distroprefs are more powerful than this -- they can be used to automate
responses to prompts in distributions, set environment variables, specify
additional dependencies and so on.  Read the docs for CPAN.pm for more and
look in the "distroprefs" directory in the CPAN distribution tarball for
examples.

=head2 Using a local CPAN::Mini mirror

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

An alternative is to use L<CPAN::Mini> to create a local CPAN mirror and to
point CPAN's C<<< urllist >>> to the local mirror.

t/data/MyConfig.pm  view on Meta::CPAN

use Cwd 3.27;
my $cwd = cwd;
my $dot_cpan = "DOT_CPAN";
my $Iswin = $^O eq "MSWin32";
my $is_disable_test = $ENV{IS_DISABLE_TEST};
$CPAN::Config = {
                 $Iswin ? () : (
                                'make_install_make_command' => q[make],
                                'mbuild_install_build_command' => q[./Build],
                               ),
                 $is_disable_test ? ( 'prefs_dir' => qq[$cwd/t/data] ) : (),
                 'auto_commit' => 0,
                 'build_cache' => q[100],
                 'build_dir' => qq[$cwd/t/$dot_cpan/build],
                 #'bzip2' => q[/bin/bzip2],
                 'cache_metadata' => q[1],
                 colorize_output=>0,
                 'cpan_home' => qq[$cwd/t/$dot_cpan],
                 #'curl' => q[],
                 #'ftp' => q[],
                 'ftp_proxy' => q[],

xt/author/pod-spell.t  view on Meta::CPAN

__DATA__
Alexandr
Bam
Baz
Breno
CPAN
CTRL
Christian
Ciornii
David
Distroprefs
Golden
Oliveira
Reporter
SIGKILL
Smoker
Walde
alexchorny
cpanreporter
dagolden
de
defaultdeps
distroprefs
garu
gregoa
gregor
herrmann
kurila
lib
minicpanrc
prerelease
titlebar
unindexed



( run in 1.782 second using v1.01-cache-2.11-cpan-0bb4e1dffa6 )