Skip to content

Releases: aio-libs/aiohttp

aiohttp 3.7.2 release

27 Oct 08:09
Compare
Choose a tag to compare

Bugfixes

  • Fixed static files handling for loops without .sendfile() support
    #5149 <https://github.com/aio-libs/aiohttp/issues/5149>_

aiohttp 3.7.1 release

25 Oct 07:49
Compare
Choose a tag to compare

Bugfixes

  • Fixed a type error caused by the conditional import of Protocol.
    #5111 <https://github.com/aio-libs/aiohttp/issues/5111>_
  • Server doesn't send Content-Length for 1xx or 204
    #4901 <https://github.com/aio-libs/aiohttp/issues/4901>_
  • Fix run_app typing
    #4957 <https://github.com/aio-libs/aiohttp/issues/4957>_
  • Always require typing_extensions library.
    #5107 <https://github.com/aio-libs/aiohttp/issues/5107>_
  • Fix a variable-shadowing bug causing ThreadedResolver.resolve to
    return the resolved IP as the hostname in each record, which prevented
    validation of HTTPS connections.
    #5110 <https://github.com/aio-libs/aiohttp/issues/5110>_
  • Added annotations to all public attributes.
    #5115 <https://github.com/aio-libs/aiohttp/issues/5115>_
  • Fix flaky test_when_timeout_smaller_second
    #5116 <https://github.com/aio-libs/aiohttp/issues/5116>_
  • Ensure sending a zero byte file does not throw an exception
    #5124 <https://github.com/aio-libs/aiohttp/issues/5124>_
  • Fix a bug in web.run_app() about Python version checking on Windows
    #5127 <https://github.com/aio-libs/aiohttp/issues/5127>_

aiohttp 3.7.0 release

24 Oct 08:39
Compare
Choose a tag to compare

Features

  • Response headers are now prepared prior to running on_response_prepare hooks, directly before headers are sent to the client.
    #1958 <https://github.com/aio-libs/aiohttp/issues/1958>_
  • Add a quote_cookie option to CookieJar, a way to skip quotation wrapping of cookies containing special characters.
    #2571 <https://github.com/aio-libs/aiohttp/issues/2571>_
  • Call AccessLogger.log with the current exception available from sys.exc_info().
    #3557 <https://github.com/aio-libs/aiohttp/issues/3557>_
  • web.UrlDispatcher.add_routes and web.Application.add_routes return a list
    of registered AbstractRoute instances. AbstractRouteDef.register (and all
    subclasses) return a list of registered resources registered resource.
    #3866 <https://github.com/aio-libs/aiohttp/issues/3866>_
  • Added properties of default ClientSession params to ClientSession class so it is available for introspection
    #3882 <https://github.com/aio-libs/aiohttp/issues/3882>_
  • Don't cancel web handler on peer disconnection, raise OSError on reading/writing instead.
    #4080 <https://github.com/aio-libs/aiohttp/issues/4080>_
  • Implement BaseRequest.get_extra_info() to access a protocol transports' extra info.
    #4189 <https://github.com/aio-libs/aiohttp/issues/4189>_
  • Added ClientSession.timeout property.
    #4191 <https://github.com/aio-libs/aiohttp/issues/4191>_
  • allow use of SameSite in cookies.
    #4224 <https://github.com/aio-libs/aiohttp/issues/4224>_
  • Use loop.sendfile() instead of custom implementation if available.
    #4269 <https://github.com/aio-libs/aiohttp/issues/4269>_
  • Apply SO_REUSEADDR to test server's socket.
    #4393 <https://github.com/aio-libs/aiohttp/issues/4393>_
  • Use .raw_host instead of slower .host in client API
    #4402 <https://github.com/aio-libs/aiohttp/issues/4402>_
  • Allow configuring the buffer size of input stream by passing read_bufsize argument.
    #4453 <https://github.com/aio-libs/aiohttp/issues/4453>_
  • Pass tests on Python 3.8 for Windows.
    #4513 <https://github.com/aio-libs/aiohttp/issues/4513>_
  • Add method and url attributes to TraceRequestChunkSentParams and TraceResponseChunkReceivedParams.
    #4674 <https://github.com/aio-libs/aiohttp/issues/4674>_
  • Add ClientResponse.ok property for checking status code under 400.
    #4711 <https://github.com/aio-libs/aiohttp/issues/4711>_
  • Don't ceil timeouts that are smaller than 5 seconds.
    #4850 <https://github.com/aio-libs/aiohttp/issues/4850>_
  • TCPSite now listens by default on all interfaces instead of just IPv4 when None is passed in as the host.
    #4894 <https://github.com/aio-libs/aiohttp/issues/4894>_
  • Bump http_parser to 2.9.4
    #5070 <https://github.com/aio-libs/aiohttp/issues/5070>_

