uwot
uwot copied to clipboard
Licensing model for uwot and umappp
uwot and by being a descendant @LTLA's umappp are currently licensed under GPL-3 while the original Python UMAP was licensed under BSD 3-clause. Are there any thoughts on licensing uwot/umappp under the permissive licensing model so these great packages can be used in non-open source projects? Thanks for considering.
I can't speak for umappp but in terms of uwot:
- The bits of the UMAP implementation in C++ (which can be found under
inst/include/uwot
) is all licensed as BSD 2 clause. There should be no reference to the R API or anything other than the C++ standard library in there. So you are already entirely free to make use of the C++ part of uwot under that more permissive license (although you would have to write a fair chunk of glue code). - The interface between the C++ and R (which lives under
src
) uses Rcpp, which is GPL-3. IANAL but my understanding is that because I include that project's headers, I am unable to relicense that under a more permissive license. As a consequence, the R package as a whole is GPL-3 (or later).
FWIW I was going to go for MIT for umappp before this discussion. Dunno if that's appropriate here, all my licensing lectures went in one ear and straight out the other. Guess I could use BSD-2 instead.
FYI umappp itself links to Annoy and Hnswlib (via knncolle), so if we're considering linked libraries as being part of the "distribution", you'd have to check their licenses as well. Both are Apache 2.0, which seems... fine?
Thanks @jlmelville for the clear and detailed explanation. All makes perfect sense.
And @LTLA , yes, I know that licensing models is as dull as it gets :-) From what little I know there is very little difference between MIT, BSD, and Apache. Those are all permissive licenses that allow re-use and integration into other software with almost no restrictions except acknowledging the copyright of the originator and that you cannot hold the originator liable. So whichever of those licenses you end up using, all great for my use; thanks!