A few months ago I decided I wanted to contribute to projects on GitHub. I admit I was largely inspired to do so when, after signing up at coderwall, my profile page was bereft of contribution badges. The talks I'd given, the meetups I'd organized and faithfully attended, the comics I'd made: none of it was gonna get me my hutzpah badge. If I wanted coderwall-approved geek cred, I needed to knuckle down and give back to the community, damn it.
I asked my coworkers of the time how I should start. I was admonished, "When you see something broken, fork it, fix it, and submit a pull request." Simple enough! Err, not so...
Not a single one of my pull requests made it in! So where did I go wrong?
Before I submitted my first ever pull request, I was super nervous. What if I submitted it wrong? What if there was some hidden etiquette I didn't know about? What if I was about to breach protocol in such a way that would get me shunned from coder society for the rest of my life? Another of my coworkers (who shall remain anonymous to protect him from vicious opensource reprisals) said, "You're doing work for free. A project owner would have to be a real asshole to get pissed off that someone's working on their own time to try to help their project." That made a lot of sense to me, and I submitted the request (which was later politely rejected).
All the rejections were polite. All of them were justified. I felt like I'd run headfirst into a brick wall. Some of the repos were actively soliciting pull requests for things like documentation. Others, I was just trying to pitch in. Once someone pointed out their style guide to me, but most of them had no formalized policy on pull requests or process--at least not in shiny, bright red letters wrapped in a blink tag.
I bemoaned my situation on Twitter, and Doug Avery replied thusly:
@rachelnabors personally, i get irked when people pull without emailing me first or filing an issue to discuss. but i guess it's contextual— Doug N. Avery (@averyquery) April 9, 2012
I'm supposed to email people first? Have I been the Crazy Pull-Request-without Emailing-First Lady?
Jackson Fox put out the good word and helped rustle up this handy post on the topic of GitHub issues and pull requests.
I feel like we've just scratched the surface, though. Do you maintain a repo? Do you contribute to one? What do you want do-gooder, hutzpah-badge-questing would-be contributors to know before they submit pull requests?