imp
imp copied to clipboard
Drop Python 2 support
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 plainpathlib
- [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.
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.
Warning sent out on the IMP-users mailing list.
We should no longer use Python 2 in IMP's develop branch, closing.