So, I love the idea of open source development. The adage of “in the eyes of many, all bugs are shallow” has always appealed hugely to me. Heck, I want other developers to fix the bugs I created. It just makes sense, doesn’t it? They use my stuff; if they encounter a bug and are able to fix it, they send that fix back. That’s the idea, that’s why we use the GPL. It’s time to teach some people about courtesy amongst open source users.
Let me tell you a story…
Some time ago, I created the breadcrumbs plugin. It’s pretty popular. No way of getting any real download / usage figures on it, because it has been embedded in Woothemes and StudioPress themes for a while, and there’s quite a few other theme studio’s using it too. I’m down with that. Even when some of those theme developers who will remain unnamed forget to put proper attribution on it.
Yesterday I got an email from my buddy Arjan. He asked me whether I was going to fix the fact that my breadcrumbs plugin doesn’t support custom taxonomies / post types yet. I’ll admit it, I hadn’t used it myself anywhere yet and was sort of stunned that it didn’t work. So I went out to find a solution.
Turns out, quite a few people out there have patched my plugin for their own use, in their own themes or frameworks, and didn’t tell me. There’s only one group who get’s to get away with that. That’s Genesis. I actually added the plugin to their codebase myself when I worked with them last year, so they might not even have known that it was originally a plugin of mine. Other people though, are not in that position. They took, but didn’t give back.
You see, in the open source world there’s this notion of sending bug fixes “upstream“. It’s what the whole Linux community relies on, and get’s its stability from. It’s the notion that you send a bug fix or enhancement as far back as you can, so we can all benefit. It would also mean that if I added new stuff to my plugin after that, you could just update, because I had your fixes in it also.
So, not only is not sending bug fixes upstream not courteous and a bad policy, it’s actually dumb too: it breaks your ability to upgrade. Yet, every time I do a review of someone’s blog and that someone is a coder, or every time I look at a theme that embedded some plugins, I find that they have changed stuff, and not sent their fixes to the original author. How the **** is the plugin author supposed to know you’d like to improve something if you don’t tell him/her?
What you should be doing (developer)
This only applies if you’re a developer using WordPress and plugins to do your work, but if you are, I demand this of you: every time you find a bug in a plugin, you don’t go and yell at the plugin’s developer. You don’t go tell him he sucks because his plugin doesn’t work. You don’t moan about it on Twitter, your blog, Facebook or wherever else you leave your faeces. You go off and you ****ING FIX IT. And then, you do not blog about the fix, you just send the fix to the plugin developer, as a proper SVN patch, with an email that reads somewhat along these lines:
Thanks for all the effort you have put in to plugin <xyz>. I noticed while doing some work with it that it has a minor/major issue when <describe situation in which bug occurred>.
If you want to reproduce that, just do <steps to reproduce>.
I think I’ve fixed it, and I’ve attached my patch to the latest version. Let me know if this works for you, if not I’d be happy to help come to a solution together.
Again, thanks for all the time you invest in maintaining this free plugin,
You know, with almost 3 million downloads to all my plugins combined, you know how many emails that looked remotely like that I’ve had? Less than I have fingers on my left hand.
But what do you do if you don’t know how to fix it? It’s ok. That happens. Then we’ll treat you as a user, because you’re obviously not real good at developing, right? ;)
What you should be doing (as a user)
You send the same email as the developers do, as seen above, leaving out the line about the patch. In that email, you have concise and clear steps to reproduce the issue you encountered, which you’ve reproduced yourself. You see, for developers, even well specified bug reports are hard to come by.
I know this from experience, I’ve maintained the WebKit Bugzilla install for over a year, weeding out bugs and changing vague little bug reports into something developers could actually use. I even co-wrote an article for webkit.org on submitting a good bug report. It’s an entirely different class of product, but the same basic rules apply.
If you can, please try to reproduce the bug with all other plugins disabled. Make very sure it’s not another plugin that has the bug, this happens more than you think.
Why I rant about this so hard? Well, I like people and I like developing. I like releasing things for free for everybody to use. I want to keep doing that. I know many plugin developers out there feel the same. We can be far more productive if people are actually helping us to improve the stuff we release. So, would all of you using our plugins, please be so kind as to abide by these simple rules? Thank you.