5 ms·
Fork Freshness: Project lifespans in the Ruby ecosystem
- throwaway81523 5y agoThis should be called something involving "farm to fork".
- TheFreim 5y agoIs there a reason this requires a Twitter account? Seems like something I'd like to use but I don't have Twitter.
- FastEatSlow 5y agoThe article mentions it in the section "How It Works: UI"
- pmontra 5y agoI do have a Twitter account, basically so nobody else can create one with my usual handle, and never use it. I don't see why I should let Twitter know that I'm using this service. Furthermore I should log into Twitter in a browser tab and go there to check if the result arrived. On the other side I understand that it's hard to find a convenient asynchronous delivery mechanism. Email is what everybody has but it's hard to send thousands of emails for free and not to get into a spam list.
- unityByFreedom 5y agoThe author says it's too slow and works better as an asynchronous request. They also write something about rails' "User" object being unwieldy, whatever that is. That still doesn't explain the Twitter dependency. It could just be an attempt to get popular and share the tool at the same time.
- strken 5y agoI sympathise with this a lot. It's tempting to say "oh just use ActiveJob, and a CAPTCHA to stop bots, and Devise for auth, and MailChimp to let users know it's completed, and build a UI for submitting new jobs, and also for viewing pending and completed jobs", but all those little things add up.
- unityByFreedom 5y agoSolve the bot problem when you get too popular, don't preemptively make it harder for people to try out your site.
- blendergeek 5y agoDoes this product find forks that don't use Github's "fork" feature?
- jccalhoun 5y agoI ran across this site a few years ago and I've used it since then to find active forks: https://techgaun.github.io/active-forks/index.html https://techgaun.github.io/active-forks/index.html
- unityByFreedom 5y agoNice. I wonder whether the posted tool offers any more data since this tool is instantaneous and the posted one is slow. It would be great to know, for example, "commits ahead of". EDIT: found a few! [1] is easiest to use. For [2] you need to give it a github access token. [1] https://stackoverflow.com/questions/54868988/how-to-determine-which-forks-on-github-are-ahead/68335748#68335748 https://stackoverflow.com/questions/54868988/how-to-determin... [2] https://github.com/dragongling/Better-Github-Forks https://github.com/dragongling/Better-Github-Forks
- tessierashpool 5y agoit does! although the reason I use a different strategy is not for more data, but for better data. see this comment: https://news.ycombinator.com/item?id=28984305 https://news.ycombinator.com/item?id=28984305
- unityByFreedom 5y agoI think "commits ahead" and "commits behind" are more useful in ascertaining active forks than the most recent push time.
- phreack 5y agoI usually just use https://techgaun.github.io/active-forks/index.html https://techgaun.github.io/active-forks/index.html Any chance this could be made not to rely on Twitter?
- unityByFreedom 5y agoI like this bookmarklet [1] that shows how many commits ahead/behind each fork is. There's also this extension [2] but you need to give it your own github access token. [1] https://stackoverflow.com/questions/54868988/how-to-determine-which-forks-on-github-are-ahead/68335748#68335748 https://stackoverflow.com/questions/54868988/how-to-determin... [2] https://github.com/dragongling/Better-Github-Forks https://github.com/dragongling/Better-Github-Forks
- tessierashpool 5y agohi! I made Fork Freshness. that alternative is much faster, but it relies on the `pushed_at` attribute from the GitHub REST API. I was unable to find documentation for that attribute, but I rejected the GraphQL equivalent, `pushedAt`, because if Dependabot pushes to an otherwise dead repo with a PR to auto-update some dependency, `pushedAt` treats that as recent work. I didn't want to write a robot which chased another robot around in a circle, so Fork Freshness instead uses its own much more labor-intensive system. it's much slower, but I believe it's also more accurate. I wrote that up here, in a fairly gigantic blog post: https://gilesbowkett.com/blog/2021/08/15/fork-freshness-project-lifespans-in-the-ruby-ecosystem/ https://gilesbowkett.com/blog/2021/08/15/fork-freshness-proj... that blog post also explains why I based the UI around Twitter. TLDR: fun experiment. re the question of making the UI work in a different way, TLDR: maybe. part of the experiment was just to see how far I could get without creating a User model. but since Fork Freshness does a relatively slow analysis, I wanted to use an asynchronous UI. I'm not married to it, though, I could see good arguments for setting it up to work differently. edit: btw, thanks for the discussion re my project! I'm late for a concert and travelling tomorrow morning but I can't wait to dig into these comments some more.
- unityByFreedom 5y ago> I wrote that up here, in a fairly gigantic blog post: That blog post is the same link for this thread. > without creating a User model A User model isn't necessary if you don't require login to use your tool.
- joshuanapoli 5y agoFork Freshness is poking at an important problem. If the author of an open source project stops responding, then there is usually no obvious way for the project's community to reorganize or recognize a new leader or a replacement for the project. I agree with other commenters; I really don't want to talk about my dependencies on twitter to this bot.
- tessierashpool 5y agoauthor here! maybe I'll cave and just set up a regular UI. email might work also.
- abathur 5y agonot entirely on-topic, but you're picking at another tendril of what https://adoptoposs.org https://adoptoposs.org is picking at
- deleted 5y ago[deleted]
- bullfightonmars 5y agoThis might also be a great way for the original creator to identify that people still find their software useful. It might help in handing off the project to an active community.
- tessierashpool 5y agoyeah, that's an explicit goal: to surface the implicit/nascent open source communities that are already coalescing around projects. if a bunch of people all agree that it's worthwhile to keep a particular project alive, and they're doing the work to make it happen, then they have something in common, and it should be easy for them to meet each other.
- exciteabletom 5y agoThis problem could be solved if Github simply sorted the list of forks by stars instead of alphabetically.
- oezi 5y agoThat is a good idea but they actually also should do: - hide any repo that hasn't seen any commits - show commits ahead and behind as well as number of tags - include issue tracker activity - highlight those forks that were renamed which is often an indicator of a new package/gem being released from this fork - Show a link from the main page of a repository to the most active fork to make it clear that there is an active fork at all.
- zxcvbn4038 5y agoMore active repos don't necessarily have more stars, maybe a better way to sort would be to have main repo followed by number of commits ahead, then number of commits behind. Most often what I find is a repo will have 3-5 dozen forks and the vast majority will either be far behind or have one or two localizations. It is very rare that I find something that someone has really forked and started doing active development on.
- trinovantes 5y agoI think sorting forks by most recent commit would good enough. Not sure why GitHub doesn't do more to help with discoverability
- tessierashpool 5y agoI wholeheartedly agree with this. I think it's just a blind spot they have, although back in the day a GitHubber told me it was also about maintaining an agnostic approach to governance. btw, iirc GitLab does give you the option of sorting by most recent commit.
- bredren 5y agoRepo abandonment is a problem compounded by gaps in assignment of package publishing rights. Recently, I helped a maintainer get a PEP 541 request done after a year of people intermittently pleading with the owner to do a release. It took pypi’s direct communication of potential reassignment for the owner to respond and they did so within two hours. Not every package has a willing maintainer to back up an owner like this. So finding forks that have sufficiently merged PRs or have even gone off to do new work can be valuable to avoid duplication. I’ve done this kind of girl research manually before, searching for something that goes the furthest and seems the most professional. I’d like to see this tool integrate directly into the GitHub forks page, though, ideally as a browser extension.
- Igelau 5y ago> I’ve done this kind of girl research manually before, searching for something that goes the furthest and seems the most professional. You done what now?
- ronsor 5y agoPresumably the poster means "grunt"
- paulryanrogers 5y agoSwipe typos have made detection more complex.
- bredren 5y agoI think it was “fork,” which is very close to “girl” in swipe. You’re right it was likely a swipe typo. I’ve transitioned to swipe typing about 70% of the time. Hadn’t done it at all until a few months ago. Not sure how I waited so long to start using it, or if I’m more productive typing using it now.
- Igelau 5y ago
- thomzane 5y agoIs there a repository for Fork Freshness? I could see the twitter account ignoring requests in the future and the same fate could fall to this project. I would recommend releasing the project under AGPL-3.0-or-later to partially solve this issue so the project can continue in the event of abandonment. I could see people contributing code to search for projects in other known forges such as GitLab, Sourceforge, Savannah, Gitea, pagure, and sourcehut as sometimes projects are forked outside of the original forge. I have noticed this issue that Fork Freshness tries to solve. My example is Twitter's project murder https://github.com/lg/murder https://github.com/lg/murder When a project becomes unmaintained whether officially or unofficially, the future home is often lost unless the original points to the new home at the top of the README file. You can dig within GitHub in the Insights > Network section to get a visual glimpse of what has changed since. https://github.com/lg/murder/network https://github.com/lg/murder/network The original repository put up a notice that the project is unmaintained and archived the project which effectively ends the project in practice. In this case, ervinb's fork seems to be the most active commits before being abandoned. https://github.com/ervinb/murder https://github.com/ervinb/murder Other forks also had independent commits that never were pulled into other projects. Looking at the network method fails to differentiate 30 grammar fixes from 30 new features without digging into each promising looking fork. Even then, you may miss a single commit that included more work then the entirety of the other commits. Disclosure: I have not worked on murder. This is a serious problem and I hope we solve it.