Skip to content

Update uvicorn to 0.27.1 - #403

Closed
pyup-bot wants to merge 1 commit into
masterfrom
pyup-update-uvicorn-0.4.6-to-0.27.1
Closed

Update uvicorn to 0.27.1#403
pyup-bot wants to merge 1 commit into
masterfrom
pyup-update-uvicorn-0.4.6-to-0.27.1

Conversation

@pyup-bot

Copy link
Copy Markdown
Collaborator

This PR updates uvicorn from 0.4.6 to 0.27.1.

Changelog

0.27.1

Fixed

- Fix spurious `h11.LocalProtocolError` errors when processing pipelined requests (2243) 10/02/24

---

**Full Changelog**: https://github.com/encode/uvicorn/compare/0.27.0.post1...0.27.1

0.27.0.post1

Fixed

- Fix nav overrides for newer version of Mkdocs Material (2233) 26/01/24

---

**Full Changelog**: https://github.com/encode/uvicorn/compare/0.27.0...0.27.0.post1

0.27.0

Added

- Raise `ClientDisconnect(IOError)` on `send()` when client disconnected (2218) 19/01/24
- Bump ASGI WebSocket spec version to 2.4 (2221) 20/01/24

---

**Full Changelog**: https://github.com/encode/uvicorn/compare/0.26.0...0.27.0

0.26.0

Changed

- Update `--root-path` to include the root path prefix in the full ASGI `path` as per the ASGI spec (2213) 16/01/24
- Use `__future__.annotations` on some internal modules (2199) 16/01/24

---

**Full Changelog**: https://github.com/encode/uvicorn/compare/0.25.0...0.26.0

0.25.0

Added

- Support the WebSocket Denial Response ASGI extension (1916) 17/12/23

Fixed

- Allow explicit hidden file paths on `--reload-include` (2176) 08/12/23
- Properly annotate `uvicorn.run()` (2158) 22/11/23

---

**Full Changelog**: https://github.com/encode/uvicorn/compare/0.24.0...0.25.0

0.24.0.post1

Fixed

* Revert mkdocs-material from 9.1.21 to 9.2.6 (2148) 05/11/23

0.24.0

Added

- Support Python 3.12 (2145) 04/11/23
- Allow setting `app` via environment variable `UVICORN_APP` (2106)

---

**Full Changelog**: https://github.com/encode/uvicorn/compare/0.23.2...0.24.0

0.23.2

Fixed

- Maintain the same behavior of `websockets` from 10.4 on 11.0 (2061) 30/07/23

---

**Full Changelog**: https://github.com/encode/uvicorn/compare/0.23.1...0.23.2

0.23.1

Fixed

- Add `typing_extensions` for Python 3.10 and lower (2053) 18/07/23

**Full Changelog**: https://github.com/encode/uvicorn/compare/0.23.0...0.23.1

0.23.0

Added

- Add `--ws-max-queue` parameter WebSockets (2033) 10/07/23

Removed

- Drop support for Python 3.7 (1996) 19/06/23
- Remove `asgiref` as typing dependency (1999) 08/06/23

Fixed

- Set `scope["scheme"]` to `ws` or `wss` instead of `http` or `https` on `ProxyHeadersMiddleware` for WebSockets (2043) 12/07/23

Changed

- Raise `ImportError` on circular import (2040) 09/07/23
- Use `logger.getEffectiveLevel()` instead of `logger.level` to check if log level is `TRACE` (1966) 01/06/23

---

**Full Changelog**: https://github.com/encode/uvicorn/compare/0.22.0...0.23.0

0.22.0

Added

- Add `--timeout-graceful-shutdown` parameter (1950)
- Handle `SIGBREAK` on Windows (1909)

Fixed

- Shutdown event is now being triggered on Windows when using hot reload (1584)
- `--reload-delay` is effectively used on the `watchfiles` reloader (1930)

**Full Changelog**: https://github.com/encode/uvicorn/compare/0.21.1...0.22.0

0.21.1

Fixed

- Reset lifespan state on each request (1903) 16/03/23

0.21.0

Added

- Introduce lifespan state (1818) 05/03/23
- Allow headers to be sent as iterable on H11 implementation (1782) 27/11/22
- Improve discoverability when --port=0 is used (1890) 09/03/23
Changed

- Avoid importing `h11` and `pyyaml` when not needed to improve import time (1846) 07/02/23
- Replace current native `WSGIMiddleware` implementation by `a2wsgi` (1825) 16/01/23
- Change default `--app-dir` from "." (dot) to "" (empty string) (1835) 06/01/23

Fixed

