Picture of Martin Sandberg
Are code contributions necessary?
by Martin Sandberg - Monday, 24 February 2014, 9:01 AM
 

Looking at the documentation on creating plugins I see a requirement that they should be available on Git.

Is this really so?

For instance. I have a customer who have their own graph. I will have to create a plugin to print this graph with data from JSON files. However this plugin can not be made available to anyone except this customer.

If I have to make their graph publicly available I cannot use Adapt for this client.

Best regards,

Martin

 

Picture of Chris Jones
Re: First adaptation of a course / my notes and questions
by Chris Jones - Monday, 24 February 2014, 9:56 AM
 

Hello Martin,

If you have a component that you wish to remain private, then you do not have to publish it.

The ability to share and re-use components is "built-in" but you do not have to do this.

In your instance you would only need to copy your new plugin to the src/components directory to install it.

 

 

 

me
Re: Are code contributions necessary?
by Sven Laux - Monday, 24 February 2014, 10:36 AM
 

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

Picture of Martin Sandberg
Re: Are code contributions necessary?
by Martin Sandberg - Monday, 24 February 2014, 12:46 PM
 

Thank you for your extensive answer Sven, and for lifting this into a new thread. As you say it really deserves to have it's own discussion.

As for making code public. In normal cases I would have no problem with giving back code to the project but in the case of this one client the IP of the graph lies with them and it is not negotiable that it should be made public.

I am quite sure though that if I get to create their graph that I would have the basis for something that could be made public just with a different type of graph.

Best regards,

Martin