imp icon indicating copy to clipboard operation
imp copied to clipboard

Drop Python 2 support

Open benmwebb opened this issue 1 year ago • 2 comments

Python 2 has long since been retired. Many of the packages used by IMP (e.g. numpy, scipy) have dropped support for Python 2 so IMP with Python 2 must use old unmaintained versions of these packages. Testing is also more difficult as both GitHub Actions and conda-forge have dropped Python 2 support, so we must implement hacks to work around breakages (e.g. salilab/pmi@fa6295c6bf52673ae8a35ab21d72dcc99f43cf36).

The last major operating system that is still supported that ships with Python 2 is RedHat Enterprise 7. That reaches end-of-maintenance on June 30 2024. Plan to drop Python 2 support in IMP in the next stable release after this date, and require Python 3.6 or later.

Removal would entail

  • [x] dropping the -python2 RPM and .deb subpackages
  • [x] dropping RHEL 7 RPM builds
  • [x] dropping the Python 2 IMP packages in the salilab conda channel
  • [x] replacing imports of IMP._compat_pathlib with plain pathlib
  • [x] removal of all from future imports
  • [x] removal of try/except imports to import either Python 2 or 3 libraries
  • [x] removal of CMake checks for Python 2 and for Python 3-only modules

The Mac .dmg installer currently includes Python 2 support. Probably the best solution there is to drop this installer entirely (the code is suboptimal as the compiler is quite old, and it only supports the older x86_64 Macs) or possibly to build the installer on a much newer macOS version.

benmwebb avatar Mar 01 '24 02:03 benmwebb

The "Fast" and "Release" nightly builds at https://integrativemodeling.org/nightly/results/ (which are also used for internal lab or Wynton workflows via module load imp/nightly) now build only for Python 3. The corresponding last stable release, when used for lab or Wynton workflows via module load imp/2.20.1, now emits a warning when imported by Python 2.

benmwebb avatar Mar 01 '24 16:03 benmwebb

Warning sent out on the IMP-users mailing list.

benmwebb avatar Mar 01 '24 22:03 benmwebb

We should no longer use Python 2 in IMP's develop branch, closing.

benmwebb avatar Aug 22 '24 18:08 benmwebb