#-----------------------------------------------------------------
# TODO Module-CPANTS-Analyse
# $Rev: 409 $
# $Date: 2006-09-14 19:42:31 +0200 (Thu, 14 Sep 2006) $ 
#-----------------------------------------------------------------


#-----------------------------------------------------------------
# BUGS
#-----------------------------------------------------------------

Robert 'phaylon' Sedlacek <phaylon@dunkelheit.at>
  Meldung, dass 'has_proper_version' nicht bestanden wird.     

http://rt.cpan.org/Ticket/Display.html?id=21370
  Win32 test fail:  analyse.t, analyse_afs.t, calc.t, testfile.t

Moose and MooseX turn on strict, so count Moose[X] as use_strict

#-----------------------------------------------------------------
# New Metrics
#-----------------------------------------------------------------

- no_boilerplate
- has_valid_filenames
- declares_dependencies
- no_open_bugs
- no_old_open_bugs  (older than a year?)


- Signature checking ?
- has_rating ?
- relation of subs to lines of code ?

- easily_repackagable
- easily_repackagable_by_debian
- easily_repackagable_by_fedora
  on http://www.perlfoundation.org/perl5/index.cgi?cpan_packaging
  there are guidelines for module authors to make their modules easily
  repackagable by downstream distros.
  It  would be great if we could add as many to CPANTS as possible.
  Some we can check without executing code.
  Others might be verified by the CPAN Testers, reported by the tools
  and then collected from the reports by CPANTS.

- version_number_is_sane
  There are several issues here: 
  1) Is the version number sane for perl (I think there is a metric already)
  2) Is the version number sane for Debian/RedHat (they have different meaning of sane)
  3) Is the scheme of the version numbers stable? (In Debian they don't like when ppl are
     changing from D.DD to a D.D scheme or vice versa.

  1.1.1 is not considered correct by MakeMaker but it is currently accepted by CPANTS
  http://cpants.perl.org/dist/kwalitee/Sys-HostIP
  http://www.nntp.perl.org/group/perl.qa/2007/12/msg10025.html

- has_same_version_number_in_all_files ???
  Some people will argue that when one of the files does not change, there is no
  need to change its version number. So this might not be a good metric.

- no_bugs_in_debian
- has_patches_in_debian
- no_bugs_in_freebsd
- has_patches_in_freebsd
  The Debian and FreeBSD ppl will provide the interface for this -probably a csv file
  that can be fetched using http.

  This should be (an optional?) negative metric in case the module is
  included in FreeBSD or Debian but it had to be patched. 
  (Maybe we need to make sure that we set this negative metric only when the 
   module versions are the same so we won't penalize a module because XYZ
  has not yet integrated the newer version that possibly already includes 
  the patch.
- We might even have an optional metric to show that 
  "the latest version of the module is included in Debian/FreeBSD etc".
  This will be lost every time a new version of a module is released but
  over time it will become ok again.

  (in xt/ or in t/ and the same file has RELEASE_TESTING   in it)

- has_no_indirect_code
  Check the source code (and/or) the documentation if you see 
  new Module::Name anywhere mark the metric as failed.


- all_links_in_the_documentation_still_exist

- declares_minimal_version_of_perl
  It has "use N" somewhere in the Makefile.PL and/or Build.PL and/or the source code.
  (and they match to each other :-)
  (No specific N should be required)

- "something about has good perl code"
  (e.g. if uses 3 param open but does not say use perl 5.6 or similar)


- has_humanreadable_license
  the actual name of the license (perl, etc.) is in the database, use it 
    Module::License::Report  integration
    (though I am not sure if that should mean the main .pm
        file only or all the files or what)
- licenses_are_consistent

#-----------------------------------------------------------------
# Other Stuff 
#-----------------------------------------------------------------

- include more dists in test (for better test coverage)

- improve NeedsCompiler (see its TODO)

- Perl Critic report:
  As this is not really in the consensus probably it is better not add it as 
  a metric now but it might be nice to run it on each module 
  (starting at leevel 5 ) and display it along with the metrics.
  Maybe it can be added as an optional metric.




- http://cpants.perl.org/author/search should also work on partial names
  adding % % automatically (or at least tell the users on the search page to
  use % as widecards.

- create stats (or metrics) for distros that were uploaded recently with failing metrics.
  e.g. the fact that 9920 Distributions failing 'metayml_has_license' is skewed by the
  many modules that were not updated in the past 1-2 years. It would be more important
  to see the number of modules uploaded in the last year without metayml of without license
  field in the metayaml.

- Export the kwalitee of each distro in a csv file like so it can be easily integrated into
  other web sites such as the search engines.

- Export the kwalitee of each distro in a csv file like so it can be easily integrated into
  other web sites such as the search engines.

