Integration of lmoments3
and eofs
is not permitted under GPLv3
#1620
Labels
dependencies
Pull requests that update a dependency file
invalid
This doesn't seem right
priority
Immediate priority
standards / conventions
Suggestions on ways forward
Milestone
Related discussions for
lmoments3
: #1619, Ouranosinc/lmoments3#12Addressing a problem?
It's come to our attention that we are very likely violating GPLv3 with a few small dependencies: lmoments3 and eofs. This is due to the fact that any extension/integrations of code into our code base means that we must also follow the restrictions of the GPLv3.
We have no intention of re-licensing
xclim
so we need to make some compatibility-related changes moving forwards. These libraries (and functions based uniquely on them) cannot remain in the code base as they are.We realize that this creates some breakage to existing workflows, but it is in the interest of respecting the principles of Open Source that we unfortunately cannot provide a transitory version of
xclim
in order to adapt. We are sorry for the inconvenience and apologize to the developers ofeofs
andlmoments3
.Possible solutions
eofs
We will be removing the code related to
eofs
in the next release (v0.48.0). This solely served as a convenience wrapper foreofs.standard.Eof
. Theeofs
library is already very compatible with existing data structures found inxclim
(xarray
/dask
) so for users who rely on this functionality, they will simply need to useeofs.standard.Eof
directly.lmoments3
The code related to
lmoments3
will also be removed in the next release (v0.48.0), but as we are currently the maintainers for this project, we will be contributing changes there that render the code compatible withxclim.indices.stats.frequency_analysis
.One possible approach is to change the call signature in
frequency_analysis
to acceptscipy
-based distributions functions, e.g. The current signature:becomes:
This would ensure that users would simply need to install
lmoments3
in their environments and pass theirCallable
tofrequency_analysis
to maintain the same functionality.There are longer-term plans to try and re-license
lmoments3
under a more permissive scheme, however until then we cannot keep their project integrated into thexclim
code base.Further reading
https://www.apache.org/licenses/GPL-compatibility
https://opensource.stackexchange.com/questions/6033/can-a-non-gpl-python-program-use-gpl-python-module/6036#6036
The text was updated successfully, but these errors were encountered: