here's an update for py-websockets:
https://websockets.readthedocs.io/en/stable/project/changelog.html

ok?  (do you still want to be listed as maintainer George?)

Index: Makefile
===================================================================
RCS file: /cvs/ports/net/py-websockets/Makefile,v
diff -u -p -r1.8 Makefile
--- Makefile    29 Apr 2025 10:39:08 -0000      1.8
+++ Makefile    30 Jul 2026 16:19:24 -0000
@@ -1,13 +1,15 @@
 COMMENT =      Python library for building WebSocket servers and clients
 
-MODPY_DISTV =  13.1
+MODPY_DISTV =  17.0
+GH_ACCOUNT =   python-websockets
+GH_PROJECT =   websockets
+GH_TAGNAME =   ${MODPY_DISTV}
+PKGNAME =      py-${DISTNAME}
 
-DISTNAME =             websockets-${MODPY_DISTV}
-PKGNAME =              py-${DISTNAME}
-REVISION =             1
-
-CATEGORIES =           net
+CATEGORIES =   net
 
+# https://github.com/python-websockets/websockets
+# https://websockets.readthedocs.io/en/stable/project/changelog.html
 HOMEPAGE =             https://websockets.readthedocs.io/en/stable/
 
 MAINTAINER =           George Rosamond <[email protected]>
@@ -18,12 +20,12 @@ PERMIT_PACKAGE =    Yes
 WANTLIB +=             pthread
 
 MODULES =              lang/python
-
-MODPY_PI =             Yes
 MODPY_PYBUILD =                setuptools
 
-# some test-related files are missing from the sdist on pypi; they are
-# present in github and mostly work
-NO_TEST =              Yes
+PORTHOME =             ${WRKDIR}
+TEST_DEPENDS =         security/mitmproxy \
+                       devel/py-trio
+# needs unported https://pypi.org/project/python-socks/
+MODPY_PYTEST_ARGS =    -k 'not SocksProxyClientTests'
 
 .include <bsd.port.mk>
Index: distinfo
===================================================================
RCS file: /cvs/ports/net/py-websockets/distinfo,v
diff -u -p -r1.3 distinfo
--- distinfo    19 Oct 2024 10:56:04 -0000      1.3
+++ distinfo    30 Jul 2026 16:19:24 -0000
@@ -1,2 +1,2 @@
-SHA256 (websockets-13.1.tar.gz) = o7M2YIfBvAonlREe3K3duLO1lQnV211+o/3Wn5VKiHg=
-SIZE (websockets-13.1.tar.gz) = 158549
+SHA256 (websockets-17.0.tar.gz) = 0BEX3vK/FBWttE2jTwj8DOIX12zogXejB9uzFSXeYcc=
+SIZE (websockets-17.0.tar.gz) = 518980
Index: pkg/PLIST
===================================================================
RCS file: /cvs/ports/net/py-websockets/pkg/PLIST,v
diff -u -p -r1.6 PLIST
--- pkg/PLIST   23 Oct 2025 13:20:08 -0000      1.6
+++ pkg/PLIST   30 Jul 2026 16:19:24 -0000
@@ -1,9 +1,11 @@
 @pkgpath net/py-websockets,python3
+bin/websockets
 lib/python${MODPY_VERSION}/site-packages/websockets/
 lib/python${MODPY_VERSION}/site-packages/websockets-${MODPY_DISTV}.dist-info/
 
lib/python${MODPY_VERSION}/site-packages/websockets-${MODPY_DISTV}.dist-info/METADATA
 
lib/python${MODPY_VERSION}/site-packages/websockets-${MODPY_DISTV}.dist-info/RECORD
 
lib/python${MODPY_VERSION}/site-packages/websockets-${MODPY_DISTV}.dist-info/WHEEL
+lib/python${MODPY_VERSION}/site-packages/websockets-${MODPY_DISTV}.dist-info/entry_points.txt
 
lib/python${MODPY_VERSION}/site-packages/websockets-${MODPY_DISTV}.dist-info/licenses/
 
lib/python${MODPY_VERSION}/site-packages/websockets-${MODPY_DISTV}.dist-info/licenses/LICENSE
 
