And something to keep in mind: if you're comparing two projects, you should pay attention to which project is older. If I see a fork or a newer project that has almost as many stars as a much older project, that is a very positive indicator to me, since it means that people are actively deciding to go with the newer project.
However I put more weight on the number of issues a project has. If there are a lot of stars but not many issues, that could indicate a project that isn't really used that widely, or actively.
However, if it has a lot of issues that means it's a popular project with a lot of users that are actively working on making it better.
I try my best, at minimum, to star anything I use on github as a way of supporting it , and in addition to other factors you mention, take this number as an indication of the likelihood it will continue to be developed.
Some discounting and adjustment sometimes needs to be done for projects that managed to get on the front-page for something 'cool', but then that's where the other factors help.
From the giving standpoint, people read too much into the meaning of individuals starring repos. Employee for $CORP starring a repo just means that person felt compelled to star the repo, and has no broader implication that $CORP is using the project in question. Maintainers behind the repo sometimes construe that as a company endorsement, and in some cases use that as the basis for including logos in marketing material.
From the interpretation side, the statistic itself is subject to gamification. There used to be a website where you could essentially "buy stars", ultimately calling into question any sort of usage-based signaling.
From the maintainer side, GitHub stars are basically the equivalent of likes and retweets. There's no magical bank that we can go to exchange GitHub stars for dollars. While it is certainly exciting to see major thresholds crossed, the prospect of receiving extra stars does not usually compel people to put more time and energy into a project.
(full disclosure: our largest open source project https://github.com/SheetJS/js-xlsx/ has over 10K stars and the perceived popularity certainly is surprising for a seemingly niche project)
I think of it as similar to the # of citations that an academic paper has - genius can remain ignored and undiscovered, but overall the citation count has embedded in it a whole series of factors that correlate to "should I bother reading this".
Ironically before citing a paper that studied this very thing, I checked many citations it had :)
E.g. I treat stars as bookmarks: I star everything I come across that seems somewhat related to my interests, but isn't relevant right now. In the vast majority of cases, I at best have skimmed the readme. If I'm looking deeply into something, I might even be more likely to not star it.
This conflation of purposes means a lot of noise in the signal you can get out of it. It's some kind of popularity metric, but not a clearly defined one.
I don't understand how these are correlated. Do you mean that it's likely that one of the starrers will fork it if the original project team disappears?
There are much stronger metrics for whether a project is likely to be maintained in the future. The problem with stars isn't that it's a metric, it's that it's a bad metric.
I am way more interested in how active the community is supporting the project than any popularity contest.
A recent example: I saw an advertisement on the freeway for some tire brand I've never heard of, with the quote "The most liked tire page on Facebook." What does liking (or in the case of staring something) have to do with the quality of the project, especially when liking/staring takes so little effort?
There are many factors, "stars" among the more important and obvious ones. It indicates that this project was popular at one time for one reason or another. There's not enough info in the "stars" alone to draw any more conclusions without looking at other factors (although I am biased and favor a project with a lot of stars without looking at any other factors).
Other factors that I will consider:
* How old is the last commit? (is this actively maintained)
* How many contributors? (have multiple developers reviewed and worked on this code base)
* How many open issues (vs how many closed issues)?
* When was the last issue resolved? (also actively maintained)
* Are there CI tests built in and are they passing?
* Is there test coverage reported and is it acceptable?
I'll also:
* read through a few issues, make sure no one is saying "This does not build" etc.
* scroll through some of the dependencies (badges can help by indicating if the dependencies are out of date).
Number of users of a package seems like a better metric than number of people who "favorited" something through the stars feature.
Would be really cool if github provided a way to surface "number of users" or "number of downloads" data in a way that it could be used to rank github search results [1].
For example https://github.com/ochinchina/supervisord
https://go-search.org/search?q=supervisord
I guess we can say that while it'd be a useful metric, clearly not in all cases :)
I look first at whether the project solves my problem within my constraints. Then I look at who is involved, what is their commitment level to the project (if it matters), and how they seem to be handling issues and PRs. Then I do a quick scan of the code to see if it’s reasonable, look at dependencies, etc.
Then I test it out.
If I’m weighing it against other projects, I usually do a back-of-the-envelope muscow type analysis and comparison and weight them based on my proclivities.
General popularity? Not usually a big factor unless it seems like the project might get abandoned (if that even matters).
What percentage of people star repo's where they like the idea but never get pass the Readme....thinking they'll come back to it but never unstar it.
What about people who star something, try it and decided it's not very good and will keep it starred to see how it evolves...
Think Netty or Guava vs MyCollegeDataStructureLibrary
I never star repos myself so I suspect stars don't represent real endorsement. But using people using a library is.
I naively believe that there are many others like me and it helps me determine which projects are "I actually use this" vs "I starred this because it's the cool thing to do/use".
Edit: another couple I forgot was # of issues (and what those issues are ie. bugs vs feature requests), and types of PRs open
This past weekend, while trying to choose a JS framework for a webapp, stars played a decent role in my choice when it came down to two that seemed to have similar features and comparable commit activity. One project has ~200 stars, while the other had ~13,000, which definitely helped push me toward the latter.
That said, I'm certainly not put off by or dismiss project with few or no stars, it just means that I'll look slightly deeper before making an assessment.
https://github.com/cloudflare/ahocorasick - 285 stars. https://github.com/anknown/ahocorasick - 70 stars
Anknown's implementation is more than 10x faster than CloudFlare's, and typically uses 10% of the memory!
1. A reasonably release cadence of packages (APT/PPA/RPM).
2. A well defined release cycle with a sane download path (for tarballs).
3. Obvious community support by way of GitHub stars, pull requests, issues.
That said, in the traditional adoption curve, I am somewhere between 'late majority' and 'laggard'. Mostly because I don't have time to evaluate most things.
I wouldn't be comfortable inferring much about adoption from number of stars, based on my own starring behavior, which is often "this seems cool, maybe I'll look into it more deeply later".
I may star both repos in case an issue comes up and I need to try something else. I use stars to “save” repos so I can find them later if I forget the names.
I am a bootstrapped founder and I find this to be the quickest approach.
Anything else is pretty meaningless.
Both stars and github forks are the same for me. A tiny metric used to indicate how interesting a project is to the general masses. This is useful data, it's just not all that important.
elif stars < 10: Probably shared with some friends or tweeted.
elif stars < 1000: Probably announced officially, shared on some news aggregators, maybe there's a blog post about it.
elif stars < 10000: Probably pushed by a funded company or a tech celeb.
elif stars < 100000: Probably a meme.
else: Probably a bug in Github.
If there's no stars, I might still investigate, but it's likely unusable.
1. Quality
2. Maintenance
3. Adoption
Github stars imply #3 adoption, moreso I believe than raw download stats.
It doesn't tell you the quality or maintenance of the project. It tells you how large the community is, and what you can expect on eyeballs, public Q/A forums, etc.
Maybe it's the way it's placed on screen that makes it so easy to overlook for me...
More interesting is what uses it (if it is a library), when the last commit was, and is there any old issues with no updates from owners.
documentation over everything, followed by using a rough mental calculation of open issues and recency of commits.