Bugfixes

  • Fix keepalive connections not being closed in time
    #3296 <https://github.com/aio-libs/aiohttp/issues/3296>_

  • Fix failed websocket handshake leaving connection hanging.
    #3380 <https://github.com/aio-libs/aiohttp/issues/3380>_

  • Fix tasks cancellation order on exit. The run_app task needs to be cancelled first for cleanup hooks to run with all tasks intact.
    #3805 <https://github.com/aio-libs/aiohttp/issues/3805>_

  • Don't start heartbeat until writer is set
    #4062 <https://github.com/aio-libs/aiohttp/issues/4062>

  • Fix handling of multipart file uploads without a content type.
    #4089 <https://github.com/aio-libs/aiohttp/issues/4089>_

  • Preserve view handler function attributes across middlewares
    #4174 <https://github.com/aio-libs/aiohttp/issues/4174>_

  • Fix the string representation of ServerDisconnectedError.
    #4175 <https://github.com/aio-libs/aiohttp/issues/4175>_

  • Raising RuntimeError when trying to get encoding from not read body
    #4214 <https://github.com/aio-libs/aiohttp/issues/4214>_

  • Remove warning messages from noop.
    #4282 <https://github.com/aio-libs/aiohttp/issues/4282>_

  • Raise ClientPayloadError if FormData re-processed.
    #4345 <https://github.com/aio-libs/aiohttp/issues/4345>_

  • Fix a warning about unfinished task in web_protocol.py
    #4408 <https://github.com/aio-libs/aiohttp/issues/4408>_

  • Fixed 'deflate' compression. According to RFC 2616 now.
    #4506 <https://github.com/aio-libs/aiohttp/issues/4506>_

  • Fixed OverflowError on platforms with 32-bit time_t
    #4515 <https://github.com/aio-libs/aiohttp/issues/4515>_

  • Fixed request.body_exists returns wrong value for methods without body.
    #4528 <https://github.com/aio-libs/aiohttp/issues/4528>_

  • Fix connecting to link-local IPv6 addresses.
    #4554 <https://github.com/aio-libs/aiohttp/issues/4554>_

  • Fix a problem with connection waiters that are never awaited.
    #4562 <https://github.com/aio-libs/aiohttp/issues/4562>_

  • Always make sure transport is not closing before reuse a connection.

    Reuse a protocol based on keepalive in headers is unreliable.
    For example, uWSGI will not support keepalive even it serves a
    HTTP 1.1 request, except explicitly configure uWSGI with a
    --http-keepalive option.

    Servers designed like uWSGI could cause aiohttp intermittently
    raise a ConnectionResetException when the protocol poll runs
    out and some protocol is reused.
    #4587 <https://github.com/aio-libs/aiohttp/issues/4587>_

  • Handle the last CRLF correctly even if it is received via separate TCP segment.
    #4630 <https://github.com/aio-libs/aiohttp/issues/4630>_

  • Fix the register_resource function to validate route name before splitting it so that route name can include python keywords.
    #4691 <https://github.com/aio-libs/aiohttp/issues/4691>_

  • Improve typing annotations for web.Request, aiohttp.ClientResponse and
    multipart module.
    #4736 <https://github.com/aio-libs/aiohttp/issues/4736>_

  • Fix resolver task is not awaited when connector is cancelled
    #4795 <https://github.com/aio-libs/aiohttp/issues/4795>_

  • Fix a bug "Aiohttp doesn't return any error on invalid request methods"
    #4798 <https://github.com/aio-libs/aiohttp/issues/4798>_

  • Fix HEAD requests for static content.
    #4809 <https://github.com/aio-libs/aiohttp/issues/4809>_

  • Fix incorrect size calculation for memoryview
    #4890 <https://github.com/aio-libs/aiohttp/issues/4890>_

  • Add HTTPMove to all_.
    #4897 <https://github.com/aio-libs/aiohttp/issues/4897>_

  • Fixed the type annotations in the tracing module.
    #4912 <https://github.com/aio-libs/aiohttp/issues/4912>_

  • Fix typing for multipart __aiter__.
    #4931 <https://github.com/aio-libs/aiohttp/issues/4931>_

  • Fix for race condition on connections in BaseConnector that leads to exceeding the connection limit.
    #4936 <https://github.com/aio-libs/aiohttp/issues/4936>_

  • Add forced UTF-8 encoding for application/rdap+json responses.
    #4938 <https://github.com/aio-libs/aiohttp/issues/4938>_

  • Fix inconsistency between Python and C http request parsers in parsing pct-encoded URL.
    #4972 <https://github.com/aio-libs/aiohttp/issues/4972>_

  • Fix connection closing issue in HEAD request.
    #5012 <https://github.com/aio-libs/aiohttp/issues/5012>_

  • Fix type hint on BaseRunner.addresses (from List[str] to List[Any])
    #5086 <https://github.com/aio-libs/aiohttp/issues/5086>_

  • Make web.run_app() more responsive to Ctrl+C on Windows for Python < 3.8. It slightly
    increases CPU load as a side effect.
    #5098 <https://github.com/aio-libs/aiohttp/issues/5098>_

