classification
Title: asyncio docs overhaul
Type: enhancement Stage: resolved
Components: asyncio, Documentation Versions: Python 3.8, Python 3.7
process
Status: closed Resolution: fixed
Dependencies: Superseder:
Assigned To: docs@python Nosy List: JDLH, MartinAltmayer, akuchling, asvetlov, barry, belopolsky, docs@python, kbumsik, levkivskyi, miss-islington, ned.deily, willingc, xtreak, yselivanov
Priority: normal Keywords: patch

Created on 2018-05-25 19:48 by yselivanov, last changed 2018-09-21 20:35 by yselivanov. This issue is now closed.

Pull Requests
URL Status Linked Edit
PR 9142 merged yselivanov, 2018-09-10 20:33
PR 9192 merged yselivanov, 2018-09-11 22:12
PR 9219 merged kbumsik, 2018-09-12 18:25
PR 9233 merged willingc, 2018-09-12 21:16
PR 9235 merged willingc, 2018-09-12 21:58
PR 9272 merged willingc, 2018-09-13 18:17
PR 9285 merged willingc, 2018-09-13 23:39
PR 9306 merged willingc, 2018-09-14 15:48
PR 9314 merged yselivanov, 2018-09-14 17:37
PR 9319 merged yselivanov, 2018-09-14 20:55
PR 9322 merged yselivanov, 2018-09-14 21:33
PR 9324 merged yselivanov, 2018-09-14 22:56
PR 9330 merged kbumsik, 2018-09-15 14:29
PR 9364 merged yselivanov, 2018-09-17 18:42
PR 9374 merged yselivanov, 2018-09-17 22:10
PR 9376 merged Elvis.Pranskevichus, 2018-09-17 22:54
PR 9377 merged yselivanov, 2018-09-17 23:30
PR 9380 merged yselivanov, 2018-09-18 00:50
PR 9383 merged miss-islington, 2018-09-18 03:58
PR 9385 closed magmax, 2018-09-18 04:47
PR 9384 merged bossylobster, 2018-09-18 04:48
PR 9386 merged miss-islington, 2018-09-18 04:50
PR 9387 merged magmax, 2018-09-18 06:01
PR 9388 merged miss-islington, 2018-09-18 06:02
PR 9389 merged yselivanov, 2018-09-18 06:41
PR 9390 merged miss-islington, 2018-09-18 06:48
PR 9403 merged yselivanov, 2018-09-18 18:25
PR 9409 merged miss-islington, 2018-09-18 21:55
PR 9439 merged yselivanov, 2018-09-20 05:58
PR 9454 merged miss-islington, 2018-09-20 16:44
PR 9475 merged yselivanov, 2018-09-21 16:23
PR 9481 merged miss-islington, 2018-09-21 20:23
Messages (36)
msg317709 - (view) Author: Yury Selivanov (yselivanov) * (Python committer) Date: 2018-05-25 19:48
An overhaul of asyncio documentation is long overdue.  Here's the structure for it that I have in mind:

- Introduction
(what is asyncio and async/await)

- A quick tutorial
(show how to use asyncio.run() and basic functions like asyncio.sleep() and teach that asyncio programs are all about async/await and *not* about callbacks or event loops)

- High-level APIs
(Tasks, Streams, Subprocesses, few other functions)

