CPANPLUS and blead perl: revised

BinGOs on 2007-11-13T09:22:35

Recent changes to CPANPLUS and the dependencies that it now has for test reporting mean that I thought it was a good time to revisit my previous journal regarding smoke testing with blead.

Jos Boumans kindly made some changes to CPANPLUS::Internals::Report that I had suggested:

Changes for 0.83_02     Tue Oct  9 13:46:48 2007
================================================

* Address #29430: Remove LWP as a dependency for CPANPLUS::Internals::Report
  it now uses File::Fetch, like the rest of CPANPLUS. Thanks to BinGOs for
  reporting
* Apply patch #29218: Patch to use YAML::Tiny instead of YAML for 
  test reporting

I have made a number of alterations to CPAN::YACSmoke to remove its dependencies on LWP and URI and that is available from here

Revised blead smoking:

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 --delete rsync://ftp.linux.activestate.com/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/cpan
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::Tiny
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/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'] 
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/cpanp
CPAN Terminal> i http://gumbynet.org.uk/smoke/blead/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/perl

And we are smoking!