I have what is likely a very simple question about making changes to a WordPress plugin. I apologize for the simplicity of my question, as I am very new to working with code that may be open-source and new to plugin development.
I found a plugin that provided a good solution for a project I was working on. However, in order to make it work better for my needs, I modified the code. The plugin has a "GPLv2 or later" license, which based on this seems to say that modifications to the plugin are fine, so long as I note any changes I've made and that I publish the plugin under the "GPLv2 or later" license too.
Because of the modifications I've made to the plugin, I would like to be able to provide it to others as a part of client work. However, I'm not sure of the best way to move forward.
Would it be better to publish the plugin with a "GPLv2 or later" license and update it myself (I've made very minor changes to the plugin)?
Or would it be better for me to contact the original owner of the plugin in order to collaborate and propose my changes? If the original owner doesn't accept my changes, what are my options?
To answer @wrydere's questions:
- The plugin is free, not currently offering paid upgrades or generating any sort of profit.
- Definitely don't have the time to maintain my own version of the plugin. It would be nice if I could for clients, but I don't see that realistically happening. However, if I were to maintain my own fork of the plugin, if the original owner pushes updates, would me accepting those updates (along with my own changes) prompt the WordPress dashboard to constantly tell me to update the plugin (because the code doesn't "match")? Basically, I'd want to be able to accept the updates from the owner each time updates are pushed and still keep my changes without WordPress notifying me that I need to "update" the plugin.
- For right now, no, I don't think the behavior needs to be accomplished in a secondary plugin. Could it be? Probably. But most of the heavy-lifting has already been done with this plugin, so creating a new one would be recreating the wheel.