Unwritten Guidelines Suck

Chip Bennett has an interesting post on his site that shows results of an audit he performed on some of the most popular plugin authors to see if they declared what license the plugin is under within the plugin in the form of a license.txt file or from within the plugin header. As we’ve found out recently, due to an event that occurred with a plugin author, plugins that are in the repository MUST include the license declaration or face removal. Let’s take a look at the guidelines as they are written on the repository.

  1. Your plugin must be GPL Compatible.
  2. The plugin must not do anything illegal, or be morally offensive (that’s subjective, we know).
  3. You have to actually use the subversion repository we give you in order for your plugin to show up on this site. The WordPress Plugins Directory is a hosting site, not a listing site.
  4. The plugin must not embed external links on the public site (like a “powered by” link) without explicitly asking the user’s permission.

None of them explicitly state that license declaration has to be included within the plugin. Out of all the stats that Chip published regarding his audit, the most surprising thing of all is that out of 19 plugins written and maintained by Matt Mullenweg, none of them had proper license declaration. The bottom line here is that if you’re going to enforce guidelines, preferably written, you will have to lead by example and follow those guidelines yourself. Not doing so is unacceptable. As it stands, this looks pretty darn bad.

The good news is that the solution to this is simple. The readme.txt text that plugin authors use as a template for the repository is currently silent when it comes to license declaration. All it would take is for someone to add the necessary text to the readme.txt generator. Peter Westood weighed in with a comment that is an even better idea. Using a slug type approach for the License field so that it could easily become part of the automated checks that take place upon submission to the repository.

This specific topic has been added to the WordPress Developer meeting for February 11th, 2010. If you are interested in attending to voice your thoughts, visit the WordPress development prologue site for meeting details and the overall agenda.


4 responses to “Unwritten Guidelines Suck”

  1. I have just recently been adding an explicit reference that my plugins are released under a GPL license due mostly to the discussions here. Every one of my plugins will include this reference, included under “Other Notes” in the readme.txt file as well as in the main plugin PHP file with their next releases.

  2. Ideally, you should put a message in the header of the PHP file itself that explains the license. This way, the license declaration travels with the file.

    I add this to the beginning of all my plugin’s PHP files:

    Copyright 2010 Samuel Wood (email : otto@ottodestruct.com)

    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License version 2,
    as published by the Free Software Foundation.

    You may NOT assume that you can use any other version of the GPL.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    GNU General Public License for more details.

    The license for this software can likely be found here:

    Simple, easy.

    You don’t really have to include the entire license. Specifying which license is valid and giving probable location is enough. It’s up to the user to find the terms and agree to them to gain the rights specified in the license.

  3. @Otto

    Ideally, you should put a message in the header of the PHP file itself that explains the license. This way, the license declaration travels with the file.

    That’s what I do, too, Otto. I also explicitly state the license (and version), and the URL to find the full text of the license, using “License” and “LicenseURI” slugs.

    Simple? Easy? Very much so.

    The problem, though, is that there is currently nowhere on wordpress.org/extend/plugins Developer Center that either a) explicitly states that such a declaration MUST be made, or b) gives suggestions/examples for how to make such a declaration.

    There is good information in the Codex, but that information isn’t even linked from the Extend/Plugins Developer Center, where the repository guidelines exist.


Subscribe Via Email

Enter your email address to subscribe to this blog and receive notifications of new posts by email.

%d bloggers like this: