문제

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?

도움이 되었습니까?

해결책

If the project was "5 years untouched" as you wrote, it is likely that pull requests are not going to be accepted, regardless if someone fixed a typo in a comment or did a complete rewrite. The project was probably abandoned by the original authors.

The first thing I would try is to contact the authors and ask them what they think about it. If they do not respond in a reasonable amount of time, why not simply make your fork public (assuming the license allows this), add a summary about what you improved, and see what happens?

If others think your improvements are useful to them, they may prefer to use your fork as a starting project in favor of the original one. If the original author is going to revive the original project again, both of you can still decide if the original project and your fork should be merged into each other and who is going to be the future maintainer.

If the original authors show no signs of performing active maintenance, you may consider detaching your fork from the original project completely. In this case, setup your own independent repo for this. Don't forget to give credit to the original authors and make sure this is covered by the project's license.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 softwareengineering.stackexchange
scroll top