CPAN Testers is only made possible with the support of our sponsors.
For more information on sponsoring, please visit the I CPAN Testers website.

Upgrade Notice

The CPAN Testers Wiki site has been upgraded since you last accessed the site. Please press the F5 key or CTRL-R to refresh your browser cache to use the latest javascript and CSS files.

Smoking With POE

In November 2006, [[cpan:~bingos|Chris Williams]] released POE-Component-CPAN-YACSmoke, which used POE to run multiple test environments of CPANPLUS/CPAN-YACSmoke, and coordinate the distribution testing between them. Thus Chris was able to test on multiple versions of Perl and become the most http:// in CPAN Testing history.

Chris says, "My main gripe with CPAN::YACSmoke was that if a particular module test 'hung' for some reason it would just sit there for hours until I happened to notice it."

More details to follow....

Smoking Blead Perl

As an example of setting up POE-Component-CPAN-YACSmoke, Chris posted the following to his http://, and has allowed us to reproduce it here.

So recently I started CPAN smoking using blead perl and had a few requests from other people on how to set up CPAN smoking using bleadperl.

Well I found it is relatively easy to do, since blead perl now includes CPANPLUS.

Here's how you do it:

First off install POE::Component::CPAN::YACSmoke in your system perl using either cpan or cpanp. It is advised that Proc::ProcessTable is installed when prompted. This will install the minismoker script which we will use later on.

Okay. Let's install blead perl.

I usually install my testing perl in the home directory of a non-privileged user account.

  $ mkdir -p blead/bin
  $ mkdir -p build/bleadperl
  $ cd build/bleadperl
  $ rsync -avz rsync://perl5.git.perl.org/APC/perl-current/ .

This will pull blead perl source down to the current directory. Then run ./Configure. Take the defaults ( or change to taste, such as enabling threading, etc. ), except when prompted for the installation prefix.

  $ ./Configure
  Installation prefix to use? (~name ok) [/usr/local] /home/chris/blead

Then compile, run the testsuite and install

  $ make && make test && make install

Assuming everything went okay we should have blead perl installed under /home/chris/blead

  $ cd
  $ export APPDATA=/home/chris/blead/

Setting APPDATA forces CPANPLUS to locate its .cpanplus directory under /home/chris/blead/. Now let's configure cpan ( only answers different to the defaults are shown ):

  $ /home/chris/blead/bin/cpan5.9.5
  Would you like me to configure as much as possible automatically? [yes] no
  CPAN build and cache directory? [/home/chris/.cpan] /home/chris/blead/.cpan
  Policy on building prerequisites (follow, ask or ignore)? [ask] follow
  Parameters for the 'make install' command?
  Your choice:  [] UNINST=1
  Parameters for the './Build install' command?
  Your choice:  [] --uninst 1

Okay, cpan is configured. Let's install a few required modules:

  cpan> install YAML
  cpan> install LWP
  cpan> install Test::Reporter
  cpan> quit

Okay, we are finished with cpan. Let's configure cpanp ( again only changes to the defaults are shown ):

  $ /home/chris/blead/bin/cpanp5.9.5
  CPAN Terminal> s reconfigure
  Section to configure: [1]: 1
  Type of configuration file [1]: 1
  Section to configure: [1]: 2
  Where can I find your 'sudo' utility? (Enter a single space to disable) [Path to your 'sudo'] <space>
  Section to configure: [1]: 3
  Section to configure: [1]: 4
  Which email address shall I use? [1]: 3
  Email address: myemail@domain.com
  Section to configure: [1]: 5
  Should I be verbose? [y/N]: y
  Follow prerequisites? [3]: 2
  Report test results? [y/N]: y
  Shall I check module signatures? [Y/n]: n
  Section to configure: [1]: 6
  make flags? UNINST=1
  Build.PL and Build flags? uninst=1
  Section to configure: 9
  CPAN Terminal> quit

If you need to configure cpanp to send test reports through a particular mail relay open up an editor and edit the file: /home/chris/blead/.cpanplus/lib/CPANPLUS/Config/User.pm

Alter the line $conf->set_conf( cpantest_mx => '' ); to specify the dns name or IP address of a suitable relay. Save the file.

Right, back into cpanp and we'll install CPAN::YACSmoke. The current development release of CPAN::YACSmoke won't use our hacked .cpanplus directory so we have to install a hacked version. Also Regexp::Assemble prior to 0.29 fails it's tests on blead, so make sure that you use version 0.29 or greater. ( Thanks to grinder for fixing that ).

  $ /home/chris/blead/bin/cpanp5.9.5
  CPAN Terminal> i http://gumbynet.org.uk/smoke/CPAN-YACSmoke-0.03_07.tar.gz
  CPAN Terminal> quit