- Send code 1012 on shutdown for WebSockets (1816) 06/01/23
- Use `surrogateescape` to encode headers on `websockets` implementation (1005) 12/12/22
- Fix warning message on reload failure (1784) 29/11/22

**Full Changelog**: https://github.com/encode/uvicorn/compare/0.20.0...0.21.0

0.20.0

Added

- Check if handshake is completed before sending frame on `wsproto` shutdown (1737)
- Add default headers to WebSockets implementations (1606 & 1747) 28/10/22
- Warn user when `reload` and `workers` flag are used together (1731) 31/10/22

Fixed

- Use correct `WebSocket` error codes on `close` (1753) 20/11/22
- Send disconnect event on connection lost for `wsproto` (996) 29/10/22
- Add `SIGQUIT` handler to `UvicornWorker` (1710) 01/11/22
- Fix crash on exist with "--uds" if socket doesn't exist (1725) 27/10/22
- Annotate `CONFIG_KWARGS` in `UvicornWorker` class (1746) 31/10/22

Removed

- Remove conditional on `RemoteProtocolError.event_hint` on `wsproto` (1486) 31/10/22
- Remove unused `handle_no_connect` on `wsproto` implementation (1759) 17/11/22

0.19.0

Added

- Support Python 3.11 (1652) 16/09/22
- Bump minimal `httptools` version to `0.5.0` (1645) 13/09/22
- Ignore HTTP/2 upgrade and optionally ignore WebSocket upgrade (1661) 19/10/22
- Add `py.typed` to comply with PEP 561 (1687) 07/10/22

Fixed

- Set `propagate` to `False` on "uvicorn" logger (1288) 08/10/22
- USR1 signal is now handled correctly on `UvicornWorker`. (1565) 26/08/22
- Use path with query string on `WebSockets` logs (1385) 11/09/22
- Fix behavior on which "Date" headers were the same per connection (1706) 19/10/22 

Removed

- Remove the `--debug` flag (1640) 14/09/22
- Remove the `DebugMiddleware` (1697) 07/10/22

0.18.3

What's Changed
- Remove cyclic references on HTTP implementations. (1604) 24/08/22
- `reload_delay` default changed from `None` to `0.25` on `uvicorn.run()` and `Config`. `None` is not an acceptable value anymore. (1545) 02/07/22

**Full Changelog**: https://github.com/encode/uvicorn/compare/0.18.2...0.18.3

0.18.2

What's Changed
* Add default `log_config` on `uvicorn.run()` 1541 24/06/22
* Revert `logging` file name modification 1543 27/06/22

**Full Changelog**: https://github.com/encode/uvicorn/compare/0.18.1...0.18.2

0.18.1

Fixed

* Use `DEFAULT_MAX_INCOMPLETE_EVENT_SIZE` as default to `h11_max_incomplete_event_size` on the CLI (1534) 23/06/22


**Full Changelog**: https://github.com/encode/uvicorn/compare/0.18.0...0.18.1

0.18.0

Added

- The `reload` flag prioritizes `watchfiles` instead of the deprecated `watchgod` (1437) 18/06/22
- Annotate `uvicorn.run()` function (1423) 10/05/22
- Allow configuring `max_incomplete_event_size` for `h11` implementation (1514) 22/06/22

Removed

- Remove `asgiref` dependency (1532) 22/06/22

Fixed

- Turn `raw_path` into bytes on both websockets implementations (1487) 16/05/22
- Revert log exception traceback in case of invalid HTTP request (1518) 14/06/22
- Set `asyncio.WindowsSelectorEventLoopPolicy()` when using multiple workers to avoid "WinError 87" (1454) 22/06/22

**Full Changelog**: https://github.com/encode/uvicorn/compare/0.17.6...0.18.0

0.17.6

Changed

- Change `httptools` range to `>=0.4.0` (1400) 11/03/22

0.17.5

Fixed

- Fix case where url is fragmented in httptools protocol (1263) 2/16/22
- Fix WSGI middleware not to explode quadratically in the case of a larger body (1329) 2/16/16

Changed

- Send HTTP 400 response for invalid request (1352) 2/11/22

**Full Changelog**: https://github.com/encode/uvicorn/compare/0.17.4...0.17.5

0.17.4

Fixed

- Replace `create_server` by `create_unix_server` (1362) 04/02/22

0.17.3

Fixed

- Drop wsproto version checking. (1359) 03/02/22

0.17.2

Fixed

- Revert 1332. While trying to solve the memory leak, it introduced an issue (1345) when the server receives big chunks of data using the `httptools` implementation. (1354) 03/02/22
- Revert stream interface changes. This was introduced on 0.14.0, and caused an issue (1226), which caused a memory leak when sending TCP pings. (1355) 03/02/22
- Fix wsproto version check expression (1342) 28/01/22

