DataBiosphere / toil

A scalable, efficient, cross-platform (Linux/macOS) and easy-to-use workflow engine in pure Python.
http://toil.ucsc-cgl.org/.
Apache License 2.0
878 stars 237 forks source link

Discuss: License Change? BSD, MIT, Apache. #4937

Open DailyDreaming opened 1 month ago

DailyDreaming commented 1 month ago

As the title suggests, we should discuss the positives and negatives of the different licenses.

UCSC prefers MIT and BSD. Apache is better for patents I believe.

From Max Xiong at StackExchange:

The MIT and BSD 2 clause licenses have similar requirements: keep the license file. The BSD 3 clause license adds a term to the BSD 2 that prevents someone from claiming false endorsement. These three licenses are compatible with GPLv2 and v3.

The Apache 2.0 license requires you to keep the license file, the NOTICE file if there is one, and show notice for modified files. It also addresses some patent-related issues, so companies use it a lot. It is compatible with GPLv3 but not v2 (due to the patent clauses).

There is also an old BSD license that has an clause related to advertising. Don't use it because it's not GPL compatible.

In practice, the ecosystem you are working with has a license that is used most often to begin with, and I would stick to that. For example, I would use MIT for Nodejs packages. If you are working on an application, some would recommend using the Apache 2.0 license because it covers patent issues.

┆Issue is synchronized with this Jira Story ┆Issue Number: TOIL-1572

glennhickey commented 1 month ago

+1 vote for MIT which is what we use in Cactus and vg

DailyDreaming commented 1 month ago

+1 vote for MIT which is what we use in Cactus and vg

I support moving to MIT and a generally more permissive license.

benedictpaten commented 1 month ago

I also vote for MIT. @mr-c - do you have an opinion?

mr-c commented 1 month ago

I'm not seeing any advantage to switching licenses. All the software I maintain for the CWL project is Apache 2.0 licensed. Mixing any of the above mentioned licenses is allowed, so why go through the pain of relicensing?

benedictpaten commented 1 month ago

I think the complexity of the Apache 2.0 license vs. MIT, and the second clause of the patent provision, scare off some (e.g. Broad). I think that is a totally reasonable concern for this and a reason to switch.

mr-c commented 1 month ago

If you want to use a different license, then toil will have to be a mixed-license** project until all 116 contributors have either agreed in writing to license their previous contributions under the new license or you can document that their contributions are no longer present.

(**mixed license meaning: Apache 2.0 for old contributions, MIT for new contributions)

I'm helping the Galaxy project to finish their switch to MIT from AFL and it takes a long time. They required MIT for new contributions starting on 2021-04-07 and we are still working through the 400+ contributors. Obviously Galaxy is a bigger project, but I wanted to share that datapoint.