Features
- [2378](https://github.com/sanic-org/sanic/pull/2378) Introduce HTTP/3 and autogeneration of TLS certificates in `DEBUG` mode
- 👶 *EARLY RELEASE FEATURE*: Serving Sanic over HTTP/3 is an early release feature. It does not yet fully cover the HTTP/3 spec, but instead aims for feature parity with Sanic's existing HTTP/1.1 server. Websockets, WebTransport, push responses are examples of some features not yet implemented.
- 📦 *EXTRA REQUIREMENT*: Not all HTTP clients are capable of interfacing with HTTP/3 servers. You may need to install a [HTTP/3 capable client](https://curl.se/docs/http3.html).
- 📦 *EXTRA REQUIREMENT*: In order to use TLS autogeneration, you must install either [mkcert](https://github.com/FiloSottile/mkcert) or [trustme](https://github.com/python-trio/trustme).
- [2416](https://github.com/sanic-org/sanic/pull/2416) Add message to `task.cancel`
- [2420](https://github.com/sanic-org/sanic/pull/2420) Add exception aliases for more consistent naming with standard HTTP response types (`BadRequest`, `MethodNotAllowed`, `RangeNotSatisfiable`)
- [2432](https://github.com/sanic-org/sanic/pull/2432) Expose ASGI `scope` as a property on the `Request` object
- [2438](https://github.com/sanic-org/sanic/pull/2438) Easier access to websocket class for annotation: `from sanic import Websocket`
- [2439](https://github.com/sanic-org/sanic/pull/2439) New API for reading form values with options: `Request.get_form`
- [2445](https://github.com/sanic-org/sanic/pull/2445) Add custom `loads` function
- [2447](https://github.com/sanic-org/sanic/pull/2447), [#2486](https://github.com/sanic-org/sanic/pull/2486) Improved API to support setting cache control headers
- [2453](https://github.com/sanic-org/sanic/pull/2453) Move verbosity filtering to logger
- [2475](https://github.com/sanic-org/sanic/pull/2475) Expose getter for current request using `Request.get_current()`
Bugfixes
- [2448](https://github.com/sanic-org/sanic/pull/2448) Fix to allow running with `pythonw.exe` or places where there is no `sys.stdout`
- [2451](https://github.com/sanic-org/sanic/pull/2451) Trigger `http.lifecycle.request` signal in ASGI mode
- [2455](https://github.com/sanic-org/sanic/pull/2455) Resolve typing of stacked route definitions
- [2463](https://github.com/sanic-org/sanic/pull/2463) Properly catch websocket CancelledError in websocket handler in Python 3.7
Deprecations and Removals
- [2487](https://github.com/sanic-org/sanic/pull/2487) v22.6 deprecations and changes
1. Optional application registry
1. Execution of custom handlers after some part of response was sent
1. Configuring fallback handlers on the `ErrorHandler`
1. Custom `LOGO` setting
1. `sanic.response.stream`
1. `AsyncioServer.init`
Developer infrastructure
- [2449](https://github.com/sanic-org/sanic/pull/2449) Clean up `black` and `isort` config
- [2479](https://github.com/sanic-org/sanic/pull/2479) Fix some flappy tests
Improved Documentation
- [2461](https://github.com/sanic-org/sanic/pull/2461) Update example to match current application naming standards
- [2466](https://github.com/sanic-org/sanic/pull/2466) Better type annotation for `Extend`
- [2485](https://github.com/sanic-org/sanic/pull/2485) Improved help messages in CLI
---
New Contributors
* azimovMichael made their first contribution in https://github.com/sanic-org/sanic/pull/2432
* amitay87 made their first contribution in https://github.com/sanic-org/sanic/pull/2461
* zozzz made their first contribution in https://github.com/sanic-org/sanic/pull/2451
* kijk2869 made their first contribution in https://github.com/sanic-org/sanic/pull/2466
* timmo001 made their first contribution in https://github.com/sanic-org/sanic/pull/2448
**Full Changelog**: https://github.com/sanic-org/sanic/compare/v22.3.1...v22.6.0