<div dir="ltr"><div>I am +1 on this also. <br></div><div><br></div><div><br></div><div><div class="gmail_extra"><div class="gmail_quote">On Fri, Sep 7, 2018 at 10:29 AM, Dana Walker <span dir="ltr"><<a href="mailto:dawalker@redhat.com" target="_blank">dawalker@redhat.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>This sounds like a great idea.  +1</div><div><br></div><div>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?<br></div></div><div class="gmail_extra"><br clear="all"></div></blockquote><div><br></div><div>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. <br><div class="gmail_extra"><br></div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="gmail_extra"><div><div class="m_1873414092889320518gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div>
<p style="font-weight:bold;margin:0;padding:0;font-size:14px;text-transform:uppercase;margin-bottom:0"><span>Dana</span> <span>Walker</span></p>
<p style="font-weight:normal;font-size:10px;margin:0px 0px 4px;text-transform:uppercase"><span>Associate Software Engineer</span><span style="font-weight:normal;color:#aaa;margin:0"></span></p>
<p style="font-weight:normal;margin:0;font-size:10px;color:#999"><a style="color:#0088ce;font-size:10px;margin:0;text-decoration:none;font-family:'overpass',sans-serif" href="https://www.redhat.com" target="_blank">Red Hat <span><br><br></span></a></p>




<table border="0"><tbody><tr><td width="100px"><a href="https://red.ht/sig" target="_blank"> <img src="https://www.redhat.com/files/brand/email/sig-redhat.png" width="90" height="auto"></a> </td>
</tr></tbody></table>

</div></div></div></div><div><div class="h5">
<br><div class="gmail_quote">On Fri, Sep 7, 2018 at 8:50 AM, Brian Bouterse <span dir="ltr"><<a href="mailto:bbouters@redhat.com" target="_blank">bbouters@redhat.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">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.<br></div><div class="m_1873414092889320518HOEnZb"><div class="m_1873414092889320518h5"><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Sep 7, 2018 at 8:17 AM, Daniel Alley <span dir="ltr"><<a href="mailto:dalley@redhat.com" target="_blank">dalley@redhat.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>Personally, +1.  I ran into this issue myself and it was infuriating to deal with.</div><span><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div>dict objects preserve insertion-order (officially declared part 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></div></blockquote><div><br></div></span><div>Just to expand on this though:</div><span><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div>
For Ubuntu, it is part of 18.04 LTS. Debian does not have Python 3.6 in stable yet.<br></div></blockquote><div><br></div></span><div>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. <br></div></div><div class="m_1873414092889320518m_-8215293496591726804HOEnZb"><div class="m_1873414092889320518m_-8215293496591726804h5"><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Sep 7, 2018 at 2:09 AM, 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">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 are<br>
good reasons for this, see the rationale below.<br>
<br>
Brian proposed to initiate a vote on this topic (and find out whether<br>
this "community thing" works :-) ).<br>
<br>
Please send feedback by Friday Sept 14th. Especially, let me know 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 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 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 the<br>
`batches` generator available in the Pulp core plugin API, we either<br>
<br>
- have to drop support for Python 3.5 or<br>
<br>
- reimplement the async generator as an async iterator (which would be<br>
  more convoluted but looks doable)<br>
<br>
<br>
I prefer to drop 3.5, since this will allow to use additional language<br>
features[4]. Among them:<br>
<br>
- As said, async generators/async comprehensions. Async generators 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 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 nobody<br>
  really requires it)<br>
<br>
- Type annotations are currently not used by the Pulp project, but if<br>
  the project decides to use them in the future: IMHO type annotations<br>
  (which are great btw.) began to feel â€œright† with 3.6. 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 3.6 in stable yet.<br>
<br>
<br>
<br>
[0] <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/b<wbr>lob/631031e38270c5c7c2b2289ff4<wbr>ab87a058447c5e/plugin/pulpcore<wbr>/plugin/stages/content_unit_st<wbr>ages.py#L47-L59</a><br>
[1] <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/b<wbr>lob/631031e38270c5c7c2b2289ff4<wbr>ab87a058447c5e/plugin/pulpcore<wbr>/plugin/stages/artifact_stages<wbr>.py#L48-L60</a><br>
[2] <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/pu<wbr>lp_cookbook/blob/ca4882cecab16<wbr>995c5713d27131da8112a5f5a0c/pu<wbr>lp_cookbook/app/tasks/synchron<wbr>izing.py#L98</a><br>
[3] <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/pu<wbr>lp_cookbook/blob/d44ed593925b7<wbr>8c046e1b568810b15acbdad5ac4/pu<wbr>lp_cookbook/app/tasks/synchron<wbr>izing.py#L26</a><br>
[4] <a href="https://docs.python.org/3/whatsnew/3.6.html" rel="noreferrer" target="_blank">https://docs.python.org/3/what<wbr>snew/3.6.html</a><br>
[5] <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/what<wbr>snew/3.6.html#pep-498-formatte<wbr>d-string-literals</a><br>
[6] <a href="https://twitter.com/raymondh/status/844955415259463681" rel="noreferrer" target="_blank">https://twitter.com/raymondh/s<wbr>tatus/844955415259463681</a><br>
[7] <a href="https://pulp.plan.io/issues/3984" rel="noreferrer" target="_blank">https://pulp.plan.io/issues/39<wbr>84</a><br>
<br>
______________________________<wbr>_________________<br>
Pulp-dev mailing list<br>
<a href="mailto:Pulp-dev@redhat.com" target="_blank">Pulp-dev@redhat.com</a><br>
<a href="https://www.redhat.com/mailman/listinfo/pulp-dev" rel="noreferrer" target="_blank">https://www.redhat.com/mailman<wbr>/listinfo/pulp-dev</a><br>
</blockquote></div><br></div>
</div></div><br>______________________________<wbr>_________________<br>
Pulp-dev mailing list<br>
<a href="mailto:Pulp-dev@redhat.com" target="_blank">Pulp-dev@redhat.com</a><br>
<a href="https://www.redhat.com/mailman/listinfo/pulp-dev" rel="noreferrer" target="_blank">https://www.redhat.com/mailman<wbr>/listinfo/pulp-dev</a><br>
<br></blockquote></div><br></div>
</div></div><br>______________________________<wbr>_________________<br>
Pulp-dev mailing list<br>
<a href="mailto:Pulp-dev@redhat.com" target="_blank">Pulp-dev@redhat.com</a><br>
<a href="https://www.redhat.com/mailman/listinfo/pulp-dev" rel="noreferrer" target="_blank">https://www.redhat.com/mailman<wbr>/listinfo/pulp-dev</a><br>
<br></blockquote></div><br></div></div></div>
<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></blockquote></div><br></div></div></div>