0

What action(s) are recommended in such a situation?

Here are some actions I considered, but can't quite figure out if they're optimal/adequate to open source mentality:

  • Forking the repo. I fear I might be stuck if the main repo regains traction and I can't PR my possibly many new features. I seriously wanted to continue contributing to the repo; should I somehow try and make my fork the more popular one? How?
  • Looking for a new similar library. This is obviously always an option, but it's not always possible.
  • Letting people know. Regardless of how upset I may be, I would very much like to prevent this happening to other devs who consider contributing to the repo. Should I try to raise awareness about it? How? Should I just move on?

This answer makes me believe that the best option is to make a competing fork for social reasons, but I'm unsure given the blocking from the main organization.

Any past experiences (with results) would be helpful.

Context:

See my specific context below. Spoilers because although I think it's relevant to the question as an example, I don't want it to be seen as a rant or be the main focus of this post.

In the past few months, I've been trying to contribute to a public repository (this one) with a relatively inactive maintainer. After my first pull request, the maintainer kindly asked me to write tests for my new feature: "Thank you for your contribution. This will need tests and a minor change to make the error sniffing more defensive, but it's a great start." They've deleted the original issue (#37), but in it I replied that I hadn't seen similar tests from them on a similar feature, and didn't know how to make one myself. Few months later I push a second PR to increase coverage of the first one I did, and the maintainer asks me the same question, to which I reply (slightly bluntly) the same thing: I didn't know how. They/he proceeded to block me from the organization, close the issue, redo my code in a way that doesn't work, and I am now stuck in this situation.

1
  • Realistically? You have no recourse. Absolutely none. Unless so many people are upset about the owners of this repository that they agree to fork it, or you can make your fork better so people will actually use it.
    – user253751
    Jan 27 at 14:13

1 Answer 1

7

Forking is always an option in open source environments, and does not hurt. On platforms like GitHub it's actually the preferred way to create a pull request by uploading your own repository with the suggested changes.

However in a situation you describe you should ask yourself what your goal is:

  1. Is it to have the software do what you want for your purposes? Then all is fine. You have your repository. You have it contain your changes. And you can update it with code from the original project by means of occasional merges. And you can use your repository to share this change with others.
  2. Is it to prove the maintainer of the original project wrong to not accept your PR as-is? That hardly works, and often is a fruitless endeavour without winners. Also don't make a technical disagreement a personal vendetta.
  3. Is your goal recognition of your effort? Do the same as in (1), when your contribution is not valued in the original project.

Generally: accept that people don't need to agree with you. Also when you submit patches or pull requests, maintainers or other developers do not owe you anything, nor do they need to accept your contributions.

Yet, if maintainers or other devs tell you that you need to amend a PR by xx, you should first try to work with them and try to fulfill their change requests to your PR. Ask for guidance or help on how to implement the requested changes, if that is unclear or you lack experience in that part. Of course, you can argue that it is a separate thing (then the reply could be that it is, but still belongs together). You can argue it being technically wrong and suggest an alternative. But accept that a 'not this way' is a possible answer.

The beauty of open source is the possibility and ease to fork a project and to share one's own modifications. Communicate well, interact with people in a friendly and respectful way. Help people scratch their itch with your project (or also other project), and your fork(s) may gain traction, and your contributions will receive appreciation.

However I explicitly advise to NOT go and try to "warn" other people of someone being an incompetent jerk or similar. It reflects just as badly on you as it does on the person you try to call out and definitely will not help you prove your point.

2
  • 1
    On a tangent on how to deal with people, I always recommend this talk by David Kriesel on his discovery of and dealing with the Xerox scanner gate: youtube.com/watch?v=c0O6UXrOZJo Jan 25 at 11:13
  • That's fair! Although I'd like to reiterate that the "warning people" thought was more to prevent other devs having a potentially bad time, not to bash the maintainer :) I get your points though.
    – Mat
    Jan 25 at 15:21

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.