Project

Profile

Help

Task #3984

closed

Remove Python 3.5 Support

Added by gmbnomis over 4 years ago. Updated about 3 years ago.

Status:
CLOSED - CURRENTRELEASE
Priority:
Normal
Assignee:
Category:
-
Sprint/Milestone:
Start date:
Due date:
% Done:

100%

Estimated time:
Platform Release:
Groomed:
No
Sprint Candidate:
No
Tags:
Sprint:
Quarter:

Description

Problem

Async generators are an elegant way to write async data producers (just like synchronous generators for the sync case). Since the repo sync pipeline is fully asynchronous now, they can help to express concepts more elegantly (see e.g. [2] for a stage implementation).

However, async generators were introduced in Python 3.6 and are not available in Python 3.5.

Additional benefits of Python 3.6+ are:

  • String interpolation "f-Strings" [5]
  • dict objects preserve insertion-order (officially declared part of
    the language with Python 3.7). Eliminates a source of subtle
    "works on 3.6, sometimes works on 3.5" bugs.
  • One version less to support is always a good thing (provided nobody
    really requires it)
  • Type annotations are currently not used by the Pulp project, but if
    the project decides to use them in the future: IMHO type annotations
    (which are great btw.) began to feel right with 3.6. Working with
    them in 3.5 can be clumsy at times.
  • And of course: [6]

OS/distribution support

  • Python 3.6 SCL is available for RHEL 7 / CentOS 7
  • It is part of Fedora as of Fedora 26

For Ubuntu, it is part of 18.04 LTS. Debian does not have Python 3.6 in stable yet.

Proposal

Remove Python 3.5 from Travis tests and require Python 3.6+ in the Python modules & documentation. For pulp/devel 3.6 is the current default version already.

[2] https://github.com/gmbnomis/pulp_cookbook/blob/d44ed593925b78c046e1b568810b15acbdad5ac4/pulp_cookbook/app/tasks/synchronizing.py#L98
[5] https://docs.python.org/3/whatsnew/3.6.html#pep-498-formatted-string-literals
[6] https://twitter.com/raymondh/status/844955415259463681


Related issues

Has duplicate Pulp - Task #4015: Switch Pulp3 to use Python 3.6 as its base versionCLOSED - DUPLICATEdalley

Actions

Also available in: Atom PDF