Can I make my plugin 100% open source?

Can I make my plugin 100% open source?

by Renaat Debleu -
Number of replies: 17
Picture of Core developers Picture of Plugin developers

One of my plugins is used in a test or production Moodle Workplace environment. They complain that my plugin is not 100% compatible with Workplace.

Moodle Workplace is propriety software, so I cannot see nor test my plugin in this environment.  Therefore, my contributions cannot be used in closed source environments.

What happens if I change the software license of my plugin(s) and add a sentence like: "Can only be used in 100% Open Source environments."?

Average of ratings: -
In reply to Renaat Debleu

Re: Can I make my plugin 100% open source?

by Gemma Lesterhuis -
Picture of Plugin developers Picture of Testers
My 2 cents. Nothing. But why should you?

There is no 'rule' that you need to make your Moodle Plugin work with Moodle Workplace. I would just put a note on your plugin page: this plugin is build for Moodle LMS, it's not been tested for Moodle Workplace.

You could refer to their Moodle Workplace Partner for more information.

Gem
Average of ratings: Useful (1)
In reply to Renaat Debleu

Re: Can I make my plugin 100% open source?

by Howard Miller -
Picture of Core developers Picture of Documentation writers Picture of Particularly helpful Moodlers Picture of Peer reviewers Picture of Plugin developers
IANAL

Surely the whole point of open source software is that users can do whatever they like with it.

That includes selling it if they can find someone to buy it. You really can't say "It's open source, except for...."; that entirely misses the point. I've never seen the license for Workplace but, apparently, it's not open source - or not all open source, anyway.
In reply to Renaat Debleu

Re: Can I make my plugin 100% open source?

by Dan Marsden -
Picture of Core developers Picture of Particularly helpful Moodlers Picture of Peer reviewers Picture of Plugin developers Picture of Plugins guardians Picture of Testers Picture of Translators

Hi Renaat, plugins listed in the moodle.org plugins db must be GPL licensed - excluding the ability for organisations to use it in distributions like workplace (but there are several other forks/distributions of Moodle that could be considered "closed source") would likely mean your plugin would not comply with GPL and therefore not be able to be listed within the plugins db.

You could potentially break your plugin into components - with a free version providing some limited set of functionality and sell/or give away access to a "premium" plugin that adds further features into your plugin - there are a few examples of this within the existing plugins db.

Average of ratings: Useful (1)
In reply to Dan Marsden

Re: Can I make my plugin 100% open source?

by Renaat Debleu -
Picture of Core developers Picture of Plugin developers
Dan, are you a marketeer or a developer?

Basically you suggest that we should provide less service (only basic features) and start asking money for the full plate. But a "premium" version of a plugin is nothing more than a marketing stunt (see Wikipedia and find an entry for premium that is not marketing related).
We go for the opposite, we share our complete plugin for everybody, but expect a fair contribution from people who do not share their code.

Just an idea, what happens if only 5 or even 10 developers would start tagging their work with '100% Open Source'? Will all their plugins be unlisted in the plugins db?
In reply to Renaat Debleu

Re: Can I make my plugin 100% open source?

by Dan Marsden -
Picture of Core developers Picture of Particularly helpful Moodlers Picture of Peer reviewers Picture of Plugin developers Picture of Plugins guardians Picture of Testers Picture of Translators
to be clear - I'm not advocating either way - just stating that you can't do what you've asked with a plugin that you release in the plugins database because we require plugins in the db to be released under the GPL and that doesn't allow you to restrict your code from being used in workplace (or other commercial forks like Tota.., OpenL.., etc etc.)

The relevant section on that in the plugins db is here:
https://moodledev.io/general/community/plugincontribution/checklist#boilerplate

If you want to do something "different" than the GPL currently allows - you need to either:

Not host it in the plugins db, or split the plugin into components, and attach a different license to one of the components.

If plugin developers decide to re-license their code to a non-compatible GPL license, yes you are correct, we would not be able to host their non-GPL plugins within the plugins database under the current policy - that's not something that is "my decision" - it's policy led by Moodle HQ and the HQ legal team who have a good understanding on the GPL.

