* `GZipMiddleware`: Make sure `Vary` header is always added if a response can be compressed [2865](https://github.com/encode/starlette/pull/2865).
Fixed
* Raise exception from background task on BaseHTTPMiddleware [2812](https://github.com/encode/starlette/pull/2812). * `GZipMiddleware`: Don't compress on server sent events [2871](https://github.com/encode/starlette/pull/2871).
Changed
* `MultiPartParser`: Rename `max_file_size` to `spool_max_size` [2780](https://github.com/encode/starlette/pull/2780).
Deprecated
* Add deprecated warning to `TestClient(timeout=...)` [2840](https://github.com/encode/starlette/pull/2840).
New Contributors * musicinmybrain made their first contribution in https://github.com/encode/starlette/pull/2855 * WilliamDEdwards made their first contribution in https://github.com/encode/starlette/pull/2870 * mattmess1221 made their first contribution in https://github.com/encode/starlette/pull/2865
* Make `create_memory_object_stream` compatible with old anyio versions once again, and bump anyio minimum version to 3.6.2 by graingert in [2833](https://github.com/encode/starlette/pull/2833).
Fixed * Collect errors more reliably from WebSocket test client by graingert in https://github.com/encode/starlette/pull/2814 * Fix unclosed `MemoryObjectReceiveStream` upon exception in `BaseHTTPMiddleware` children by Kludex in https://github.com/encode/starlette/pull/2813
Refactor
* Use a pair of memory object streams instead of two queues by graingert in https://github.com/encode/starlette/pull/2829
* Drop Python 3.8 by Kludex in https://github.com/encode/starlette/pull/2823 * Remove `ExceptionMiddleware` import proxy from `starlette.exceptions` module by Kludex in https://github.com/encode/starlette/pull/2826 * Remove deprecated `WS_1004_NO_STATUS_RCVD` and `WS_1005_ABNORMAL_CLOSURE` by Kludex in https://github.com/encode/starlette/pull/2827