NAME
MyCPAN::App::DPAN::Reporter::Minimal - Save the minimum information that dpan needs
SYNOPSIS
Use this in the dpan
config by specifying it as the reporter class:
# in dpan.config
reporter_class MyCPAN::App::DPAN::Reporter::Minimal
DESCRIPTION
This class takes the result of examining a distribution and saves only the information that dpan needs to create the PAUSE index files. It's a very small text file with virtually no processing overhead compared to YAML.
Methods
- get_reporter
-
get_reporter
sets thereporter
key in the notes. The value is a code reference that takes the information collected about a distribution and dumps it as a YAML file.See MyCPAN::Indexer::Tutorial for details about what
get_reporter
expects and should do.If
relative_paths_in_report
is true, the reports removes the base path up to author/id. - get_report_file_extension
-
Returns the extension for report files.
- get_collator
-
This Reporter class also implements its Collator since the two are coupled by the report format. It's a wrapper around
final_words
, which previously did the same thing. - final_words
-
Runs after all the reporting for all distributions has finished. This creates a
CPAN::PackageDetails
object and stores it as thepackage_details
notes. It store the list of directories that need fresh CHECKSUMS files in thedirs_needing_checksums
note.The checksums and index file creation are split across two steps so that
dpan
has a chance to do something between the analysis and their creation. - get_latest_module_reports
-
Return the list of interesting reports for this indexing run. This re-runs the queuer to get the final list of distributions in dpan_dir (some things might have moved around), gets the reports for
- create_index_files
-
Creates the 02packages.details.txt.gz and 03modlist.txt.gz files. If there is a problem, it logs a fatal message and returns nothing. If everything works, it returns true.
It initially creates the 02packages.details.txt.gz as a temporary file. Before it moves it to its final name, it checks the file with
CPAN::PackageDetails::check_file
to ensure it is valid. If it isn't, it stops the process. - skip_package( PACKAGE )
-
Returns true if the indexer should ignore PACKAGE.
By default, this skips the Perl special packages specified by the ignore_packages configuration. By default, ignore packages is:
main MY MM DB bytes DynaLoader
To set a different list, configure ignore_packages with a space separated list of packages to ignore:
ignore_packages main Foo Bar::Baz Test
Note that this only ignores those exact packages. You can't configure this with regex or wildcards (yet).
- create_package_details
-
Not yet implemented. Otehr code needs to be refactored and show up here.
- create_modlist
-
If a modules/03modlist.data.gz does not already exist, this creates a placeholder which defines the CPAN::Modulelist package and the method
data
in that package. Thedata
method returns an empty hash reference. - update_whois
-
00whois.xml 01mailrc.txt.gz
-
Walk the repository and extract all of the actual authors in the repo.
- update_01mailrc
-
Ensure that every PAUSE ID that's in the repository shows up in the authors/01mailrc.txt.gz file. Any new IDs show up with the name from the
pause_full_name
configuration.TO DO: offer a way to configure multiple new IDs
- update_00whois
-
Ensure that every PAUSE ID that's in the repository shows up in the authors/00whois.xml file. Any new IDs show up with the name from the
pause_full_name
configuration. - create_checksums
-
Creates the CHECKSUMS file that goes in each author directory in CPAN. This is mostly a wrapper around CPAN::Checksums since that already handles updating an entire tree. We just do a little logging.
TO DO
How much time do you have?
SOURCE AVAILABILITY
This code is in Github:
git://github.com/briandfoy/mycpan-app-dpan.git
AUTHOR
brian d foy, <bdfoy@cpan.org>
COPYRIGHT AND LICENSE
Copyright © 2009-2018, brian d foy <bdfoy@cpan.org>. All rights reserved.
You may redistribute this under the terms of the Artistic License 2.0.