CPANPLUS-YACSmoke
view release on metacpan or search on metacpan
lib/CPANPLUS/Dist/YACSmoke.pm view on Meta::CPAN
CPANPLUS::Dist::YACSmoke - CPANPLUS distribution class that integrates CPAN Testing services into CPANPLUS
=head1 VERSION
version 1.08
=head1 SYNOPSIS
# CPANPLUS shell - use CPANPLUS::Dist::YACSmoke services during manual use.
cpanp> s conf dist_type CPANPLUS::Dist::YACSmoke
cpanp> s save
=head1 DESCRIPTION
CPANPLUS::Dist::YACSmoke is a L<CPANPLUS> distribution class that integrates a number of CPAN Testing services
into L<CPANPLUS>.
It will create a database file in the F<.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 C<prereqs> have been tested previously and have resulted in a C<pass> grade then the tests for those
C<prereqs> will be skipped, speeding up smoke testing.
By default it uses L<CPANPLUS> configuration settings.
It can be utilised during manual use of L<CPANPLUS> by setting the C<dist_type> configuration variable.
Its main utility is in conjunction with L<CPANPLUS::YACSmoke>.
=head1 CONFIGURATION FILE
CPANPLUS::Dist::YACSmoke only honours the C<exclude_dists> in L<CPAN::YACSmoke> style C<ini> files.
The C<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 L<Config::IniFiles> for more information on the INI file format.
=head1 METHODS OVERIDDEN
CPANPLUS::Dist::YACSmoke overrides a number of methods provided by L<CPANPLUS::Dist::Base>
=over
=item C<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 C<ini> file if that hasn't been loaded already. It also registers callbacks with
the L<CPANPLUS> backend.
=item C<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 C<Makefile.PL> or C<Build.PL>.
CPANPLUS::Dist::YACSmoke will check for the existence of a C<.yacsmoke.yml> in the extracted build directory. If it exists it will
load the meta data that it contains and sets C<$dist-E<gt>status-E<gt>_skipbuild> to true.
=item C<create>
This runs the creation step of your distribution, by running C<make> and C<make test> for instance. The distribution is checked against
the database to see if a C<pass> grade has already been reported for this distribution, if so then C<skiptest> is set and the testsuite
will not be run.
If C<$dist-E<gt>status-E<gt>_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 C<blib> structure to the include path.
=back
=head1 KUDOS
Based on L<CPAN::YACSmoke> by Robert Rothenberg and Barbie.
Contributions and patience from Jos Boumans the L<CPANPLUS> guy!
=head1 SEE ALSO
L<CPANPLUS>
L<CPANPLUS::YACSmoke>
L<CPAN::YACSmoke>
=head1 AUTHOR
Chris Williams <chris@bingosnet.co.uk>
=head1 COPYRIGHT AND LICENSE
This software is copyright (c) 2019 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.
=cut
( run in 1.499 second using v1.01-cache-2.11-cpan-cdf2f3d4e48 )