But - of course - most Moodle plugins are classed as derivatives of existing Moodle code, and the GPL's "copyleft" concept states that if you take some GPL-licensed code and modify it or build upon it, you must also make your modifications/extensions available under the same license - which makes it difficult to take a Moodle plugin and re-license it.

There are a lot of more detailed and better authoritative sources on the web than in the forums here though, so if you're interested in this - there's some good reading around - Martin Kleppmann has some interesting thoughts here for example: https://martin.kleppmann.com/2021/04/14/goodbye-gpl.html - Note I don't agree with all of what Martin says but he makes some good points about the GPL and how the landscape has changed since it was originally written.
In reply to Dan Marsden

Re: Can I make my plugin 100% open source?

by Visvanath Ratnaweera -
Picture of Particularly helpful Moodlers Picture of Translators
From my practical point of view, IANAL, the first question is whether:
- it is OK for the developer his plug-in being used in Moodle Workplace as long as somebody maintains it, fix the bugs, for example
OR
- the developer does not want his plug-in to be used in Moodle Workplace.

If it is the former, if HQ takes that responsibility, the matter is solved. If it is the latter, that is a bigger problem. The developer has to start by analyzing GPL3(?) to see whether it allows this usage. If so, change the license. And then he needs more lawyers to see that the new license is compatible with the Open Source Moodle license.
In reply to Renaat Debleu

Re: Can I make my plugin 100% open source?

by Francis Devine -
Picture of Core developers

I can definitely see being annoyed that people install plugins into workplace and then they break and not being able to resolve it yourself as a plugin developer because workplace costs money to acquire for testing.

At very least moodle hq should have a toggle on the plugindb entry that indicates if a plugin has actually been tested against workplace and require a waiver accept popup when installing plugins not tested on workplace with instructions to contact moodle workplace instead of the plugin author.

Average of ratings: Useful (1)
In reply to Francis Devine

Re: Can I make my plugin 100% open source?

by Justin Hunt -
Picture of Core developers Picture of Particularly helpful Moodlers Picture of Plugin developers
The issue of not being able to test your plugin in Moodle Workplace is real. It was also discussed at the Moodle Moot in Canada last week, with several developers expressing frustration. Even if you could test it, some problems are just hard to figure out when they occur on a remote machine. At the very least you need error messages.

That said, Moodle Workplace is a non free product, hosted by premium Moodle partners. So I think you could expect the relevant Moodle partner to help you test it and provide any error messages you need. After all they are getting paid by the client, who wants to use your plugin.
Average of ratings: Useful (3)
In reply to Justin Hunt

Re: Can I make my plugin 100% open source?

by Tim Hunt -
Picture of Core developers Picture of Documentation writers Picture of Particularly helpful Moodlers Picture of Peer reviewers Picture of Plugin developers
I agree. Moodle HQ and some partners doing closed source things based on the open source Moodle code has alwasy seemed ethically dubious to me. But Moodle does so much good in the world, and Workplace is a significant part of making that financially sustainable, so I just ignore it.

However, as Julian says, there is no way you can support this. The responsibility can only rest with the Moodle Partners who support this. You have made your gift to the Moodle world by sharing your plugins in the database for users of Moodle LMS. Thank you for that. Try not to feel pressure when people raise Workplace issues. There is nothing you can do.
Average of ratings: Useful (11)
In reply to Tim Hunt

Re: Can I make my plugin 100% open source?

by Benjamin Ellis -
Hi,

It might be possible (I have not checked) to identify if your code is running in Workplace, and then you could write something into the install.php or in the plugin as a warning to users.
In reply to Renaat Debleu

Re: Can I make my plugin 100% open source?

by Marina Glancy -
Picture of Core developers Picture of Moodle Workplace team Picture of Peer reviewers Picture of Plugin developers Picture of Testers

Hi Renaat,

I don't know the nature of the incompatibility that you are talking about, actually, I would really like to talk to you about the problem itself.

