{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":743345948,"defaultBranch":"master","name":"aiosonic","ownerLogin":"geraldog","currentUserCanPush":false,"isFork":true,"isEmpty":false,"createdAt":"2024-01-15T02:52:49.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/14135816?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1722889498.0","currentOid":""},"activityList":{"items":[{"before":"3d0cf227391485e957c15c495a880a910ab34405","after":"3a2e6e5de02528416f21457f5488fa1802a4760b","ref":"refs/heads/master","pushedAt":"2024-08-15T05:50:26.000Z","pushType":"push","commitsCount":8,"pusher":{"login":"geraldog","name":"Geraldo Nascimento","path":"/geraldog","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/14135816?s=80&v=4"},"commit":{"message":"Bump aiohttp from 3.10.1 to 3.10.3 (#487)\n\nBumps [aiohttp](https://github.com/aio-libs/aiohttp) from 3.10.1 to 3.10.3.\r\n- [Release notes](https://github.com/aio-libs/aiohttp/releases)\r\n- [Changelog](https://github.com/aio-libs/aiohttp/blob/master/CHANGES.rst)\r\n- [Commits](https://github.com/aio-libs/aiohttp/compare/v3.10.1...v3.10.3)\r\n\r\n---\r\nupdated-dependencies:\r\n- dependency-name: aiohttp\r\n dependency-type: direct:development\r\n update-type: version-update:semver-patch\r\n...\r\n\r\nSigned-off-by: dependabot[bot] \r\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>","shortMessageHtmlLink":"Bump aiohttp from 3.10.1 to 3.10.3 (sonic182#487)"}},{"before":"1f54f86efd1eef86b885473a162dc7a74e49a9c1","after":"e96359c6f4ed60575892f8ee096c74b071b65492","ref":"refs/heads/only_close_once","pushedAt":"2024-08-08T19:28:00.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"geraldog","name":"Geraldo Nascimento","path":"/geraldog","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/14135816?s=80&v=4"},"commit":{"message":"Abort the Transport unconditionally on close even if closing\n\nAccording to performance.py it shows an increase of 10% in speed\nin relation to aiohttp, consistently. Stats relative to my\nmachine of course, but the improvement is notable.","shortMessageHtmlLink":"Abort the Transport unconditionally on close even if closing"}},{"before":"d2e996e666e0867618025a68dc5c2f7dca89e3d9","after":"1f54f86efd1eef86b885473a162dc7a74e49a9c1","ref":"refs/heads/only_close_once","pushedAt":"2024-08-08T01:51:10.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"geraldog","name":"Geraldo Nascimento","path":"/geraldog","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/14135816?s=80&v=4"},"commit":{"message":"Move back to sync code for Connection Release\n\nThe work started at #474 aimed to get rid of every RuntimeError.\n\nNow that is understood that we must close the Connection from one\nplace only in the code to prevent RuntimeError, it appears as\nsuperficial to actually wait on the transport to close and to\nmake sure a read into the void is done to any trailing buffer.\n\nDoing none of those things still results in functional aiosonic\nwithout RuntimeError's and allow us to go back to sync code for\nConnection release and close, thus allowing to relax the need\nof pass an instance the Running Loop to HttpResponse.__init__()","shortMessageHtmlLink":"Move back to sync code for Connection Release"}},{"before":null,"after":"d2e996e666e0867618025a68dc5c2f7dca89e3d9","ref":"refs/heads/only_close_once","pushedAt":"2024-08-05T20:24:58.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"geraldog","name":"Geraldo Nascimento","path":"/geraldog","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/14135816?s=80&v=4"},"commit":{"message":"Ensure aiosonic only close the connection from one place\n\nIssue #473 is still present, just not very often like it used\nto be. PR #474 was a first try at getting rid of every\nRuntimeError possible. It alleviated the problem but it seems\nit is a smarter choice to only really try to forcefully end\nthe connection from Connection._connect() and only when needed,\ni.e. a close to begin a new connection.","shortMessageHtmlLink":"Ensure aiosonic only close the connection from one place"}},{"before":"214fe68e0aa8c3a05d201e57c4617845501f28c6","after":"3d0cf227391485e957c15c495a880a910ab34405","ref":"refs/heads/master","pushedAt":"2024-08-05T20:06:44.000Z","pushType":"push","commitsCount":15,"pusher":{"login":"geraldog","name":"Geraldo Nascimento","path":"/geraldog","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/14135816?s=80&v=4"},"commit":{"message":"fix docs about performance test","shortMessageHtmlLink":"fix docs about performance test"}},{"before":"dfe8388344243c9f38191318e9929a20024cfb00","after":"1d496b05e22fff121746590e5427e11c1ad442b5","ref":"refs/heads/double_close","pushedAt":"2024-07-30T22:32:15.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"geraldog","name":"Geraldo Nascimento","path":"/geraldog","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/14135816?s=80&v=4"},"commit":{"message":"Minor stylistic changes, some merge conflict overlooks","shortMessageHtmlLink":"Minor stylistic changes, some merge conflict overlooks"}},{"before":"d18a37a12cc162643f1a59c6e478eb38933bf7bd","after":"dfe8388344243c9f38191318e9929a20024cfb00","ref":"refs/heads/double_close","pushedAt":"2024-07-30T21:58:47.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"geraldog","name":"Geraldo Nascimento","path":"/geraldog","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/14135816?s=80&v=4"},"commit":{"message":"Merge remote-tracking branch 'upstream/master' into double_close","shortMessageHtmlLink":"Merge remote-tracking branch 'upstream/master' into double_close"}},{"before":"42e406acc4b0f95fcda92da6132875bd51c617ed","after":"d18a37a12cc162643f1a59c6e478eb38933bf7bd","ref":"refs/heads/double_close","pushedAt":"2024-07-30T21:26:54.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"geraldog","name":"Geraldo Nascimento","path":"/geraldog","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/14135816?s=80&v=4"},"commit":{"message":"Third attempt at fixing tests for PR #474","shortMessageHtmlLink":"Third attempt at fixing tests for PR sonic182#474"}},{"before":"b99baab43956e94d0cf7534e4a438f8d734d269e","after":"42e406acc4b0f95fcda92da6132875bd51c617ed","ref":"refs/heads/double_close","pushedAt":"2024-07-30T21:21:47.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"geraldog","name":"Geraldo Nascimento","path":"/geraldog","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/14135816?s=80&v=4"},"commit":{"message":"Merge remote-tracking branch 'upstream/master' into double_close","shortMessageHtmlLink":"Merge remote-tracking branch 'upstream/master' into double_close"}},{"before":"14c14a949b13d5cc561dc3c7ad56a2b9c3b687fc","after":"b99baab43956e94d0cf7534e4a438f8d734d269e","ref":"refs/heads/double_close","pushedAt":"2024-07-30T21:13:02.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"geraldog","name":"Geraldo Nascimento","path":"/geraldog","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/14135816?s=80&v=4"},"commit":{"message":"Second attempt at fixing tests for PR #474\n\npytest seems to mask get_running_loop and only work with deprecated\nget_event_loop\n\nFix for HTTP/2","shortMessageHtmlLink":"Second attempt at fixing tests for PR sonic182#474"}},{"before":"65ca0dff3f7537fb73d4c43c519b6331cab7ec09","after":"14c14a949b13d5cc561dc3c7ad56a2b9c3b687fc","ref":"refs/heads/double_close","pushedAt":"2024-07-30T20:16:43.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"geraldog","name":"Geraldo Nascimento","path":"/geraldog","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/14135816?s=80&v=4"},"commit":{"message":"Initial fix for tests vis-a-vis PR #474","shortMessageHtmlLink":"Initial fix for tests vis-a-vis PR sonic182#474"}},{"before":"8e9e0a240d5248c6260342dd3d9eb45ea906af1c","after":null,"ref":"refs/heads/coro_error","pushedAt":"2024-07-30T19:53:32.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"geraldog","name":"Geraldo Nascimento","path":"/geraldog","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/14135816?s=80&v=4"}},{"before":null,"after":"65ca0dff3f7537fb73d4c43c519b6331cab7ec09","ref":"refs/heads/double_close","pushedAt":"2024-07-30T17:53:14.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"geraldog","name":"Geraldo Nascimento","path":"/geraldog","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/14135816?s=80&v=4"},"commit":{"message":"Prevent Connection.close() from being called twice\n\nConnection.close() is occasionally being called more\nthan once from different code-paths in a most classical\nconcurrency screw-up.\n\nThis was discovered after the persistence of RuntimeErrors\nusually coming from readuntil() awaitables proved tricky to\nsolve.\n\nThe commit also ressurects the create_task() method to release\nConnection on HttpResponse __del__(), though it binds the task\nstrongly to a reference inside the Connection object itself,\nwith the inconvenience that aiosonic must pass a instance\nof the running loop - __del__() is special and finnicky\nand will complain about a missing loop otherwise.","shortMessageHtmlLink":"Prevent Connection.close() from being called twice"}},{"before":"d725380162621adca5982452d0cd2ea8633e91f6","after":"214fe68e0aa8c3a05d201e57c4617845501f28c6","ref":"refs/heads/master","pushedAt":"2024-07-30T17:13:16.000Z","pushType":"push","commitsCount":14,"pusher":{"login":"geraldog","name":"Geraldo Nascimento","path":"/geraldog","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/14135816?s=80&v=4"},"commit":{"message":"cleanup","shortMessageHtmlLink":"cleanup"}},{"before":null,"after":"8e9e0a240d5248c6260342dd3d9eb45ea906af1c","ref":"refs/heads/coro_error","pushedAt":"2024-07-22T04:38:08.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"geraldog","name":"Geraldo Nascimento","path":"/geraldog","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/14135816?s=80&v=4"},"commit":{"message":"connection.py: set connection reader to None on transport abort\n\nIf aiosonic fails to do so (relying perhaps on the abort() call to do\nit) we might get:\n\nRuntimeError: readuntil() called while another coroutine is already\nwaiting for incoming data\n\nThe fix now raises the proper exception:\n\nMissingReaderException: reader not set.","shortMessageHtmlLink":"connection.py: set connection reader to None on transport abort"}},{"before":"992fe6be2872f99baf79c7f23aea8aee7125d707","after":"d725380162621adca5982452d0cd2ea8633e91f6","ref":"refs/heads/master","pushedAt":"2024-02-07T00:53:14.000Z","pushType":"push","commitsCount":7,"pusher":{"login":"geraldog","name":"Geraldo Nascimento","path":"/geraldog","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/14135816?s=80&v=4"},"commit":{"message":"updated sphinxdocs deps","shortMessageHtmlLink":"updated sphinxdocs deps"}},{"before":"14d18a2d25b066b98ce7405d2cb05f610eca0108","after":"a5000774aebc02cac2e80c401d0df3b3f9ee8d10","ref":"refs/heads/elegant_pool_drain_fix","pushedAt":"2024-02-06T02:04:08.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"geraldog","name":"Geraldo Nascimento","path":"/geraldog","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/14135816?s=80&v=4"},"commit":{"message":"pools.py: missing await on pool get(). Change to get_nowait()\n\nIt's missing the await keyword but if we actually await there and\nthere's double cleanup, method will block forever. Change to\nget_nowait() so it properly raises QueueEmpty if double\ncleanup is attempted.","shortMessageHtmlLink":"pools.py: missing await on pool get(). Change to get_nowait()"}},{"before":"34f0db44bd2e2fde684375ad1ed23f384343176e","after":"14d18a2d25b066b98ce7405d2cb05f610eca0108","ref":"refs/heads/elegant_pool_drain_fix","pushedAt":"2024-02-04T20:49:57.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"geraldog","name":"Geraldo Nascimento","path":"/geraldog","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/14135816?s=80&v=4"},"commit":{"message":"__init.py__: fix small indentation mistake on HttpResponse __del__","shortMessageHtmlLink":"__init.py__: fix small indentation mistake on HttpResponse __del__"}},{"before":null,"after":"34f0db44bd2e2fde684375ad1ed23f384343176e","ref":"refs/heads/elegant_pool_drain_fix","pushedAt":"2024-02-03T01:55:01.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"geraldog","name":"Geraldo Nascimento","path":"/geraldog","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/14135816?s=80&v=4"},"commit":{"message":"__init__.py: always set connection to response and remake __del__\n\ncreate_task() has no guarantee of executing without being bound\nto a strong reference so task will be collected by the gc","shortMessageHtmlLink":"__init__.py: always set connection to response and remake __del__"}},{"before":"8e5fd4a96189bba4ec82c1f3d427cad241d06fb7","after":"992fe6be2872f99baf79c7f23aea8aee7125d707","ref":"refs/heads/master","pushedAt":"2024-02-02T20:47:57.000Z","pushType":"push","commitsCount":4,"pusher":{"login":"geraldog","name":"Geraldo Nascimento","path":"/geraldog","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/14135816?s=80&v=4"},"commit":{"message":"connection socket methods in connection (#454)\n\n* connecto socket methods in connection\r\n\r\n* fix and docstring\r\n\r\n* fix\r\n\r\n* Fix\r\n\r\n* fix\r\n\r\n* ensure connectino get's released\r\n\r\n* no coveralls\r\n\r\n* fix","shortMessageHtmlLink":"connection socket methods in connection (sonic182#454)"}},{"before":"e82650a8701a4766540ddd36484cc8a608348b28","after":"8f095ece973b8c787aceb497f4719f617028f5b9","ref":"refs/heads/fix_pool_drain_try_2","pushedAt":"2024-02-01T00:28:15.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"geraldog","name":"Geraldo Nascimento","path":"/geraldog","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/14135816?s=80&v=4"},"commit":{"message":"__init__.py: always add connection to HttpResponse\n\nSimplifies handling of blocked connections","shortMessageHtmlLink":"__init__.py: always add connection to HttpResponse"}},{"before":"a8606315f95ad0a4d8183fc5e05c184261f17008","after":"e82650a8701a4766540ddd36484cc8a608348b28","ref":"refs/heads/fix_pool_drain_try_2","pushedAt":"2024-01-31T23:26:26.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"geraldog","name":"Geraldo Nascimento","path":"/geraldog","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/14135816?s=80&v=4"},"commit":{"message":"__init__.py: deduce Connection from Connector if needed.\n\nThis should fail CyclicQueuePool keep-alive but pass the other\ntests.","shortMessageHtmlLink":"__init__.py: deduce Connection from Connector if needed."}},{"before":"d4c0f4d3a67ca59b8a4c07e28e57ef65def61948","after":"a8606315f95ad0a4d8183fc5e05c184261f17008","ref":"refs/heads/fix_pool_drain_try_2","pushedAt":"2024-01-31T22:53:59.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"geraldog","name":"Geraldo Nascimento","path":"/geraldog","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/14135816?s=80&v=4"},"commit":{"message":"__init__.py: set connection waiter only when using Connection","shortMessageHtmlLink":"__init__.py: set connection waiter only when using Connection"}},{"before":"c052b165173d2cc2c894925d0c6b034373200f32","after":"d4c0f4d3a67ca59b8a4c07e28e57ef65def61948","ref":"refs/heads/fix_pool_drain_try_2","pushedAt":"2024-01-31T22:38:18.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"geraldog","name":"Geraldo Nascimento","path":"/geraldog","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/14135816?s=80&v=4"},"commit":{"message":"connections.py: restrict pool fix to non-HTTP/2 for now.\n\nAlso experimentally get rid of __del__. It's called before __aexit__\nonly on special circumstances such as program exit, so it may be safe\nto not call close()","shortMessageHtmlLink":"connections.py: restrict pool fix to non-HTTP/2 for now."}},{"before":"d6fb894d6f3ba0905e7b0fb86d5b924181189be5","after":"c052b165173d2cc2c894925d0c6b034373200f32","ref":"refs/heads/fix_pool_drain_try_2","pushedAt":"2024-01-31T21:21:38.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"geraldog","name":"Geraldo Nascimento","path":"/geraldog","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/14135816?s=80&v=4"},"commit":{"message":"test_aiosonic.py: make sure to await long_request()","shortMessageHtmlLink":"test_aiosonic.py: make sure to await long_request()"}},{"before":"9597a9df277ff2db10242e2f0e7f0f80cafe2192","after":"d6fb894d6f3ba0905e7b0fb86d5b924181189be5","ref":"refs/heads/fix_pool_drain_try_2","pushedAt":"2024-01-31T20:39:25.000Z","pushType":"push","commitsCount":5,"pusher":{"login":"geraldog","name":"Geraldo Nascimento","path":"/geraldog","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/14135816?s=80&v=4"},"commit":{"message":"Merge branch 'master' of ssh://github.com/sonic182/aiosonic into fix_pool_drain_try_2","shortMessageHtmlLink":"Merge branch 'master' of ssh://github.com/sonic182/aiosonic into fix_…"}},{"before":null,"after":"9597a9df277ff2db10242e2f0e7f0f80cafe2192","ref":"refs/heads/fix_pool_drain_try_2","pushedAt":"2024-01-31T20:29:24.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"geraldog","name":"Geraldo Nascimento","path":"/geraldog","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/14135816?s=80&v=4"},"commit":{"message":"__init__.py: set waiter result on sucessful read of all chunks.\n\nI left the release call if type is SmartPool just in case, but it\nprobably needs to be gone too as now all asynchronous exit can be\nhandled inside connection.py.\n\nThe __del__ method creates a task with no certitude of executing,\nget rid of it in favor of releasing inside __aexit__ of Connection.","shortMessageHtmlLink":"__init__.py: set waiter result on sucessful read of all chunks."}},{"before":"527b5f8e5e8492ebcfbff7251f21779e204080f5","after":"e306640b09d0e3049b8c04503a1af956cc4a1a35","ref":"refs/heads/fix_pool_drain","pushedAt":"2024-01-19T07:09:54.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"geraldog","name":"Geraldo Nascimento","path":"/geraldog","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/14135816?s=80&v=4"},"commit":{"message":"connections.py: abort the connection transport on RequestTimeout","shortMessageHtmlLink":"connections.py: abort the connection transport on RequestTimeout"}},{"before":null,"after":"527b5f8e5e8492ebcfbff7251f21779e204080f5","ref":"refs/heads/fix_pool_drain","pushedAt":"2024-01-19T04:56:51.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"geraldog","name":"Geraldo Nascimento","path":"/geraldog","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/14135816?s=80&v=4"},"commit":{"message":"connection.py: make sure to await asyncio.sleep","shortMessageHtmlLink":"connection.py: make sure to await asyncio.sleep"}},{"before":"d2519f9e8c6fcaa910679908fe8280a0669c7d2b","after":"a2457d29b3cb9f59f7bba724d3ff0c7c72bd753e","ref":"refs/heads/fix_memory_leak","pushedAt":"2024-01-17T08:38:28.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"geraldog","name":"Geraldo Nascimento","path":"/geraldog","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/14135816?s=80&v=4"},"commit":{"message":"There's a logical error inside Connection class. aiosonic\nshould await for connection release *if* blocked","shortMessageHtmlLink":"There's a logical error inside Connection class. aiosonic"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEmum2GwA","startCursor":null,"endCursor":null}},"title":"Activity · geraldog/aiosonic"}