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

Simon Baatz gmbnomis at gmail.com
Fri Sep 14 19:55:25 UTC 2018


fyi, I had already created #3984 [0] for the Python 3.5
removal/Python 3.6+ requirement.

And: Thanks to you all for supporting this proposal!


[0] https://pulp.plan.io/issues/3984

On Fri, Sep 14, 2018 at 02:54:23PM -0400, Brian Bouterse wrote:
>    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.
>    [1]https://pulp.plan.io/issues/4015
>    [2]https://pulp.plan.io/issues/4016
> 
>    On Wed, Sep 12, 2018 at 3:27 PM, Tatiana Tereshchenko
>    <[3]ttereshc at redhat.com> wrote:
> 
>    Big +1
>    Tanya
> 
>    On Wed, Sep 12, 2018 at 4:50 PM, David Davis <[4]daviddavis at redhat.com>
>    wrote:
> 
>    +1
>    David
> 
>    On Tue, Sep 11, 2018 at 10:35 AM Jeff Ortel <[5]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] [6]https://github.com/pulp/pulp/b
>      lob/631031e38270c5c7c2b2289ff4ab87a058447c5e/plugin/
>      pulpcore/plugin/stages/content_unit_stages.py#L47-L59
>      > [1] [7]https://github.com/pulp/pulp/b
>      lob/631031e38270c5c7c2b2289ff4ab87a058447c5e/plugin/
>      pulpcore/plugin/stages/artifact_stages.py#L48-L60
>      > [2] [8]https://github.com/gmbnomis/pu
>      lp_cookbook/blob/ca4882cecab16995c5713d27131da8112a5f5a0c/
>      pulp_cookbook/app/tasks/synchronizing.py#L98
>      > [3] [9]https://github.com/gmbnomis/pu
>      lp_cookbook/blob/d44ed593925b78c046e1b568810b15acbdad5ac4/
>      pulp_cookbook/app/tasks/synchronizing.py#L26
>      > [4] [10]https://docs.python.org/3/whatsnew/3.6.html
>      > [5] [11]https://docs.python.org/3/what
>      snew/3.6.html#pep-498-formatted-string-literals
>      > [6] [12]https://twitter.com/raymondh/status/844955415259463681
>      > [7] [13]https://pulp.plan.io/issues/3984
>      >
>      > _______________________________________________
>      > Pulp-dev mailing list
>      > [14]Pulp-dev at redhat.com
>      > [15]https://www.redhat.com/mailman/listinfo/pulp-dev
>      _______________________________________________
>      Pulp-dev mailing list
>      [16]Pulp-dev at redhat.com
>      [17]https://www.redhat.com/mailman/listinfo/pulp-dev
> 
>      _______________________________________________
>      Pulp-dev mailing list
>      [18]Pulp-dev at redhat.com
>      [19]https://www.redhat.com/mailman/listinfo/pulp-dev
> 
>      _______________________________________________
>      Pulp-dev mailing list
>      [20]Pulp-dev at redhat.com
>      [21]https://www.redhat.com/mailman/listinfo/pulp-dev
> 
> References
> 
>    1. https://pulp.plan.io/issues/4015
>    2. https://pulp.plan.io/issues/4016
>    3. mailto:ttereshc at redhat.com
>    4. mailto:daviddavis at redhat.com
>    5. mailto:jortel at redhat.com
>    6. https://github.com/pulp/pulp/blob/631031e38270c5c7c2b2289ff4ab87a058447c5e/plugin/pulpcore/plugin/stages/content_unit_stages.py#L47-L59
>    7. https://github.com/pulp/pulp/blob/631031e38270c5c7c2b2289ff4ab87a058447c5e/plugin/pulpcore/plugin/stages/artifact_stages.py#L48-L60
>    8. https://github.com/gmbnomis/pulp_cookbook/blob/ca4882cecab16995c5713d27131da8112a5f5a0c/pulp_cookbook/app/tasks/synchronizing.py#L98
>    9. https://github.com/gmbnomis/pulp_cookbook/blob/d44ed593925b78c046e1b568810b15acbdad5ac4/pulp_cookbook/app/tasks/synchronizing.py#L26
>   10. https://docs.python.org/3/whatsnew/3.6.html
>   11. https://docs.python.org/3/whatsnew/3.6.html#pep-498-formatted-string-literals
>   12. https://twitter.com/raymondh/status/844955415259463681
>   13. https://pulp.plan.io/issues/3984
>   14. mailto:Pulp-dev at redhat.com
>   15. https://www.redhat.com/mailman/listinfo/pulp-dev
>   16. mailto:Pulp-dev at redhat.com
>   17. https://www.redhat.com/mailman/listinfo/pulp-dev
>   18. mailto:Pulp-dev at redhat.com
>   19. https://www.redhat.com/mailman/listinfo/pulp-dev
>   20. mailto:Pulp-dev at redhat.com
>   21. 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


-- 
Simon Baatz <gmbnomis at gmail.com>




More information about the Pulp-dev mailing list