Hi Martin,
thank you for raising this query - I have split this out into its own thread as I think it's a great question to pull out and answer in its own right.
To answer your question:
- You are not obliged to share the Adapt related work you / your company does with the community. We understand that some clients (as well as some developers) wish for code not to be contributed back. This is ok and you are not obliged to share this code with the Adapt Learning project. In summary, the underlying license (GPL v3.0) entails that any code developed using Adapt (or any derivative code thereof) is also licensed under GPL v3.0.
- In short this means that you cannot 'sell' the code (you can sell only services around the code) and
- that the entity for whom you are developing the code (i.e. the intellectual property, IP) has a right to access the source code (e.g. your client).
- The decision to share this code is up to the entity who owns the IP. I.e. if your contract with your client states that they get the copyright / IP, then it's their decision on whether the code will be contributed back. Likewise, if your company retains the IP, this decision is yours. It's always advisable to educate your clients on this when you are using open source software. When using open source software, I tend to recommend to set contracts up so that the service provider (i.e. your company) retains the IP and therefore the right to share code back with the project you are building on.
- Finally, I understand the license to require that code, which has been distributed multiple times (e.g. used on multiple projects or for multiple clients), is made publicly available. So in summary, if you use an extension a lot, you'd be obliged to make it available publicly. This, of course, only applies to code (not client data or content).
- With all the above, please note that I am not a legal expert and that this is a very condensed summary. If in doubt, please consult an expert.
The above is the direct (and hopefully helpful) answer to your question. I'd like to provide a little more information and give context to how our project works and, especially, the benefits to sharing (and using) open source code.
The benefits of sharing code:
Our project and Framework exists on the basis of being entirely free to take and use. As Adapt Learning, we expect a large amount of users to simply take and benefit from the code and the work we do. This is perfectly fine and we expect this and encourage people to use the framework. The more the merrier! And we're here to support everyone.
It's also important to say that we are entirely focused on creating a compelling codebase, which we would like to establish as an industry standard. We're not intent on chasing people for contributions but will of course be very happy and grateful when you do.
When sharing code, you might find that other users / developers help fix bugs, enhance features and ultimately share the burden of maintenance, documentation and support. The benefits therefore include:
- Shared maintenance
- Bug fixes
- Feature enhancements
- Community support
- Better documentation
Sharing code will also help raise one's profile and enable you to influence where the project is headed. As and when a plug-in becomes well used, we'd be keen to offer the developers to come onboard with the core team as developers and maintainers of this specific piece of code. We would collaborate on bringing this up to our standards, including stability (unit test coverage, etc) and browser support. So in addition, we would say benefits include:
- Raised profile
- Goodwill in the community
- Influence over the direction of the Adapt Learning project
etc.
I hope this is a sufficient answer to the question and that it also makes a good case for sharing code and contributions.
Many thanks,
Sven