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

[edit] 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

[edit] Sub-goals

[edit] should be easy to install

[edit] license should be clear

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

[edit] purpose should be clear

[edit] status should be clear

[edit] interface should be documented

[edit] documentation should be readable

[edit] should behave as expected

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

[edit] should behave as documented

[edit] should not interfere with unrelated software

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

[edit] should perform a useful purpose

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

[edit] should be maintainable

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

[edit] should be performant

[edit] code should conform to a standard

[edit] should have a stable public interface

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

[edit] license should be liberal

  • license is same as Perl

[edit] code should be readable

  • uses Perl::Critic

[edit] should be published

  • is released on CPAN

[edit] 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
Mongers