Hello, my name is Jeff. I last said “We accept pull requests” one week ago on February 18th during the MVP Summit.
I want to apologize to the MVPs who heard me say this last week. The words did not convey the message I was attempting to convey.
At the end of the day on Monday, we were soliciting feedback on new feature ideas for ASP.NET. One gentleman asked about creating server-side HTML tags that would be recognized by Razor, and translated into different client-side HTML. The idea would be a bit of a blend between ASP.NET Web Forms and ASP.NET MVC with Razor templates; a very neat idea indeed. After a few minutes of discussion, it sounded like the idea should be relatively straight-forward to implement within Razor as it is today. I thought, “That should be pretty straight-forward; maybe he would want to take a stab at it himself.” And then I did it; I said the cringe-inducing words, “We accept pull requests.”
As the sentence left my mouth, I realized how terrible it sounded. A moment later, I heard a couple murmurs about the remark. It didn’t come out right and it wasn’t received well. I only hope I didn’t offend the person requesting the feature or dissuade him from suggesting other features. I honestly meant for the remark to mean “That’s a great idea, thanks! Do you want to take a stab at it? We’ll help.” I am sorry my words didn’t reflect my sentiment.
Why do the words “we accept pull requests” have such a stigma? Why were they cringe-inducing when I spoke them? Because too many OSS projects use these words as an easy way to shut people up. We (the collective of OSS project owners) can too easily jump to this phrase when we don’t want to do something ourselves. If we don’t see the value in a feature, but the requester persists, we can simply utter, “We accept pull requests,” and drop it until the end of days or when a pull request is submitted, whichever comes first. The phrase now basically means, “Buzz off!”
At Microsoft, having open source projects that actually accept pull requests is a fairly new concept. I work on NuGet, which is an Outercurve project that accepts contributions from Microsoft and many others. I was the dev lead for Razor and Web Pages at the time it went open source through Microsoft Open Tech. I collaborate with teams that work on EntityFramework, SignalR, MVC, and several other open source projects. I spend virtually all my time thinking about projects that are open source. Just a few years ago, this was unimaginable at Microsoft. Sometimes I feel like it still hasn’t sunk in how awesome it is that we have gotten to where we are, and I think I’ve been trigger happy and I’ve said “We accept pull requests” too often I typically use the phrase in jest, but I admit that I have said it when I was really thinking “Buzz off!”
Coming to a head
The weekend after the MVP summit, I was still regretting having said what I said. I wished all week I could take the words back. And then I saw someone else fall victim. On a highly controversial NuGet issue, the infamous Phil Haack used a similar phrase as part of a response stating that the core team probably wouldn’t be taking action on the proposed changes, but that there was nothing stopping those affected from issuing a pull request. With my mistake still fresh in my mind, I read Phil’s words just as I’m sure everyone in the room at the MVP summit heard my own. It sounded flippant and it had the opposite effect from what Phil intended or what I would want people thinking of the NuGet core team. From there, the thread started turning nasty. We were stuck arguing opinions and we were no longer discussing the actual issue and how it could be solved.
A short while later, a Twitter conversation broke out, initiated by a short rant from Phil. Several people started weighing in:
- Phil Haack (@haacked)
- Ted Neward (@tedneward)
- Kelly Sommers (@kellabyte)
- Henrik Andersson (@ahandersson)
- Anthony vander Hoorn (@anthony_vdh)
- David Fowler (@davidfowl)
- Damian Edwards (@DamianEdwards)
- Luan Nguyen (@dotnetjunky)
With that many mentions on the tweets, we ran out of characters and eventually moved into JabbR. By the end of the conversation, we all agreed that the words “we accept pull requests” should never be used again. Phil proposed a great phrase to use instead: “Want to take a crack at it? We’ll help.”
Beating an addiction
I am vowing to stop saying “We accept pull requests.” Instead I’m going to be more intentional and say things like “Want to take a crack at it? We’ll help.” And if it’s a feature that doesn’t make sense in the project, I’ll be more honest and say so, explaining why.