I found a great project on github with a useful central feature but which is rough in the "polishing" of error handling, logging, config, and setup. The project is 5 years untouched, and only a couple hundred lines of code. Still it's useful enough to have brought itself attention for a decent number of watchers and a handful of forks.
A specific addition was required for my use, but before that I did some cleanup. Then I got a little engineer-obsessed and over the course of a week I ended up adding a logging system, lots of logging, an automated setup, configuration factored out of the code and into external configuration files (and code to read them), plus a couple bugfixes just as I found them.
I do think all of my changes are reasonable/good and are what it needs to be usable by an audience. But there are a lot of commits, nearly as many as the repo originally had (avoiding numbers to keep this general). Furthermore, git blame shows I've touched almost every line of this (small!) codebase. I'm not seeking control of the project, or even necessarily any credit for what I've done. But given the choice I would like to see my changes merged so that everyone can benefit from them, rather than hiding in a fork on my unknown github.
I've never submitted a pull request before but I know they should be small and easy to review. Yet here I have gone off and made a large amount of transformative changes.
My commits are very clean as I tended to history carefully throughout. But they would be hard to separate into multiple branches/pull requests because much of it necessarily builds on itself. For example the config externalization is built on some preparatory cleanup, and the setup exists in part to populate those configs, the logging is enabled and configured by the external configs created in the setup, etc. That being said I'm am very willing to do what I can to make this huge pill more palatable, I just don't know what that would be. I could split out a couple commits but the big overhaul is still big.
So what is one to do if they accidentally overhaul someone's project?
Should I just learn my lesson not to do this and keep my changes to myself in my fork? Should I just make a pull request and see what happens? Should I expend a bunch of words explaining myself in the description? Should I present it in a certain way?