- Low-level APIs
  - Preface (talk a bit about everything: what's an event loop, what is a Future and a Transport)
  - Futures
  - Event loop APIs
  - Transports and Protocols (when to use and when not to use them)

- Tutorials
  - High-level networking server
  - HTTP application
  - Low-level protocol implementation using Transports
  - etc
msg317966 - (view) Author: A.M. Kuchling (akuchling) * (Python committer) Date: 2018-05-29 00:35
The plan for updating things looks good, and I think the ordering of
tasks is good -- rearranging the APIs is a pretty simple first step,
and it matches other chapters in the Library Reference, which list
more important modules first and more specialized obscure modules
later.  Then we can work on writing the additional material.

Yury: do you want to do the re-organization into high- and low-level APIs?  If you'd like me to do it, I'll need a more explicit listing of which APIs fall into which category.  Also, do we want to create an explicit high-level and low-level sections and push everything else down a level, or just leave it implicit in the ordering?
msg318149 - (view) Author: Yury Selivanov (yselivanov) * (Python committer) Date: 2018-05-30 03:53
> Yury: do you want to do the re-organization into high- and low-level APIs?  If you'd like me to do it, I'll need a more explicit listing of which APIs fall into which category.

Sure, I'll update this issue tomorrow or the day after with a more detailed plan.  Or maybe I'll start working on the 1st PR and will just give you push privileges to my repo.  Would be cool if we can push the first rewrite live as soon as possible.

> Also, do we want to create an explicit high-level and low-level sections and push everything else down a level, or just leave it implicit in the ordering?

Yes, I'd go for 2 explicitly separate sections.  I think it's important to focus average readers' attention at the high-level bits and pieces, leaving low-level APIs and details to framework/library authors.

And, again, thanks for help.

Adding Carol to the nosy list as she seems to be interested in this topic too.
msg320929 - (view) Author: Jim DeLaHunt (JDLH) * Date: 2018-07-02 23:26
I'm a developer using Python in my application. I just spent the last couple of weeks learning about asyncio with the present documentation. I am very happy to see that work is underway for improved documentation. 

I would be glad to take on writing tasks or to review drafts, if there is a way to plug myself into that work.

I like the general structure. 

Some specific topics which would have helped me in my recent learning:

* As an application developer using an event loop as part of the application, how do I develop a Protocol specific to my app, and use with Streams?  An important part of this is being clear what the interface is between Transport and Protocol. This interface resides in both classes; Protocol calls Transport methods, and Transport calls Protocol methods.

* As an application developer using an event loop as part of the application, how do I develop a Transport specific to my app, and use it with Streams?  (In my case, I have two transports in mind: a file, containing data archived from a TCP network port, and an RS232 serial connection, carrying data that might otherwise be sent via a TCP network port. It seems to me that I should be able at run-time to select from any of those three Transports, and apply my app-specific Protocol when creating my connection.)

* As an application developer, how do I give a function which is not a coroutine to the event loop for scheduling and execution?  (I think the answer is loop.call_soon(), but the docs don't say "to run your function call loop.call_soon(myfunc...)", they say "call_soon(): Arrange for a callback to be called as soon as possible". Not the same thing. And, is a "callback" different "an arbitrary function"? Not clear.)

* As an application developer, how do I make an syncio-based streaming server and streaming client respond cleanly to interrupts, e.g. control-C in a command-line app?  (Existing docs hints at catching signals, but don't show how to combine those with exception handlers in the coroutine to shut down connections cleanly.)

* As a Transport developer, what interface must I provide between Transport and Protocol? What services does the EventLoop provide to help implement my Transport? As mentioned before, to me it looks like the Transport-Protocol interface resides in both classes; Protocol calls Transport methods, and Transport calls Protocol methods.  The EventLoop services useful to Transports are not gathered in a discussion of Transports. There is only an enumeration of the EventLoop methods, regardless of purpose.

Editorial checks I suggest making to the revision:

Rewrite to describe the behaviour in the doc, instead of delegating to a PEP. No more "this class is almost like the thing in PEP xyz, except for these differences". Describe the asyncio class, and steal text from PEP xyz as needed to do that.

Every section about a thing must start by saying what that thing is and what it is used for.  There are some big counterexamples in the current text. 

e.g. "19.5.1.2. Calls" <https://docs.python.org/3/library/asyncio-eventloop.html#calls> starts out with: "Most asyncio functions don’t accept keywords. If you want to pass keywords to your callback, use functools.partial()."  That does not describe what "calls" are, nor what they are used for. And, in this case, a better title might be, "Getting the event loop to call regular functions".

e.g. "19.5.1.4. Futures" <https://docs.python.org/3/library/asyncio-eventloop.html#futures> has no starting text. This is the first heading mentioning Futures when reading sequentially in the asyncio doc, so I interpreted it as a place to learn about Futures. It is not. This section would be better titles "Eventloop methods for Futures". The proposed "Low-level APIs" section might solve this problem by explaining the nature and purpose of Futures before mentioning the EventLoop factory for Futures objects.

Consider separating the explanation of the nature and purpose of a thing from the reference to the methods of the thing. The proposed structure talks about "High-Level APIs" and "Low-Level APIs", but not "Architecture" and "API Reference". I would suggest injecting an "Architecture" section which can give the nature and purpose of each of the public classes in Asyncio, without enumerating their methods. Then the sections labelled "High-Level APIs" and "Low-Level APIs" can be the API reference.

I hope these suggestions are helpful. I'll be monitoring this issue to see how I can help.
msg323114 - (view) Author: Yury Selivanov (yselivanov) * (Python committer) Date: 2018-08-04 17:36
Status update: I'm working on a first rewrite. I expect to have something to review on a couple of weeks.
msg325029 - (view) Author: Yury Selivanov (yselivanov) * (Python committer) Date: 2018-09-11 16:54
New changeset 7c7605ff1133cf757cac428c483827f666c7c827 by Yury Selivanov in branch 'master':
bpo-33649: First asyncio docs improvement pass (GH-9142)
https://github.com/python/cpython/commit/7c7605ff1133cf757cac428c483827f666c7c827
msg325030 - (view) Author: Yury Selivanov (yselivanov) * (Python committer) Date: 2018-09-11 16:58
The first PR has been just landed.

The plan is to work in 'master' branch and when the docs are ready we backport them to 3.7 in one big PR.

So far the following files were updated/reviewed:

     Doc/library/asyncio-eventloop.rst
     Doc/library/asyncio-eventloops.rst -> Doc/library/asyncio-policy.rst
     Doc/library/asyncio-exceptions.rst
     Doc/library/asyncio-platforms.rst 
     Doc/library/asyncio-policy.rst    
     Doc/library/asyncio-protocol.rst  
     Doc/library/asyncio-queue.rst     
     Doc/library/asyncio-stream.rst    
     Doc/library/asyncio-subprocess.rst 

Please feel free to submit PR to fix/improve the above (but not other files as I'm going to be making some heavy edit passes on them).
msg325102 - (view) Author: Yury Selivanov (yselivanov) * (Python committer) Date: 2018-09-12 00:10
New changeset 8be876e44b2dffb96b551029454cbfb16d697992 by Yury Selivanov in branch 'master':
bpo-33649: Cleanup asyncio/streams and asyncio/synchronization docs (GH-9192)
https://github.com/python/cpython/commit/8be876e44b2dffb96b551029454cbfb16d697992
msg325156 - (view) Author: Yury Selivanov (yselivanov) * (Python committer) Date: 2018-09-12 18:32
New changeset aca819fb494d4801b3e5b5b507b17cab772c1b40 by Yury Selivanov (Bumsik Kim) in branch 'master':
bpo-33649: Fix doc to reflect changes in 47cd10d (or bpo-23347) (GH-9219)
https://github.com/python/cpython/commit/aca819fb494d4801b3e5b5b507b17cab772c1b40
msg325160 - (view) Author: Bumsik Kim (kbumsik) * Date: 2018-09-12 18:35
Hi, I came from #33986. I noticed that the new doc still does not reflect a design change on SubprocessTransport.close() done in #23347. I made a PR to fix that.

BTW this is opposed to the original PEP 3156: https://www.python.org/dev/peps/pep-3156/#subprocess-transports . I don't know if it is commonly happens.
msg325216 - (view) Author: Yury Selivanov (yselivanov) * (Python committer) Date: 2018-09-13 00:05
New changeset 5b7cbd602e57265604d6c099fd174b1c7917f861 by Yury Selivanov (Carol Willing) in branch 'master':
bpo-33649: Edit asyncio eventloop doc - second pass (GH-9233)
https://github.com/python/cpython/commit/5b7cbd602e57265604d6c099fd174b1c7917f861
msg325316 - (view) Author: miss-islington (miss-islington) Date: 2018-09-14 01:28
New changeset 4e824e96491f33c8a8462aa4970c55942064ae76 by Miss Islington (bot) (Carol Willing) in branch 'master':
bpo-33649: Polish asyncio subprocess and sync docs (GH-9285)
https://github.com/python/cpython/commit/4e824e96491f33c8a8462aa4970c55942064ae76
msg325365 - (view) Author: Carol Willing (willingc) * (Python committer) Date: 2018-09-14 17:06
New changeset c9d66f0ed4f07b9d184d22abbfdd4c3c8e2702df by Carol Willing in branch 'master':
bpo-33649 Polish asyncio docs on queues, protocols, and subproccesses (#9306)
https://github.com/python/cpython/commit/c9d66f0ed4f07b9d184d22abbfdd4c3c8e2702df
msg325396 - (view) Author: Carol Willing (willingc) * (Python committer) Date: 2018-09-14 20:32
New changeset 3faaa8857a42a36383bb18425444e597fc876797 by Carol Willing (Yury Selivanov) in branch 'master':
bpo-33649: Refresh Tasks and Futures pages (#9314)
https://github.com/python/cpython/commit/3faaa8857a42a36383bb18425444e597fc876797
msg325406 - (view) Author: Yury Selivanov (yselivanov) * (Python committer) Date: 2018-09-14 21:57
New changeset 6c7316439d966cdbc76ffcc005e5d9c563064ba2 by Yury Selivanov in branch 'master':
bpo-33649: Refresh asyncio docs landing page (GH-9322)
https://github.com/python/cpython/commit/6c7316439d966cdbc76ffcc005e5d9c563064ba2
msg325408 - (view) Author: Yury Selivanov (yselivanov) * (Python committer) Date: 2018-09-14 22:11
New changeset 7372c3bbefb4763dbd1b6d66f7971bef28c0f056 by Yury Selivanov in branch 'master':
bpo-33649: Add high-level APIs cheat-sheet (GH-9319)
https://github.com/python/cpython/commit/7372c3bbefb4763dbd1b6d66f7971bef28c0f056
msg325415 - (view) Author: Yury Selivanov (yselivanov) * (Python committer) Date: 2018-09-14 23:57
New changeset 805e27eff65d51f7aea2c00ccbb4f5d44f4499f2 by Yury Selivanov in branch 'master':
bpo-33649: Fix asyncio-dev (GH-9324)
https://github.com/python/cpython/commit/805e27eff65d51f7aea2c00ccbb4f5d44f4499f2
msg325505 - (view) Author: Yury Selivanov (yselivanov) * (Python committer) Date: 2018-09-16 23:40
New changeset 5cc583d94095ed3bb543fa2f032f9593a6315a52 by Yury Selivanov (Bumsik Kim) in branch 'master':
bpo-33649: Clarify protocol_factory as a method parameter (GH-9330)
https://github.com/python/cpython/commit/5cc583d94095ed3bb543fa2f032f9593a6315a52
msg325568 - (view) Author: Yury Selivanov (yselivanov) * (Python committer) Date: 2018-09-17 19:35
New changeset 394374e30c85f6eacddbbfc7471aab62b54ce021 by Yury Selivanov in branch 'master':
bpo-33649: Add low-level APIs index. (GH-9364)
https://github.com/python/cpython/commit/394374e30c85f6eacddbbfc7471aab62b54ce021
msg325592 - (view) Author: Yury Selivanov (yselivanov) * (Python committer) Date: 2018-09-17 22:42
New changeset 3085534c398e6b181e7a9ac0cb9c80f3c670f2b9 by Yury Selivanov in branch 'master':
bpo-33649: Add a hello world example to asyncio.rst (GH-9374)
https://github.com/python/cpython/commit/3085534c398e6b181e7a9ac0cb9c80f3c670f2b9
msg325596 - (view) Author: Yury Selivanov (yselivanov) * (Python committer) Date: 2018-09-17 23:16
New changeset 1fa2ec49bec50bea1847b558b883c5c904334734 by Yury Selivanov (Elvis Pranskevichus) in branch 'master':
bpo-33649: A copy-editing pass on asyncio documentation (GH-9376)
https://github.com/python/cpython/commit/1fa2ec49bec50bea1847b558b883c5c904334734
msg325598 - (view) Author: Yury Selivanov (yselivanov) * (Python committer) Date: 2018-09-17 23:35
New changeset 512d7101098b971837cbb406942215244f636547 by Yury Selivanov in branch '3.7':
bpo-33649: Backport asyncio docs from 'master' to 3.7 (GH-9377)
https://github.com/python/cpython/commit/512d7101098b971837cbb406942215244f636547
msg325599 - (view) Author: Yury Selivanov (yselivanov) * (Python committer) Date: 2018-09-17 23:38
Wow, we did this!  I've just pushed a backport of the new documentation to 3.7.

Thanks to Carol, Elvis, and Andrew for the help!

I think this issue can now be closed, we'll open new ones for:

1. A high-level intro/tutorial for asyncio.

2. A low-level tutorial (say we implement a micro-library for Redis using only low-level APIs)

3. An asyncio "Architecture" section as suggested by Jim DeLaHunt.
msg325601 - (view) Author: Yury Selivanov (yselivanov) * (Python committer) Date: 2018-09-18 00:30
Ned, do we auto run docs build for Python 3.7?  Or do we only build them on release?
msg325603 - (view) Author: Yury Selivanov (yselivanov) * (Python committer) Date: 2018-09-18 00:52
> Ned, do we auto run docs build for Python 3.7?  Or do we only build them on release?

Never mind, the docs for 3.7 have been updated!
msg325604 - (view) Author: Ned Deily (ned.deily) * (Python committer) Date: 2018-09-18 00:59
>> Ned, do we auto run docs build for Python 3.7?  Or do we only build them on release?

The online html docs at https://docs.python.org/, like https://docs.python.org/3.7/, are rebuilt every 3 hours from the current branch heads for feature and maintenance releases.  We also make available archive copies of the docs for each release here:
https://www.python.org/doc/versions/

>Never mind, the docs for 3.7 have been updated!

What's up, Doc?
msg325609 - (view) Author: Yury Selivanov (yselivanov) * (Python committer) Date: 2018-09-18 03:58
New changeset ac94e38d076aebc56c2ff96a249b5e40f32633ea by Yury Selivanov in branch 'master':
bpo-33649: Note that asyncio.run() calls shutdown_asyncgens() (GH-9380)
https://github.com/python/cpython/commit/ac94e38d076aebc56c2ff96a249b5e40f32633ea
msg325612 - (view) Author: miss-islington (miss-islington) Date: 2018-09-18 04:12
New changeset 1f4ea580675d7b30d3906d78c500997d7d96995d by Miss Islington (bot) in branch '3.7':
bpo-33649: Note that asyncio.run() calls shutdown_asyncgens() (GH-9380)
https://github.com/python/cpython/commit/1f4ea580675d7b30d3906d78c500997d7d96995d
msg325618 - (view) Author: Yury Selivanov (yselivanov) * (Python committer) Date: 2018-09-18 06:47
New changeset b042cf10c6084d14279c55a7e0d2d7595ff4e694 by Yury Selivanov in branch 'master':
bpo-33649: Fix markup; add another note that asyncio.run is 3.7+ (GH-9389)
https://github.com/python/cpython/commit/b042cf10c6084d14279c55a7e0d2d7595ff4e694
msg325620 - (view) Author: miss-islington (miss-islington) Date: 2018-09-18 07:01
New changeset 45452b738b7f94221a94e903fb5975222fbb7a8f by Miss Islington (bot) in branch '3.7':
bpo-33649: Fix markup; add another note that asyncio.run is 3.7+ (GH-9389)
https://github.com/python/cpython/commit/45452b738b7f94221a94e903fb5975222fbb7a8f
msg325686 - (view) Author: Yury Selivanov (yselivanov) * (Python committer) Date: 2018-09-18 21:55
New changeset 471503954a91d86cf04228c38134108c67a263b0 by Yury Selivanov in branch 'master':
bpo-33649: Add a high-level section about Futures; few quick fixes (GH-9403)
https://github.com/python/cpython/commit/471503954a91d86cf04228c38134108c67a263b0
msg325687 - (view) Author: miss-islington (miss-islington) Date: 2018-09-18 22:09
New changeset 73c0006e71683b7d5b28192f18a2b9796e4195ef by Miss Islington (bot) in branch '3.7':
bpo-33649: Add a high-level section about Futures; few quick fixes (GH-9403)
https://github.com/python/cpython/commit/73c0006e71683b7d5b28192f18a2b9796e4195ef
msg325901 - (view) Author: Yury Selivanov (yselivanov) * (Python committer) Date: 2018-09-20 16:44
New changeset e247b46cba4f4d32ea96a15dbc36d73265171106 by Yury Selivanov in branch 'master':
bpo-33649: More improvements (GH-9439)
https://github.com/python/cpython/commit/e247b46cba4f4d32ea96a15dbc36d73265171106
msg325905 - (view) Author: miss-islington (miss-islington) Date: 2018-09-20 16:57
New changeset 8e5ef58c10a1154f824d5875c2d89794a800eadc by Miss Islington (bot) in branch '3.7':
bpo-33649: More improvements (GH-9439)
https://github.com/python/cpython/commit/8e5ef58c10a1154f824d5875c2d89794a800eadc
msg326031 - (view) Author: Yury Selivanov (yselivanov) * (Python committer) Date: 2018-09-21 20:23
New changeset db1a80e97aa7217c561fb3627f70be1882de9534 by Yury Selivanov in branch 'master':
bpo-33649: Fix gather() docs; fix title; few other nits. (GH-9475)
https://github.com/python/cpython/commit/db1a80e97aa7217c561fb3627f70be1882de9534
msg326033 - (view) Author: Yury Selivanov (yselivanov) * (Python committer) Date: 2018-09-21 20:35
New changeset e45662c28bfc84aa3674463a2995e45da4d63793 by Yury Selivanov (Miss Islington (bot)) in branch '3.7':
bpo-33649: Fix gather() docs; fix title; few other nits. (GH-9475) (GH-9481)
https://github.com/python/cpython/commit/e45662c28bfc84aa3674463a2995e45da4d63793
History
Date User Action Args
2018-09-21 20:35:37yselivanovsetmessages: + msg326033
2018-09-21 20:23:26miss-islingtonsetpull_requests: + pull_request8891
2018-09-21 20:23:19yselivanovsetmessages: + msg326031
2018-09-21 16:23:08yselivanovsetpull_requests: + pull_request8888
2018-09-20 16:57:23miss-islingtonsetmessages: + msg325905
2018-09-20 16:44:16miss-islingtonsetpull_requests: + pull_request8869
2018-09-20 16:44:10yselivanovsetmessages: + msg325901
2018-09-20 05:58:16yselivanovsetpull_requests: + pull_request8853
2018-09-18 22:09:55miss-islingtonsetmessages: + msg325687
2018-09-18 21:55:55miss-islingtonsetpull_requests: + pull_request8831
2018-09-18 21:55:48yselivanovsetmessages: + msg325686
2018-09-18 18:25:53yselivanovsetpull_requests: + pull_request8826
2018-09-18 07:01:03miss-islingtonsetmessages: + msg325620
2018-09-18 06:48:09miss-islingtonsetpull_requests: + pull_request8814
2018-09-18 06:47:59yselivanovsetmessages: + msg325618
2018-09-18 06:41:10yselivanovsetpull_requests: + pull_request8813
2018-09-18 06:02:10miss-islingtonsetpull_requests: + pull_request8812
2018-09-18 06:01:00magmaxsetpull_requests: + pull_request8811
2018-09-18 04:50:11miss-islingtonsetpull_requests: + pull_request8810
2018-09-18 04:48:48bossylobstersetpull_requests: + pull_request8809
2018-09-18 04:47:30magmaxsetpull_requests: + pull_request8808
2018-09-18 04:12:09miss-islingtonsetmessages: + msg325612
2018-09-18 03:58:15miss-islingtonsetpull_requests: + pull_request8807
2018-09-18 03:58:06yselivanovsetmessages: + msg325609
2018-09-18 00:59:12ned.deilysetmessages: + msg325604
2018-09-18 00:52:32yselivanovsetmessages: + msg325603
2018-09-18 00:50:35yselivanovsetpull_requests: + pull_request8804
2018-09-18 00:30:11yselivanovsetnosy: + ned.deily
messages: + msg325601
2018-09-17 23:38:31yselivanovsetstatus: open -> closed
resolution: fixed
messages: + msg325599

stage: patch review -> resolved
2018-09-17 23:35:35yselivanovsetmessages: + msg325598
2018-09-17 23:30:25yselivanovsetpull_requests: + pull_request8801
2018-09-17 23:16:51yselivanovsetmessages: + msg325596
2018-09-17 22:54:48Elvis.Pranskevichussetpull_requests: + pull_request8800
2018-09-17 22:42:04yselivanovsetmessages: + msg325592
2018-09-17 22:10:24yselivanovsetpull_requests: + pull_request8798
2018-09-17 19:35:29yselivanovsetmessages: + msg325568
2018-09-17 18:42:08yselivanovsetpull_requests: + pull_request8788
2018-09-16 23:40:47yselivanovsetmessages: + msg325505
2018-09-15 14:29:04kbumsiksetpull_requests: + pull_request8753
2018-09-14 23:57:18yselivanovsetmessages: + msg325415
2018-09-14 22:56:08yselivanovsetpull_requests: + pull_request8749
2018-09-14 22:11:27yselivanovsetmessages: + msg325408
2018-09-14 21:57:42yselivanovsetmessages: + msg325406
2018-09-14 21:33:35yselivanovsetpull_requests: + pull_request8748
2018-09-14 20:55:44yselivanovsetpull_requests: + pull_request8744
2018-09-14 20:32:12willingcsetmessages: + msg325396
2018-09-14 17:38:00yselivanovsetpull_requests: + pull_request8739
2018-09-14 17:06:58willingcsetmessages: + msg325365
2018-09-14 15:48:40willingcsetpull_requests: + pull_request8735
2018-09-14 01:28:24miss-islingtonsetnosy: + miss-islington
messages: + msg325316
2018-09-13 23:39:12willingcsetpull_requests: + pull_request8715
2018-09-13 18:17:57willingcsetpull_requests: + pull_request8704
2018-09-13 00:05:20yselivanovsetmessages: + msg325216
2018-09-12 21:58:43willingcsetpull_requests: + pull_request8666
2018-09-12 21:16:19willingcsetpull_requests: + pull_request8664
2018-09-12 18:35:21kbumsiksetnosy: + kbumsik
messages: + msg325160
2018-09-12 18:32:01yselivanovsetmessages: + msg325156
2018-09-12 18:25:02kbumsiksetpull_requests: + pull_request8651
2018-09-12 00:10:41yselivanovsetmessages: + msg325102
2018-09-11 22:12:05yselivanovsetpull_requests: + pull_request8630
2018-09-11 17:52:41xtreaksetnosy: + xtreak
2018-09-11 16:58:11asvetlovlinkissue33986 superseder
2018-09-11 16:58:02yselivanovsetmessages: + msg325030
2018-09-11 16:54:44yselivanovsetmessages: + msg325029
2018-09-10 20:33:10yselivanovsetkeywords: + patch
stage: patch review
pull_requests: + pull_request8592
2018-08-04 17:36:26yselivanovsetmessages: + msg323114
2018-08-04 17:17:22MartinAltmayersetnosy: + MartinAltmayer
2018-07-02 23:26:09JDLHsetnosy: + JDLH
messages: + msg320929
2018-06-01 16:52:48belopolskysetnosy: + belopolsky
2018-05-30 03:53:59yselivanovsetnosy: + willingc
messages: + msg318149
2018-05-29 00:35:42akuchlingsetmessages: + msg317966
2018-05-26 13:02:21levkivskyisetnosy: + levkivskyi
2018-05-25 20:02:22barrysetnosy: + barry
2018-05-25 19:48:42yselivanovcreate