<div dir="ltr"><br><br><div class="gmail_quote"><div dir="ltr">On Fri, 28 Aug 2015 at 08:35 Yury Selivanov <<a href="mailto:yselivanov.ml@gmail.com">yselivanov.ml@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Victor,<br>
<br>
On 2015-08-28 5:01 AM, Victor Stinner wrote:<br>
> Hi,<br>
><br>
> 2015-08-27 23:15 GMT+02:00 Yury Selivanov <<a href="mailto:yselivanov.ml@gmail.com" target="_blank">yselivanov.ml@gmail.com</a>>:<br>
>> Recently, in an asyncio related issue [1], Guido said that new features<br>
>> for asyncio have to wait till 3.6, since asyncio is no longer a provisional<br>
>> package. (...)<br>
>> For example, there is an issue [2] to add starttls support to asyncio.<br>
>> (...)<br>
>> Aside from adding new APIs, we also have to improve debugging<br>
>> capabilities.<br>
>> (...)<br>
> I would propose something more radical: remove asyncio from the stdlib.<br>
<br>
I too would enjoy more frequent release schedule of asyncio.<br>
<br>
Unfortunately, separating it from the standard library is something<br>
that I don't think we can do so late in the 3.5 release candidates<br>
process.<br></blockquote><div><br></div><div>Ultimately it's Larry's call, but I don't see why we couldn't. If we were talking about something as low-level as the urllib package then I would agree, but beyond its own tests is there anything in the stdlib that depends on asyncio?</div><div><br></div><div>-Brett</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
<br>
><br>
> PEP 411: "While it is considered an unlikely outcome, such packages<br>
> *may even be removed* from the standard library without a deprecation<br>
> period if the concerns regarding their API or maintenance prove<br>
> well-founded."<br>
><br>
> As an asyncio developer, I'm not sure that asyncio fits well into the<br>
> Python stdlib. The release cycle of feature release is long (18<br>
> months? or more?), the release cycle for bugfix release is sometimes<br>
> also too long (1 month at least). It's also frustrating to have subtle<br>
> API differences between Python 3.3, 3.4 and 3.5. For example,<br>
> asyncio.JoinableQueue was removed in Python 3.5, asyncio.Queue can<br>
> *now* be used instead, but asyncio.JoinableQueue should be used on<br>
> older Python version... It means that you have to write different code<br>
> depending on your Python version to support all Python versions.<br>
><br>
> I can give much more examples of missing asyncio features. Example:<br>
> Windows proactor event loop doesn't support signals (CTRL+C) nor UDP.<br>
><br>
> asyncio is moving so fast, that changes are not documented at all in<br>
> Misc/NEWS or Doc/whatsnews/x.y.rst. I tried to document changes in my<br>
> fork Trollius. See its changelog to have an idea how fast asyncio is<br>
> still changing:<br>
> <a href="http://trollius.readthedocs.org/changelog.html" rel="noreferrer" target="_blank">http://trollius.readthedocs.org/changelog.html</a><br>
><br>
> I don't know how users will react to the removal of asyncio from the<br>
> stdlib ("asyncio is not trusted/supported by Python?").<br>
<br>
That's another concern.<br>
<br>
><br>
> The idea is to install it using pip: "pip install asyncio". The major<br>
> difference is that "pip install -U asyncio" allows to retrieve the<br>
> latest asyncio version, independently of your Python version. Hum, I<br>
> don't know if it works with Python 3.4 (which "asyncio" module is used<br>
> in this case?).<br>
<br>
The one from the stdlib.<br>
<br>
><br>
> Developing asyncio only on Github would avoid the risk of having<br>
> patches temporary only in Github or only in CPython. It avoids the<br>
> need to synchronize the Git (Github) and Mercurial (CPython)<br>
> repositories.<br>
><br>
><br>
> Compare Python release dates with Twisted, Tornado and eventlet release dates.<br>
><br>
> Twisted releases:<br>
><br>
> * 2015-01-30: 15.0.0<br>
> * 2015-04-13: 15.1.0<br>
> * 2015-05-19: 15.2.0<br>
> * 2015-08-04: 15.3.0<br>
><br>
> Tornado releases:<br>
><br>
> * 2014-07-15: 4.0<br>
> * 2015-02-07: 4.1<br>
> * 2015-05-27: 4.2<br>
> * 2015-07-17: 4.2.1<br>
><br>
> eventlet releases:<br>
><br>
> * 2015-02-25: 0.17.1<br>
> * 2015-04-03: 0.17.2<br>
> * 2015-04-09: 0.17.3<br>
> * 2015-05-08: 0.17.4<br>
><br>
<br>
<br>
These are very good stats.  It shows that even mature async libraries<br>
require frequent release cycles.<br>
<br>
Anyways, I vote for at least keeping asyncio provisional in 3.5.x.<br>
<br>
I'd be glad if we can consider to have more bugfix releases of 3.5<br>
(and 3.6), say every 3 months.<br>
<br>
<br>
Yury<br>
_______________________________________________<br>
Python-Dev mailing list<br>
<a href="mailto:Python-Dev@python.org" target="_blank">Python-Dev@python.org</a><br>
<a href="https://mail.python.org/mailman/listinfo/python-dev" rel="noreferrer" target="_blank">https://mail.python.org/mailman/listinfo/python-dev</a><br>
Unsubscribe: <a href="https://mail.python.org/mailman/options/python-dev/brett%40python.org" rel="noreferrer" target="_blank">https://mail.python.org/mailman/options/python-dev/brett%40python.org</a><br>
</blockquote></div></div>