CPAN::Testers::Data::Uploads - CPAN Testers Uploads Database Generator
perl uploads.pl --config=<file> [--generate] [--reindex] [--update] [--backup]
This program allows the user to create, update and backup the uploads database, either as separate commands, or a combination of all three. The process order will always be CREATE->UPDATE->BACKUP, regardless of the order the options appear on the command line.
The Uploads database contains basic information about the history of CPAN. It records the release dates of everything that is uploaded to CPAN, both within a BACKPAN repository, a current CPAN repository and the latest uploads posted by PAUSE, which may not have yet reached the CPAN mirrors.
A simple schema for the MySQL database is below:
CREATE TABLE `uploads` ( `type` varchar(10) NOT NULL, `author` varchar(32) NOT NULL, `dist` varchar(100) NOT NULL, `version` varchar(100) NOT NULL, `filename` varchar(255) NOT NULL, `released` int(16) NOT NULL, PRIMARY KEY (`author`,`dist`,`version`) ) ENGINE=MyISAM;
The 'type' field can be one of three values, 'backpan', 'cpan' or 'upload', which incates whether the release has been archived to BACKPAN, currently on CPAN or has recently been uploaded and may not have reached the CPAN mirrors yet.
The 'author', 'dist', 'version' and 'filename' fields contain the breakdown of the distribution component parts used to locate the distribution. Although in most cases the filename could be considered a primary key, it is possible that two or more authors could upload a distribution with the same name.
The 'released' field holds the date of the distribution release as the number of seconds since the epoch. This is extremely useful for sorting distributions based on their release date rather than the version string. Due to many authors having different version schemes, this is perhaps the only reliable method with which to sort distribution releases.
Instatiates the object CPAN::Testers::Data::Uploads:
my $obj = CPAN::Testers::Data::Uploads->new();
Based on accessor settings will run the appropriate methods for the current execution.
Generates a new uploads and ixlatest database.
Rebuilds the ixlatest table for all entries.
Updates the uploads and ixlatest databases.
Provides backup files of the uploads database.
Provides a help screen.
Database handle to the uploads database.
Path to the BACKPAN archive directory.
Path to the CPAN archive directory.
Path to output log file for progress and debugging messages. Default file: '_uploads.log'.
If set to a true value will create/overwrite the logfile, otherwise will append any messages.
Path to the file containing the last NNTPID processed. Default file: '_lastmail'.
Path to the journal file. Default file: '_journal.sql'.
If set to a true value runs in generate mode for the process method().
If set to a true value runs in update mode for the process method().
If set to a true value runs in backup mode for the process method().
If set to a true value runs in reindex mode for the process method().
Parses the given article from the NNTP feed.
Updates the ixlatest table and pushes requests to the page_request table.
Sets up the connection to the NNTP server.
Sets or returns the last NNTPID processed.
Initialises internal configuration settings based on command line options, API options and configuration file settings.
Whether you have a common platform or a very unusual one, you can help by testing modules you install and submitting reports. There are plenty of module authors who could use test reports and helpful feedback on their modules and distributions.
If you'd like to get involved, please take a look at the CPAN Testers Wiki, where you can learn how to install and configure one of the recommended smoke tools.
For further help and advice, please subscribe to the the CPAN Testers discussion mailing list.
CPAN Testers Wiki - http://wiki.cpantesters.org CPAN Testers Discuss mailing list - http://lists.cpan.org/showlist.cgi?name=cpan-testers-discuss
There are no known bugs at the time of this release. However, if you spot a bug or are experiencing difficulties, that is not explained within the POD documentation, please send an email to firstname.lastname@example.org. However, it would help greatly if you are able to pinpoint problems or even supply a patch.
Fixes are dependent upon their severity and my availability. Should a fix not be forthcoming, please feel free to (politely) remind me.
Barbie, <email@example.com> for Miss Barbell Productions <http://www.missbarbell.co.uk>.
Copyright (C) 2008-2012 Barbie for Miss Barbell Productions. This module is free software; you can redistribute it and/or modify it under the Artistic Licence v2.