Improved Documentation

  • Fix example code in client quick-start
    #3376 <https://github.com/aio-libs/aiohttp/issues/3376>_
  • Updated the docs so there is no contradiction in ttl_dns_cache default value
    #3512 <https://github.com/aio-libs/aiohttp/issues/3512>_
  • Add 'Deploy with SSL' to docs.
    #4201 <https://github.com/aio-libs/aiohttp/issues/4201>_
  • Change typing of the secure argument on StreamResponse.set_cookie from Optional[str] to Optional[bool]
    #4204 <https://github.com/aio-libs/aiohttp/issues/4204>_
  • Changes ttl_dns_cache type from int to Optional[int].
    #4270 <https://github.com/aio-libs/aiohttp/issues/4270>_
  • Simplify README hello word example and add a documentation page for people coming from requests.
    #4272 <https://github.com/aio-libs/aiohttp/issues/4272>_
  • Improve some code examples in the documentation involving websockets and starting a simple HTTP site with an AppRunner.
    #4285 <https://github.com/aio-libs/aiohttp/issues/4285>_
  • Fix typo in code example in Multipart docs
    #4312 <https://github.com/aio-libs/aiohttp/issues/4312>_
  • Fix code example in Multipart section.
    #4314 <https://github.com/aio-libs/aiohttp/issues/4314>_
  • Update contributing guide so new contributors read the most recent version of that guide. Update command used to create test coverage reporting.
    #4810 <https://github.com/aio-libs/aiohttp/issues/4810>_
  • Spelling: Change "canonize" to "canonicalize".
    #4986 <https://github.com/aio-libs/aiohttp/issues/4986>_
  • Add aiohttp-sse-client library to third party usage list.
    #5084 <https://github.com/aio-libs/aiohttp/issues/5084>_

Misc

  • #2856 <https://github.com/aio-libs/aiohttp/issues/2856>, #4218 <https://github.com/aio-libs/aiohttp/issues/4218>, #4250 <https://github.com/aio-libs/aiohttp/issues/4250>_

v4.0.0a1

09 Oct 11:30
Compare
Choose a tag to compare
Release 4.0.0a1

v3.6.2a1

09 Oct 15:09
Compare
Choose a tag to compare
Release 3.6.2a1

aiohttp 3.6.2 release

09 Oct 16:55
Compare
Choose a tag to compare

It contains several bufixes.

Changes

