useful-forks / useful-forks.github.io

Improving GitHub's Forks list discoverability through automatic filtering. The project offers an online tool and a Chrome extension.
https://useful-forks.github.io/
MIT License
1.18k stars 61 forks source link

ignore forks only having commits like "Merge pull request .. from .." #52

Closed Ethkuil closed 1 year ago

Ethkuil commented 1 year ago

Actually there are nothing difference between them and the parent repo. So it would be better if they can be ignored too.

payne911 commented 1 year ago

Mind showing an example? My understanding is that if there's an extra commit saying something was merged into master... then there is indeed new content.

Ethkuil commented 1 year ago

Mind showing an example? My understanding is that if there's an extra commit saying something was merged into master... then there is indeed new content.

Not always. For example, just sync with origin.

Actual examples are common. At random I choose a repo. I really find some useful forks, but useless forks shown are more than useful ones lol.

payne911 commented 1 year ago

I do not disagree with this as being useful, but I believe analyzing the commit message would unfortunately require an extra API call way too often (something which is already very restrictive with regards to the tool's main purpose).

Useful-forks is mostly meant to be a tool that helps you filter most of the useless stuff out so that you may do your own manual research afterward. There are tons of "rules" I could add to make it smarter, but they mostly end up being impractical because of the GitHub API rate-limit.


One imperfect work-around you may use would be to assume that all forks with only 1 commit ahead are useless. When you click the settings clog icon next to the search field, you can then modify this value:

image

Eventually, I do plan on having some kind of dynamic analysis that would make searches more useful when the amount of forks isn't very high (because then I'm not limited by the amount of API calls as much). But it's mostly a matter of time and motivation before I do end up working on that feature.

Ethkuil commented 1 year ago

I understand. And thanks for your work-around!

For me it's better to set Ahead filter 1 by default, because I have never see a useful fork with only one ahead commit. And it works great!

Ethkuil commented 1 year ago

The limit from GitHub API is really hard to overcome. This is a dilemma "more targeted" versus "more comprehensive".

And maybe we can supply choices like filter by "last updated date", "watch/star"? They can help much when the forks are really really many. In the case certainly it's a big project, therefore we have reason to raise the standard. For example, I would not believe a fork of Linux that last updated in 2020 and no stars could be useful.

payne911 commented 1 year ago

There are tons of filters that could be added. Date filter was requested in #37 for example.

For me it's better to set Ahead filter 1 by default, because I have never see a useful fork with only one ahead commit.

It's mostly been my experience as well, but I still don't think it should be default behavior.

Ethkuil commented 1 year ago

I would like to have a try for it(about pre-filters before querying commit diff and post-analysis after querying commit diff) next month, and at that time we could continue talking about the design. At least they're helpful for me.

Current idea:

payne911 commented 1 year ago

If you are interested in contributing, you might want to look at where the main interests lie. Some features are definitely more requested than others: https://github.com/useful-forks/useful-forks.github.io/issues?q=is%3Aissue+is%3Aopen+sort%3Areactions-%2B1-desc

More in-line with what you are interested in, maybe this could help orient you: https://github.com/useful-forks/useful-forks.github.io/issues/37#issuecomment-1338861337


If a fork is with only 1 commit head, check whether the commit is a merge or new content. (no idea about how to achieve this).

There are two main things you'll interact with: the GitHub API, and the Octokit library (which is the bridge to GitHub's API).

You'll also want to read through this: https://github.com/useful-forks/useful-forks.github.io#contributing