CPANPLUS::Dist::YACSmoke - CPANPLUS distribution class that integrates CPAN Testing services into CPANPLUS
version 1.02
# CPANPLUS shell - use CPANPLUS::Dist::YACSmoke services during manual use. cpanp> s conf dist_type CPANPLUS::Dist::YACSmoke cpanp> s save
CPANPLUS::Dist::YACSmoke is a CPANPLUS distribution class that integrates a number of CPAN Testing services into CPANPLUS.
It will create a database file in the .cpanplus directory, which it uses to track tested distributions. This information will be used to keep from posting multiple reports for the same module, and to keep from testing modules that use non-passing modules as prerequisites.
If prereqs have been tested previously and have resulted in a pass grade then the tests for those prereqs will be skipped, speeding up smoke testing.
prereqs
pass
By default it uses CPANPLUS configuration settings.
It can be utilised during manual use of CPANPLUS by setting the dist_type configuration variable.
dist_type
Its main utility is in conjunction with CPANPLUS::YACSmoke.
CPANPLUS::Dist::YACSmoke only honours the exclude_dists in CPAN::YACSmoke style ini files.
exclude_dists
ini
The exclude_dists setting, which is laid out as:
[CONFIG] exclude_dists=<<HERE mod_perl HERE
The above would then ignore any distribution that include the string 'mod_perl' in its name. This is useful for distributions which use external C libraries, which are not installed, or for which testing is problematic.
See Config::IniFiles for more information on the INI file format.
CPANPLUS::Dist::YACSmoke overrides a number of methods provided by CPANPLUS::Dist::Base
init
This method is called just after the new dist object is set up. It initialises the database file if it hasn't been initialised already and loads the list of excluded distributions from the ini file if that hasn't been loaded already. It also registers callbacks with the CPANPLUS backend.
prepare
This runs the preparation step of your distribution. This step is meant to set up the environment so the create step can create the actual distribution(file). This can mean running either Makefile.PL or Build.PL.
Makefile.PL
Build.PL
CPANPLUS::Dist::YACSmoke will check for the existence of a .yacsmoke.yml in the extracted build directory. If it exists it will load the meta data that it contains and sets $dist->status->_skipbuild to true.
.yacsmoke.yml
$dist->status->_skipbuild
create
This runs the creation step of your distribution, by running make and make test for instance. The distribution is checked against the database to see if a pass grade has already been reported for this distribution, if so then skiptest is set and the testsuite will not be run.
make
make test
skiptest
If $dist->status->_skipbuild is set to true, CPANPLUS::Dist::YACSmoke will skip the build and test stages completely and resolve any prereqs for the distribution before adding the build directories blib structure to the include path.
blib
Based on CPAN::YACSmoke by Robert Rothenberg and Barbie.
Contributions and patience from Jos Boumans the CPANPLUS guy!
CPANPLUS
CPANPLUS::YACSmoke
CPAN::YACSmoke
Chris Williams <chris@bingosnet.co.uk>
This software is copyright (c) 2017 by Chris Williams, Jos Boumans, Robert Rothenberg and Barbie.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.
To install CPANPLUS::YACSmoke, copy and paste the appropriate command in to your terminal.
cpanm
cpanm CPANPLUS::YACSmoke
CPAN shell
perl -MCPAN -e shell install CPANPLUS::YACSmoke
For more information on module installation, please visit the detailed CPAN module installation guide.