Features

  • Made exceptions pickleable. Also changed the repr of some exceptions.
    #4077 <https://github.com/aio-libs/aiohttp/issues/4077>_
  • Use Iterable type hint instead of Sequence for Application middleware
    parameter. #4125 <https://github.com/aio-libs/aiohttp/issues/4125>_

Bugfixes

  • Reset the sock_read timeout each time data is received for a
    aiohttp.ClientResponse. #3808 <https://github.com/aio-libs/aiohttp/issues/3808>_
  • Fix handling of expired cookies so they are not stored in CookieJar.
    #4063 <https://github.com/aio-libs/aiohttp/issues/4063>_
  • Fix misleading message in the string representation of ClientConnectorError;
    self.ssl == None means default SSL context, not SSL disabled #4097 <https://github.com/aio-libs/aiohttp/issues/4097>_
  • Don't clobber HTTP status when using FileResponse.
    #4106 <https://github.com/aio-libs/aiohttp/issues/4106>_

Improved Documentation

  • Added minimal required logging configuration to logging documentation.
    #2469 <https://github.com/aio-libs/aiohttp/issues/2469>_
  • Update docs to reflect proxy support.
    #4100 <https://github.com/aio-libs/aiohttp/issues/4100>_
  • Fix typo in code example in testing docs.
    #4108 <https://github.com/aio-libs/aiohttp/issues/4108>_

Misc

  • #4102 <https://github.com/aio-libs/aiohttp/issues/4102>_

v3.6.2a2

09 Oct 15:27
Compare
Choose a tag to compare
v3.6.2a2 Pre-release
Pre-release
Release 3.6.2a2

aiohttp 3.6.1 release

22 Sep 08:52
Compare
Choose a tag to compare

Features

  • Compatibility with Python 3.8.
    #4056 <https://github.com/aio-libs/aiohttp/issues/4056>_

Bugfixes

  • correct some exception string format
    #4068 <https://github.com/aio-libs/aiohttp/issues/4068>_
  • Emit a warning when ssl.OP_NO_COMPRESSION is
    unavailable because the runtime is built against
    an outdated OpenSSL.
    #4052 <https://github.com/aio-libs/aiohttp/issues/4052>_
  • Update multidict requirement to >= 4.5
    #4057 <https://github.com/aio-libs/aiohttp/issues/4057>_

Improved Documentation

  • Provide pytest-aiohttp namespace for pytest fixtures in docs.
    #3723 <https://github.com/aio-libs/aiohttp/issues/3723>_

aiohttp 3.6.0 release

07 Sep 07:46
Compare
Choose a tag to compare

3.6.0 (2019-09-06)

Features

  • Add support for Named Pipes (Site and Connector) under Windows. This feature requires Proactor event loop to work.
    #3629 <https://github.com/aio-libs/aiohttp/issues/3629>_
  • Removed Transfer-Encoding: chunked header from websocket responses to be compatible with more http proxy servers.
    #3798 <https://github.com/aio-libs/aiohttp/issues/3798>_
  • Accept non-GET request for starting websocket handshake on server side.
    #3980 <https://github.com/aio-libs/aiohttp/issues/3980>_

