the-nuclear-confectionery / CCAKE

Conserved ChArges HydrodynamiK Evolution
https://the-nuclear-confectionery.github.io/ccake-site/
Other
2 stars 1 forks source link

Code license #15

Open willian-m opened 10 months ago

willian-m commented 10 months ago

If we plan to make the code public soon, a license should be applied, even if it is open source. Some popular are:

Also relevant, there is a UIUC-license.

As an example of common software used by the community, MUSIC uses GPL-v2.0 license, Kompost and Trento uses MIT license and SMASH uses a GPL v3 for the code and BSD for the cmake scripts. The Cabana lib (which I am integrating on the code) uses 3-clause BSD and Kokkos uses the Apache license.

My personal opinion: We should use the UIUC license. Not just because we are all based here, but it is more precise than the MIT while being simpler to understand than the GPL one. 3-clause BSD is very similar to it.

If anyone wants to go down this rabbit hole, here here is a good resource that lists many options that we could use.

willian-m commented 5 months ago

Some additional comments on this issue:

Regarding citations: Based on the answers to this question, in particular this answer, I do not believe that a license is the right place to enforce citations. From what I understand, a license is a piece of legal document that says what a person may or may not do with the code. In case of lack of citations we will likely to complain directly with the offender or maybe scalate it to the editor of a journal instead of taking legal action.

This question also highlights why a license is important.

UIUC-license: It requires putting group's name, an website link etc. Given that these things may change and even that we have people from other institutions that may collaborate on this in the future, I changed my mindo about it.

This leave us with GPL, MIT, BSD and Apache. One concern I have is "License compatibility", that is, we adopting a license which have clauses that are incompatible with others. GPL is notorious for that. So let us scratch it. This leave us with BSD 3-clause, MIT and Apache. This resource I mentioned before says that essentially that MIT and BSD are compatible between themselves. They recommend against BSD under the claims of possible confusion with older versions of BSD. I do not agree. So, I will scratch MIT as well.

So we have BSD 3-clause or Apache 2.0. That same reference says Apache 2.0 is preferable over BSD because it better protects authors and contributors. This is further confirmed in this post.

So, my vote is for us to use Apache 2.0