Your team open sourced a small library last year, and you look after it. Mostly that means the occasional bug report. Then one morning there is a pull request from someone you have never heard of. Two thousand lines, a new plugin system, tests, documentation and a long, friendly description. They clearly spent several weekends on it. And you already know you are not going to merge it, because it takes the library in a direction your team does not want to support.

It is tempting to leave it for a while. Answering feels awful, so it sits there with no reply while you hope the answer becomes obvious to them. That is the unkindest option. Silence tells a contributor nothing, and a pull request ignored for two months hurts much more than a clear no in two days.

So reply soon, and lead with thanks that is specific. Not thanks for your contribution, which reads like a form letter, but something that shows you actually looked. Thank you for this, the tests are thorough and the description made it easy to follow.

Then say no plainly, in the first few lines, so they are not reading three paragraphs waiting for the verdict. Give the real reason. We want to keep this library small, and a plugin system is more than our team can maintain over the long term. Make it about the project's direction and capacity, not about the quality of their work, because usually that is the truth.

If there is a path forward, offer it. Perhaps one small piece of their change would be welcome on its own. Perhaps it would work well as a separate package that builds on yours, and you could link to it from your README. Only offer what you would genuinely accept, because a vague maybe later just delays the disappointment.

Close it yourself, politely, rather than leaving it open forever.

Then fix the reason it happened. Write a short note in your contributing guide about what the project is and is not trying to be, and ask people to open an issue to discuss large changes before writing code. The next person will save their weekends, and you will have this conversation far less often.

Saying no well is part of looking after something people use. Done kindly, a lot of contributors come back with something you can say yes to.

– Asael Shinder