oemof / oemof-solph

A model generator for energy system modelling and optimisation (LP/MILP).
https://oemof.org
MIT License
297 stars 125 forks source link

License contributor agreement #260

Open birgits opened 7 years ago

birgits commented 7 years ago

At the oemof developer meeting (see https://github.com/oemof/oemof/issues/218) we decided to set up a license contributor agreement that every contributor must agree to. This on the one hand ensures that changing the license of oemof can be decided by the oemof developer group without having to contact every single one who has contributed in the past. The agreement will on the other hand also ensure every contributor that oemof will always be released under an open source license. The agreement will automatically pop up when a PR is created. @oemof/oemof-steering-committee did I recap this correctly? @Ludee could you help me write the agreement ? I will also check how the automatic pop up in the PR works.

Ludee commented 7 years ago

A collection of "literature" about CLA and its implementation: https://en.wikipedia.org/wiki/Contributor_License_Agreement https://cla.github.com/ https://www.clahub.com/ https://cla-assistant.io/

ckaldemeyer commented 7 years ago

At the oemof developer meeting (see #218) we decided to set up a license contributor agreement that every contributor must agree to. This on the one hand ensures that changing the license of oemof can be decided by the oemof developer group without having to contact every single one who has contributed in the past. The agreement will on the other hand also ensure every contributor that oemof will always be released under an open source license. The agreement will automatically pop up when a PR is created. @oemof/oemof-steering-committee did I recap this correctly?

I think so, yes.

simnh commented 7 years ago

I did not quite get it. Why should be want to change the licence in the future and how would that work? (a little too much for this issue I guess) If so, is always under an open source license or under a free software licence (e.g. GNU GPL3), which I would strongly voting for?

I a nutshell: I think we should make sure that oemof licence stays GPL 3 (or later)

birgits commented 7 years ago

We discussed that we might want to change the license to BSD or MIT or something in the future for some reason that we might not overlook yet. We just wanted to keep this possibility open. Then instead of asking every contributor for their permission (which might be quite hard because we might not have all their contact information), only reachable developers would have to be asked. Also, a contributor right now could decided that he/she wants to take his/her contribution out again and make it closed source, which we also want to prevent.

I a nutshell: I think we should make sure that oemof licence stays GPL 3 (or later)

Is this a statement against BSD or MIT? If we want to decide on that we could include this in the agreement. I guess it is a bigger discussion but also a necessary one if we want to include it in the contributor agreement which I find important.

simnh commented 7 years ago

Is this a statement against BSD or MIT? If we want to decide on that we could include this in the agreement. I guess it is a bigger discussion but also a necessary one if we want to include it in the contributor agreement which I find important.

Yes indeed. I know, it's a philosophical question but I do not see any reason why we should allow future developers to move away from the copyleft idead.

Ludee commented 7 years ago

I go with your opinion @simnh , oemof must be always as open as possible. The primary purpose of the CLA is not a change of the license.

CLA defines the terms under which intellectual property has been contributed to a company/project, typically software under an open source license.

We will use oemof developer group as copyright(left) owner. When you contribute to oemof your work will be committed to the collective. Perhaps we can add a paragraph that constraints this to specific requirements of a license. Another example is a fictional update from GPLv3 to GPLv4 that would require the same procedure.

birgits commented 7 years ago

There is an LCA provided by github that we could use. I put up a gist to which I copied this LCA and wrote a suggestion for adding a passage ensuring that oemof in the future can only be licensed under GPL. Maybe we can continue the discussion in the gist. The gist can then be used to automatically include the LCA in oemof and, as I understand it, pop up when a new PR is created.

uvchik commented 7 years ago

After talking to a lawyer @beritRLI said that the oemof developer group is not a legal entity and therefore cannot be holder of the licence.

@oemof/oemof-developer-group : How do we want to go on with this information?

ckaldemeyer commented 7 years ago

After talking to a lawyer @beritRLI said that the oemof developer group is not a legal entity and therefore cannot be holder of the licence.

@oemof/oemof-developer-group : How do we want to go on with this information?

I guess the only way would be to found a legal entity, or not?

birgits commented 7 years ago

As of the new github terms from February an LCA is not necessary anymore. We are still left with the question of whether or not we want to form a legal entity. @Ludee do you know how this would work?

birgits commented 5 years ago

@uvchik @p-snft I just found this issue again and thought it would be relevant for you as it addresses issues we discussed at the dev meeting (oemof developer group not a legal entity, changing the license to a permissive license...).

p-snft commented 5 years ago

If oemof switches to MIT license, the only use of an LCA would be to sue someone for copyright infringements using a legal entity. Also, the list of copyright holders could be shortened. (This second point, I would not recommend.)

However, there is another option. If there is a legal person (see https://github.com/oemof/organisation/issues/44) who gets the copyright using a LCA, one might also run a dual license model: (L)GPL as a default option and if other projects ask for specific code fragments, one might also release those under a more permissive license.