uwot icon indicating copy to clipboard operation
uwot copied to clipboard

Licensing model for uwot and umappp

Open dsudar opened this issue 2 years ago • 3 comments

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.

dsudar avatar May 02 '22 18:05 dsudar

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).

jlmelville avatar May 03 '22 01:05 jlmelville

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?

LTLA avatar May 03 '22 06:05 LTLA

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!

dsudar avatar May 03 '22 07:05 dsudar