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

Drop Python 2 support #1092

Open
benmwebb opened this issue Mar 1, 2024 · 2 comments
Open

Drop Python 2 support #1092

benmwebb opened this issue Mar 1, 2024 · 2 comments
Assignees

Comments

@benmwebb
Copy link
Member

benmwebb commented Mar 1, 2024

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@fa6295c).

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

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

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 benmwebb self-assigned this Mar 1, 2024
@benmwebb
Copy link
Member Author

benmwebb commented Mar 1, 2024

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 added a commit to salilab/imp_website that referenced this issue Mar 1, 2024
@benmwebb
Copy link
Member Author

benmwebb commented Mar 1, 2024

Warning sent out on the IMP-users mailing list.

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

No branches or pull requests

1 participant