CPANTS Quality Goals

From Perl QA
Jump to: navigation, search

This is currently a brainstorming page intended to categorize existing CPANTS metrics and expose areas where new metrics may be desirable. Existing metrics are named in bold. Other metrics are just ideas.

Contents

Goals

Software should have high quality:

  • should be easy to install
  • license should be clear
  • purpose should be clear
  • status should be clear
  • interface should be documented
  • documentation should be readable
  • should behave as expected
  • should behave as documented
  • should not interfere with unrelated software
  • should perform a useful purpose
  • should be maintainable
  • should be performant
  • code should conform to a standard
  • should have a stable public interface

Open source software should maximize usability:

  • license should be liberal
  • code should be readable
  • should be published
  • maintainer should be open to suggestions for improvement

Sub-goals

should be easy to install

license should be clear

  • has_license (data available now!)
  • has a LICENSE or COPYING or etc file
  • license is of known type

purpose should be clear

status should be clear

interface should be documented

documentation should be readable

should behave as expected

  • has_tests
  • compiles ok
  • has good code coverage in tests

should behave as documented

should not interfere with unrelated software

  • uses @EXPORT_OK or nothing
  • does not set variables in other packages

should perform a useful purpose

  • is_prereq
  • cpanratings.perl.org (risk of increasing the number of spurious ratings)

should be maintainable

  • is pure Perl
  • is portable
  • declares a minimum Perl version

should be performant

code should conform to a standard

should have a stable public interface

  • version is >= 1.0
  • after 1.0, subroutine signatures have not changed without a major version change

license should be liberal

  • license is same as Perl

code should be readable

  • uses Perl::Critic

should be published

  • is released on CPAN

maintainer should be open to suggestions for improvement

  • RT is active
  • source code repository is public
  • forum url
  • code has been updated in the last year
  • has an Author section in the documentation
  • Changelog or docs credits contributors
Personal tools