lib/python${MODPY_VERSION}/site-packages/websockets-${MODPY_DISTV}.dist-info/top_level.txt
@@ -16,6 +18,8 @@ lib/python${MODPY_VERSION}/site-packages
 
lib/python${MODPY_VERSION}/site-packages/websockets/${MODPY_PYCACHE}__main__.${MODPY_PYC_MAGIC_TAG}pyc
 
lib/python${MODPY_VERSION}/site-packages/websockets/${MODPY_PYCACHE}auth.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
 
lib/python${MODPY_VERSION}/site-packages/websockets/${MODPY_PYCACHE}auth.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/websockets/${MODPY_PYCACHE}cli.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
+lib/python${MODPY_VERSION}/site-packages/websockets/${MODPY_PYCACHE}cli.${MODPY_PYC_MAGIC_TAG}pyc
 
lib/python${MODPY_VERSION}/site-packages/websockets/${MODPY_PYCACHE}client.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
 
lib/python${MODPY_VERSION}/site-packages/websockets/${MODPY_PYCACHE}client.${MODPY_PYC_MAGIC_TAG}pyc
 
lib/python${MODPY_VERSION}/site-packages/websockets/${MODPY_PYCACHE}connection.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
@@ -28,14 +32,14 @@ lib/python${MODPY_VERSION}/site-packages
 
lib/python${MODPY_VERSION}/site-packages/websockets/${MODPY_PYCACHE}frames.${MODPY_PYC_MAGIC_TAG}pyc
 
lib/python${MODPY_VERSION}/site-packages/websockets/${MODPY_PYCACHE}headers.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
 
lib/python${MODPY_VERSION}/site-packages/websockets/${MODPY_PYCACHE}headers.${MODPY_PYC_MAGIC_TAG}pyc
-lib/python${MODPY_VERSION}/site-packages/websockets/${MODPY_PYCACHE}http.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
-lib/python${MODPY_VERSION}/site-packages/websockets/${MODPY_PYCACHE}http.${MODPY_PYC_MAGIC_TAG}pyc
 
lib/python${MODPY_VERSION}/site-packages/websockets/${MODPY_PYCACHE}http11.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
 
lib/python${MODPY_VERSION}/site-packages/websockets/${MODPY_PYCACHE}http11.${MODPY_PYC_MAGIC_TAG}pyc
 
lib/python${MODPY_VERSION}/site-packages/websockets/${MODPY_PYCACHE}imports.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
 
lib/python${MODPY_VERSION}/site-packages/websockets/${MODPY_PYCACHE}imports.${MODPY_PYC_MAGIC_TAG}pyc
 
lib/python${MODPY_VERSION}/site-packages/websockets/${MODPY_PYCACHE}protocol.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
 
lib/python${MODPY_VERSION}/site-packages/websockets/${MODPY_PYCACHE}protocol.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/websockets/${MODPY_PYCACHE}proxy.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
+lib/python${MODPY_VERSION}/site-packages/websockets/${MODPY_PYCACHE}proxy.${MODPY_PYC_MAGIC_TAG}pyc
 
lib/python${MODPY_VERSION}/site-packages/websockets/${MODPY_PYCACHE}server.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
 
lib/python${MODPY_VERSION}/site-packages/websockets/${MODPY_PYCACHE}server.${MODPY_PYC_MAGIC_TAG}pyc
 
lib/python${MODPY_VERSION}/site-packages/websockets/${MODPY_PYCACHE}streams.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
@@ -53,25 +57,23 @@ lib/python${MODPY_VERSION}/site-packages
 lib/python${MODPY_VERSION}/site-packages/websockets/asyncio/${MODPY_PYCACHE}/
 
lib/python${MODPY_VERSION}/site-packages/websockets/asyncio/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
 
lib/python${MODPY_VERSION}/site-packages/websockets/asyncio/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc
-lib/python${MODPY_VERSION}/site-packages/websockets/asyncio/${MODPY_PYCACHE}async_timeout.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
-lib/python${MODPY_VERSION}/site-packages/websockets/asyncio/${MODPY_PYCACHE}async_timeout.${MODPY_PYC_MAGIC_TAG}pyc
 