Going back to the question that you have originally asked, I think there may be some misunderstanding of what Moodle Workplace product is. It is not a fork or something completely different from Moodle LMS. It just adds functionality ON TOP OF moodle.

In the majority of cases, Moodle LMS plugins do not need to have any modifications to be compatible with Workplace. They may not FULLY work with multi-tenancy, but it's not a bug, it can be considered a feature request and we definitely would encourage premium partners who are interested in such feature to fund developer's work.

Here is an article in our documentation about plugins compatibility with Moodle Workplace https://docs.moodle.org/en/Workplace_plugins

In my opinion, there should not be any need for plugins to specifically claim that they can not work with Workplace because in the majority of cases it would mean that they can not fully work with the granular permission system in Moodle (i.e. they use course-level capability to access users or other system-level entities, or do not respect course listing visibility).

Again, if you want to talk to me about the problem that was reported to you, I'm here.

Regards
Marina Glancy

Average of ratings: Useful (3)
In reply to Marina Glancy

Re: Can I make my plugin 100% open source?

by Gemma Lesterhuis -
Picture of Plugin developers Picture of Testers

@marina - i am sorry but I disagree with you on your statement : 

In my opinion, there should not be any need for plugins to specifically claim that they can not work with Workplace because in the majority of cases it would mean that they can not fully work with the granular permission system in Moodle (i.e. they use course-level capability to access users or other system-level entities, or do not respect course listing visibility).

The reasons is that is always good to inform users that plugins are not tested, maintained or developed for specific (Moodle) software products. Because as you mentioned there can be used, and they are not 'bugs' but feature request. But terms as bugs and feature requests, are terms we use in developing things, but most end users don't see or even (want) to know the difference. When you give clear information on the plugin database that your plugin is NOT tested on Moodle Workplace , then you give them clear information at the exact moment they need to know this. And they know that there might be issues.

In reply to Gemma Lesterhuis

Re: Can I make my plugin 100% open source?

by Howard Miller -
Picture of Core developers Picture of Documentation writers Picture of Particularly helpful Moodlers Picture of Peer reviewers Picture of Plugin developers
Could it be as simple as a "flag" in the plugins database - "Tested with Workspace". That kind of thing.
Average of ratings: Useful (1)
In reply to Howard Miller

Re: Can I make my plugin 100% open source?

by Mary Cooch (personal account) -
Picture of Documentation writers Picture of Testers
Well there already is - but it hasn't caught on - so see MDLSITE-7537
Average of ratings: Useful (3)
In reply to Mary Cooch (personal account)

Re: Can I make my plugin 100% open source?

by Marina Glancy -
Picture of Core developers Picture of Moodle Workplace team Picture of Peer reviewers Picture of Plugin developers Picture of Testers

Yes, it did not take off because people don't report to us when something works, only when there are issues smile

You will be surprised, how many of open-source plugins are actually used with Moodle Workplace around the world and the creators do not even know about it because everything works fine. 

I think the best solution will be to advise the users when something has known problems. For example, a statement on the plugin page saying "This plugin should be used with caution on Moodle Workplace" and a link to the reported issue

Average of ratings: Useful (2)
In reply to Marina Glancy

Re: Can I make my plugin 100% open source?

by Gemma Lesterhuis -
Picture of Plugin developers Picture of Testers

I like your idea that a statement could be added, though I believe this should not be some extra text line, but a checkbox that can be marked by the developer.

 The reason is that some of us have long text, warning , information on that page and we see on a daily base that people are in general 'bad' readers. 

As well - if it's text we have to think about it. If it's a check box then it's easily to do. 

In reply to Marina Glancy

Re: Can I make my plugin 100% open source?

by Renaat Debleu -
Picture of Core developers Picture of Plugin developers
Hi Marina,

For Moodle Workplace it's always the dynamic rules that do not work as expected, in Totara I had an issue with importing. In other propriety software it will be something else...
This is the reason I'm looking for a solution that also will work outside the Moodle plugin database. Nobody reads a readme file, but everybody is supposed to have read the license.