scverse / scverse/scirpy

Avoid GPL Dependencies as Hard Dependencies

Open
#603 3 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
265
Forks
50
Avg merge
9d 9h
Merged PRs (30d)
4

Description

Scirpy currently lists both igraph and python-Levenshtein as hard dependencies. Since these packages are licensed under the GPL, their inclusion could inadvertently impose GPL conditions on Scirpy, which is intended to be BSD licensed.

Potential Impact:

  • License Conflict: Incorporating GPL components as mandatory dependencies may force Scirpy to adhere to GPL terms, conflicting with its BSD licensing.
  • Distribution Concerns: This could lead to legal and distribution complications, undermining the intended permissive licensing model of Scirpy.

Proposed Solutions:

  • Make Dependencies Optional: Consider making igraph and python-Levenshtein optional dependencies to avoid enforcing GPL licensing on the entire package.
  • Explore Alternatives: Investigate alternative libraries that provide similar functionality but are licensed under more permissive licenses (e.g., MIT or BSD).

I believe addressing this will help maintain Scirpy's intended BSD license and prevent potential licensing issues. Happy to discuss further or help test any changes proposed.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by locating Scirpy's dependency declarations and the uses of igraph and python-Levenshtein. Compare making them optional with replacing them, then check packaging metadata and relevant tests; done means the chosen approach avoids hard GPL dependencies without breaking supported functionality.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
build-system
Issue type
Refactor
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.