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, 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 prolific tester 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 use.perl Journal, 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 use.perl journal

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 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!