The CPANTesters Project
A meta-project for tracking CPAN Testers project goals. See the Issues for project tracking or to see how you can get involved
The CPAN Testers project is an effort to ensure the quality and stability of the packages uploaded to CPAN, the Comprehensive Perl Archive Network, the official repository for sharing Perl libraries and applications.
Contributers submit test reports by downloading content from CPAN and running the included test suite. These test reports are sent to a repository called Metabase. Reports are then read from Metabase, and parsed for important statistics which are saved to the CPAN Testers database. This database has a web application where authors can see the test reports for their distributions.
These are the repositories that are meta-managed by this repository.
Metabase is the primary source for CPAN Testers reports. Reporters write directly to the Metabase to send in reports. This replaces the original reports which were sent via e-mail, and used a Usenet group as the canonical repository.
- The main Metabase repository.
- The core model that is stored in the Metabase. The Metabase consists of a collection of Metabase Facts.
- The Metabase web application http://metabase.cpantesters.org.
These are the modules that comprise the CPANTesters application, including the backend ETL which loads and parses reports from Metabase and the web application that displays reports and statistics.
Backend modules handle processing and parsing reports.
- This is a DBIx::Class schema for the CPAN Testers database.
- This module handles grabbing reports from the Metabase and inserting them into the correct places in the CPANTesters report database
- The Uploads database contains basic information about the history of CPAN, including the release dates of all CPAN and BackPAN modules, direct from PAUSE. This is generated directly from the local CPAN Testers CPAN and BackPAN mirrors.
- Send e-mails when invalid distributions are uploaded to CPAN
- Create a standalone database from the release summary information.
Frontend modules handle the web application.
- This is a JSON API on to CPAN Testers data.
- This handles the main reports website (cpantesters.org), which allows for viewing individual reports, and listing reports by distribution and author. This is the primary application of CPANTesters.
- This handles the administration website (admin.cpantesters.org), which allows CPAN authors and testers to flag reports which may have been sent in error. For example, authors can flag reports that were generated by a misconfigured CPAN client and are a problem with the client and not the distribution.
- The CPANTesters Statistics website, which shows lots of useful metrics like how many testers, which versions of Perl, which OSes, and etc...
- The CPANTesters Preferences website which allows authors and testers to configure how CPANTesters sends them reports and which reports get sent.
These modules provide APIs to fetch information from the CPANTesters web app.
- Fetch CPANTesters results using AJAX, including aggregate results and individual report details.
- Access individual reports from the CPANTesters Reports website.
These repositories are related to the CPANTesters application.
- Automated deployment for the CPANTesters servers, along with a special deployment for development virtual machines.
- This project handles the initial deployment of a machine, installing OS packages, setting up Perl, and setting up a user to run CPAN Testers processes. Individual projects can deploy themselves.
Reporters send test reports to the Metabase. These can be used to set up your own CPANTesters smoke boxes.
- This reporter works with the common CPAN client (CPAN.pm which is shipped with Perl)