GitHub Contributions – How to Contribute to Abandoned Projects

githubopen source

I've recently been trying to get into open source collaboration in GitHub and have run into a situation for which I am curious what is the preferred way to proceed.

About a month ago, I found a project on GitHub for a library that I had already been using for a while and in which I had found (and fixed) a few bugs.

As an initial foray into GitHub collaboration, I found the repo that seemed to have the highest volume of recent activity, fixed one bug, added unit tests, pushed up to GitHub, and made a pull request. Within a few hours, the maintainer of the repo that I forked had accepted the PR and merged in a few other PRs from other people that had been waiting as well.

Spurred on by this, I fixed three more bugs that I had found, each in a separate branch of my own repo, and filed an issue and pull request for each one separately.

That was just over a month ago, and the pull requests have been sitting there, untouched, ever since. The user whose repo I had forked doesn't seem to be very active, having only made 7 total contributions on GitHub in the past year, and that repo hasn't had any commits since that first pull request I made.

So my question:

How does one proceed in this situation? Ideally, I would like to avoid creating fragmentation of the library by going off and making a whole bunch of changes in my own repo that are not merged into the parent repo. Nonetheless, I would like to continue making bug fixes and adding features, but if I merge everything into my master branch and base all new fixes off of that branch, then if the maintainer of the repo that I forked ever does come back, I won't be able to split all of the changes into separate pull requests for each feature/bug fix (I've read that pull requests should generally be one pull request per feature or bug fix).

Should I keep one branch that is in step with the original repo, base all of my new branches off of that one, and then keep all the commits merged in my master branch? It seems like that would leave me with a whole ton of branches and an increasingly burdensome task every time I need to merge new changes into my master branch.

What is the typical way that one would approach a situation like this? It seems to be fairly common that a project will just become abandoned with the original contributors not around to review new pull requests. Is this a situation where somebody should just take up the helm and run with it? It seems like it would create fragmentation if the original contributors ever come back and want to work on the project again.

Best Answer

I haven't had this situation yet, but that's what I would try:

Try contacting the owner

Maybe they really lost interest, but are willing to transfer the project to somebody else, in particular someone who has already shown considerate commitment.

But perhaps they are just occupied with something else (work, vacations, illness, other projects) and didn't have time to handle your PR, but plan to do so later.

Or maybe they have really stopped work on the project permanently for whatever reason.

Without asking, you won't find it out.

Get in touch with the community

Surely there are other people who have contributed to, or at least used the project. Check who has forked the project (even if they haven't made any change, they might still be interested in seeing this project thriving); check who has reported issues, or commented upon them. Maybe there's also a community outside GitHub, e.g a mailing list, forum, or StackOverflow members.

I'm you eventually really take over the project, you might want their support. And they need to know where the new master repository is.

Continue to make good pull requests

This shows both the owner and the community that you are serious about it, and let's them judge your contributions.