Skip to content

Releases: sanic-org/sanic

Version 21.3.1

21 Mar 13:05
Compare
Choose a tag to compare

Bugfixes

  • #2076 Static files inside subfolders are not accessible (404)

Version 21.3.0

21 Mar 08:44
2586989
Compare
Choose a tag to compare

Release Notes

Features

  • #1876 Unified streaming server
  • #2005 New Request.id property
  • #2008 Allow Pathlib Path objects to be passed to app.static() helper
  • #2010 #2031 New startup-optimized router
  • #2018 #2064 Listeners for main server process
  • #2032 Add raw header info to request object
  • #2042 #2060 #2061 Introduce Signals API
  • #2043 Add __str__ and __repr__ to Sanic and Blueprint
  • #2047 Enable versioning and strict slash on BlueprintGroup
  • #2053 Make get_app name argument optional
  • #2055 JSON encoder change via app
  • #2063 App and connection level context objects

Bugfixes and issues resolved

  • Resolve #1420 url_for where strict_slashes are on for a path ending in /
  • Resolve #1525 Routing is incorrect with some special characters
  • Resolve #1653 ASGI headers in body
  • Resolve #1722 Using curl in chunk mode
  • Resolve #1730 Extra content in ASGI streaming response
  • Resolve #1749 Restore broken middleware edge cases
  • Resolve #1785 #1804 Synchronous error handlers
  • Resolve #1790 Protocol errors did not support async error handlers #1790
  • Resolve #1824 Timeout on specific methods
  • Resolve #1875 Response timeout error from all routes after returning several timeouts from a specific route
  • Resolve #1988 Handling of safe methods with body
  • #2001 Raise ValueError when cookie max-age is not an integer

Deprecations and Removals

  • #2007
    • Config using from_envvar
    • Config using from_pyfile
    • Config using from_object
  • #2009 Remove Sanic test client to its own package
  • #2036 #2037 Drop Python 3.6 support
  • Request.endpoint deprecated in favor of Request.name
  • handler type name prefixes removed (static, websocket, etc)

Developer infrastructure

  • #1995 Create FUNDING.yml
  • #2013 Add codeql to CI pipeline
  • #2038 Codecov configuration updates
  • #2049 Updated setup.py to use find_packages

Improved Documentation

  • #1218 Documentation for sanic.log.* is missing
  • #1608 Add documentation on calver and LTS
  • #1731 Support mounting application elsewhere than at root path
  • #2006 Upgraded type annotations and improved docstrings and API documentation
  • #2052 Fix some examples and docs

Miscellaneous

  • Request.route property
  • Better websocket subprotocols support
  • Resolve bug with middleware in Blueprint Group when passed callable
  • Moves common logic between Blueprint and Sanic into mixins
  • Route naming changed to be more consistent
    • request endpoint is the route name
    • route names are fully namespaced
  • Some new convenience decorators:
    • @app.main_process_start
    • @app.main_process_stop
    • @app.before_server_start
    • @app.after_server_start
    • @app.before_server_stop
    • @app.after_server_stop
    • @app.on_request
    • @app.on_response
  • Fixes Allow header that did not include HEAD
  • Using "name" keyword in url_for for a "static" route where name does not exist
  • Cannot have multiple app.static() without using the named param
  • Using "filename" keyword in url_for on a file route
  • unquote in route def (not automatic)
  • routes_all is tuples
  • Handler arguments are kwarg only
  • request.match_info is now a cached (and not computed) property
  • Unknown static file mimetype is sent as application/octet-stream
  • _host keyword in url_for
  • Add charset default to utf-8 for text and js content types if not specified
  • Version for a route can be str, float, or int
  • Route has ctx property
  • App has routes_static, routes_dynamic, routes_regex
  • #2044 Code cleanup and refactoring
  • #2072 Remove BaseSanic metaclass
  • #2074 Performance adjustments in handle_request_

Version 20.12.3

21 Mar 07:50
35c7625
Compare
Choose a tag to compare

Version 20.12.3

Bugfixes

  • #2021 Remove prefix from websocket handler name

Version 20.12.2

16 Feb 07:36
Compare
Choose a tag to compare

Dependencies

  • #2026 Fix uvloop to 0.14 because 0.15 drops Python 3.6 support
  • #2029 Remove old chardet requirement, add in hard multidict requirement

Version 19.12.5

16 Feb 07:11
Compare
Choose a tag to compare

Dependencies

  • #2025 Fix uvloop to 0.14 because 0.15 drops Python 3.6 support
  • #2027 Remove old chardet requirement, add in hard multidict requirement

Version 20.12.1

05 Jan 16:32
Compare
Choose a tag to compare

Features

  • #1993 Add disable app registry

Version 20.12.0

28 Dec 21:53
150d75b
Compare
Choose a tag to compare

Version 20.12.0

Features

  • #1945 Static route more verbose if file not found
  • #1954 Fix static routes registration on a blueprint
  • #1961 Add Python 3.9 support
  • #1962 Sanic CLI upgrade
  • #1967 Update aiofile version requirements
  • #1969 Update multidict version requirements
  • #1970 Add py.typed file
  • #1972 Speed optimization in request handler
  • #1979 Add app registry and Sanic class level app retrieval

Bugfixes

  • #1965 Fix Chunked Transport-Encoding in ASGI streaming
    response

Deprecations and Removals

  • #1981 Cleanup and remove deprecated code

Developer infrastructure

  • #1956 Fix load module test
  • #1973 Transition Travis from .org to .com
  • #1986 Update tox requirements

Improved Documentation

  • #1951 Documentation improvements
  • #1983 Remove duplicate contents in testing.rst
  • #1984 Fix typo in routing.rst

Version 20.9.1

25 Oct 13:04
e5aed4c
Compare
Choose a tag to compare

Bugfixes

  • #1957 Removes duplicate headers in ASGI streaming body
  • #1954 Fix static route registration on blueprints

Version 19.12.3

25 Oct 12:34
Compare
Choose a tag to compare

Bugfixes

  • #1959 Removes duplicate headers in ASGI streaming body

Version 20.9.0

30 Sep 14:32
5928c50
Compare
Choose a tag to compare

Features

  • #1887 Pass subprotocols in websockets (both sanic server and ASGI)
  • #1894 Automatically set test_mode flag on app instance
  • #1903 Add new unified method for updating app values
  • #1906, #1909 Adds WEBSOCKET_PING_TIMEOUT and WEBSOCKET_PING_INTERVAL configuration values
  • #1935 httpx version dependency updated, it is slated for removal as a dependency in v20.12
  • #1937 Added auto, text, and json fallback error handlers (in v21.3, the default will change form html to auto)

Bugfixes

  • #1897 Resolves exception from unread bytes in stream

Deprecations and Removals

  • #1903 config.from_envar, config.from_pyfile, and config.from_object are deprecated and set to be removed in v21.3

Developer infrastructure

  • #1890, #1891 Update isort calls to be compatible with new API
  • #1893 Remove version section from setup.cfg
  • #1924 Adding --strict-markers for pytest

Improved Documentation

  • #1922 Add explicit ASGI compliance to the README