Skip to content

Considering removing gensim as a dependency #1091

Open

Description

@bdpedigo

Considering completely removing gensim (and therefore, node2vec) as a dependency in graspologic

They constantly have dependency issues because the package is not heavily maintained (currently releasing on PyPI about once per year). For instance, right now builds are failing due to an issue with Scipy. piskvorky/gensim#3525

If anyone really wants to keep node2vec around, then I'd like to discuss how to get away from these dependency conflict issues or to have someone help with maintenance when they arise

Activity

  1. added
    enhancementNew feature or request
    discussiongraspologic team discussion
    and removed
    enhancementNew feature or request
    on Oct 8, 2024
  2. bdpedigo commented on Oct 8, 2024

    @bdpedigo
    CollaboratorAuthor

    cc @daxpryce @darthtrevino: I know you're likely busy with other things, but if you two know of anyone else at MSFT using graspologic that might care, could you please cc them as well? Thank you in advance

  3. daxpryce commented on Oct 8, 2024

    @daxpryce
    Contributor

    I believe that @darthtrevino and company still use it, but I would agree it has become such a millstone around the neck re: library versions, python version limitations, etc, that you're better off removing it until a... less challenging version can be built or found and used. What do you think @darthtrevino ?

  4. darthtrevino commented on Oct 8, 2024

    @darthtrevino
    Collaborator

    We mostly use this library for Leiden in GraphRAG, but we do have node2vec as an optional feature. We've been discussing moving to GEE. Is there a way to support n2v without gensim? Maybe an alternative implementation?

  5. bdpedigo commented on Oct 8, 2024

    @bdpedigo
    CollaboratorAuthor

    this one popped up for me with 1.2k stars https://github.com/eliorc/node2vec I have also definitely seen other libraries

  6. darthtrevino commented on Oct 8, 2024

    @darthtrevino
    Collaborator

    If possible, we'd prefer to have the n2v embedding operation supported, but we're not married to gensim per se

  7. daxpryce commented on Oct 8, 2024

    @daxpryce
    Contributor

    I would assert the main reason we added node2vec in topologic and then graspologic is specifically so we could swap out implementations but provide a consistent API. I think the effort to replace it rather than remove it is good, though I also could see removing it in the next couple versions until you can get the next one in place - if only so development can continue without dependency requirement conflicts

  8. bdpedigo commented on Oct 9, 2024

    @bdpedigo
    CollaboratorAuthor

    looks like things are working now https://github.com/graspologic-org/graspologic/actions/runs/11259180298

    i somehow missed that they had published a fix on PyPI for the current issue.

    going to leave this issue open though, i think this is a general problem that we have a pretty wide scope of dependencies

  9. jcaplan commented on Jul 2, 2025

    @jcaplan

    gensim also broken on python 3.13 with no fix in sight piskvorky/gensim#3601

  10. daxpryce commented on Jul 4, 2025

    @daxpryce
    Contributor
  11. bdpedigo commented on Jul 7, 2025

    @bdpedigo
    CollaboratorAuthor

    that sounds great to me

  12. taranarmo commented on Nov 19, 2025

    @taranarmo

    gensim also broken on python 3.13 with no fix in sight piskvorky/gensim#3601

    not anymore, from 3.4.0 they support Python 3.13

  13. daxpryce commented on Jun 14, 2026

    @daxpryce
    Contributor

    We're going to drop gensim/node2vec support going forward - people who want that capability can stay on the 3.x release and 4.x will drop support for it and unpin a few things in the deps that don't need to be quite as locked down.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    discussiongraspologic team discussion

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions