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

Compatability with networkx is broken #1055

Open
adam2392 opened this issue Oct 31, 2023 · 8 comments
Open

Compatability with networkx is broken #1055

adam2392 opened this issue Oct 31, 2023 · 8 comments

Comments

@adam2392
Copy link
Contributor

adam2392 commented Oct 31, 2023

Networkx main has dropped support for Python3.8 and 3.9. We should consider following the Scientific-Python's community spec: networkx/networkx#7028

Reasoning:

This makes it very hard to support both dowhy and networkx related features using Python packaging like poetry because:

python>=3.8, <3.12 is incompatible with python>=3.10, <3.12

Networkx is core for graph-related functionality in pywhy-graphs too, so tight-integration with networkx:main is desirable. Moreover dowhy relies on graph-related functionality since it is a package for graph-based causal inference tasks.

For that matter, major SciPython package like numpy and scipy have dropped support for Python3.8

@emrekiciman
Copy link
Member

@adam2392 Thanks for bringing up this issue and the PR to drop python 3.8 support.

@bloebp
Copy link
Member

bloebp commented Oct 31, 2023

I would definitely wait for dropping 3.8 support and restrict the networkx version. Even 3.8 is not that commonly used yet. So, taking out that support would probably break the dependency for many people.

@adam2392
Copy link
Contributor Author

I would definitely wait for dropping 3.8 support and restrict the networkx version. Even 3.8 is not that commonly used yet. So, taking out that support would probably break the dependency for many people.

I'm actually surprised by that because Python 3.7 lost support earlier this year already for a few months, so if a new bug/security-issue is found, it won't even be fixed, which is scary to me.

I'm just wondering along the lines: "is there a way to push our users towards a more healthy/less-risky usage of Python?"

@emrekiciman
Copy link
Member

Yea, here's the official timeline of support for python versions. 3.8 is already in security-fix-only mode and is going to end-of-life in about 11 months.

https://devguide.python.org/versions/

I agree that keeping track with networkx and other major dependencies would be good. Do we know if Numpy, Pandas or other ML libraries that EconML and causal-learn depends on switching over on a schedule too?

@adam2392
Copy link
Contributor Author

I think numpy, pandas, scipy have all removed support for Python3.8 at this point on main. I think scikit-learn is in the process as well too.

Their general strategy is support older versions of X (e.g. Numpy) that have Python3.8 compatibility only for critical bug-fixes, but otw, all new features must be Python3.9+ compatible.

Since Python3.8 is technically still supported in version 0.10.x, and if v0.11.x is on a release schedule that overlaps w/ Python3.8 eol, it seems reasonable to deprecate python3.8 support in v0.11.xdev, while still maintaining support for 3.8 via v0.10.x and below. Up to you all! Just wanted to bring it some attention because this issue came up in pywhy-graphs, because I maintain extremely tight integration w/ networkx.

@bloebp
Copy link
Member

bloebp commented Oct 31, 2023

Ok, we might aim at 0.11 release in December.

@emrekiciman
Copy link
Member

Now that we are past the 0.11 release, do we want to revisit python 3.8 support in main? @adam2392 @bloebp @amit-sharma

@bloebp
Copy link
Member

bloebp commented Jan 8, 2024

Yes, we can drop 3.8 support for 0.12+

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

Successfully merging a pull request may close this issue.

3 participants