Bugfixes

  • Raise a ClientResponseError instead of an AssertionError for a blank
    HTTP Reason Phrase.
    #3532 <https://github.com/aio-libs/aiohttp/issues/3532>_

  • Fix an issue where cookies would sometimes not be set during a redirect.
    #3576 <https://github.com/aio-libs/aiohttp/issues/3576>_

  • Change normalize_path_middleware to use 308 redirect instead of 301.

    This behavior should prevent clients from being unable to use PUT/POST
    methods on endpoints that are redirected because of a trailing slash.
    #3579 <https://github.com/aio-libs/aiohttp/issues/3579>_

  • Drop the processed task from all_tasks() list early. It prevents logging about a task with unhandled exception when the server is used in conjunction with asyncio.run().
    #3587 <https://github.com/aio-libs/aiohttp/issues/3587>_

  • Signal type annotation changed from Signal[Callable[['TraceConfig'], Awaitable[None]]] to Signal[Callable[ClientSession, SimpleNamespace, ...].
    #3595 <https://github.com/aio-libs/aiohttp/issues/3595>_

  • Use sanitized URL as Location header in redirects
    #3614 <https://github.com/aio-libs/aiohttp/issues/3614>_

  • Improve typing annotations for multipart.py along with changes required
    by mypy in files that references multipart.py.
    #3621 <https://github.com/aio-libs/aiohttp/issues/3621>_

  • Close session created inside aiohttp.request when unhandled exception occurs
    #3628 <https://github.com/aio-libs/aiohttp/issues/3628>_

  • Cleanup per-chunk data in generic data read. Memory leak fixed.
    #3631 <https://github.com/aio-libs/aiohttp/issues/3631>_

  • Use correct type for add_view and family
    #3633 <https://github.com/aio-libs/aiohttp/issues/3633>_

  • Fix keepalive field in slots of RequestHandler.
    #3644 <https://github.com/aio-libs/aiohttp/issues/3644>

  • Properly handle ConnectionResetError, to silence the "Cannot write to closing
    transport" exception when clients disconnect uncleanly.
    #3648 <https://github.com/aio-libs/aiohttp/issues/3648>_

  • Suppress pytest warnings due to test_utils classes
    #3660 <https://github.com/aio-libs/aiohttp/issues/3660>_

  • Fix overshadowing of overlapped sub-application prefixes.
    #3701 <https://github.com/aio-libs/aiohttp/issues/3701>_

  • Fixed return type annotation for WSMessage.json()
    #3720 <https://github.com/aio-libs/aiohttp/issues/3720>_

  • Properly expose TooManyRedirects publicly as documented.
    #3818 <https://github.com/aio-libs/aiohttp/issues/3818>_

  • Fix missing brackets for IPv6 in proxy CONNECT request
    #3841 <https://github.com/aio-libs/aiohttp/issues/3841>_

  • Make the signature of aiohttp.test_utils.TestClient.request match asyncio.ClientSession.request according to the docs
    #3852 <https://github.com/aio-libs/aiohttp/issues/3852>_

  • Use correct style for re-exported imports, makes mypy --strict mode happy.
    #3868 <https://github.com/aio-libs/aiohttp/issues/3868>_

  • Fixed type annotation for add_view method of UrlDispatcher to accept any subclass of View
    #3880 <https://github.com/aio-libs/aiohttp/issues/3880>_

  • Made cython HTTP parser set Reason-Phrase of the response to an empty string if it is missing.
    #3906 <https://github.com/aio-libs/aiohttp/issues/3906>_

  • Add URL to the string representation of ClientResponseError.
    #3959 <https://github.com/aio-libs/aiohttp/issues/3959>_

  • Accept istr keys in LooseHeaders type hints.
    #3976 <https://github.com/aio-libs/aiohttp/issues/3976>_

  • Fixed race conditions in resolve_host caching and throttling when tracing is enabled.
    #4013 <https://github.com/aio-libs/aiohttp/issues/4013>

  • For URLs like "unix://localhost/..." set Host HTTP header to "localhost" instead of "localhost:None".
    #4039 <https://github.com/aio-libs/aiohttp/issues/4039>_

Improved Documentation

  • Modify documentation for Background Tasks to remove deprecated usage of event loop.
    #3526 <https://github.com/aio-libs/aiohttp/issues/3526>_
  • use if __name__ == '__main__': in server examples.
    #3775 <https://github.com/aio-libs/aiohttp/issues/3775>_
  • Update documentation reference to the default access logger.
    #3783 <https://github.com/aio-libs/aiohttp/issues/3783>_
  • Improve documentation for web.BaseRequest.path and web.BaseRequest.raw_path.
    #3791 <https://github.com/aio-libs/aiohttp/issues/3791>_
  • Removed deprecation warning in tracing example docs
    #3964 <https://github.com/aio-libs/aiohttp/issues/3964>_

aiohttp 3.5.4 bugfix release

12 Jan 15:57
Compare
Choose a tag to compare

Changes

  • Fix stream .read() / .readany() / .iter_any() which used to return a
    partial content only in case of compressed content
    #3525 <https://github.com/aio-libs/aiohttp/issues/3525>_