# Generated by Pod::WikiDoc version 0.18 =pod =head1 NAME CPAN::Reporter::API - Programmer's interface to CPAN::Reporter =head1 VERSION This documentation refers to version 1.16_51 =head1 FUNCTIONS CPAN::Reporter provides only a few public function for use within CPAN.pm. They are not imported during C<<< use >>>. Ordinary users will never need them. =head2 C<<< configure() >>> CPAN::Reporter::configure(); Prompts the user to edit configuration settings stored in the CPAN::Reporter C<<< config.ini >>> file. It will create the configuration file if it does not exist. It is automatically called by CPAN.pm when initializing the 'test_report' option, e.g.: cpan> o conf init test_report =head2 C<<< record_command() >>> ($output, $exit_value) = CPAN::Reporter::record_command( $cmd, $secs ); Takes a command to be executed via system(), but wraps and tees it to show the output to the console, capture the output, and capture the exit code. Returns an array reference of output lines (merged STDOUT and STDERR) and the return value from system(). Note that this is C<<< $? >>>, so the actual exit value of the command will need to be extracted as described in L. If the command includes a pipe character ('E'), only the part of the command prior to the pipe will be wrapped and teed. The pipe will be applied to the execution of the wrapper script. This is essential to capture the exit value of the command and should be otherwise transparent. If a non-zero C<<< $secs >>> argument is provided, the command will be run with a timeout of C<<< $secs >>> (seconds) if the appropriate process management modules are available. On Win32, L must be available; on Unix, L must be available. Otherwise, code will fall-back to running without a timeout. Also, on Win32, the first space-separated element of the command must be absolute, or else ".exe" will be appended and the PATH searched for a matching command. If the attempt to record fails, a warning will be issued and one or more of C<<< $output >>> or C<<< $exit_value >>> will be undefined. =head2 C<<< grade_make() >>> CPAN::Reporter::grade_make( $dist, $command, \@output, $exit); Given a CPAN::Distribution object, the system command used to build the distribution (e.g. "make", "perl Build"), an array of lines of output from the command and the exit value from the command, C<<< grade_make() >>> determines a grade for this stage of distribution installation. If the grade is "pass", C<<< grade_make() >>> does B send a CPAN Testers report for this stage and returns true to signal that the build was successful. Otherwise, a CPAN Testers report is sent and C<<< grade_make() >>> returns false. =head2 C<<< grade_PL() >>> CPAN::Reporter::grade_PL( $dist, $command, \@output, $exit); Given a CPAN::Distribution object, the system command used to run Makefile.PL or Build.PL (e.g. "perl Makefile.PL"), an array of lines of output from the command and the exit value from the command, C<<< grade_PL() >>> determines a grade for this stage of distribution installation. If the grade is "pass", C<<< grade_PL() >>> does B send a CPAN Testers report for this stage and returns true to signal that the Makefile.PL or Build.PL ran successfully. Otherwise, a CPAN Testers report is sent and C<<< grade_PL() >>> returns false. =head2 C<<< grade_test() >>> CPAN::Reporter::grade_test( $dist, $command, \@output, $exit); Given a CPAN::Distribution object, the system command used to run tests (e.g. "make test"), an array of lines of output from testing and the exit value from the system command, C<<< grade_test() >>> determines a grade for distribution tests. A CPAN Testers report is then sent unless specified prerequisites were not satisfied, in which case the report is discarded. This function returns true if the grade is "pass" or "unknown" and returns false, otherwise. =head2 C<<< test() >>> -- DEPRECATED CPAN::Reporter::test( $cpan_dist, $system_command ); This function is maintained for backwards compatibility. It effectively wraps the functionality of C<<< record_command() >>> and C<<< grade_test() >>> into a single function call. It takes a CPAN::Distribution object and the system command to run distribution tests. =head1 SEE ALSO =over =item * L =item * L =item * L =back =head1 AUTHOR David A. Golden (DAGOLDEN) =head1 COPYRIGHT AND LICENSE Copyright (c) 2006, 2007, 2008 by David A. Golden Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at L Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.