[Pulp-dev] Proposal to drop support of Python 3.5 for Pulp 3

Brian Bouterse bbouters at redhat.com
Fri Sep 14 18:54:23 UTC 2018


Here are the two stories for this work. I think we should add them to the
sprint. They weren't written this morning for sprint planning unfortunately.

https://pulp.plan.io/issues/4015
https://pulp.plan.io/issues/4016


On Wed, Sep 12, 2018 at 3:27 PM, Tatiana Tereshchenko <ttereshc at redhat.com>
wrote:

> Big +1
>
> Tanya
>
> On Wed, Sep 12, 2018 at 4:50 PM, David Davis <daviddavis at redhat.com>
> wrote:
>
>> +1
>>
>> David
>>
>>
>> On Tue, Sep 11, 2018 at 10:35 AM Jeff Ortel <jortel at redhat.com> wrote:
>>
>>> +1
>>>
>>> On 09/07/2018 01:09 AM, Simon Baatz wrote:
>>> > I had a discussion on IRC with Brian yesterday which led to the
>>> > question whether we can drop support for Python 3.5. I think there are
>>> > good reasons for this, see the rationale below.
>>> >
>>> > Brian proposed to initiate a vote on this topic (and find out whether
>>> > this "community thing" works :-) ).
>>> >
>>> > Please send feedback by Friday Sept 14th. Especially, let me know if
>>> > there are specific reasons for depending on Python 3.5. The
>>> > corresponding issue is 3984 [7].
>>> >
>>> > Cheers,
>>> > Simon
>>> >
>>> >
>>> > Rationale:
>>> >
>>> > The trigger for the discussion was to get rid of boilerplate code like
>>> > this [0], [1] to handle batches in the stages API. This becomes a
>>> > single line [2] when using an asynchronous generator [3]. Adding the
>>> > `batches()` async generator to Pulp core would simplify existing
>>> > stages and ease implementation of stages in plugins.
>>> >
>>> > Async generators have been introduced in Python 3.6. Thus, to make the
>>> > `batches` generator available in the Pulp core plugin API, we either
>>> >
>>> > - have to drop support for Python 3.5 or
>>> >
>>> > - reimplement the async generator as an async iterator (which would be
>>> >    more convoluted but looks doable)
>>> >
>>> >
>>> > I prefer to drop 3.5, since this will allow to use additional language
>>> > features[4]. Among them:
>>> >
>>> > - As said, async generators/async comprehensions. Async generators are
>>> >    simpler to write and understand than async iterators.
>>> >
>>> > - 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]
>>> >
>>> >
>>> > Python 3.6 has the OS/distribution support we need:
>>> >
>>> > - 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.
>>> >
>>> >
>>> >
>>> > [0] https://github.com/pulp/pulp/blob/631031e38270c5c7c2b2289ff4
>>> ab87a058447c5e/plugin/pulpcore/plugin/stages/
>>> content_unit_stages.py#L47-L59
>>> > [1] https://github.com/pulp/pulp/blob/631031e38270c5c7c2b2289ff4
>>> ab87a058447c5e/plugin/pulpcore/plugin/stages/artifact_stages.py#L48-L60
>>> > [2] https://github.com/gmbnomis/pulp_cookbook/blob/ca4882cecab16
>>> 995c5713d27131da8112a5f5a0c/pulp_cookbook/app/tasks/synchronizing.py#L98
>>> > [3] https://github.com/gmbnomis/pulp_cookbook/blob/d44ed593925b7
>>> 8c046e1b568810b15acbdad5ac4/pulp_cookbook/app/tasks/synchronizing.py#L26
>>> > [4] https://docs.python.org/3/whatsnew/3.6.html
>>> > [5] https://docs.python.org/3/whatsnew/3.6.html#pep-498-formatte
>>> d-string-literals
>>> > [6] https://twitter.com/raymondh/status/844955415259463681
>>> > [7] https://pulp.plan.io/issues/3984
>>> >
>>> > _______________________________________________
>>> > Pulp-dev mailing list
>>> > Pulp-dev at redhat.com
>>> > https://www.redhat.com/mailman/listinfo/pulp-dev
>>>
>>> _______________________________________________
>>> Pulp-dev mailing list
>>> Pulp-dev at redhat.com
>>> https://www.redhat.com/mailman/listinfo/pulp-dev
>>>
>>
>> _______________________________________________
>> Pulp-dev mailing list
>> Pulp-dev at redhat.com
>> https://www.redhat.com/mailman/listinfo/pulp-dev
>>
>>
>
> _______________________________________________
> Pulp-dev mailing list
> Pulp-dev at redhat.com
> https://www.redhat.com/mailman/listinfo/pulp-dev
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listman.redhat.com/archives/pulp-dev/attachments/20180914/869512fc/attachment.htm>


More information about the Pulp-dev mailing list