Project

General

Profile

Feature #20227

Migrate to Python3

Added by Marco Mambelli over 1 year ago. Updated over 1 year ago.

Status:
New
Priority:
Normal
Assignee:
-
Category:
-
Target version:
Start date:
06/27/2018
Due date:
% Done:

0%

Estimated time:
(Total: 0.00 h)
Stakeholders:
Duration:

Description

Python.org ( https://devguide.python.org/#status-of-python-branches ) and several python packages will drop support for Python 2.7 before 2020: http://python3statement.org/
RHEL 8 will ship with only Python3
EPEL is also pushing to port everything to Python3, which is the currently recommended python version (also in EL7): https://fedoraproject.org/wiki/SIGs/Python
RH will support Python 2.7 until RHEL7 EOL

The recommendation, if stakeholders agree, is to plan a full migration to Python 3 by summer 2019


Subtasks

Feature #20232: Run unit tests in Python 3AssignedDennis Box

History

#1 Updated by Marco Mambelli over 1 year ago

We mainly need support for m2crypto and condor (which has Python 3 support)
Consider SL7 and SL6 support
EPEL has full Python 3 support for EL7, 3.4 and 3.6:
https://dl.fedoraproject.org/pub/epel/7/x86_64/Packages/p/
EPEL for SL6 has python34:
https://dl.fedoraproject.org/pub/epel/6/x86_64/Packages/p/

Here instructions to install w/ altinstall from the Python tarballs (viable for tests, not for production deployment):
https://danieleriksson.net/2017/02/08/how-to-install-latest-python-on-centos/

Python 3.4 could be a safe choice more compatible also w/ EL6
Python 3.6 adds coroutine support (async/wait, generators, ...), strings literals, type annotation, dicts are ordered.

EL6 support is not critical. It is in product retirements phase (Maintenance Support 2, only critical security fixes and not supported in new hardware). And it will become unsupported on November 30, 2020 (Extended Lifetime support, no security updates -> Fermilab will not allow it)

#2 Updated by Marco Mambelli over 1 year ago

  • Target version changed from v3_5_x to v_collections

#3 Updated by Marco Mambelli over 1 year ago

v3.7 will be parallel to the Python 2 version (v3.5 or 3.6)

Consider migrating configuration to YAML (https://www.zionandzion.com/json-vs-xml-vs-toml-vs-cson-vs-yaml/)
- tool to port XML config files
- maintain the ability to include parts (config.d)
- preserve checks on what is allowed
- revisit the whole config system:
- are temp files still necessary?
- OK to rewrite config file (to complete w/ default values, to eliminate duplicates, to sort some lists). Maybe move this to a separate tool



Also available in: Atom PDF