I’ve been there, but over the years I’ve gotten better at avoiding being in this situation.
If you are implementing something for yourself, and merging it back upstream is just a bonus, then by all means jump straight to implementing.
However, it’s emotionally draining to implement something and arrive at something you’re proud of only to have it ignored. So do that legwork upfront. File a feature request, open a discussion, join their dev chat - whatever it is, make sure what you want to do is valued and will be welcomed into the project before you start on it. They might even nudge you in a direction that you hadn’t considered before you started.
Be a responsible dev and communicate before you do the work.
Over the holidays, I had a good back and forth with the maintainer of a project that I started using. The documentation needed updating and created a PR.
Then I went almost 10 comment rounds on why it was necessary, why I wrote it the way I did, and all this bullshit.
I just left it saying "merge it or whatever. I'm moving on."
Somebody please fork reprepro, there's a super useful bugfix in one and a super useful feature in the other but I want both.
The bugfix is the zstd decompression-cancel race condition bug and the feature is multiple versions per package but they're both super stale.
Maybe...
Maybe I can fork it...
And this is why I don't contribute. Or at least I'll ask a question about whether or not something would be a desired feature and if I don't get a clear yes or no by someone who can actually approve a PR, I. ain't. coding. shit.
Fair enough, but as someone who has worked closely with the Decky Loader maintainers and contributed my own stand alone plugin I get it. We basically all have day jobs as devs and it can be mentally taxing to do more PRs at home. Not to mention sometimes there's just not enough time in the day, and I don't even have kids.
Maintainers are ultimately volunteers doing work with hundreds of dollars an hour for free. I've had some PRs take 20+ days to be looked at, it's just how it goes.
You're framing this as if it were something unusual. Unsolicited PRs are a no-go in my opinion. It's just basic communication and collaboration to align with the maintainers whether a change is actually required or not.
It is a bit sad that reviewing takes a long time. I have had the same thing for a project, someone on the team pings someone to do a review, 2 years later you get a review saying you should rebase because the PR is too old. I get why; it takes people and time to review. It is sad though.
If that's happening to you that's crazy. GitHub is way too noisy though. I get 30 notifications on that apps notification widget though for just bullshit I didn't even know I signed up for or snyk or some other garbage.