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

Dennis Kliban dkliban at redhat.com
Fri Sep 7 15:16:07 UTC 2018


I am +1 on this also.


On Fri, Sep 7, 2018 at 10:29 AM, Dana Walker <dawalker at redhat.com> wrote:

> This sounds like a great idea.  +1
>
> My only hesitation would be if this hurts a significant portion of users.
> Do we know how many users use older versions of Ubuntu or Debian that this
> would impact?  Any other groups we might not have considered yet?
>
>
Right now no one is able to run Pulp 2 on Ubuntu. Ubuntu users will be able
to install Python 3.6 and run Pulp 3. After May 2019, Ubuntu users will be
able to skip installing Python 3.6 because it will already be installed.




> Dana Walker
>
> Associate Software Engineer
>
> Red Hat
>
> <https://www.redhat.com>
> <https://red.ht/sig>
>
> On Fri, Sep 7, 2018 at 8:50 AM, Brian Bouterse <bbouters at redhat.com>
> wrote:
>
>> I'm also +1 on this for the various reasons. Even with the portability
>> downsides. Also, practically speaking, the batch code is legit, and it will
>> benfit the stages code a lot.
>>
>> On Fri, Sep 7, 2018 at 8:17 AM, Daniel Alley <dalley at redhat.com> wrote:
>>
>>> Personally, +1.  I ran into this issue myself and it was infuriating to
>>> deal with.
>>>
>>> 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.
>>>>
>>>
>>> Just to expand on this though:
>>>
>>> For Ubuntu, it is part of 18.04 LTS. Debian does not have Python 3.6 in
>>>> stable yet.
>>>>
>>>
>>> It does mean that we won't be able to support Ubuntu 16.04 (or previous)
>>> or Debian at all until the next release (~May 2019), unless they install a
>>> newer Python themselves.
>>>
>>> On Fri, Sep 7, 2018 at 2:09 AM, Simon Baatz <gmbnomis at gmail.com> 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_st
>>>> ages.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/synchron
>>>> izing.py#L98
>>>> [3] https://github.com/gmbnomis/pulp_cookbook/blob/d44ed593925b7
>>>> 8c046e1b568810b15acbdad5ac4/pulp_cookbook/app/tasks/synchron
>>>> izing.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/20180907/f9a39d99/attachment.htm>


More information about the Pulp-dev mailing list