As you all know, the PyStan license is GPL-3, while the Stan core is BSD. In some corporate environments this causes a number of issues, and means we can’t use Stan effectively. It also means we can’t use derived works like Prophet.
I understand that RStan does this because of how it uses (used?) the GPL Rcpp package (and that GPL is much more common in the R world). I’m not aware of any reason besides developer preference for PyStan not being available BSD, which is quite common in the python data science world (NumPy, Pandas, SciPy, Scikit-Learn, and Cython are all BSD or BSD compatible Apache or MIT). Would the Stan team (and particularly @ariddell, who seems to be the main contributor) be willing to consider a BSD compatible license for PyStan?
The first version of PyStan copied a lot of code from RStan which was
GPL3’d at the time. That’s why PyStan is GPL3’d. (Had it been up to me I
would have picked MPL.)
I don’t know CC0, so would you mind changing the license to the MIT license? As I said before, given that we wrote RStan, we’re free to use it however we want and license it however we want. I can change our top-level web site after you do that. Thanks!
The RStan license is irrelevant. Just because PyStan was derived from RStan, doesn’t mean we have to release them both under the same license. If we own a piece of IP, we can license it to different people under different licenses.
For example, MySQL released their software under the GPL and also sold non-GPL licenses. No issue whatsoever and no conflict because they owned the IP. A third party who used it under the GPL couldn’t remove the GPL, but the owners of the IP can license it however they want.
If a third party had written RStan, we’d have to abide by their license or negotiate a separate license.
I’m happy to relicense PyStan as MIT if RStan is released under a
permissive license.
The PyStan rewrite will be MIT and/or CC0 licensed as it will not depend
on any of the GPLv3 code in RStan. I hope to get the rewrite done before
June.
Because several files in PyStan are (transparently) derived from RStan
(e.g., stan_fit.hpp), which were and still are available under the GPL.
I suppose it all could be relicensed under BSD-3 if the version of RStan
from which PyStan took the files were publicly released under a BSD-3
license.
I’ll have a (minimal) working example of PyStan 3 out soon. I’m just
finishing writing the documentation and bringing the tests over. I had
hoped to get this done before the semester started.
If you’re really going to release PyStan 3 ahead of the rest of Stan 3, then that’s a fine way to go and will render this discussion moot.
Did I not forward you the message from the NumFOCUS IP lawyer? I’ll do that now.
This is completely irrelevant. A copyright holder may release their IP under multiple licenses without conflict. For example, we did a GPL release of Stan for JStatSoft before they changed their mind about IP requirements and allowed BSD submissions.
According to the lawyer, that’s not required, as translated code is not considered a derived product. I think the reasoning here is that code is only copyrighted, whereas algorithms require patents.
Corey, could you elaborate a bit on your need for a permissive license a bit? I’d also ask the same question I asked @bhomass – are you in academia or industry?