That's it. We're ready to smoke.

  $ cd
  $ mkdir tmp && cd tmp
  $ minismoker --debug --perl /home/chris/blead/bin/perl5.9.5

And we are smoking!

Smoking Stable Perl

Originally published at http://

First off install [http://search.cpan.org/dist/POE-Component-CPAN-YACSmoke/|POE-Component-CPAN-YACSmoke] in your system perl using either cpan or cpanp. It is advised that [http://search.cpan.org/dist/Proc-ProcessTable/|Proc-ProcessTable] is installed when prompted. This will install the minismoker script which we will use later on.

Okay. Let's install perl-5.8.8

I usually install my testing perl in the home directory of a non-privileged user account.

  $ mkdir -p perl588/bin
  $ mkdir -p build/
  $ cd build/
  $ wget ftp://ftp.perl.org/pub/CPAN/src/perl-5.8.8.tar.gz
  $ tar zxvf perl-5.8.8.tar.gz
  $ rm perl-5.8.8.tar.gz
  $ cd perl-5.8.8

Then run ./Configure. Take the defaults ( or change to taste, such as enabling threading, etc. ), except when prompted for the installation prefix.

  $ ./Configure
  Installation prefix to use? (~name ok) [/usr/local] /home/chris/perl588

Then compile, run the testsuite and install

  $ make && make test && make install

Assuming everything went okay we should have perl-5.8.8 installed under /home/chris/perl588

  $ cd
  $ export APPDATA=/home/chris/perl588/

Setting APPDATA forces CPANPLUS to locate its .cpanplus directory under /home/chris/perl588/. Now let's configure cpan ( only answers different to the defaults are shown ):

  $ /home/chris/perl588/bin/cpan
  Would you like me to configure as much as possible automatically? [yes] no
  CPAN build and cache directory? [/home/chris/.cpan] /home/chris/perl588/.cpan
  Policy on building prerequisites (follow, ask or ignore)? [ask] follow
  Parameters for the 'make install' command?
  Your choice:  [] UNINST=1

Okay, cpan is configured. Let's install a few required modules:

  cpan> install YAML
  cpan> install LWP
  cpan> install Test::Reporter
  cpan> install CPANPLUS
  cpan> quit

If CPANPLUS won't install because of a cyclic dependency, then we have to use CPANPLUS' boxed version to bootstrap install itself.

  cpan> look CPANPLUS
  $ /home/chris/perl588/bin/perl bin/cpanp-boxed -s selfupdate dependencies
  $ /home/chris/perl588/bin/perl Makefile.PL
  $ make && make test && make install
  $ exit
  cpan> quit

Okay, we are finished with cpan. Let's configure cpanp ( again only changes to the defaults are shown ):

  $ /home/chris/perl588/bin/cpanp
  CPAN Terminal> s reconfigure
  Section to configure: [1]: 1
  Type of configuration file [1]: 1
  Section to configure: [1]: 2
  Where can I find your 'sudo' utility? (Enter a single space to disable) [Path to your 'sudo'] <space>
  Section to configure: [1]: 3
  Section to configure: [1]: 4
  Which email address shall I use? [1]: 3
  Email address: myemail@domain.com
  Section to configure: [1]: 5
  Should I be verbose? [y/N]: y
  Follow prerequisites? [3]: 2
  Report test results? [y/N]: y
  Shall I check module signatures? [Y/n]: n
  Section to configure: [1]: 6
  make flags? UNINST=1
  Build.PL and Build flags? uninst=1
  Section to configure: 9
  CPAN Terminal> quit

If you need to configure cpanp to send test reports through a particular mail relay open up an editor and edit the file: /home/chris/perl588/.cpanplus/lib/CPANPLUS/Config/User.pm

Alter the line $conf->set_conf( cpantest_mx => '' ); to specify the dns name or IP address of a suitable relay. Save the file.

Right, back into cpanp and we'll install CPAN::YACSmoke. The current development release of CPAN::YACSmoke won't use our hacked .cpanplus directory so we have to install a hacked version.

  $ /home/chris/perl588/bin/cpanp
  CPAN Terminal> i http://gumbynet.org.uk/smoke/CPAN-YACSmoke-0.03_07.tar.gz
  CPAN Terminal> quit

That's it. We're ready to smoke.

  $ cd
  $ mkdir tmp && cd tmp
  $ minismoker --debug --perl /home/chris/perl588/bin/perl

And we are smoking!