@@ -1922,3 +1922,132 @@ Misc
19221922----
19231923
19241924- #3341, #3351
1925+
1926+
1927+
1928+
1929+ ----
1930+
1931+
1932+ 3.1.3 (2018-04-12)
1933+ ==================
1934+
1935+ - Fix cancellation broadcast during DNS resolve (`#2910 <https://github.com/aio-libs/aiohttp/pull/2910 >`_)
1936+
1937+
1938+
1939+
1940+ ----
1941+
1942+
1943+ 3.1.2 (2018-04-05)
1944+ ==================
1945+
1946+ - Make ``LineTooLong `` exception more detailed about actual data size (`#2863 <https://github.com/aio-libs/aiohttp/pull/2863 >`_)
1947+
1948+ - Call ``on_chunk_sent `` when write_eof takes as a param the last chunk (`#2909 <https://github.com/aio-libs/aiohttp/pull/2909 >`_)
1949+
1950+
1951+
1952+
1953+ ----
1954+
1955+
1956+ 3.1.1 (2018-03-27)
1957+ ==================
1958+
1959+ - Support *asynchronous iterators * (and *asynchronous generators * as
1960+ well) in both client and server API as request / response BODY
1961+ payloads. (`#2802 <https://github.com/aio-libs/aiohttp/pull/2802 >`_)
1962+
1963+
1964+
1965+
1966+ ----
1967+
1968+
1969+ 3.1.0 (2018-03-21)
1970+ ==================
1971+
1972+ Welcome to aiohttp 3.1 release.
1973+
1974+ This is an *incremental * release, fully backward compatible with *aiohttp 3.0 *.
1975+
1976+ But we have added several new features.
1977+
1978+ The most visible one is ``app.add_routes() `` (an alias for existing
1979+ ``app.router.add_routes() ``. The addition is very important because
1980+ all *aiohttp * docs now uses ``app.add_routes() `` call in code
1981+ snippets. All your existing code still do register routes / resource
1982+ without any warning but you've got the idea for a favorite way: noisy
1983+ ``app.router.add_get() `` is replaced by ``app.add_routes() ``.
1984+
1985+ The library does not make a preference between decorators::
1986+
1987+ routes = web.RouteTableDef()
1988+
1989+ @routes.get('/')
1990+ async def hello(request):
1991+ return web.Response(text="Hello, world")
1992+
1993+ app.add_routes(routes)
1994+
1995+ and route tables as a list::
1996+
1997+ async def hello(request):
1998+ return web.Response(text="Hello, world")
1999+
2000+ app.add_routes([web.get('/', hello)])
2001+
2002+ Both ways are equal, user may decide basing on own code taste.
2003+
2004+ Also we have a lot of minor features, bug fixes and documentation
2005+ updates, see below.
2006+
2007+ Features
2008+ --------
2009+
2010+ - Relax JSON content-type checking in the ``ClientResponse.json() `` to allow
2011+ "application/xxx+json" instead of strict "application/json". (`#2206 <https://github.com/aio-libs/aiohttp/pull/2206 >`_)
2012+ - Bump C HTTP parser to version 2.8 (`#2730 <https://github.com/aio-libs/aiohttp/pull/2730 >`_)
2013+ - Accept a coroutine as an application factory in ``web.run_app `` and gunicorn
2014+ worker. (`#2739 <https://github.com/aio-libs/aiohttp/pull/2739 >`_)
2015+ - Implement application cleanup context (``app.cleanup_ctx `` property). (`#2747 <https://github.com/aio-libs/aiohttp/pull/2747 >`_)
2016+ - Make ``writer.write_headers `` a coroutine. (`#2762 <https://github.com/aio-libs/aiohttp/pull/2762 >`_)
2017+ - Add tracking signals for getting request/response bodies. (`#2767 <https://github.com/aio-libs/aiohttp/pull/2767 >`_)
2018+ - Deprecate ClientResponseError.code in favor of .status to keep similarity
2019+ with response classes. (`#2781 <https://github.com/aio-libs/aiohttp/pull/2781 >`_)
2020+ - Implement ``app.add_routes() `` method. (`#2787 <https://github.com/aio-libs/aiohttp/pull/2787 >`_)
2021+ - Implement ``web.static() `` and ``RouteTableDef.static() `` API. (`#2795 <https://github.com/aio-libs/aiohttp/pull/2795 >`_)
2022+ - Install a test event loop as default by ``asyncio.set_event_loop() ``. The
2023+ change affects aiohttp test utils but backward compatibility is not broken
2024+ for 99.99% of use cases. (`#2804 <https://github.com/aio-libs/aiohttp/pull/2804 >`_)
2025+ - Refactor ``ClientResponse `` constructor: make logically required constructor
2026+ arguments mandatory, drop ``_post_init() `` method. (`#2820 <https://github.com/aio-libs/aiohttp/pull/2820 >`_)
2027+ - Use ``app.add_routes() `` in server docs everywhere (`#2830 <https://github.com/aio-libs/aiohttp/pull/2830 >`_)
2028+ - Websockets refactoring, all websocket writer methods are converted into
2029+ coroutines. (`#2836 <https://github.com/aio-libs/aiohttp/pull/2836 >`_)
2030+ - Provide ``Content-Range `` header for ``Range `` requests (`#2844 <https://github.com/aio-libs/aiohttp/pull/2844 >`_)
2031+
2032+
2033+ Bugfixes
2034+ --------
2035+
2036+ - Fix websocket client return EofStream. (`#2784 <https://github.com/aio-libs/aiohttp/pull/2784 >`_)
2037+ - Fix websocket demo. (`#2789 <https://github.com/aio-libs/aiohttp/pull/2789 >`_)
2038+ - Property ``BaseRequest.http_range `` now returns a python-like slice when
2039+ requesting the tail of the range. It's now indicated by a negative value in
2040+ ``range.start `` rather then in ``range.stop `` (`#2805 <https://github.com/aio-libs/aiohttp/pull/2805 >`_)
2041+ - Close a connection if an unexpected exception occurs while sending a request
2042+ (`#2827 <https://github.com/aio-libs/aiohttp/pull/2827 >`_)
2043+ - Fix firing DNS tracing events. (`#2841 <https://github.com/aio-libs/aiohttp/pull/2841 >`_)
2044+
2045+
2046+ Improved Documentation
2047+ ----------------------
2048+
2049+ - Document behavior when cchardet detects encodings that are unknown to Python.
2050+ (`#2732 <https://github.com/aio-libs/aiohttp/pull/2732 >`_)
2051+ - Add diagrams for tracing request life style. (`#2748 <https://github.com/aio-libs/aiohttp/pull/2748 >`_)
2052+ - Drop removed functionality for passing ``StreamReader `` as data at client
2053+ side. (`#2793 <https://github.com/aio-libs/aiohttp/pull/2793 >`_)
0 commit comments