nvbn / thefuck

Magnificent app which corrects your previous console command.
MIT License
85.3k stars 3.44k forks source link

The repo is dead #1466

Open cyuria opened 1 month ago

cyuria commented 1 month ago

Thefuck is one of my favourite tools, and recently I've been looking to contribute, but the project seems pretty much dead at the moment. There are a few people commenting on issues and PRs that it seems like people would be willing to help out, but nothing has really been done.

As of writing, @nvbn has disappeared (see https://github.com/nvbn/thefuck/pull/1415#issuecomment-2091471140), there are 260 open issues out of 730 total issues (with 470 closed issues) and 86 open pull requests out of 695 total.

The most recent commit was c7e7e1d, which constituted fixing readme typos and 62e0767, the commit before that, is well over a year old now. It seems like @scorphus is the most recent active maintainer, however given the time since the last merged PR and hasn't commented on any issues or PRs since. His github activity shows he was still around doing something pretty consistently up until a bit over a week ago, but hasn't done anything related to this project since the PR in January.

In #1415, there is some discussion about a maintainer (presumably @scorphus) fixing the issue and not merging the PR, however that was well after the second last commit to main, so I'm unsure what exactly is going on there. It's possibly a misunderstanding, as the latest release is from January 2022, which means somewhere around two and a half years of commits until 62e0767, none of which have been released.

If anyone knows of a maintained fork, please mention it here. If not, I might consider putting myself up for the task of maintaining the project, but ideally it would be a part of the original repo here instead of a fork. If anyone else would like to maintain the project, please volunteer yourself as I'm not entirely sold on the idea of maintaining this myself but I would like to see this project get some of the love, bugfixes and updates it deserves.

jdtogni78 commented 1 month ago

Hi @cyuria,

I stumbled on this project, the idea of this project is great, but with all the LLMs out there it makes more sense to send the errors to an llm and get it to suggest a correction instead of trying to manually create the list of corrections.

I am trying to create a LLM assisted terminal, pretty much doing a similar concept, creating a middle man for the shell in a similar way, but:

Something on the lines of https://www.warp.dev/ - but much less fancy.

I dont think I can commit to own a proper repo.

cyuria commented 1 month ago

@jdtogni78 That sounds like a great idea. I myself personally prefer hard and fast rules, as it's more predictable. If I write a rule for, say, running a command with sudo, I know exactly when it's going to trigger and exactly what the output is.

This isn't to say there isn't a place for LLMs, I just prefer something more predictable. I think there have been a couple issues here with requests for AI integration and maybe even a PR, although I don't have them on hand.

While you say you don't want to own the repo, I do think it's a good idea and if you want to do it, you should just start writing the code now. My advice is to not feel pressured to maintain a repo and instead just do what you feel like. If your repo gains enough traction, there will be people willing to take on maintenance.

I myself don't have any experience working with AI integration code, so I don't think I can commit to something like what you're describing either, but maybe sometime in the future? Either way, I'd encourage you to just start writing code now and worry about other people later. OSS is inherently unselfish, and you as a developer have absolutely no obligation (be it moral or otherwise) to do what anyone else says or expects.

To use thefuck as an example, @nvbn hasn't been seen in a long time. I find it a shame that such an excellent repo has pretty much died out, but there's nothing I can really do about it. I don't blame nvbn either, I'm thankful that he made the project in the first place. If you want to write your own tool, go ahead. By writing OSS code, you aren't promising anything other than the legal rights to use and modify the stuff you wrote, meaning you can just up and leave like nvbn and people will (or should anyway) be thankful for the work you've already put in.

This is really all just to say "start writing the code now and everything else can come later".

jdtogni78 commented 1 month ago

Indeed a shame. My repo is a POC, I just uploaded a mov to showcase the idea - https://github.com/jdtogni78/ai_term/blob/main/README.md

rpdelaney commented 1 month ago

How does one adopt an orphaned project in this state? Is it possible? 🤔

cj81499 commented 1 month ago

I've started working on my own take on https://github.com/nvbn/thefuck.

I'm planning to call it oopsie. There's nothing public yet, but I'll post here once I have something I'm ready to share.

I'm thinking it'll use a plugin system (likely pluggy, although I need to spend some more time familiarizing myself with it) so that it's easy to write and share 3rd-party "Rules" (thefuck's term. For now, oopsie calls them SuggestionProviders.).

It'll likely support just zsh (and maybe bash?) on macOS and Linux at release (since that's all I use regularly), but I'd be open to contributions that add support for other shells/OSes.

rpdelaney commented 1 month ago

@cj81499 I think you used the wrong link?

cj81499 commented 1 month ago

I did not, although I can see how my comment wasn't perfectly clear.

To clarify: I have started working on my own solution to the problem that this project (thefuck) aims to solve (suggesting fixes to your last CLI command). My project (which is called oopsie) is not shared publicly yet. I will share the repo publicly here once I've made a bit more progress.

rpdelaney commented 1 month ago

Alright. Given the amount of reach this project has, I feel like it should be resurrected if at all possible.

cj81499 commented 1 month ago

I feel like it should be resurrected if at all possible.

I hear that. Unfortunately, I'm not aware of a way to "adopt an orphaned project" unless the author/maintainer transfers it to someone else.

Afaik, the best you can do is fork or rewrite. Personally, I decided I'd prefer to rewrite.


If oopsie grows to become popular and have contributors other than me, I'll happily move it to an org (either its own or perhaps https://github.com/jazzband) so that I'm not a single point of failure (like nvbn is/was 😢).

rpdelaney commented 1 month ago

@mbridon Responding to your comment here, you wrote:

Well, I guess the original author @nvbn seems to have disappeared, so all it would take is for someone to fork the repo and merge this PR and then assume maintenance of the project.

I won't do it for health reasons, so if someone who commented on this PR wants to have a go at it then go ahead. 🤷

And when @nvbn comes back eventually, assume joint maintenance all together.

Free Software sometimes loses maintainers and find new ones, that's how it sometimes evolves and continues.

This repo already has some ~3400 forks on Github alone. Can you offer any insight into how one fork might distinguish itself as the continuation? (To be clear, this is not a rhetorical question; I know this must not be the first time it was accomplished, but I don't know how.)

cyuria commented 1 month ago

@rpdelaney Off the top of my head, https://github.com/pygame-community/pygame-ce is a fork at a similar scale. IIRC the repo owner had some philosophical issues with a lot of the devs so most of them split off. Regardless, it's pretty distinguished in its own right due to having more features and better performance in general.

I think the main distinction for a continuation would be having most or many of the original devs working on the same fork.