lib/python${MODPY_VERSION}/site-packages/websockets/asyncio/${MODPY_PYCACHE}client.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
 
lib/python${MODPY_VERSION}/site-packages/websockets/asyncio/${MODPY_PYCACHE}client.${MODPY_PYC_MAGIC_TAG}pyc
-lib/python${MODPY_VERSION}/site-packages/websockets/asyncio/${MODPY_PYCACHE}compatibility.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
-lib/python${MODPY_VERSION}/site-packages/websockets/asyncio/${MODPY_PYCACHE}compatibility.${MODPY_PYC_MAGIC_TAG}pyc
 
lib/python${MODPY_VERSION}/site-packages/websockets/asyncio/${MODPY_PYCACHE}connection.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
 
lib/python${MODPY_VERSION}/site-packages/websockets/asyncio/${MODPY_PYCACHE}connection.${MODPY_PYC_MAGIC_TAG}pyc
 
lib/python${MODPY_VERSION}/site-packages/websockets/asyncio/${MODPY_PYCACHE}messages.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
 
lib/python${MODPY_VERSION}/site-packages/websockets/asyncio/${MODPY_PYCACHE}messages.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/websockets/asyncio/${MODPY_PYCACHE}router.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
+lib/python${MODPY_VERSION}/site-packages/websockets/asyncio/${MODPY_PYCACHE}router.${MODPY_PYC_MAGIC_TAG}pyc
 
lib/python${MODPY_VERSION}/site-packages/websockets/asyncio/${MODPY_PYCACHE}server.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
 
lib/python${MODPY_VERSION}/site-packages/websockets/asyncio/${MODPY_PYCACHE}server.${MODPY_PYC_MAGIC_TAG}pyc
-lib/python${MODPY_VERSION}/site-packages/websockets/asyncio/async_timeout.py
 lib/python${MODPY_VERSION}/site-packages/websockets/asyncio/client.py
-lib/python${MODPY_VERSION}/site-packages/websockets/asyncio/compatibility.py
 lib/python${MODPY_VERSION}/site-packages/websockets/asyncio/connection.py
 lib/python${MODPY_VERSION}/site-packages/websockets/asyncio/messages.py
+lib/python${MODPY_VERSION}/site-packages/websockets/asyncio/router.py
 lib/python${MODPY_VERSION}/site-packages/websockets/asyncio/server.py
 lib/python${MODPY_VERSION}/site-packages/websockets/auth.py
+lib/python${MODPY_VERSION}/site-packages/websockets/cli.py
 lib/python${MODPY_VERSION}/site-packages/websockets/client.py
 lib/python${MODPY_VERSION}/site-packages/websockets/connection.py
 lib/python${MODPY_VERSION}/site-packages/websockets/datastructures.py
@@ -89,7 +91,6 @@ lib/python${MODPY_VERSION}/site-packages
 
lib/python${MODPY_VERSION}/site-packages/websockets/extensions/permessage_deflate.py
 lib/python${MODPY_VERSION}/site-packages/websockets/frames.py
 lib/python${MODPY_VERSION}/site-packages/websockets/headers.py
-lib/python${MODPY_VERSION}/site-packages/websockets/http.py
 lib/python${MODPY_VERSION}/site-packages/websockets/http11.py
 lib/python${MODPY_VERSION}/site-packages/websockets/imports.py
 lib/python${MODPY_VERSION}/site-packages/websockets/legacy/
@@ -122,6 +123,7 @@ lib/python${MODPY_VERSION}/site-packages
 lib/python${MODPY_VERSION}/site-packages/websockets/legacy/protocol.py
 lib/python${MODPY_VERSION}/site-packages/websockets/legacy/server.py
 lib/python${MODPY_VERSION}/site-packages/websockets/protocol.py
+lib/python${MODPY_VERSION}/site-packages/websockets/proxy.py
 lib/python${MODPY_VERSION}/site-packages/websockets/py.typed
 lib/python${MODPY_VERSION}/site-packages/websockets/server.py
 lib/python${MODPY_VERSION}/site-packages/websockets/speedups.c
