Rant: courtesy amongst open source users

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:

Hi Joost,

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,

Cheers,

X

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.

Tags:


Yoast.com runs on the Genesis Framework

Genesis theme frameworkThe Genesis Framework empowers you to quickly and easily build incredible websites with WordPress. Whether you're a novice or advanced developer, Genesis provides you with the secure and search-engine-optimized foundation that takes WordPress to places you never thought it could go.

Read our Genesis review or get Genesis now!

32 Responses

  1. Dan FrydmanBy Dan Frydman on 28 September, 2010

    We really appreciate the work you do and all the great plugin developers who contribute to WordPress.

    We’re often guilty of complaining internally when things don’t go as planned, but I’ll ensure that we submit proper bug reports back in future. We owe you and the world of GPL that much (and more).

    • Joost de ValkBy Joost de Valk on 28 September, 2010

      Thanks Dan, your honesty and future MO is appreciated :)

  2. Bruce ServenBy Bruce Serven on 28 September, 2010

    You have a valid argument, but think about it from a user’s perspective for a minute.
    1) They just want it to work. They don’t care about the how or the why, they just want it to work.
    2) If the developer is unresponsive (not saying you fall into that description) or adopts an abrasive “its not me, it’s you” approach or simply views it as yet another attempt for people to get free support, then the user isn’t even going to bother reporting upstream any longer and will simply find a solution themselves or they’ll find another program/plugin to do the job. Many times, it isn’t a bug, it’s a user error, so I completely understand why many developers are stand offish when it comes to those types of communications, but on the legit bug reports, they often seem to take the approach that they simply don’t care or that “its a free plugin, what do you expect?”.
    3) a lot of people customize their installations, so they know that upgrading is already going to be a hassle (regardless of the update’s severity [minor/major]) and thus aren’t worried about it.

    If the person doing the modification is a fellow programmer, then yeah, that’s probably a good candidate to be sending fixes upstream, but as a user, I’m not sure how feasible that is for the majority of people out there (especially since most users aren’t focused on the why its not working but rather on simply getting it to work, they don’t have time or technical know how, to worry about the why).

    I’m not a developer, but when I find fixes I try to report them as best as I can. Sometimes I need to make tweaks to things to try to get it to work with other software and without incurring a support request ticket, and for those circumstances I don’t usually report anything as I chalk that up to customization rather than bug fixing.

    Good rant, and I agree with you, but perhaps your expectations are too high. In thinking back over 15 years of Linux usage, I think most Linux developers have had the same rant at one time or another. That’s the reality of software development.

    • Joost de ValkBy Joost de Valk on 28 September, 2010

      Well maybe we just need to wake people up every once in a while :) I agree that for users it might be harder; however, that doesn’t excuse them from sending me emails like “YOU SUCK” and yes I do get those on a fairly regular basis. It’s just courtesy that I ask, nothing more, but nothing less either. If you can’t speak to me courteously, I’d rather have you not speak to me at all.

  3. CODBy COD on 28 September, 2010

    When you use open source software you take on the responsibility to do your part. If your technical skills don’t extend beyond powering up your computer, that is ok. Your responsibility ends at notifying the developer of the bug you found, as indicated above. If you don’t want to do that much that is ok too. Go buy closed source software from a company that would rather not hear about the bugs in their software.

  4. Brian JamborBy Brian Jambor on 28 September, 2010

    First and foremost, I echo Dan’s comments. Not only do we appreciate what you give back in terms of plugins, but the content you give to the community from years of experience is invaluable. For those of us that are transitioning from “users” to “developers”, your post is a great resource on proper open-source etiquette. Thanks again Yoast!

    • Joost de ValkBy Joost de Valk on 29 September, 2010

      My pleasure :) That was the first and foremost, what came after that? :)

      • Brian JamborBy Brian Jambor on 29 September, 2010

        Secondly… and possibly more importantly… Does it annoy you when people reference your name as Yoast instead of Joost? :)

  5. MikeBy Mike on 28 September, 2010

    I’m a theme designer who, by and large, gets very nice/courteous emails from a lot of nice/courteous people who use my themes. But I totally know where you’re coming from. The moment I get an email from someone who starts off with “I need… ” and ends in “Thanks.” it gets flagged in my head and tossed at the end of my very long queue of design tasks. And I think theming is a bit different, too, because there are A TON of tutorials online for how to write/edit CSS. So to say that you don’t have time to figure it out yourself and *need* me to figure it out for you *pro bono* is just not a good idea. It’s just too bad that those are the emails I tend to remember — the 1%.

  6. LornaBy Lorna on 29 September, 2010

    Hmm… you know, maybe I should add this part in the FAQ of my plugin (top commentators widget).
    I have this issue, too. People don’t tell me that they’ve fixed anything, and I had to Google it then gets surprised at all the bugfixes or cool modifications they’ve made without me knowing. Maybe they don’t realize that whatever changes they made might interest others, too.

    Yep, it would be nice if the people using my plugin can inform me whenever they fixed the bug for me. I always made sure that I give them credit for it anyways in my changelog.

  7. Jeremy ClarkeBy Jeremy Clarke on 29 September, 2010

    I agree completely! You are describing exactly how open source plugin development should work if it’s being done through standard email. I think having a bug tracker is a really good idea though. Even something like google code can really streamline the process by having bug report templates etc.

    I think it’s also worth remembering that this goes both ways, and devs need to respond to emails like your example carefully. I never released a plugin but I’ve written a lot of emails like that one. Fwiw I’m not sure if it would take two hands to count the number of replies I’ve received. It takes a long time to properly craft a patch and report, and it’s very easy to become disillusioned with the idea of submitting changes when you usually never hear back and subsequent plugin updates have nothing to fix your issue.

    Let’s all work together and try to keep the communication going. It’s impossible to get it perfect, but if we can keep it all going there’s benefit to be had for everyone.

  8. Christopher AndertonBy Christopher Anderton on 29 September, 2010

    Serious. I don’t get it. I think some devs only play stupid and trying to get away with it. I as a user has
    contributed back when i fixed errors on some plug-ins (have not tried this plug) i used. They save me
    tons of time, so at least i can help out if there is opportunity to do so.

    The same thing is even more valid for a theme developer. Specially developers that make money of
    selling themes.

  9. MariaBy Maria on 29 September, 2010

    I’m not a developer and know very little about developing software, plugins and such; nevertheless as an end user I truly appreciate your knowledge, passion and dedication. You are absolutely right and I hope that others listen. Thank you and all the dedicated developers out there for your work, which you so generously share.

    Maria

  10. DanBy Dan on 29 September, 2010

    I think you raise some good points and everyone should of course contribute to open source this way. But remember not everyone is working in an open source mindset, most developers work for companies that just want this bug fixed fast then on to your next task. No emailing original developers or SVN patch.

    I’ve noticed a lot of people in the user part of plugins asking for feedback which is awesome. I would suggest if anyone isn’t already selling people into the desired bug fix feedback steps in the commented code also. Ask and you shall receive, but ask nicely and with clear, easy steps.

  11. Dave from The Longest Way HomeBy Dave from The Longest Way Home on 29 September, 2010

    A valid rant. I’m not a developer, just a very appreciate end user of your plugins, and other plugin authors.

    It seems in this day and age, the word “thank you” is disappearing. Twitter is a place where people ask for things, and seem to forget the magic words. It makes one think twice about offering help the next time.

    There’s a strange cross over in the content field too. As people will often take someone’s written work and rewrite it as there own. Never dropping hint of credit, nor an email saying they were going to continue the discussion etc.

    Well done for speaking out, I hope things improve. And, thanks again for great work you’ve put in that genuinely helps many 1000′s of people.

  12. VikBy Vik on 29 September, 2010

    Agree completely with the post.

  13. Bjorn van der NeutBy Bjorn van der Neut on 29 September, 2010

    Nice thing to do some analyses before this post and after this post how many people send you
    a fix for one of you plugins.

    Hope It will be a huge difference so you can focus on building new cool usefull plugins!

  14. JasBy Jas on 29 September, 2010

    I agree. What about feature patch submissions? A beneficial feature for an existing code base and a tested patch that the developer of said code base decides not to integrate?

    Because my work required a specific authentication feature for the existing pam_krb5 authentication module a patch was submitted so the feature would be available in future releases and has been sitting in an open status for over a year now.

    Very frustrating but I am sure if other users were asked about the feature it might gain some momentum on a peer review to gain inclusion. If you would like to read about the patch you can here… http://bugzilla.redhat.com/show_bug.cgi?id=517096

  15. Tom Harrison JrBy Tom Harrison Jr on 29 September, 2010

    I think most people are not developers (well, like duh…) and few people really understand Open Source, much less software development. The mere fact that something is free is … just the way it is. So I think your notion of a “wake up call” could help some people get it.

    Then there’s the whole issue that some people are not nice (well, like duh…) and can be especially strident online.

    But I just found a great bit of software that someone wrote to make non-sleeping Macs work — it’s called PleaseSleep and it rocks. So there are three things that people can do (other than using GitHub or simply doing proper patches) to make Open Source a little less annoying: 1) they can do what I just did and spread the good word in comments (not spammily), 2) they can write posts that make reference to the software (provide a link, review it, extoll its virtues, etc, which I did in a post on my energy/green blog the other day), and 3) they can provide a donation — I sent the guy $5 through PayPal (and this doesn’t give me any right to complain to him, either :-).

    But a super-simple plugin that needs to be written (maybe I’ll do it) is one that lists all the plugins (just like in WP Admin, but on a page).

    Tom

  16. Andreas NurboBy Andreas Nurbo on 29 September, 2010

    I’ve tried to do such things. I’ve even asked to help with stuff but have been ignored.
    So I think it goes both ways really.
    Yes people should send bug fixes to original creator but also the original creator should welcome the effort. And not just ignore people.
    It really takes two to tango =).

  17. RyanBy Ryan on 30 September, 2010

    Only reporting actual plugin bugs would be good too.

    If it cost me a dollar every time someone sent me a bug fix or bug report which was not caused by one of my own plugins, I would be a very poor man indeed.

  18. ProgrammerBy Programmer on 1 October, 2010

    Just got sent here by a friend of mine. Maybe you should actually, you know use, the GPL. I just downloaded the breadcrumbs plugin from the link in this article and there is absolutely no mention of the GPL in the readme or any of the source.
    If I got a hold of this code I would assume it was similar to the BSD or Apache license, not GPL.
    Your license statement doesn’t say anything about contributing fixes back to the original source.
    In order for your code to be protected under the GPL you have to license it as such. This is what the header on your code should look like http://www.gnu.org/licenses/gpl-3.0.txt then maybe people will follow the license terms and you will get some fixes.

    • ProgrammerBy Programmer on 1 October, 2010
    • Joost de ValkBy Joost de Valk on 2 October, 2010

      Although you’re technically right, everything on wordpress.org is by default GPL, as that’s the requirement for uploading it. Also, commenting anonymous like this without any courtesy is well, like, shit.

  19. LoneWolfBy LoneWolf on 6 October, 2010

    Hear! Hear! Good rant. I had a situation where I was using a plugin for Google Analytics. It had all the google code in the header to help with AdSense but I wanted to put the Analytics code in the footer.

    I found out how to do that and sent a copy of the code back to the developers who included it, thanked me and credited me in the source. Win, win and win! (They have since changed the code as that Google Analytics code is loaded asynchronously to avoid the load delay problems).

    So, the system works well and the code gets better.

    As for Programmer’s comments above, I have to agree with you Joost. All code contributed to wordpress.org is GPL by default. I’ve even heard it argued that all code that is built around wordpress is GPL by default due to the nature of the GPL license.

  20. Abhijit V. ChaoreBy Abhijit V. Chaore on 7 October, 2010

    Folks we need to understand that Joost is only asking us to be courteous and give a sincere report of any bug found to help him (and community) to correct it. Its simple and I agree with him. This is what we generally would expect people to talk with us like. Nothing wrong in expecting people to talk to us politely – especially if one has contributed so much to their development.

  21. albertBy albert on 8 October, 2010

    the only thing i could say in their defense, from a non-linux user, is that i wasn’t aware of the term upstream and or how it worked. i don’t think that makes any of this alright, just saying maybe a small percentage of people are just clueless (like me). however, as clueless as i am, i would most certainly contact the owner if i do something kewl to his code. that’s just respectful/common courtesy.

  22. BradleyBy Bradley on 15 October, 2010

    In my opinion, users with huge sites should not be quick to upgrade to a new update the moment it comes out. Let others with smaller or test blogs … test the waters for glitches before making an upgrade. I think some of the frustration comes when you have a huge site and then realise a plugin suddenly stops working. Even though I dont run anything big, Im always wary to see how users react to updates before moving myself. I learnt that with Disqus when one of their updated screwed up their comment system… and wasn’t fixed for 3 versions. I was nice to let them know and show examples, but those who run big sites and have little patience may not see your point of view. Well the more careless admins at least.

Trackbacks

  1. [...] Rant: courtesy amongst open source users is a post from Joost de Valk's Yoast – Tweaking Websites.A good WordPress blog needs good hosting, you don't want your blog to be slow, or, even worse, down, do you? Check out my thoughts on WordPress hosting! This entry was posted in web design news. Bookmark the permalink. ← Competition: Web Font Awards – Creative Review (blog) 40 Must See Cool Short Animation Websites → [...]