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.