Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Licensing model for uwot and umappp #93

Closed
dsudar opened this issue May 2, 2022 · 3 comments
Closed

Licensing model for uwot and umappp #93

dsudar opened this issue May 2, 2022 · 3 comments

Comments

@dsudar
Copy link

dsudar commented May 2, 2022

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.

@jlmelville
Copy link
Owner

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

@LTLA
Copy link
Contributor

LTLA commented May 3, 2022

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?

@dsudar
Copy link
Author

dsudar commented May 3, 2022

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!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants