]> git.ipfire.org Git - thirdparty/openembedded/openembedded-core.git/commit
python3-websockets: upgrade 16.1.1 -> 17.0.1
authorTim Orling <tim.orling@konsulko.com>
Mon, 3 Aug 2026 23:26:40 +0000 (16:26 -0700)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Tue, 4 Aug 2026 16:55:17 +0000 (17:55 +0100)
commit07f2da2dcf2c242e13ff6f2d01958fd1cd7b9e91
treeb562863fcb90b9b870866836d67934e25870c208
parent9948c11dd9ab729b24317be04dcfac2914db9f5c
python3-websockets: upgrade 16.1.1 -> 17.0.1

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>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/recipes-devtools/python/python3-websockets_17.0.1.bb [moved from meta/recipes-devtools/python/python3-websockets_16.1.1.bb with 91% similarity]