<div dir="ltr">Excellent! I closed mine. @dalley had it at ASSIGNED so maybe he'll do 3984 instead.<br></div><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Sep 14, 2018 at 3:55 PM, Simon Baatz <span dir="ltr"><<a href="mailto:gmbnomis@gmail.com" target="_blank">gmbnomis@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">fyi, I had already created #3984 [0] for the Python 3.5<br>
removal/Python 3.6+ requirement.<br>
<br>
And: Thanks to you all for supporting this proposal!<br>
<br>
<br>
[0] <a href="https://pulp.plan.io/issues/3984" rel="noreferrer" target="_blank">https://pulp.plan.io/issues/<wbr>3984</a><br>
<span class=""><br>
On Fri, Sep 14, 2018 at 02:54:23PM -0400, Brian Bouterse wrote:<br>
>    Here are the two stories for this work. I think we should add them to<br>
>    the sprint. They weren't written this morning for sprint planning<br>
>    unfortunately.<br>
</span>>    [1]<a href="https://pulp.plan.io/issues/4015" rel="noreferrer" target="_blank">https://pulp.plan.io/<wbr>issues/4015</a><br>
>    [2]<a href="https://pulp.plan.io/issues/4016" rel="noreferrer" target="_blank">https://pulp.plan.io/<wbr>issues/4016</a><br>
<span class="">> <br>
>    On Wed, Sep 12, 2018 at 3:27 PM, Tatiana Tereshchenko<br>
</span><span class="">>    <[3]<a href="mailto:ttereshc@redhat.com">ttereshc@redhat.com</a>> wrote:<br>
> <br>
>    Big +1<br>
>    Tanya<br>
> <br>
</span>>    On Wed, Sep 12, 2018 at 4:50 PM, David Davis <[4]<a href="mailto:daviddavis@redhat.com">daviddavis@redhat.com</a>><br>
>    wrote:<br>
> <br>
>    +1<br>
>    David<br>
> <br>
>    On Tue, Sep 11, 2018 at 10:35 AM Jeff Ortel <[5]<a href="mailto:jortel@redhat.com">jortel@redhat.com</a>><br>
<div><div class="h5">>    wrote:<br>
> <br>
>      +1<br>
>      On 09/07/2018 01:09 AM, Simon Baatz wrote:<br>
>      > I had a discussion on IRC with Brian yesterday which led to the<br>
>      > question whether we can drop support for Python 3.5. I think there<br>
>      are<br>
>      > good reasons for this, see the rationale below.<br>
>      ><br>
>      > Brian proposed to initiate a vote on this topic (and find out<br>
>      whether<br>
>      > this "community thing" works :-) ).<br>
>      ><br>
>      > Please send feedback by Friday Sept 14th. Especially, let me know<br>
>      if<br>
>      > there are specific reasons for depending on Python 3.5. The<br>
>      > corresponding issue is 3984 [7].<br>
>      ><br>
>      > Cheers,<br>
>      > Simon<br>
>      ><br>
>      ><br>
>      > Rationale:<br>
>      ><br>
>      > The trigger for the discussion was to get rid of boilerplate code<br>
>      like<br>
>      > this [0], [1] to handle batches in the stages API. This becomes a<br>
>      > single line [2] when using an asynchronous generator [3]. Adding<br>
>      the<br>
>      > `batches()` async generator to Pulp core would simplify existing<br>
>      > stages and ease implementation of stages in plugins.<br>
>      ><br>
>      > Async generators have been introduced in Python 3.6. Thus, to make<br>
>      the<br>
>      > `batches` generator available in the Pulp core plugin API, we<br>
>      either<br>
>      ><br>
>      > - have to drop support for Python 3.5 or<br>
>      ><br>
>      > - reimplement the async generator as an async iterator (which<br>
>      would be<br>
>      >    more convoluted but looks doable)<br>
>      ><br>
>      ><br>
>      > I prefer to drop 3.5, since this will allow to use additional<br>
>      language<br>
>      > features[4]. Among them:<br>
>      ><br>
>      > - As said, async generators/async comprehensions. Async generators<br>
>      are<br>
>      >    simpler to write and understand than async iterators.<br>
>      ><br>
>      > - String interpolation "f-Strings" [5]<br>
>      ><br>
>      > - dict objects preserve insertion-order (officially declared part<br>
>      of<br>
>      >    the language with Python 3.7). Eliminates a source of subtle<br>
>      >    "works on 3.6, sometimes works on 3.5" bugs.<br>
>      ><br>
>      > - One version less to support is always a good thing (provided<br>
>      nobody<br>
>      >    really requires it)<br>
>      ><br>
>      > - Type annotations are currently not used by the Pulp project, but<br>
>      if<br>
>      >    the project decides to use them in the future: IMHO type<br>
>      annotations<br>
>      >    (which are great btw.) began to feel â€œright† with 3.6.<br>
>      Working with<br>
>      >    them in 3.5 can be clumsy at times.<br>
>      ><br>
>      > - And of course: [6]<br>
>      ><br>
>      ><br>
>      > Python 3.6 has the OS/distribution support we need:<br>
>      ><br>
>      > - Python 3.6 SCL is available for RHEL 7 / CentOS 7<br>
>      > - It is part of Fedora as of Fedora 26<br>
>      ><br>
>      > For Ubuntu, it is part of 18.04 LTS. Debian does not have Python<br>
>      3.6 in stable yet.<br>
>      ><br>
>      ><br>
>      ><br>
</div></div>>      > [0] [6]<a href="https://github.com/pulp/pulp/b" rel="noreferrer" target="_blank">https://github.com/pulp/<wbr>pulp/b</a><br>
>      lob/<wbr>631031e38270c5c7c2b2289ff4ab87<wbr>a058447c5e/plugin/<br>
>      pulpcore/plugin/stages/<wbr>content_unit_stages.py#L47-L59<br>
>      > [1] [7]<a href="https://github.com/pulp/pulp/b" rel="noreferrer" target="_blank">https://github.com/pulp/<wbr>pulp/b</a><br>
>      lob/<wbr>631031e38270c5c7c2b2289ff4ab87<wbr>a058447c5e/plugin/<br>
>      pulpcore/plugin/stages/<wbr>artifact_stages.py#L48-L60<br>
>      > [2] [8]<a href="https://github.com/gmbnomis/pu" rel="noreferrer" target="_blank">https://github.com/<wbr>gmbnomis/pu</a><br>
>      lp_cookbook/blob/<wbr>ca4882cecab16995c5713d27131da8<wbr>112a5f5a0c/<br>
>      pulp_cookbook/app/tasks/<wbr>synchronizing.py#L98<br>
>      > [3] [9]<a href="https://github.com/gmbnomis/pu" rel="noreferrer" target="_blank">https://github.com/<wbr>gmbnomis/pu</a><br>
>      lp_cookbook/blob/<wbr>d44ed593925b78c046e1b568810b15<wbr>acbdad5ac4/<br>
>      pulp_cookbook/app/tasks/<wbr>synchronizing.py#L26<br>
>      > [4] [10]<a href="https://docs.python.org/3/whatsnew/3.6.html" rel="noreferrer" target="_blank">https://docs.python.org/3/<wbr>whatsnew/3.6.html</a><br>
>      > [5] [11]<a href="https://docs.python.org/3/what" rel="noreferrer" target="_blank">https://docs.python.org/3/<wbr>what</a><br>
>      snew/3.6.html#pep-498-<wbr>formatted-string-literals<br>
>      > [6] [12]<a href="https://twitter.com/raymondh/status/844955415259463681" rel="noreferrer" target="_blank">https://twitter.com/<wbr>raymondh/status/<wbr>844955415259463681</a><br>
>      > [7] [13]<a href="https://pulp.plan.io/issues/3984" rel="noreferrer" target="_blank">https://pulp.plan.io/<wbr>issues/3984</a><br>
>      ><br>
>      > ______________________________<wbr>_________________<br>
>      > Pulp-dev mailing list<br>
>      > [14]<a href="mailto:Pulp-dev@redhat.com">Pulp-dev@redhat.com</a><br>
>      > [15]<a href="https://www.redhat.com/mailman/listinfo/pulp-dev" rel="noreferrer" target="_blank">https://www.redhat.com/<wbr>mailman/listinfo/pulp-dev</a><br>
>      ______________________________<wbr>_________________<br>
>      Pulp-dev mailing list<br>
>      [16]<a href="mailto:Pulp-dev@redhat.com">Pulp-dev@redhat.com</a><br>
>      [17]<a href="https://www.redhat.com/mailman/listinfo/pulp-dev" rel="noreferrer" target="_blank">https://www.redhat.com/<wbr>mailman/listinfo/pulp-dev</a><br>
> <br>
>      ______________________________<wbr>_________________<br>
>      Pulp-dev mailing list<br>
>      [18]<a href="mailto:Pulp-dev@redhat.com">Pulp-dev@redhat.com</a><br>
>      [19]<a href="https://www.redhat.com/mailman/listinfo/pulp-dev" rel="noreferrer" target="_blank">https://www.redhat.com/<wbr>mailman/listinfo/pulp-dev</a><br>
> <br>
>      ______________________________<wbr>_________________<br>
>      Pulp-dev mailing list<br>
>      [20]<a href="mailto:Pulp-dev@redhat.com">Pulp-dev@redhat.com</a><br>
>      [21]<a href="https://www.redhat.com/mailman/listinfo/pulp-dev" rel="noreferrer" target="_blank">https://www.redhat.com/<wbr>mailman/listinfo/pulp-dev</a><br>
> <br>
> References<br>
> <br>
>    1. <a href="https://pulp.plan.io/issues/4015" rel="noreferrer" target="_blank">https://pulp.plan.io/issues/<wbr>4015</a><br>
>    2. <a href="https://pulp.plan.io/issues/4016" rel="noreferrer" target="_blank">https://pulp.plan.io/issues/<wbr>4016</a><br>
>    3. mailto:<a href="mailto:ttereshc@redhat.com">ttereshc@redhat.com</a><br>
>    4. mailto:<a href="mailto:daviddavis@redhat.com">daviddavis@redhat.com</a><br>
>    5. mailto:<a href="mailto:jortel@redhat.com">jortel@redhat.com</a><br>
>    6. <a href="https://github.com/pulp/pulp/blob/631031e38270c5c7c2b2289ff4ab87a058447c5e/plugin/pulpcore/plugin/stages/content_unit_stages.py#L47-L59" rel="noreferrer" target="_blank">https://github.com/pulp/pulp/<wbr>blob/<wbr>631031e38270c5c7c2b2289ff4ab87<wbr>a058447c5e/plugin/pulpcore/<wbr>plugin/stages/content_unit_<wbr>stages.py#L47-L59</a><br>
>    7. <a href="https://github.com/pulp/pulp/blob/631031e38270c5c7c2b2289ff4ab87a058447c5e/plugin/pulpcore/plugin/stages/artifact_stages.py#L48-L60" rel="noreferrer" target="_blank">https://github.com/pulp/pulp/<wbr>blob/<wbr>631031e38270c5c7c2b2289ff4ab87<wbr>a058447c5e/plugin/pulpcore/<wbr>plugin/stages/artifact_stages.<wbr>py#L48-L60</a><br>
>    8. <a href="https://github.com/gmbnomis/pulp_cookbook/blob/ca4882cecab16995c5713d27131da8112a5f5a0c/pulp_cookbook/app/tasks/synchronizing.py#L98" rel="noreferrer" target="_blank">https://github.com/gmbnomis/<wbr>pulp_cookbook/blob/<wbr>ca4882cecab16995c5713d27131da8<wbr>112a5f5a0c/pulp_cookbook/app/<wbr>tasks/synchronizing.py#L98</a><br>
>    9. <a href="https://github.com/gmbnomis/pulp_cookbook/blob/d44ed593925b78c046e1b568810b15acbdad5ac4/pulp_cookbook/app/tasks/synchronizing.py#L26" rel="noreferrer" target="_blank">https://github.com/gmbnomis/<wbr>pulp_cookbook/blob/<wbr>d44ed593925b78c046e1b568810b15<wbr>acbdad5ac4/pulp_cookbook/app/<wbr>tasks/synchronizing.py#L26</a><br>
>   10. <a href="https://docs.python.org/3/whatsnew/3.6.html" rel="noreferrer" target="_blank">https://docs.python.org/3/<wbr>whatsnew/3.6.html</a><br>
>   11. <a href="https://docs.python.org/3/whatsnew/3.6.html#pep-498-formatted-string-literals" rel="noreferrer" target="_blank">https://docs.python.org/3/<wbr>whatsnew/3.6.html#pep-498-<wbr>formatted-string-literals</a><br>
>   12. <a href="https://twitter.com/raymondh/status/844955415259463681" rel="noreferrer" target="_blank">https://twitter.com/raymondh/<wbr>status/844955415259463681</a><br>
>   13. <a href="https://pulp.plan.io/issues/3984" rel="noreferrer" target="_blank">https://pulp.plan.io/issues/<wbr>3984</a><br>
>   14. mailto:<a href="mailto:Pulp-dev@redhat.com">Pulp-dev@redhat.com</a><br>
>   15. <a href="https://www.redhat.com/mailman/listinfo/pulp-dev" rel="noreferrer" target="_blank">https://www.redhat.com/<wbr>mailman/listinfo/pulp-dev</a><br>
>   16. mailto:<a href="mailto:Pulp-dev@redhat.com">Pulp-dev@redhat.com</a><br>
>   17. <a href="https://www.redhat.com/mailman/listinfo/pulp-dev" rel="noreferrer" target="_blank">https://www.redhat.com/<wbr>mailman/listinfo/pulp-dev</a><br>
>   18. mailto:<a href="mailto:Pulp-dev@redhat.com">Pulp-dev@redhat.com</a><br>
>   19. <a href="https://www.redhat.com/mailman/listinfo/pulp-dev" rel="noreferrer" target="_blank">https://www.redhat.com/<wbr>mailman/listinfo/pulp-dev</a><br>
>   20. mailto:<a href="mailto:Pulp-dev@redhat.com">Pulp-dev@redhat.com</a><br>
>   21. <a href="https://www.redhat.com/mailman/listinfo/pulp-dev" rel="noreferrer" target="_blank">https://www.redhat.com/<wbr>mailman/listinfo/pulp-dev</a><br>
<div class="HOEnZb"><div class="h5"><br>
> ______________________________<wbr>_________________<br>
> Pulp-dev mailing list<br>
> <a href="mailto:Pulp-dev@redhat.com">Pulp-dev@redhat.com</a><br>
> <a href="https://www.redhat.com/mailman/listinfo/pulp-dev" rel="noreferrer" target="_blank">https://www.redhat.com/<wbr>mailman/listinfo/pulp-dev</a><br>
<br>
<br>
</div></div><span class="HOEnZb"><font color="#888888">-- <br>
Simon Baatz <<a href="mailto:gmbnomis@gmail.com">gmbnomis@gmail.com</a>><br>
</font></span></blockquote></div><br></div>