Take the 2-minute tour ×
WordPress Development Stack Exchange is a question and answer site for WordPress developers and administrators. It's 100% free, no registration required.

So I looked all over to try and find some kind of rules, or at least some common-courtesy guidelines, concerning this issue and couldn't find anything.

Essentially I'm wondering what I should do when I find a WordPress plugin (free, listed within wordpress.org/plugins/, and includes the GNU GP License) that I think could seriously benefit by adding a given amount of functionality to it.

After altering the code and including the new functionality, do I:

1) Submit it to the current author of the plugin and hope that he/she adds it in?

2) Submit the "new" plugin to the WordPress plugin listings as one of my own?

3) Avoid either of these options. Just change the plugin and only use it for myself.

4) Do something else that isn't listed here? (Implies that suggestions be made in the comments section.)

From a licensing perspective, I can't see any prohibitions against making any of these choices. I don't know how moral it'd be to take the code, alter it, and then sell it as a premium plugin, but that doesn't seem to be prohibited by the GP License either.

What's the best practice for this situation? Obviously I don't want to offend the original author of the plugin or do something that'd make me look bad in the WordPress coding community. Still, in this case that I'm up against, I think the plugin would seriously benefit from this added functionality.

What say ye?

share|improve this question

2 Answers 2

up vote 7 down vote accepted

Ask the developer before you start writing code.

  • The feature you need might be implemented already, just not published.
  • Or the plugin API changes in the next version, and your code wouldn’t work anymore.
  • Maybe the author can just add a hook, so you can implement your code as separate plugin without changing the main plugin.

One of the core ideas of open source is collaboration. Always try to improve together. Avoid publishing something that is 90% a duplicate of an existing plugin. You make the choice for users just harder.

But if you had to write that improvement, and the developer of the original plugin just refuses to work with you, make your code public for the benefit of other users.

The license of plugins hosted on wordpress.org will always allow such alterations or addons.

share|improve this answer
    
Agree with Toscho. Personally I am always open to code submitted by users and will always add extra hooks and filters so that users can customize my code from another plugin. –  helgatheviking Mar 5 at 23:22
    
Agree with Toscho and @helgatheviking. Speaking personally, I maintain a git repo and I LOVE it when people contribute. –  Andrew Bartel Mar 5 at 23:23
    
Not disagreeing here with anybody, but the best option is to inspect the source code to see whether you can modify functionality by using the already implemented hooks (actions/filters) without changing any original code from the plugin. The second best option is to add a pull request on the git repository of the plugin, asking for a hook to be added (a pull request is a much better structured way to 'contact the author'). If neither of these work, then it's time to consider the other options. –  adelval Mar 13 at 22:11

1 and 3 are your best options (with some drawbacks).

1 is of course the best. You might get a response, you might not. It depends on the activity level of the developer. If they are actively developing (i.e. they've released updates fairly recently), you are likely to get a response.

The drawback of 3 is that when the author updates the plugin, you'll need to incorporate that. However, there are mechanisms to handle that - Git patches for example.

Number 2 is a sticky wicket. Does GPL allow you to make modifications and develop a derivative work? Yes - but with some caveats that are quite often forgotten, overlooked, or just ignored.

People tend to incorrectly think of open source software in terms of public domain; but there is a big difference between "open source" and "public domain" - These are not interchangeable terms. Most people read only the first part of section 2 of GPLv2:

You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work...

They tend to ignore the remainder of that section which states:

...provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License.

So, you cannot just make a few modifications to something and claim it as your own. To comply with GPL, you must make attribution to the original author and also indicate your changes.

For example, if your new code is 10% of the plugin and you just package that as a new plugin, there is a likelihood that you are technically not in compliance with the GPL license unless proper attribution is made to the original author. However, if you give attribution to the original author and and indicate the changes you have made, then that is more likely to be in compliance with the license.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.