TODO list for Perl module CPAN::Reporter

#--------------------------------------------------------------------------#
# Bugs
#--------------------------------------------------------------------------#

- Check if CPAN::Reporter is reporting under a "force X" command?  It
  probably shouldn't.  Is that a CPAN.pm change?  Or can I get it from 
  the dist object? ie. $dist->{force_update} (DAGOLDEN)

#--------------------------------------------------------------------------#
# Features, etc
#--------------------------------------------------------------------------#

# High priority

- none

# Medium priority 

- set alternate configuration file/dir via environment variable

- Add config to save reports to a file (Jerry Hedden) (RT#24816)

- Log entire history of reporting, regardless of whether a report is sent
  (David Cantrell) -- i.e. keep discards somehow ("DISCARD" just like rest 
  of subject line?)

- public API for CPAN::Reporter::History for external querying 
  (requested by Andreas; Cantrell)
    e.g CPAN::Reporter::History->have_tested( 
            dist => $dist, grade => "pass", perl_version => "$]"
        )

   "The result could be an array of hashes or light objects that
   know about all 5 (or more) constituents of a line in the history file.
   If some qualifying parameter is missing, this could be taken as ANY. I
   think this provides about everything I would ever need." -- Andreas

- prefix all messages with "CPAN::Reporter: " -- possibly write my own
  front-end to CPAN's front-end functions

- heuristics for missing library files --> discard report

- add test_timeout to CPAN.pm

# Low priority

- change report truncation to take first 25K and last 25K (summary) (?)

- figure out how to support color output from Test::Harness 3.0 -- probably
  set an environment variable to get them to pass color strings to the pipe
  and then strip color escape codes from the teed file.

- switch from a single flat file for history. e.g.
    - SDBM_File for history (key on subject line, with phase as value?
      Or key on distro name/perl with result and phase as value? ) -- but
      does it scale well?  (See MJD's article)
    - Or use sorted file with Search::Dict(?) -- (prefer this option,
      keeps search for non-existant line fast; insertion is a just a few
      block writes and a rename.) If we do this, need to put distro name
      first to make "have_tested()" easier to write
    - Use filesystem to index -- one file per distname? hash with directories
      to keep number of files/directory down?

- add timeout to prompt (RT#28034)

- Add interactive config for editor?

- Improve test coverage for utility subs and error handling

- Improve testing of prompts

- Check email addresses for validity (cf. Email::Valid, etc.)

- Other Config items like make or cc

# Probably won't implement

- send duplicate report if using "report" (?) or "force" (?)

- ability to turn on/off via an environment variable (David Cantrell)

- ability to only report on what I asked to install, not on its dependencies
  (David Cantrell)

- use environment variable and/or external file to indicate modules to 
  skip for reporting
