)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"d64111dc84bb207f49fb0a54a860a400e69b595b","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":4,"id":"07c25030_9a3f03a5","updated":"2026-06-29 11:22:43.000000000","message":"This reminds me of the old proposal about oslo.wsgi and I wonder if we should revive that idea before we merge this ?\n\nhttps://lists.openstack.org/archives/list/openstack-discuss@lists.openstack.org/thread/IW2ZMYXGZQFPSLJRVT5OKFFX7XRGM2FF/#ZX45WPY3ME3ZRFA5IVNOZIUINYFAU4VP","commit_id":"6203e8b46ba935bcc7b175a3f01956a95ade7378"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"93c8b795788f306f0baf8573e862aec90923f30f","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":4,"id":"3c04cd2f_8d256e98","in_reply_to":"07c25030_9a3f03a5","updated":"2026-06-29 13:41:02.000000000","message":"I agree. It would be better to bootstrap that project. I have not gotten around to it and won\u0027t have time in the next month or so.","commit_id":"6203e8b46ba935bcc7b175a3f01956a95ade7378"},{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"86c2aef9bf25debb1ad1c906b9cbcf11ee9c683b","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":4,"id":"e7c9acc0_214802c4","in_reply_to":"3c04cd2f_8d256e98","updated":"2026-06-29 18:21:07.000000000","message":"Interesting! So this ASGI work would fold into that? I’m fine with it living wherever makes sense to folks. Also, I’ve pinged both of you on IRC/Matrix, I would love some collaborators for this effort, though it is very much still in PoC / research mode.","commit_id":"6203e8b46ba935bcc7b175a3f01956a95ade7378"},{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"a9b6416cbff94c4fd6471645e69bd626cff0b9cf","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":4,"id":"3f1cb97f_f39b1a27","in_reply_to":"e7c9acc0_214802c4","updated":"2026-06-29 18:22:12.000000000","message":"Ah we might want to name the project slightly differently if we’re putting both WSGI and ASGI into it ;)","commit_id":"6203e8b46ba935bcc7b175a3f01956a95ade7378"}],"oslo_service/asgi.py":[{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"17baf57a22e95c28fad53d169065598ac2d4a487","unresolved":false,"context_lines":[{"line_number":149,"context_line":"            # where send buffer is full (response) while receive buffer"},{"line_number":150,"context_line":"            # is also full (remaining request body)."},{"line_number":151,"context_line":"            if (message[\"type\"] \u003d\u003d \"http.response.start\""},{"line_number":152,"context_line":"                    and not body_consumed"},{"line_number":153,"context_line":"                    and drain_task is None):"},{"line_number":154,"context_line":"                drain_task \u003d asyncio.ensure_future(drain_body())"},{"line_number":155,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"8085753b_43aedb56","line":152,"updated":"2026-07-01 21:43:59.000000000","message":"pep8: W503 line break before binary operator","commit_id":"aee1504054cf035388a54b3d586bbb4ab482778a"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"1617651be420f08adad47968223adf798831b89f","unresolved":false,"context_lines":[{"line_number":149,"context_line":"            # where send buffer is full (response) while receive buffer"},{"line_number":150,"context_line":"            # is also full (remaining request body)."},{"line_number":151,"context_line":"            if (message[\"type\"] \u003d\u003d \"http.response.start\""},{"line_number":152,"context_line":"                    and not body_consumed"},{"line_number":153,"context_line":"                    and drain_task is None):"},{"line_number":154,"context_line":"                drain_task \u003d asyncio.ensure_future(drain_body())"},{"line_number":155,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"a0e13700_88c6290e","line":152,"updated":"2026-07-01 04:33:12.000000000","message":"pep8: W503 line break before binary operator","commit_id":"aee1504054cf035388a54b3d586bbb4ab482778a"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"1617651be420f08adad47968223adf798831b89f","unresolved":false,"context_lines":[{"line_number":150,"context_line":"            # is also full (remaining request body)."},{"line_number":151,"context_line":"            if (message[\"type\"] \u003d\u003d \"http.response.start\""},{"line_number":152,"context_line":"                    and not body_consumed"},{"line_number":153,"context_line":"                    and drain_task is None):"},{"line_number":154,"context_line":"                drain_task \u003d asyncio.ensure_future(drain_body())"},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"        await self.app(scope, tracking_receive, draining_send)"}],"source_content_type":"text/x-python","patch_set":5,"id":"3f088ef3_185bbecf","line":153,"updated":"2026-07-01 04:33:12.000000000","message":"pep8: W503 line break before binary operator","commit_id":"aee1504054cf035388a54b3d586bbb4ab482778a"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"17baf57a22e95c28fad53d169065598ac2d4a487","unresolved":false,"context_lines":[{"line_number":150,"context_line":"            # is also full (remaining request body)."},{"line_number":151,"context_line":"            if (message[\"type\"] \u003d\u003d \"http.response.start\""},{"line_number":152,"context_line":"                    and not body_consumed"},{"line_number":153,"context_line":"                    and drain_task is None):"},{"line_number":154,"context_line":"                drain_task \u003d asyncio.ensure_future(drain_body())"},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"        await self.app(scope, tracking_receive, draining_send)"}],"source_content_type":"text/x-python","patch_set":5,"id":"a976692f_418b2d90","line":153,"updated":"2026-07-01 21:43:59.000000000","message":"pep8: W503 line break before binary operator","commit_id":"aee1504054cf035388a54b3d586bbb4ab482778a"}]}