0.17.1

Fixed

- Move all data handling logic to protocol and ensure connection is closed. (1332) 28/01/22
- Change `spec_version` field from "2.1" to "2.3", as Uvicorn is compliant with that version of the ASGI specifications. (1337) 25/01/22

0.17.0.post1

Fixed

- Add the `python_requires` version specifier (1328) 17/01/22

0.17.0

Added

- Allow configurable websocket per-message-deflate setting (1300) 29/12/21
- Support extra_headers for WS accept message (1293) 06/01/22
- Add missing http version on websockets scope (1309) 08/01/22

Fixed/Removed

- Drop Python 3.6 support (1261) 06/01/22
- Fix reload process behavior when exception is raised (1313) 11/01/22
- Remove `root_path` from logs (1294) 25/12/21

0.16.0

Added

- Enable read of uvicorn settings from environment variables (1279) 06/12/21
- Bump `websockets` to 10.0. (1180) 13/09/21
- Ensure non-zero exit code when startup fails (1278) 06/12/21
- Increase `httptools` version range from "==0.2.*" to ">=0.2.0,<0.4.0". (1243) 8/11/21
- Override default asyncio event loop with reload only on Windows (1257) 24/11/21
- Replace `HttpToolsProtocol.pipeline` type from `list` to `deque`. (1213) 10/10/21
- Replace `WSGIResponder.send_queue` type from `list` to `deque`. (1214) 10/10/21

Fixed

- Main process exit after startup failure on reloader classes (1177) 30/09/21
- Add explicit casting on click options (1217) 11/10/21
- Allow WebSocket close event to receive reason being None from ASGI app. (1259) 23/11/21
- Fix a bug in `WebSocketProtocol.asgi_receive` on which we returned a close frame even if there were data messages before that frame in the read queue. (1252) 25/11/21
- The option `--reload-dirs` was splitting a string into single character directories. (1267) 25/11/21
- Only second SIGINT is able to forcelly shutdown the server (1269) 28/11/21
- Allow app-dir parameter on the run() function (1271) 06/12/21

0.15.0

Added

- Change reload to be configurable with glob patterns. Currently only `.py` files are watched, which is different from the previous default behavior. (820) 08/08/21
- Add Python 3.10-rc.1 support. Now the server uses `asyncio.run` which will: start a fresh asyncio event loop, on shutdown cancel any background tasks rather than aborting them, `aexit` any remaining async generators, and shutdown the default `ThreadPoolExecutor`. (1070) 30/07/21
- Exit with status 3 when worker starts failed (1077) 22/06/21
- Add option to set websocket ping interval and timeout (1048) 09/06/21
- Adapt bind_socket to make it usable with multiple processes (1009) 21/06/21
- Add existence check to the reload directory(ies) (1089) 21/06/21
- Add missing trace log for websocket protocols (1083) 19/06/21
- Support disabling default Server and Date headers (818) 11/06/21

Changed

- Add PEP440 compliant version of click (1099) 29/06/21
- Bump asgiref to 3.4.0 (1100) 29/06/21

Fixed

- When receiving a `SIGTERM` supervisors now terminate their processes before joining them (1069) 30/07/21
- Fix the need of `httptools` on minimal installation (1135) 30/07/21
- Fix ping parameters annotation in Config class (1127) 19/07/21

0.14.0

Added

- Defaults ws max_size on server to 16MB (995) 5/29/21
- Improve user feedback if no ws library installed (926 and 1023) 2/27/21
- Support 'reason' field in 'websocket.close' messages (957) 2/24/21
- Implemented lifespan.shutdown.failed (755) 2/25/21

Changed

- Upgraded websockets requirements (1065)  6/1/21
- Switch to asyncio streams API (869) 5/29/21
- Update httptools from 0.1.* to 0.2.* (1024) 5/28/21
- Allow Click 8.0, refs 1016 (1042) 5/23/21
- Add search for a trusted host in ProxyHeadersMiddleware (591) 3/13/21
- Up wsproto to 1.0.0 (892) 2/25/21

Fixed

- Force reload_dirs to be a list (978) 6/1/21
- Fix gunicorn worker not running if extras not installed (901) 5/28/21
- Fix socket port 0 (975) 3/5/21
- Prevent garbage collection of main lifespan task (972) 3/4/21

0.13.4

Fixed

- Fixed wsgi middleware PATH_INFO encoding (962) 2/20/21
- Fixed uvloop dependency  (952) 2/10/21 then (959) 2/20/21
- Relax watchgod up bound (946) 1/31/21
- Return 'connection: close' header in response (721) 1/25/21