@@ -139,6 +141,8 @@ lib/python${MODPY_VERSION}/site-packages
 
lib/python${MODPY_VERSION}/site-packages/websockets/sync/${MODPY_PYCACHE}connection.${MODPY_PYC_MAGIC_TAG}pyc
 
lib/python${MODPY_VERSION}/site-packages/websockets/sync/${MODPY_PYCACHE}messages.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
 
lib/python${MODPY_VERSION}/site-packages/websockets/sync/${MODPY_PYCACHE}messages.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/websockets/sync/${MODPY_PYCACHE}router.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
+lib/python${MODPY_VERSION}/site-packages/websockets/sync/${MODPY_PYCACHE}router.${MODPY_PYC_MAGIC_TAG}pyc
 
lib/python${MODPY_VERSION}/site-packages/websockets/sync/${MODPY_PYCACHE}server.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
 
lib/python${MODPY_VERSION}/site-packages/websockets/sync/${MODPY_PYCACHE}server.${MODPY_PYC_MAGIC_TAG}pyc
 
lib/python${MODPY_VERSION}/site-packages/websockets/sync/${MODPY_PYCACHE}utils.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
@@ -146,8 +150,32 @@ lib/python${MODPY_VERSION}/site-packages
 lib/python${MODPY_VERSION}/site-packages/websockets/sync/client.py
 lib/python${MODPY_VERSION}/site-packages/websockets/sync/connection.py
 lib/python${MODPY_VERSION}/site-packages/websockets/sync/messages.py
+lib/python${MODPY_VERSION}/site-packages/websockets/sync/router.py
 lib/python${MODPY_VERSION}/site-packages/websockets/sync/server.py
 lib/python${MODPY_VERSION}/site-packages/websockets/sync/utils.py
+lib/python${MODPY_VERSION}/site-packages/websockets/trio/
+lib/python${MODPY_VERSION}/site-packages/websockets/trio/__init__.py
+lib/python${MODPY_VERSION}/site-packages/websockets/trio/${MODPY_PYCACHE}/
+lib/python${MODPY_VERSION}/site-packages/websockets/trio/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
+lib/python${MODPY_VERSION}/site-packages/websockets/trio/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/websockets/trio/${MODPY_PYCACHE}client.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
+lib/python${MODPY_VERSION}/site-packages/websockets/trio/${MODPY_PYCACHE}client.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/websockets/trio/${MODPY_PYCACHE}connection.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
+lib/python${MODPY_VERSION}/site-packages/websockets/trio/${MODPY_PYCACHE}connection.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/websockets/trio/${MODPY_PYCACHE}messages.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
+lib/python${MODPY_VERSION}/site-packages/websockets/trio/${MODPY_PYCACHE}messages.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/websockets/trio/${MODPY_PYCACHE}router.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
+lib/python${MODPY_VERSION}/site-packages/websockets/trio/${MODPY_PYCACHE}router.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/websockets/trio/${MODPY_PYCACHE}server.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
+lib/python${MODPY_VERSION}/site-packages/websockets/trio/${MODPY_PYCACHE}server.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/websockets/trio/${MODPY_PYCACHE}utils.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
+lib/python${MODPY_VERSION}/site-packages/websockets/trio/${MODPY_PYCACHE}utils.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/websockets/trio/client.py
+lib/python${MODPY_VERSION}/site-packages/websockets/trio/connection.py
+lib/python${MODPY_VERSION}/site-packages/websockets/trio/messages.py
+lib/python${MODPY_VERSION}/site-packages/websockets/trio/router.py
+lib/python${MODPY_VERSION}/site-packages/websockets/trio/server.py
+lib/python${MODPY_VERSION}/site-packages/websockets/trio/utils.py
 lib/python${MODPY_VERSION}/site-packages/websockets/typing.py
 lib/python${MODPY_VERSION}/site-packages/websockets/uri.py
 lib/python${MODPY_VERSION}/site-packages/websockets/utils.py

Reply via email to