Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

The repo is dead #1466

Open
cyuria opened this issue Sep 8, 2024 · 24 comments
Open

The repo is dead #1466

cyuria opened this issue Sep 8, 2024 · 24 comments

Comments

@cyuria
Copy link

cyuria commented Sep 8, 2024

Maintained alternatives to thefuck:

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 #1415 (comment)), 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
Copy link

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:

  • automatically send errors to some ai agent, responses would be printed on sdtout
  • create an "askai" command that just sends the question over to the ai
  • Runs the LLM locally for privacy, but allows api setup

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
Copy link
Author

cyuria commented Sep 20, 2024

@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
Copy link

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
Copy link
Contributor

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

@cj81499
Copy link

cj81499 commented Sep 24, 2024

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
Copy link
Contributor

@cj81499 I think you used the wrong link?

@cj81499
Copy link

cj81499 commented Sep 24, 2024

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
Copy link
Contributor

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

@cj81499
Copy link

cj81499 commented Sep 24, 2024

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
Copy link
Contributor

@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
Copy link
Author

cyuria commented Sep 26, 2024

@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.

@SigmaSquadron
Copy link

There also seems to be pay-respects.

@cyuria
Copy link
Author

cyuria commented Nov 14, 2024

There also seems to be pay-respects.

At first glance this is pretty cool. I personally consider rust to be the wrong language for something like this (an interpreted language would be better IMO) and it shows in needing to recompile for adding/changing any new rules, which will seriously mess with packaging. Even with those caveats, it seems cool though and it is a maintained alternative to thefuck.

@rpdelaney
Copy link
Contributor

@cyuria I think you might have had the wrong URL in your clipboard: you gave a link to pygame-ce, which has no obvious connection to thefuck.

@cyuria
Copy link
Author

cyuria commented Dec 6, 2024

@cyuria I think you might have had the wrong URL in your clipboard: you gave a link to pygame-ce, which has no obvious connection to thefuck.

Pygame-ce is a fork similar to what I think would be good to achieve with thefuck. Sorry if I wasn't too clear about that.

@Kharakhov
Copy link

I would love for this to be maintained as well

@ppamorim
Copy link

The tool is not working properly for me, I wrote gt commit -m "Correct foo bar" and it's suggesting gtr or gtf instead of clearly git:

Screenshot 2024-12-17 at 14 11 42

Note, it's on the latest version.

@cyuria
Copy link
Author

cyuria commented Dec 18, 2024

@ppamorim this isn't necessarily the best place to post problems like this. It would be better to create a separate github issue, or even a pull request if you're familiar with python and/or willing to put some time into figuring the issue out.

@ppamorim
Copy link

ppamorim commented Dec 18, 2024

@ppamorim this isn't necessarily the best place to post problems like this. It would be better to create a separate github issue, or even a pull request if you're familiar with python and/or willing to put some time into figuring the issue out.

What's the point to do anything if the repo is dead? Comments and PRs are ignored, it's a waste of time.

@cyuria
Copy link
Author

cyuria commented Dec 18, 2024

What's the point to do anything if the repo is dead? Comments and PRs are ignored, it's a waste of time.

If the repo is ever revived, the issues will be useful. If someone chooses to fork the project, they might look through existing issues and pull requests and port them to the fork.

Furthermore, issues, PRs, etc aren't ignored. Other people like myself still look at them from time to time, it's only the maintainers who've stopped looking.

Lastly, it's really just good etiquette to not spam random issues with unrelated problems. Doing so makes you come across as not really caring and a bit of an asshole, which isn't usually conducive to getting your problem resolved.

@ppamorim
Copy link

@ppamorim this isn't necessarily the best place to post problems like this. It would be better to create a separate github issue, or even a pull request if you're familiar with python and/or willing to put some time into figuring the issue out.

Not only that, https://github.com/iffse/pay-respects appears to be a much better solution over this implementation, sadly this project in python is dead and I don't see any possibility it will get any improvement in the long run.

@ppamorim
Copy link

ppamorim commented Dec 18, 2024

What's the point to do anything if the repo is dead? Comments and PRs are ignored, it's a waste of time.

If the repo is ever revived, the issues will be useful. If someone chooses to fork the project, they might look through existing issues and pull requests and port them to the fork.

Furthermore, issues, PRs, etc aren't ignored. Other people like myself still look at them from time to time, it's only the maintainers who've stopped looking.

Lastly, it's really just good etiquette to not spam random issues with unrelated problems. Doing so makes you come across as not really caring and a bit of an asshole, which isn't usually conducive to getting your problem resolved.

I totally agree it was an asshole move from me.

I really didn't want to post that as an spam but as an warning of the library state, for me that situation appears so ridiculous it makes the library not useful at all. If I had a very specific case where the tool would generate a bad response I would open a card specific for that issue.

@ppamorim
Copy link

There also seems to be pay-respects.

At first glance this is pretty cool. I personally consider rust to be the wrong language for something like this (an interpreted language would be better IMO) and it shows in needing to recompile for adding/changing any new rules, which will seriously mess with packaging. Even with those caveats, it seems cool though and it is a maintained alternative to thefuck.

I really don't get why a interpreted language would be any better or different at all since all the rules defined there are toml files, it's a totally modular solution allowing you to add any rule without any recompilation and it's only evaluated on the parser part.

@cyuria
Copy link
Author

cyuria commented Dec 18, 2024

I really don't get why a interpreted language would be any better or different at all since all the rules defined there are toml files, it's a totally modular solution allowing you to add any rule without any recompilation and it's only evaluated on the parser part.

On second glance it looks like I misread the documentation. There are actually two types of rules and only one of them needs recompilation. I still believe an interpreted language offers more flexibility with rules, as toml isn't exactly turing complete, but I imagine for 99% of use cases that's not an issue and for the 1% you can recompile. Thanks for pointing this out to me, I'll update the original issue to add pay-respects as an alternative to thefuck.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

7 participants