Skip to content

Instantly share code, notes, and snippets.

@heapwolf
Last active December 11, 2015 10:38
Show Gist options
  • Star 12 You must be signed in to star a gist
  • Fork 2 You must be signed in to fork a gist
  • Save heapwolf/4587747 to your computer and use it in GitHub Desktop.
Save heapwolf/4587747 to your computer and use it in GitHub Desktop.
general heuristics for ranking package quality

Health

Has CI

Tests pass

Total number of breaking commits

Number of dependencies

Average age of issue

Frequency of issues fixed

Average response time of issues fixed to bugs filed

Last commit

Frequency of releases

Popularity

Number of dependent modules

Number of total downloads

Frequency of downloads

Frequency of commits

Number of contributors

Quality

Is well documented.

A markdown based README can be parsed to find headers corresponding to the man pages spec or else if there is no pattern match, a set of basic rules.

Number of Major releases

Reaching version 1.0 for node modules represents a significant milestone in stability.

Number of npm stars

When someone runs npm star <module-name> they are making a public statement about their appreciation for it.

Number of github stars

When someone stars a github repo they are making a public statement about their interest in it.

@jeresig
Copy link

jeresig commented Jan 21, 2013

Great list! I think this can be broken down into a few categories: health, popularity, and quality. They can be orthogonal to one another.

Health: # of active contributors, days since last release, days since last commit, # of open issues, avg response time to bugs.
Popularity: # of npm/github stars, frequency of downloads, # of dependent modules.
Quality: Performance (relative to similar libraries), has tests, has/passes CI, has documentation.

@SaraJo
Copy link

SaraJo commented Jan 21, 2013

Agreed, any of these metrics aren't valuable alone, but hopefully the list will give a good snapshot into the value of a module.

Any thoughts on implementation?

@heapwolf
Copy link
Author

@SaraJo implementation is easy, making sure we are implementing the right thing is the hard part ;)

@wshaver
Copy link

wshaver commented Jan 21, 2013

It seems like there should be some metric involving age of open pull requests. If the pull requests are not being dealt with in a timely fashion (pulled or denied) then it shows a stale project. Perhaps average number of day age of pull requests?

It frustrates me greatly when there are open pull requests solving critical bugs that are being ignored.

@heapwolf
Copy link
Author

@rajaraodv
Copy link

+1 this will help a lot

@clintandrewhall
Copy link

I'd love to see tests / test coverage as part of quality, however best expressed?

@heapwolf
Copy link
Author

@brucecoddington
Copy link

+1 This would be excellent for any package management

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment