Ask HN: How to say no to a GitHub issue feature request?
Feeling very upset about a feature request.
The main reason is, the requester behaves like I am hired to customise the software for him. And I should keep working until he is satisfied.
Even if I don't like it, they keep saying this is very good feature, blabla...
What should I say? F... off?
For these kinds of people, they will never understand the manner of GitHub and do some PR.
And they won't pay at all...
242 comments
[ 2.5 ms ] story [ 214 ms ] thread“PR welcome but I will not be writing this personally. Closing for now”
Remind them they are welcome to fork the project to add what they would like.
You owe people politeness, but I don't think that you owe them a justification for not wanting to do things. If it's rude to say no, it's rude to ask.
How you deal with it is very much down to how you want to engage, and your energy levels too. It can be anxiety inducing too because many of us want to avoid confrontation, and saying 'no' can be confrontational, but you need to remember that the other person is not in the same mindset as you.
Options.
You are perfectly entitled to completely ignore the request. Don't comment any more, just stay silent for ages and ages. The issue can languish for years. If you want you can close it off after a long time. Even then you can close it without comment, or say you don't plan on implementing anything here. You may not like this option as it feels like you're running away, but I'll also say that it's something that happens across many repos for many years, both intentionally and unintentionally.
You can nip the issue (haha... get it?) in the bud. Be straightforward and say that you are not planning on implementing, maintaining and supporting that feature. Your time and energy are limited, and you don't feel it's a feature that you want added to your codebase. Close the issue with the comment. The reaction may be varied but it is important that you stick to this statement and not entertain further commenting, because each new line can sometimes be an 'in' to argue more.
You can take the most pacifist route which is to keep explaining, and refuting, that you don't want to implement the feature. Most people are quite receptive to it and will actually understand, but it's also possible you've encountered someone who is not able to understand your intention. This can be mentally draining as you're speaking to someone of a different mindset, who views you in a certain way, and nothing can convince you otherwise.
But at no point is there any need to insult anyone. Keep in mind it's your codebase, and you will be maintaining the feature going forward. If you do not respect your time, nobody will. Please respect your time OP.
The only options here are to either ignore them or confront them directly. It helps that asking them for money for all this support they want, and then them refusing, vindicates you and allows you to just flat out ignore them.
This does not mean you actually will merge any PR for said future, should they ever materialize.
If you don’t intend to merge the feature, you should not say that patches are welcome, that’s an asshole move.
If you’re not sure, say that and that they can open a pr but you can’t make any promise.
If you’re not interested in the feature and are not willing to maintain it, say that as well.
1. This feature is deemed unwelcome and even the most beautiful patch would be rejected. AKA I don't want to maintain it or the feature is actively harmful.
2. Unsure about this feature, but maybe a good patch would be accepted.
3. The feature is fine, but I have no interest in working on this. Patches are welcome.
I think valuable information to the other person 1. I guess they should go away or fork. 2. Maybe discuss more, maybe find a way to get a patch written. 3. Wait or find a way to submit a patch.
Just tell him your fee and that you’ll start for a 50% deposit.
well politically correct answer is to fork off
they should fork it instead haha
"I am declining this as it is not fitting with the direction of the project and other users' requirements. You are free to fork it and maintain your own version"
I’d leave that out. That’s unnecessary as it’s an implied freedom of oss, and it can come off as aggressive / dismissive.
If you think it is a useful feature tell him that you currently don't have time to implement it yourself but a PR is welcome.
Often people only want that there issue is tracked, so to avoid conflict and just do nothing just tell them that it goes into the backlog of future features to be considered ;)
If you don't have time to implement it, there is a chance you don't have time to review it.
If it is like that, you can simply say you don't have the bandwidth to review, and/or you don't want the feature in your repo. You can emphasize that they can always simply fork the project and do whatever they want with it.
Might as well ban some commenter from your project (not sure how Github manages this)
A lot of feature requests are done to gain clout anyway
I find doing this type of thing (creating nice canned responses, creating reusable answers) nearly always pays off in the medium and long term and find that it’s much easier to put the effort into a response knowing that you’ll get long lived value from it vs it just being useful for one person.
Similarly, I often find others have done similar and if their thoughts align with mine I don’t need to write the answer myself but instead can refer to someone else’s blog post etc.
I think this can make people feel like you don't understand them and maybe make them angry. It feels like an automatic response you would post when you haven't even read the request. I think you should at least clearly say that you don't want the requested feature in the response, then you can link to the page.
"Pull requests welcome" if you want the feature. "Fork off" if you don't.
Yes and it's not nice to give people problems. It can even come back to you if they don't feel like they got a clear response and continue to bother you.
I like to communicate in ways that are clear, honest and complete because that way people get the information they want and we can understand each other. I think the world would be a better place if everyone did that and therefore it's what I recommend people to do.
The open source part of this doesn't matter. Open source means that the user has the right to use and modify and distribute the program; it has nothing to do with communication.
This is a communication question; it's about how to respond to people that are being annoying. It's always nice to do that in a way so that every one understands each other.
I mean it’s a bit glib but I’m serious.
This presumes you want to be paid. Many don’t because it means it’s not fun anymore. I’m in that camp.
I had ended up codifying [1] my stance around this to a contrib document to quickly link to annoying issues when closing them. Saves the headache of having to write fresh explanations.
[1] - https://github.com/knadh/listmonk/blob/master/CONTRIBUTING.m...
If you're a team maintaining a project, you need to agree with the team on that, obviously.
But keep in mind: random Github users are just random Giuthub users, random people. Treat them with the respect they deserve. If they don't deserve a lot, just close their issues.
The tactic is to add progressively larger delays to each response, while make them shorter at the same time. Start with a delay of a couple of days and progress to weeks. This works and it's very effective in discouraging this sort of behavior.
The same works with for new tickets, but you can just close them after a week. Optionally add something like "Dully noted, thanks".
You don't have resources for that (I presume), and clarify this is (IMO) the appropriate, neutral, answer; that's all.
There is also another sneaky approach. You can add that you're open to commercial support, and to contact you in private for the details. I think this is also understandable, but better be careful. This will surely put things in perspective to the user.
(background: I'm a maintaner myself, although I've never dealt with abusive users; I did make it very explicit though, when I didn't have resources, and users were always understanding).
If so, something I see a lot which I quite like is along those lines - not something the maintainers are interested in (or whatever) so unlikely to be implemented, however high quality PRs will be considered.
Probably you're right, and they'll never offer one. But if you'd genuinely consider and perhaps merge one if they did, I think this is a good outcome for everybody.
(Plus then you can leave the issue open which can be appeasing - and catch others requesting the same - just lock it if necessary as nothing further to discuss without a PR which can be discussed in its own comments.)
Instead of convincing them that it's a bad feature or talking about why it's uninteresting to you, just point them to a CONTRIBUTING.md and stop engaging with them after that. If they're actually serious about the feature, they can implement it in their own fork (which then you can request as a PR if you want it in your repo).
I'm not really interested in adding this. We can discuss the feature further if you're willing to fund it, or to implement and maintain it yourself for the foreseeable future. Otherwise I'm considering the issue closed.
If they don't stop bothering you after that, just block them.
Also, if they want to see your reasoning why you don't like the proposed feature, they will also have to pay up, because it costs you time to write that down.