The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

CPAN::Reporter - Adds CPAN Testers reporting to CPAN.pm

VERSION

version 1.2020

SYNOPSIS

From the CPAN shell:

cpan> install Task::CPAN::Reporter
cpan> reload cpan
cpan> o conf init test_report

Installing Task::CPAN::Reporter will pull in additional dependencies that new CPAN Testers will need.

Advanced CPAN Testers with custom Test::Reporter::Transport setups may wish to install only CPAN::Reporter, which has fewer dependencies.

DESCRIPTION

The CPAN Testers project captures and analyzes detailed results from building and testing CPAN distributions on multiple operating systems and multiple versions of Perl. This provides valuable feedback to module authors and potential users to identify bugs or platform compatibility issues and improves the overall quality and value of CPAN.

One way individuals can contribute is to send a report for each module that they test or install. CPAN::Reporter is an add-on for the CPAN.pm module to send the results of building and testing modules to the CPAN Testers project. Full support for CPAN::Reporter is available in CPAN.pm as of version 1.92.

GETTING STARTED

Installation

The first step in using CPAN::Reporter is to install it using whatever version of CPAN.pm is already installed. CPAN.pm will be upgraded as a dependency if necessary.

cpan> install CPAN::Reporter

If CPAN.pm was upgraded, it needs to be reloaded.

cpan> reload cpan

Configuration

If upgrading from a very old version of CPAN.pm, users may be prompted to renew their configuration settings, including the 'test_report' option to enable CPAN::Reporter.

If not prompted automatically, users should manually initialize CPAN::Reporter support. After enabling CPAN::Reporter, CPAN.pm will automatically continue with interactive configuration of CPAN::Reporter options.

cpan> o conf init test_report

Users will need to enter an email address in one of the following formats:

johndoe@example.com
John Doe <johndoe@example.com>
"John Q. Public" <johnqpublic@example.com>

Users that are new to CPAN::Reporter should accept the recommended values for other configuration options.

Users will be prompted to create a Metabase profile file that uniquely identifies their test reports. See "The Metabase" below for details.

After completing interactive configuration, be sure to commit (save) the CPAN configuration changes.

cpan> o conf commit

See CPAN::Reporter::Config for advanced configuration settings.

The Metabase

CPAN::Reporter sends test reports to a server known as the Metabase. This requires an active Internet connection and a profile file. To create the profile, users will need to run metabase-profile from a terminal window and fill the information at the prompts. This will create a file called metabase_id.json in the current directory. That file should be moved to the .cpanreporter directory inside the user's home directory.

Users with an existing metabase profile file (e.g. from another machine), should copy it into the .cpanreporter directory instead of creating a new one. Profile files may be located outside the .cpanreporter directory by following instructions in CPAN::Reporter::Config.

Default Test Comments

This module puts default text into the "TESTER COMMENTS" section, typically, "none provided" if doing interactive testing, or, if doing smoke testing that sets C<$ENV{AUTOMATED_TESTING}> to a true value, "this report is from an automated smoke testing program and was not reviewed by a human for accuracy." If C<CPAN::Reporter> is configured to allow editing of the report, this can be edited during submission.

If you wish to override the default comment, you can create a file named C<comment.txt> in the configuration directory (typically .cpanreporter under the user's home directory), with the default comment you would like to appear.

Note that if your test is an automated smoke test (C<$ENV{AUTOMATED_TESTING}> is set to a true value), the smoke test notice ("this report is from an automated smoke testing program and was not reviewed by a human for accuracy") is included along with a blank line before your C<comment.txt>, so that it is always possible to distinguish automated tests from non-automated tests that use this module.

Using CPAN::Reporter

Once CPAN::Reporter is enabled and configured, test or install modules with CPAN.pm as usual.

For example, to test the File::Marker module:

cpan> test File::Marker

If a distribution's tests fail, users will be prompted to edit the report to add additional information that might help the author understand the failure.

UNDERSTANDING TEST GRADES

CPAN::Reporter will assign one of the following grades to the report:

  • pass -- distribution built and tested correctly

  • fail -- distribution failed to test correctly

  • unknown -- distribution failed to build, had no test suite or outcome was inconclusive

  • na --- distribution is not applicable to this platform and/or version of Perl

In returning results of the test suite to CPAN.pm, "pass" and "unknown" are considered successful attempts to "make test" or "Build test" and will not prevent installation. "fail" and "na" are considered to be failures and CPAN.pm will not install unless forced.

An error from Makefile.PL/Build.PL or make/Build will also be graded as "unknown" and a failure will be signaled to CPAN.pm.

If prerequisites specified in Makefile.PL or Build.PL are not available, no report will be generated and a failure will be signaled to CPAN.pm.

PRIVACY WARNING

CPAN::Reporter includes information in the test report about environment variables and special Perl variables that could be affecting test results in order to help module authors interpret the results of the tests. This includes information about paths, terminal, locale, user/group ID, installed toolchain modules (e.g. ExtUtils::MakeMaker) and so on.

These have been intentionally limited to items that should not cause harmful personal information to be revealed -- it does not include your entire environment. Nevertheless, please do not use CPAN::Reporter if you are concerned about the disclosure of this information as part of your test report.

Users wishing to review this information may choose to edit the report prior to sending it.

BUGS

Using command_timeout on Linux may cause problems. See https://rt.cpan.org/Ticket/Display.html?id=62310

Please report any bugs or feature using the CPAN Request Tracker. Bugs can be submitted through the web interface at http://rt.cpan.org/Dist/Display.html?Queue=CPAN-Reporter

When submitting a bug or request, please include a test-file or a patch to an existing test-file that illustrates the bug or desired feature.

SEE ALSO

Information about CPAN::Testers:

Additional Documentation:

SUPPORT

Bugs / Feature Requests

Please report any bugs or feature requests through the issue tracker at https://github.com/cpan-testers/CPAN-Reporter/issues. You will be notified automatically of any progress on your issue.

Source Code

This is open source software. The code repository is available for public review and contribution under the terms of the license.

https://github.com/cpan-testers/CPAN-Reporter

git clone https://github.com/cpan-testers/CPAN-Reporter.git

AUTHOR

David Golden <dagolden@cpan.org>

CONTRIBUTORS

  • Alexandr Ciornii <alexchorny@gmail.com>

  • Breno G. de Oliveira <garu@cpan.org>

  • Christian Walde <walde.christian@googlemail.com>

  • David Cantrell <david@cantrell.org.uk>

  • Ed J <mohawk2@users.noreply.github.com>

  • Graham Knop <haarg@haarg.org>

  • Håkon Hægland <hakon.hagland@gmail.com>

  • James E Keenan <jkeenan@cpan.org>

  • J. Maslak <jmaslak@antelope.net>

  • José Joaquín Atria <jjatria@cpan.org>

  • Kent Fredric <kentfredric@gmail.com>

  • Leon Timmermans <fawaka@gmail.com>

  • Matthew Musgrove <mr.muskrat@gmail.com>

  • Patrice Clement <monsieurp@gentoo.org>

  • Reini Urban <rurban@cpanel.net>

  • Scott Wiersdorf <scott@perlcode.org>

  • Slaven Rezic <slaven@rezic.de>

COPYRIGHT AND LICENSE

This software is Copyright (c) 2023 by David Golden.

This is free software, licensed under:

The Apache License, Version 2.0, January 2004