Project

Profile

Help

Task #3984

Remove Python 3.5 Support

Added by gmbnomis about 1 year ago. Updated 6 months ago.

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

100%

Platform Release:
Blocks Release:
Backwards Incompatible:
No
Groomed:
No
Sprint Candidate:
No
Tags:
QA Contact:
Complexity:
Smash Test:
Verified:
No
Verification Required:
No
Sprint:

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

Duplicated by Pulp - Task #4015: Switch Pulp3 to use Python 3.6 as its base version CLOSED - DUPLICATE Actions

History

#1 Updated by dkliban@redhat.com about 1 year ago

  • Tracker changed from Issue to Task
  • % Done set to 0

#2 Updated by bmbouter about 1 year ago

  • Duplicated by Task #4015: Switch Pulp3 to use Python 3.6 as its base version added

#3 Updated by dalley about 1 year ago

  • Status changed from NEW to ASSIGNED
  • Assignee set to dalley

#4 Updated by dalley about 1 year ago

  • Status changed from ASSIGNED to POST

#5 Updated by dalley about 1 year ago

  • Status changed from POST to MODIFIED
  • % Done changed from 0 to 100

#6 Updated by daviddavis 6 months ago

  • Sprint/Milestone set to 3.0

#7 Updated by bmbouter 6 months ago

  • Tags deleted (Pulp 3)

Please register to edit this issue

Also available in: Atom PDF