diff mbox series

[3/4] python3-websockets: upgrade 16.1.1 -> 17.0.1

Message ID 42c8178788700115a1680b23402ee52df51fbbf6.1785799308.git.tim.orling@konsulko.com
State New
Headers show
Series [1/4] python3-cryptography{-vectors}: upgrade 49.0.0 -> 50.0.0 | expand

Commit Message

Tim Orling Aug. 3, 2026, 11:26 p.m. UTC
From: Tim Orling <tim.orling@konsulko.com>

For a full comparison of changes (82 commits, changing 137 files), see:
https://github.com/python-websockets/websockets/compare/16.1.1...17.0.1

Upstream release notes:
https://websockets.readthedocs.io/en/stable/project/changelog.html

17.0.1
======
July 31, 2026

Bug fixes
---------

* Restored compatibility of serve_forever() in the asyncio implementation
  with third-party event loops such as uvloop.
* Prevented the Trio implementation from crashing when backpressure kicks
  in, i.e. when receiving data faster than the application can process it.

17.0
====
July 29, 2026

Backwards-incompatible changes
------------------------------

* websockets 17.0 requires Python ≥ 3.11.
  - websockets 16.1 is the last version supporting Python 3.10.
* Aliases for modules moved or deprecated in 9.0 are removed.
  - See the changelog of version 9.0 for details.
* process_request may receive requests using an HTTP method other than
  GET or using the HTTP/1.0 protocol.
  - Previously, the server closed the connection without returning an HTTP
    response. Now, process_request runs and can return an HTTP response.
* Several boolean arguments are now keyword-only.
  - If you were passing some of the following as positional arguments, you
    must update your code to pass them as keyword arguments.
    * send(text=...)
    * ping(ack_on_close=...)
    * broadcast(raise_exceptions=...)
* Encoding and decoding non-ASCII headers in handshake requests and
  responses changed.
  - The previous behavior was undocumented, inconsistent, and didn’t match
    the HTTP specification. If you relied on the encoding being UTF-8 or
    ASCII with surrogate escapes, depending on the context, you must
    switch to ISO-8859-1.
* In the threading implementation, the socket argument is renamed to sock.
  - The first argument of ClientConnection and ServerConnection is renamed
    from socket to sock for consistency with connect() and serve(). The
    first argument of Server is also renamed. If you’re passing it as a
    keyword argument, you must change your code.

New features
------------

* websockets 17.0 introduces a trio implementation.
  - It is an alternative to the asyncio implementation.
  - See websockets.trio.client.connect()
    and websockets.trio.server.serve() for details.
* Validated compatibility with Python 3.15.
* Added broadcast() to the threading implementation.
* Made the set of active connections available in the Server.connections
  property in the threading implementation.
* Closed connections when shutting down the server in the threading
  implementation. See shutdown() for details.
* Added the --insecure option to the websockets CLI to disable TLS
  certificate validation.

Improvements
------------

* Supported non-ASCII headers consistently in handshake requests and
  responses, using ISO-8859-1 encoding.
* Replied with HTTP 405 Method Not Allowed when the handshake request
  doesn’t use the GET method, and with HTTP 505 HTTP Version Not
  Supported when it doesn’t use HTTP/1.1, instead of closing the
  connection.
* Replied with HTTP 414 URI Too Long or 431 Request Header Fields Too
  Large when the handshake request exceeds a security limit, instead of
  closing the connection.
* Reduced noise in server logs when clients fail to establish a
  connection.
* Clarified logs when process_request sends a plain HTTP response, without
  attempting to open a WebSocket connection.
* Added the reconnect_delays argument for customizing the delays between
  reconnection attempts in connect(), beyond existing WEBSOCKETS_BACKOFF_*
  environment variables.
* Added wheels for Windows ARM64 and Linux i686.

Bug fixes
---------

* Restored compatibility of the websockets CLI with Windows.
* Fixed serve_forever() in the asyncio implementation so that canceling
  it always closes connections gracefully.
* Fixed a bug that could delay or block the client in the threading
  implementation on macOS when the opening handshake fails.

Signed-off-by: Tim Orling <tim.orling@konsulko.com>
---
 ...ython3-websockets_16.1.1.bb => python3-websockets_17.0.1.bb} | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
 rename meta/recipes-devtools/python/{python3-websockets_16.1.1.bb => python3-websockets_17.0.1.bb} (91%)
diff mbox series

Patch

diff --git a/meta/recipes-devtools/python/python3-websockets_16.1.1.bb b/meta/recipes-devtools/python/python3-websockets_17.0.1.bb
similarity index 91%
rename from meta/recipes-devtools/python/python3-websockets_16.1.1.bb
rename to meta/recipes-devtools/python/python3-websockets_17.0.1.bb
index 6baa744fac..b84aa0dcef 100644
--- a/meta/recipes-devtools/python/python3-websockets_16.1.1.bb
+++ b/meta/recipes-devtools/python/python3-websockets_17.0.1.bb
@@ -8,7 +8,7 @@  inherit pypi python_setuptools_build_meta ptest-python-pytest
 
 SRC_URI += "file://run-ptest"
 
-SRC_URI[sha256sum] = "db234eda965dcce15df96bb9709f587cd87d4d52aaf0e80e2f34ec04c7670c57"
+SRC_URI[sha256sum] = "5baa9bc0dfbae8c507e51c8cf1b6d4628086f7a87bbd3a9952bd5f035451f1cc"
 
 BBCLASSEXTEND = "native nativesdk"