Skip to content

Clarify potential GPL3 licensing issues #1120

@jonpcohen

Description

@jonpcohen

It would be good to remove GPL-3 licensing ambiguity. I have bolded the two suggested action items.

The GPL-3 license requires any derivative software to also be distributed under a GPL-3 license (i.e., "copyleft"). This causes two types of issues for pyfixest adoption in industry:

  1. It can't be in code that will be commercially licensed.
  2. Even for internal analytic work, the legal departments in larger companies may prevent its usage to eliminate licensing risks.

There are two potential issues.

First, based on a regex search of GPL in the repo, I can see four scripts with this in comments:

  1. src/collinear.rs - this notes that the author granted an irrevocable, written permission to redistribute and re-license the relevant code under the MIT License
  2. benchmarks/data_generation.r - same as above
  3. pyfixest/estimation/numba/find_collinear_variables_nb.py - same as above
  4. tests/test_ccv.py - this contains a comment stating it "has also benefitted from Daniel Pailanir and Damian Clarke's implementation in Stata available at https://github.com/Daniel-Pailanir/TSCB-CCV and published under GPL3 License."

The final script is the one that can be seen as problematic. It's not clear what it means for the implementation in that file to have "benefitted" from another piece of code. If the original Stata code was under GPLv3, its Python reimplementation might be a derivative work that would also need to be under the same license. Suggestion: get MIT license permission like was done with Laurent's code.

Second, pixi.lock shows packages in the lockfile under GPL-3. As far as I can tell, none of these are in the core package. Suggestion: create a separate core = [] environment in pixi.toml to readily demonstrate this.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions