Skip to content

Python 3.7 End-of-Life and Upgrading to Python 3.11 #2445

@JacksonBurns

Description

@JacksonBurns

Python 3.7 is reaching end of life this summer and will no longer receive security updates. Ultimately because we distribute on Docker now we can continue to ship the outdated Python version for a while before things actually stop working, but it will atrophy.

We will need to increment our minor version of Python, preferably to 3.11 for the speed improvements and longest support window. I say this rather than just shooting for 3.8, since I believe the additional effort of incrementing 4 minor versions will not be much worse than 1 (see below).

I anticipate that this will be an absolute nightmare, but a (forced) opportunity for some cleanup.

  • pydas and pydqed were originally written in Python 2.7, hacked to get into Python 3.7, and will likely go kicking and screaming into Python 3.11
  • pyjulia and diffeqpy are both presumably locked to Python 3.7
  • Our remarkably outdated build of chemprop (0.0.1) only supports 3.7, though chemprop v2 will support 3.11 and newer.
  • many of the packages we built and 'maintain' on the conda rmg channel expect Python 3.7 and will need to be rebuilt (just especially the ones mentioned above)
  • Cython will need to be incremented to 0.29 (from 0.27)

This might take long enough that we end up targeting 3.12, which promises some very nice parallelism improvements so maybe that isn't such a bad thing.

Some things we should get done (wrt clearing tech debt) before attempting this:

Metadata

Metadata

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions