Skip to content

Add gem "health" measurements #107

@svdasein

Description

@svdasein

I think it's coming to be the case that just counting downloads is not really sufficient to describe "best" any more. As time has gone by quite a lot of gems have become "abandonware" or close to it. If you're looking only at download counts you run the risk of emphasizing "dead wood" when there may in fact be better solutions emerging - and if your audience is big enough you might actually end slowing down new initiatives.

I loaded all the rubygems with just "last version" data into elasticsearch to investigate this.

Here's what the distribution of "last version published" looks like over the last 13 years:

image

If you look at 2013-2019 you'll find over 130k projects - meaning that of the 166k+ projects out there, the vast majority had work on them stop by 2019

image

Since Jan 1 2019 we see ~35k projects:

image

Projects with new work in the last year number 16k.

If you're coming in "fresh" with a new gem, bestgems has you start at the bottom of a 13 year pile of mostly abandonware. If you're mostly paying attention to bestgems and you don't tend to click through to the last page of listings for a search, the odds of you finding and getting involved with a new active project are quite low. Given that, it's likely to take a very very long time for a new effort with an actively engaged developer to be noticed.

bestgems does mitigate this somewhat with the daily and featured rankings, but even with those it takes a significant mass of downloads to start registering.

I think bestgems could help fledgling and unnoticed-but-good projects by doing a few things:

  • allow filtering by earliest date of last version
  • sorting or biasing ranking by
    • number of versions (more is better)
    • percentage of project URIs that are still valid (low is worse). This is hard to do but almost certainly would provide a valuable bias.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions