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

Considering removing gensim as a dependency #1091

Open
bdpedigo opened this issue Oct 8, 2024 · 7 comments
Open

Considering removing gensim as a dependency #1091

bdpedigo opened this issue Oct 8, 2024 · 7 comments
Labels
discussion graspologic team discussion

Comments

@bdpedigo
Copy link
Collaborator

bdpedigo commented Oct 8, 2024

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

@bdpedigo bdpedigo added enhancement New feature or request discussion graspologic team discussion and removed enhancement New feature or request labels Oct 8, 2024
@bdpedigo
Copy link
Collaborator Author

bdpedigo commented Oct 8, 2024

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

@daxpryce
Copy link
Contributor

daxpryce commented Oct 8, 2024

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 ?

@darthtrevino
Copy link
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?

@bdpedigo
Copy link
Collaborator Author

bdpedigo commented Oct 8, 2024

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

@darthtrevino
Copy link
Collaborator

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

@daxpryce
Copy link
Contributor

daxpryce commented Oct 8, 2024

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

@bdpedigo
Copy link
Collaborator Author

bdpedigo commented Oct 9, 2024

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

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

No branches or pull requests

3 participants