vivarium-collective / vivarium-core

Core Interface and Engine for Vivarium
https://vivarium-core.readthedocs.io/
Apache License 2.0
26 stars 3 forks source link

Drop Python 3.9 support in favor of 3.12 and 3.13 #241

Closed thalassemia closed 2 days ago

thalassemia commented 3 days ago

I was able to update requirements.txt to work on Python 3.10-3.13. Unfortunately, the latest possible version of networkx that installs on Python 3.9 is 3.2.1, and a change in networkx 3.4 breaks our plot_topology function. I could add logic to determine the version of networkx and do different things depending on whether it is greater or less than 3.4, but that sounds unnecessarily complicated. Instead, I think it makes more sense to just bump the required Python version to 3.10 and networkx version to 3.4. For context, Python 3.9 reaches end-of-life in 2025-10, and big packages like Numpy and Scipy have already dropped support for it.

Other changes include:


By creating this pull request, I agree to the Contributor License Agreement, which is available in CLA.md at the top level of this repository.

thalassemia commented 3 days ago

Thanks @thalassemia! So is there topology graphing as it currently stands?

plot_topology works in the current release as long as you have networkx<3.4. I think those older versions of networkx should work on Python 3.10-3.13 as well. I don't think it is a good idea to cap the networkx version to address the issue with networkx 3.4+.

eagmon commented 2 days ago

@thalassemia -- looks like there are still some 3.9-related tests hanging. Can you remove these from the GitHub actions?

thalassemia commented 2 days ago

I think those are required by some repository setting that I can't access. Instead of hanging they're just not being run. These docs might be helpful.