Added:

- Docs: Nginx + websockets (948) 2/10/21 
- Document the default value of 1 for workers (940) (943) 1/25/21
- Enabled permessage-deflate extension in websockets (764) 1/1/21

0.13.3

Fixed

- Prevent swallowing of return codes from `subprocess` when running with Gunicorn by properly resetting signals. (Pull 895)
- Tweak detection of app factories to be more robust. A warning is now logged when passing a factory without the `--factory` flag. (Pull 914)
- Properly clean tasks when handshake is aborted when running with `--ws websockets`. (Pull 921)

0.13.2

Fixed

- Log full exception traceback in case of invalid HTTP request. (Pull 886 and 888)

0.13.1

Fixed

- Prevent exceptions when the ASGI application rejects a connection during the WebSocket handshake, when running on both `--ws wsproto` or `--ws websockets`. (Pull 704 and 881)
- Ensure connection `scope` doesn't leak in logs when using JSON log formatters. (Pull 859 and 884)

0.13.0

Added

- Add `--factory` flag to support factory-style application imports. (875) 2020-12-07 50fc0d1c
- Skip installation of signal handlers when not in the main thread. Allows using `Server` in multithreaded contexts without having to override `.install_signal_handlers()`. (871) 2020-12-07 ce2ef45a

0.12.3

Fixed
- Fix race condition that leads Quart to hang with uvicorn (848) 11/18/20 de213614
- Use latin1 when decoding X-Forwarded-* headers (701) 11/12/20 45e6e831
- Rework IPv6 support (837) 11/8/20 bdab488e
- Cancel old keepalive-trigger before setting new one. (832) 10/26/20 d5dcf80c

0.12.2

Added
- Adding ability to decrypt ssl key file (808) 10/12/20 90dbb6e0
- Support .yml log config files (799) 10/6/20 b468950e
- Added python 3.9 support (804) 10/6/20 08fd0559

Fixed
- Fixes watchgod with common prefixes (817) 10/14/20 1b32f997
- Fix reload with ipv6 host (803) 10/14/20 5acaee5b
- Added cli suport for headers containing colon (813) 10/12/20 68732899
- Sharing socket across workers on windows (802) 10/12/20 103167a0
- Note the need to configure trusted "ips" when using unix sockets (796) 10/4/20 a504c569

0.12.1

Changed
- Pinning h11 and python-dotenv to min versions (789) 9/29/20 bbf19c66
- Get docs/index.md in sync with README.md (784) 9/29/20 70ebcfdf

Fixed
- Improve changelog by pointing out breaking changes (792) 9/29/20 e2b75064

0.12.0

Added
- Make reload delay configurable (774) 9/28/20 98010027
- Upgrade maximum h11 dependency version to 0.10 (772) 8/28/20 54d729cc
- Allow .json or .yaml --log-config files (665) 8/18/20 093a1f7c
- Add ASGI dict to the lifespan scope (754) 8/15/20 8150c3eb
- Upgrade wsproto to 0.15.0 (750) 8/13/20 fbce393f
- Use optional package installs (666) 8/10/20 5fa99a11

Changed
- Dont set log level for root logger (767) 8/28/20 df81b168

Fixed
- Revert "Improve shutdown robustness when using `--reload` or multiprocessing (620)" (756) 8/28/20 ff4af12d
- Fix terminate error in windows (744) 8/27/20 dd3b842d
- Fix bug where --log-config disables uvicorn loggers (512) 8/11/20 a9c37cc4

0.11.8

* Fix a regression that caused Uvicorn to crash when using `--interface=wsgi`. (Pull 730)
* Fix a regression that caused Uvicorn to crash when using unix domain sockets. (Pull 729)

0.11.7

* SECURITY FIX: Prevent sending invalid HTTP header names and values.
* SECURITY FIX: Ensure path value is escaped before logging to the console.

0.11.6

* Fix overriding the root logger.

0.11.5

* Revert "Watch all files, not just .py" due to unexpected side effects.
* Revert "Pass through gunicorn timeout config." due to unexpected side effects.

0.11.4

* Use `watchgod`, if installed, for watching code changes.
* Reload application when any files in watched directories change, not just `.py` files.
Links

@pyup-bot

pyup-bot commented Mar 9, 2024

Copy link
Copy Markdown
Collaborator Author

Closing this in favor of #410

@pyup-bot pyup-bot closed this Mar 9, 2024
@salimfadhley
salimfadhley deleted the pyup-update-uvicorn-0.4.6-to-0.27.1 branch March 9, 2024 09:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant