==> Building on aurorus ==> Checking for remote environment... ==> Syncing package to remote host... sending incremental file list ./ .SRCINFO 826 100% 0.00kB/s 0:00:00 826 100% 0.00kB/s 0:00:00 (xfr#1, to-chk=9/11) .nvchecker.toml 52 100% 50.78kB/s 0:00:00 52 100% 50.78kB/s 0:00:00 (xfr#2, to-chk=8/11) LICENSE 646 100% 630.86kB/s 0:00:00 646 100% 630.86kB/s 0:00:00 (xfr#3, to-chk=7/11) PKGBUILD 1,314 100% 1.25MB/s 0:00:00 1,314 100% 1.25MB/s 0:00:00 (xfr#4, to-chk=6/11) REUSE.toml 520 100% 507.81kB/s 0:00:00 520 100% 507.81kB/s 0:00:00 (xfr#5, to-chk=5/11) no-regex-commit.patch 586 100% 286.13kB/s 0:00:00 586 100% 286.13kB/s 0:00:00 (xfr#6, to-chk=4/11) python-httpx-ws-0.8.0-1.log 944 100% 460.94kB/s 0:00:00 944 100% 460.94kB/s 0:00:00 (xfr#7, to-chk=3/11) LICENSES/ LICENSES/0BSD.txt -> ../LICENSE LICENSES/MIT.txt 1,078 100% 350.91kB/s 0:00:00 1,078 100% 350.91kB/s 0:00:00 (xfr#8, to-chk=0/11) sent 3,339 bytes received 218 bytes 2,371.33 bytes/sec total size is 5,196 speedup is 1.46 ==> Running pkgctl build --arch riscv64 --repo extra on remote host... ==> WARNING: unsupported architecture: riscv64 ==> Building python-httpx-ws  -> repo: extra  -> arch: riscv64  -> worker: felix-0 ==> Building python-httpx-ws for [extra] (riscv64) ]2;🔵 Container arch-nspawn-4055751 on aurorus.felixc.at\[?25l:: Synchronizing package databases... core downloading... extra downloading... :: Starting full system upgrade... there is nothing to do [?25h==> Building in chroot for [extra] (riscv64)... ==> Synchronizing chroot copy [/var/lib/archbuild/extra-riscv64/root] -> [felix-0]...done ==> Making package: python-httpx-ws 0.8.0-1 (Sat Sep 20 17:33:42 2025) ==> Retrieving sources...  -> Updating httpx-ws git repo... From https://github.com/frankie567/httpx-ws - [deleted] (none) -> refs/pull/101/merge - [deleted] (none) -> refs/pull/106/merge - [deleted] (none) -> refs/pull/85/merge remote: Enumerating objects: 171, done. remote: Counting objects: 0% (1/114) remote: Counting objects: 1% (2/114) remote: Counting objects: 2% (3/114) remote: Counting objects: 3% (4/114) remote: Counting objects: 4% (5/114) remote: Counting objects: 5% (6/114) remote: Counting objects: 6% (7/114) remote: Counting objects: 7% (8/114) remote: Counting objects: 8% (10/114) remote: Counting objects: 9% (11/114) remote: Counting objects: 10% (12/114) remote: Counting objects: 11% (13/114) remote: Counting objects: 12% (14/114) remote: Counting objects: 13% (15/114) remote: Counting objects: 14% (16/114) remote: Counting objects: 15% (18/114) remote: Counting objects: 16% (19/114) remote: Counting objects: 17% (20/114) remote: Counting objects: 18% (21/114) remote: Counting objects: 19% (22/114) remote: Counting objects: 20% (23/114) remote: Counting objects: 21% (24/114) remote: Counting objects: 22% (26/114) remote: Counting objects: 23% (27/114) remote: Counting objects: 24% (28/114) remote: Counting objects: 25% (29/114) remote: Counting objects: 26% (30/114) remote: Counting objects: 27% (31/114) remote: Counting objects: 28% (32/114) remote: Counting objects: 29% (34/114) remote: Counting objects: 30% (35/114) remote: Counting objects: 31% (36/114) remote: Counting objects: 32% (37/114) remote: Counting objects: 33% (38/114) remote: Counting objects: 34% (39/114) remote: Counting objects: 35% (40/114) remote: Counting objects: 36% (42/114) remote: Counting objects: 37% (43/114) remote: Counting objects: 38% (44/114) remote: Counting objects: 39% (45/114) remote: Counting objects: 40% (46/114) remote: Counting objects: 41% (47/114) remote: Counting objects: 42% (48/114) remote: Counting objects: 43% (50/114) remote: Counting objects: 44% (51/114) remote: Counting objects: 45% (52/114) remote: Counting objects: 46% (53/114) remote: Counting objects: 47% (54/114) remote: Counting objects: 48% (55/114) remote: Counting objects: 49% (56/114) remote: Counting objects: 50% (57/114) remote: Counting objects: 51% (59/114) remote: Counting objects: 52% (60/114) remote: Counting objects: 53% (61/114) remote: Counting objects: 54% (62/114) remote: Counting objects: 55% (63/114) remote: Counting objects: 56% (64/114) remote: Counting objects: 57% (65/114) remote: Counting objects: 58% (67/114) remote: Counting objects: 59% (68/114) remote: Counting objects: 60% (69/114) remote: Counting objects: 61% (70/114) remote: Counting objects: 62% (71/114) remote: Counting objects: 63% (72/114) remote: Counting objects: 64% (73/114) remote: Counting objects: 65% (75/114) remote: Counting objects: 66% (76/114) remote: Counting objects: 67% (77/114) remote: Counting objects: 68% (78/114) remote: Counting objects: 69% (79/114) remote: Counting objects: 70% (80/114) remote: Counting objects: 71% (81/114) remote: Counting objects: 72% (83/114) remote: Counting objects: 73% (84/114) remote: Counting objects: 74% (85/114) remote: Counting objects: 75% (86/114) remote: Counting objects: 76% (87/114) remote: Counting objects: 77% (88/114) remote: Counting objects: 78% (89/114) remote: Counting objects: 79% (91/114) remote: Counting objects: 80% (92/114) remote: Counting objects: 81% (93/114) remote: Counting objects: 82% (94/114) remote: Counting objects: 83% (95/114) remote: Counting objects: 84% (96/114) remote: Counting objects: 85% (97/114) remote: Counting objects: 86% (99/114) remote: Counting objects: 87% (100/114) remote: Counting objects: 88% (101/114) remote: Counting objects: 89% (102/114) remote: Counting objects: 90% (103/114) remote: Counting objects: 91% (104/114) remote: Counting objects: 92% (105/114) remote: Counting objects: 93% (107/114) remote: Counting objects: 94% (108/114) remote: Counting objects: 95% (109/114) remote: Counting objects: 96% (110/114) remote: Counting objects: 97% (111/114) remote: Counting objects: 98% (112/114) remote: Counting objects: 99% (113/114) remote: Counting objects: 100% (114/114) remote: Counting objects: 100% (114/114), done. remote: Compressing objects: 1% (1/54) remote: Compressing objects: 3% (2/54) remote: Compressing objects: 5% (3/54) remote: Compressing objects: 7% (4/54) remote: Compressing objects: 9% (5/54) remote: Compressing objects: 11% (6/54) remote: Compressing objects: 12% (7/54) remote: Compressing objects: 14% (8/54) remote: Compressing objects: 16% (9/54) remote: Compressing objects: 18% (10/54) remote: Compressing objects: 20% (11/54) remote: Compressing objects: 22% (12/54) remote: Compressing objects: 24% (13/54) remote: Compressing objects: 25% (14/54) remote: Compressing objects: 27% (15/54) remote: Compressing objects: 29% (16/54) remote: Compressing objects: 31% (17/54) remote: Compressing objects: 33% (18/54) remote: Compressing objects: 35% (19/54) remote: Compressing objects: 37% (20/54) remote: Compressing objects: 38% (21/54) remote: Compressing objects: 40% (22/54) remote: Compressing objects: 42% (23/54) remote: Compressing objects: 44% (24/54) remote: Compressing objects: 46% (25/54) remote: Compressing objects: 48% (26/54) remote: Compressing objects: 50% (27/54) remote: Compressing objects: 51% (28/54) remote: Compressing objects: 53% (29/54) remote: Compressing objects: 55% (30/54) remote: Compressing objects: 57% (31/54) remote: Compressing objects: 59% (32/54) remote: Compressing objects: 61% (33/54) remote: Compressing objects: 62% (34/54) remote: Compressing objects: 64% (35/54) remote: Compressing objects: 66% (36/54) remote: Compressing objects: 68% (37/54) remote: Compressing objects: 70% (38/54) remote: Compressing objects: 72% (39/54) remote: Compressing objects: 74% (40/54) remote: Compressing objects: 75% (41/54) remote: Compressing objects: 77% (42/54) remote: Compressing objects: 79% (43/54) remote: Compressing objects: 81% (44/54) remote: Compressing objects: 83% (45/54) remote: Compressing objects: 85% (46/54) remote: Compressing objects: 87% (47/54) remote: Compressing objects: 88% (48/54) remote: Compressing objects: 90% (49/54) remote: Compressing objects: 92% (50/54) remote: Compressing objects: 94% (51/54) remote: Compressing objects: 96% (52/54) remote: Compressing objects: 98% (53/54) remote: Compressing objects: 100% (54/54) remote: Compressing objects: 100% (54/54), done. Receiving objects: 0% (1/171) Receiving objects: 1% (2/171) Receiving objects: 2% (4/171) Receiving objects: 3% (6/171) Receiving objects: 4% (7/171) Receiving objects: 5% (9/171) Receiving objects: 6% (11/171) Receiving objects: 7% (12/171) Receiving objects: 8% (14/171) Receiving objects: 9% (16/171) Receiving objects: 10% (18/171) Receiving objects: 11% (19/171) Receiving objects: 12% (21/171) Receiving objects: 13% (23/171) Receiving objects: 14% (24/171) Receiving objects: 15% (26/171) Receiving objects: 16% (28/171) Receiving objects: 17% (30/171) Receiving objects: 18% (31/171) Receiving objects: 19% (33/171) Receiving objects: 20% (35/171) Receiving objects: 21% (36/171) Receiving objects: 22% (38/171) Receiving objects: 23% (40/171) Receiving objects: 24% (42/171) Receiving objects: 25% (43/171) Receiving objects: 26% (45/171) Receiving objects: 27% (47/171) Receiving objects: 28% (48/171) Receiving objects: 29% (50/171) Receiving objects: 30% (52/171) Receiving objects: 31% (54/171) Receiving objects: 32% (55/171) Receiving objects: 33% (57/171) Receiving objects: 34% (59/171) Receiving objects: 35% (60/171) Receiving objects: 36% (62/171) Receiving objects: 37% (64/171) Receiving objects: 38% (65/171) Receiving objects: 39% (67/171) Receiving objects: 40% (69/171) Receiving objects: 41% (71/171) Receiving objects: 42% (72/171) Receiving objects: 43% (74/171) Receiving objects: 44% (76/171) Receiving objects: 45% (77/171) Receiving objects: 46% (79/171) Receiving objects: 47% (81/171) Receiving objects: 48% (83/171) Receiving objects: 49% (84/171) Receiving objects: 50% (86/171) Receiving objects: 51% (88/171) Receiving objects: 52% (89/171) Receiving objects: 53% (91/171) Receiving objects: 54% (93/171) Receiving objects: 55% (95/171) Receiving objects: 56% (96/171) Receiving objects: 57% (98/171) Receiving objects: 58% (100/171) Receiving objects: 59% (101/171) Receiving objects: 60% (103/171) Receiving objects: 61% (105/171) Receiving objects: 62% (107/171) Receiving objects: 63% (108/171) Receiving objects: 64% (110/171) Receiving objects: 65% (112/171) Receiving objects: 66% (113/171) Receiving objects: 67% (115/171) Receiving objects: 68% (117/171) Receiving objects: 69% (118/171) Receiving objects: 70% (120/171) Receiving objects: 71% (122/171) Receiving objects: 72% (124/171) Receiving objects: 73% (125/171) Receiving objects: 74% (127/171) Receiving objects: 75% (129/171) Receiving objects: 76% (130/171) Receiving objects: 77% (132/171) Receiving objects: 78% (134/171) Receiving objects: 79% (136/171) Receiving objects: 80% (137/171) Receiving objects: 81% (139/171) Receiving objects: 82% (141/171) remote: Total 171 (delta 76), reused 75 (delta 60), pack-reused 57 (from 1) Receiving objects: 83% (142/171) Receiving objects: 84% (144/171) Receiving objects: 85% (146/171) Receiving objects: 86% (148/171) Receiving objects: 87% (149/171) Receiving objects: 88% (151/171) Receiving objects: 89% (153/171) Receiving objects: 90% (154/171) Receiving objects: 91% (156/171) Receiving objects: 92% (158/171) Receiving objects: 93% (160/171) Receiving objects: 94% (161/171) Receiving objects: 95% (163/171) Receiving objects: 96% (165/171) Receiving objects: 97% (166/171) Receiving objects: 98% (168/171) Receiving objects: 99% (170/171) Receiving objects: 100% (171/171) Receiving objects: 100% (171/171), 57.06 KiB | 508.00 KiB/s, done. Resolving deltas: 0% (0/102) Resolving deltas: 1% (2/102) Resolving deltas: 2% (3/102) Resolving deltas: 3% (4/102) Resolving deltas: 4% (5/102) Resolving deltas: 5% (6/102) Resolving deltas: 6% (7/102) Resolving deltas: 7% (8/102) Resolving deltas: 8% (9/102) Resolving deltas: 9% (10/102) Resolving deltas: 10% (11/102) Resolving deltas: 11% (12/102) Resolving deltas: 12% (13/102) Resolving deltas: 13% (14/102) Resolving deltas: 14% (15/102) Resolving deltas: 15% (16/102) Resolving deltas: 16% (17/102) Resolving deltas: 17% (18/102) Resolving deltas: 18% (19/102) Resolving deltas: 19% (20/102) Resolving deltas: 20% (21/102) Resolving deltas: 21% (22/102) Resolving deltas: 23% (24/102) Resolving deltas: 25% (26/102) Resolving deltas: 26% (27/102) Resolving deltas: 27% (28/102) Resolving deltas: 28% (29/102) Resolving deltas: 32% (33/102) Resolving deltas: 33% (34/102) Resolving deltas: 34% (35/102) Resolving deltas: 35% (36/102) Resolving deltas: 36% (37/102) Resolving deltas: 37% (38/102) Resolving deltas: 38% (39/102) Resolving deltas: 39% (40/102) Resolving deltas: 40% (41/102) Resolving deltas: 41% (42/102) Resolving deltas: 42% (43/102) Resolving deltas: 44% (45/102) Resolving deltas: 45% (46/102) Resolving deltas: 46% (47/102) Resolving deltas: 47% (48/102) Resolving deltas: 48% (49/102) Resolving deltas: 49% (50/102) Resolving deltas: 50% (51/102) Resolving deltas: 51% (53/102) Resolving deltas: 52% (54/102) Resolving deltas: 53% (55/102) Resolving deltas: 54% (56/102) Resolving deltas: 55% (57/102) Resolving deltas: 56% (58/102) Resolving deltas: 57% (59/102) Resolving deltas: 58% (60/102) Resolving deltas: 59% (61/102) Resolving deltas: 60% (62/102) Resolving deltas: 61% (63/102) Resolving deltas: 62% (64/102) Resolving deltas: 63% (65/102) Resolving deltas: 64% (66/102) Resolving deltas: 65% (67/102) Resolving deltas: 66% (68/102) Resolving deltas: 67% (69/102) Resolving deltas: 68% (70/102) Resolving deltas: 69% (71/102) Resolving deltas: 70% (72/102) Resolving deltas: 71% (73/102) Resolving deltas: 72% (74/102) Resolving deltas: 73% (75/102) Resolving deltas: 74% (76/102) Resolving deltas: 75% (77/102) Resolving deltas: 76% (78/102) Resolving deltas: 77% (79/102) Resolving deltas: 78% (80/102) Resolving deltas: 79% (81/102) Resolving deltas: 80% (82/102) Resolving deltas: 81% (83/102) Resolving deltas: 82% (84/102) Resolving deltas: 83% (85/102) Resolving deltas: 84% (86/102) Resolving deltas: 85% (87/102) Resolving deltas: 86% (88/102) Resolving deltas: 87% (89/102) Resolving deltas: 88% (90/102) Resolving deltas: 89% (91/102) Resolving deltas: 90% (92/102) Resolving deltas: 91% (93/102) Resolving deltas: 92% (94/102) Resolving deltas: 93% (95/102) Resolving deltas: 94% (96/102) Resolving deltas: 95% (97/102) Resolving deltas: 96% (98/102) Resolving deltas: 97% (99/102) Resolving deltas: 98% (100/102) Resolving deltas: 99% (101/102) Resolving deltas: 100% (102/102) Resolving deltas: 100% (102/102), completed with 10 local objects. a36e677..6e3ffbf main -> main + c60436f...fc87b13 refs/pull/101/head -> refs/pull/101/head (forced update) + 522c6d7...2e8f6af refs/pull/106/head -> refs/pull/106/head (forced update) * [new ref] refs/pull/108/head -> refs/pull/108/head * [new ref] refs/pull/108/merge -> refs/pull/108/merge * [new ref] refs/pull/109/head -> refs/pull/109/head * [new ref] refs/pull/109/merge -> refs/pull/109/merge * [new ref] refs/pull/110/head -> refs/pull/110/head * [new ref] refs/pull/110/merge -> refs/pull/110/merge * [new ref] refs/pull/113/head -> refs/pull/113/head * [new ref] refs/pull/114/head -> refs/pull/114/head * [new ref] refs/pull/115/head -> refs/pull/115/head * [new tag] v0.8.0 -> v0.8.0  -> Found no-regex-commit.patch ==> Validating source files with sha256sums... httpx-ws ... Passed no-regex-commit.patch ... Passed ]2;🔵 Container arch-nspawn-4057046 on aurorus.felixc.at\==> Making package: python-httpx-ws 0.8.0-1 (Sat Sep 20 17:34:06 2025) ==> Checking runtime dependencies... ==> Installing missing dependencies... [?25lresolving dependencies... looking for conflicting packages... Package (10) New Version Net Change core/mpdecimal 4.0.1-1 0.31 MiB extra/python-certifi 2025.08.03-1 0.01 MiB extra/python-h11 0.16.0-1 0.25 MiB extra/python-idna 3.10-2 0.88 MiB extra/python-sniffio 1.3.1-4 0.04 MiB core/python 3.13.7-1 281.87 MiB extra/python-anyio 4.10.0-1 1.58 MiB extra/python-httpcore 1.0.9-2 0.92 MiB extra/python-httpx 0.28.1-3 2.62 MiB extra/python-wsproto 1.2.0-6 0.25 MiB Total Installed Size: 288.73 MiB :: Proceed with installation? [Y/n] checking keyring... checking package integrity... loading package files... checking for file conflicts... :: Processing package changes... installing mpdecimal... installing python... Optional dependencies for python python-setuptools: for building Python packages using tooling that is usually bundled with Python python-pip: for installing Python packages using tooling that is usually bundled with Python python-pipx: for installing Python software not packaged on Arch Linux sqlite: for a default database integration [installed] xz: for lzma [installed] tk: for tkinter installing python-idna... installing python-sniffio... installing python-anyio... Optional dependencies for python-anyio python-trio: trio backend python-outcome: trio backend python-uvloop: use uvloop for asyncio backend python-pytest: pytest plugin installing python-h11... installing python-certifi... installing python-httpcore... Optional dependencies for python-httpcore python-h2: for HTTP/2 support python-socksio: for SOCKS support python-anyio: for asyncio backend [installed] python-trio: for trio backend python-sniffio: for async support [installed] installing python-httpx... Optional dependencies for python-httpx python-brotli: for brotli response decompression python-brotlicffi: for brotli response decompression python-zstandard: for zstd response decompression python-h2: HTTP/2 support python-socksio: SOCKS proxy support python-click: command line client support python-rich: command line client support python-pygments: command line client support python-trio: alternative async library installing python-wsproto... :: Running post-transaction hooks... (1/1) Arming ConditionNeedsUpdate... [?25h==> Checking buildtime dependencies... ==> Installing missing dependencies... [?25lresolving dependencies... looking for conflicting packages... Package (33) New Version Net Change Download Size extra/libuv 1.51.0-1 0.60 MiB extra/llhttp 9.2.1-2 0.10 MiB extra/perl-error 0.17030-2 0.04 MiB extra/perl-mailtools 2.22-2 0.10 MiB extra/perl-timedate 2.33-8 0.08 MiB extra/python-asgiref 3.9.1-1 0.21 MiB 0.05 MiB extra/python-attrs 25.3.0-1 0.58 MiB extra/python-click 8.2.1-1 1.18 MiB extra/python-coverage 7.10.6-1 1.99 MiB 0.37 MiB extra/python-editables 0.5-5 0.03 MiB extra/python-httptools 0.6.4-2 0.22 MiB 0.07 MiB extra/python-iniconfig 2.1.0-1 0.04 MiB extra/python-outcome 1.3.0.post0-5 0.05 MiB extra/python-packaging 25.0-1 0.67 MiB extra/python-pathspec 0.12.1-3 0.23 MiB extra/python-pluggy 1.6.0-1 0.20 MiB extra/python-pygments 2.19.2-1 14.38 MiB extra/python-pyproject-hooks 1.2.0-3 0.10 MiB extra/python-sortedcontainers 2.4.0-7 0.38 MiB extra/python-trove-classifiers 2025.9.9.12-1 0.13 MiB 0.02 MiB extra/python-typing_extensions 4.15.0-1 0.49 MiB extra/python-uvloop 0.21.0-2 1.96 MiB extra/python-websockets 15.0.1-1 1.82 MiB extra/zlib-ng 2.2.5-1 0.21 MiB extra/git 2.51.0-1 28.36 MiB extra/python-build 1.3.0-1 0.20 MiB extra/python-hatchling 1.27.0-1 0.94 MiB extra/python-installer 0.7.0-10 0.17 MiB extra/python-pytest 1:8.4.2-1 4.18 MiB extra/python-pytest-cov 6.1.1-1 0.17 MiB 0.04 MiB extra/python-starlette 0.48.0-1 0.92 MiB 0.17 MiB extra/python-trio 0.30.0-1 5.86 MiB extra/uvicorn 0.35.0-1 0.76 MiB 0.13 MiB Total Download Size: 0.85 MiB Total Installed Size: 67.33 MiB :: Proceed with installation? [Y/n] :: Retrieving packages... python-coverage-7.10.6-1-riscv64 downloading... python-starlette-0.48.0-1-any downloading... uvicorn-0.35.0-1-any downloading... python-httptools-0.6.4-2-riscv64 downloading... python-asgiref-3.9.1-1-any downloading... python-pytest-cov-6.1.1-1-any downloading... python-trove-classifiers-2025.9.9.12-1-any downloading... checking keyring... checking package integrity... loading package files... checking for file conflicts... :: Processing package changes... installing perl-error... installing perl-timedate... installing perl-mailtools... installing zlib-ng... installing git... Optional dependencies for git git-zsh-completion: upstream zsh completion tk: gitk and git gui openssh: ssh transport and crypto man: show help with `git command --help` perl-libwww: git svn perl-term-readkey: git svn and interactive.singlekey setting perl-io-socket-ssl: git send-email TLS support perl-authen-sasl: git send-email TLS support perl-mediawiki-api: git mediawiki support perl-datetime-format-iso8601: git mediawiki support perl-lwp-protocol-https: git mediawiki https support perl-cgi: gitweb (web interface) support python: git svn & git p4 [installed] subversion: git svn org.freedesktop.secrets: keyring credential helper libsecret: libsecret credential helper [installed] less: the default pager for git installing python-packaging... installing python-pyproject-hooks... installing python-build... Optional dependencies for python-build python-pip: to use as the Python package installer (default) python-uv: to use as the Python package installer python-virtualenv: to use virtualenv for build isolation installing python-editables... installing python-pathspec... installing python-pluggy... installing python-trove-classifiers... installing python-hatchling... installing python-installer... installing python-iniconfig... installing python-pygments... installing python-pytest... installing python-coverage... installing python-pytest-cov... installing python-starlette... Optional dependencies for python-starlette python-itsdangerous: for session middleware support python-jinja: for jinja templates python-python-multipart: for form parsing python-pyyaml: for schema generator python-httpx: for test client [installed] installing python-attrs... installing python-typing_extensions... installing python-outcome... installing python-sortedcontainers... installing python-trio... installing python-asgiref... installing python-click... installing llhttp... installing python-httptools... installing libuv... installing python-uvloop... installing python-websockets... installing uvicorn... :: Running post-transaction hooks... (1/4) Creating system user accounts... Creating group 'git' with GID 971. Creating user 'git' (git daemon user) with UID 971 and GID 971. (2/4) Reloading system manager configuration... Skipped: Current root is not booted. (3/4) Arming ConditionNeedsUpdate... (4/4) Checking for old perl modules... [?25h==> Retrieving sources...  -> Found no-regex-commit.patch ==> WARNING: Skipping all source file integrity checks. ==> Extracting sources...  -> Creating working copy of httpx-ws git repo... Cloning into 'httpx-ws'... done. Switched to a new branch 'makepkg' ==> Starting prepare()... patching file pyproject.toml Hunk #1 succeeded at 25 (offset 12 lines). Hunk #2 succeeded at 62 (offset 13 lines). ==> Starting build()... * Getting build dependencies for wheel... * Building wheel... Successfully built httpx_ws-0.8.0-py3-none-any.whl ==> Starting check()... ============================= test session starts ============================== platform linux -- Python 3.13.7, pytest-8.4.2, pluggy-1.6.0 -- /usr/bin/python cachedir: .pytest_cache rootdir: /build/python-httpx-ws/src/httpx-ws configfile: pyproject.toml plugins: cov-6.1.1, anyio-4.10.0 collecting ... collected 133 items / 43 deselected / 90 selected tests/test_api.py::test_upgrade_error[asyncio] PASSED [ 1%] tests/test_api.py::TestSend::test_send_error[asyncio] PASSED [ 2%] tests/test_api.py::TestSend::test_async_send_error[asyncio] PASSED [ 3%] tests/test_api.py::TestSend::test_send[asyncio-wsproto] PASSED [ 4%] tests/test_api.py::TestSend::test_send[asyncio-websockets] PASSED [ 5%] tests/test_api.py::TestSend::test_send_text[asyncio-wsproto] PASSED [ 6%] tests/test_api.py::TestSend::test_send_text[asyncio-websockets] PASSED [ 7%] tests/test_api.py::TestSend::test_send_bytes[asyncio-wsproto] PASSED [ 8%] tests/test_api.py::TestSend::test_send_bytes[asyncio-websockets] PASSED [ 10%] tests/test_api.py::TestSend::test_send_json[asyncio-wsproto-text] PASSED [ 11%] tests/test_api.py::TestSend::test_send_json[asyncio-wsproto-binary] PASSED [ 12%] tests/test_api.py::TestSend::test_send_json[asyncio-websockets-text] PASSED [ 13%] tests/test_api.py::TestSend::test_send_json[asyncio-websockets-binary] PASSED [ 14%] tests/test_api.py::TestReceive::test_async_receive_error[asyncio] PASSED [ 15%] tests/test_api.py::TestReceive::test_async_receive_closed_socket[asyncio] PASSED [ 16%] tests/test_api.py::TestReceivePing::test_receive_ping[asyncio] PASSED [ 17%] tests/test_api.py::TestReceivePing::test_async_receive_ping[asyncio] PASSED [ 18%] tests/test_api.py::TestKeepalivePing::test_keepalive_ping[asyncio] PASSED [ 20%] tests/test_api.py::TestKeepalivePing::test_keepalive_ping_timeout[asyncio] PASSED [ 21%] tests/test_api.py::TestKeepalivePing::test_async_keepalive_ping[asyncio] PASSED [ 22%] tests/test_api.py::TestKeepalivePing::test_async_keepalive_ping_timeout[asyncio] PASSED [ 23%] tests/test_api.py::test_ping_pong[asyncio-wsproto] PASSED [ 24%] tests/test_api.py::test_ping_pong[asyncio-websockets] PASSED [ 25%] tests/test_api.py::test_send_close[asyncio-wsproto] PASSED [ 26%] tests/test_api.py::test_send_close[asyncio-websockets] FAILED [ 27%] tests/test_api.py::test_default_httpx_client[asyncio] PASSED [ 28%] tests/test_api.py::test_subprotocol_and_response[asyncio] PASSED [ 30%] tests/test_api.py::test_threads_wont_hang[asyncio-wsproto] PASSED [ 31%] tests/test_api.py::test_threads_wont_hang[asyncio-websockets] PASSED [ 32%] tests/test_api.py::test_concurrency_write[asyncio-wsproto] PASSED [ 33%] tests/test_api.py::test_concurrency_write[asyncio-websockets] PASSED [ 34%] tests/test_api.py::test_client[asyncio] PASSED [ 35%] tests/test_api.py::test_upgrade_error[trio] PASSED [ 36%] tests/test_api.py::TestSend::test_send_error[trio] PASSED [ 37%] tests/test_api.py::TestSend::test_async_send_error[trio] PASSED [ 38%] tests/test_api.py::TestSend::test_send[trio-wsproto] PASSED [ 40%] tests/test_api.py::TestSend::test_send[trio-websockets] PASSED [ 41%] tests/test_api.py::TestSend::test_send_text[trio-wsproto] PASSED [ 42%] tests/test_api.py::TestSend::test_send_text[trio-websockets] PASSED [ 43%] tests/test_api.py::TestSend::test_send_bytes[trio-wsproto] PASSED [ 44%] tests/test_api.py::TestSend::test_send_bytes[trio-websockets] PASSED [ 45%] tests/test_api.py::TestSend::test_send_json[trio-wsproto-text] PASSED [ 46%] tests/test_api.py::TestSend::test_send_json[trio-wsproto-binary] PASSED [ 47%] tests/test_api.py::TestSend::test_send_json[trio-websockets-text] PASSED [ 48%] tests/test_api.py::TestSend::test_send_json[trio-websockets-binary] PASSED [ 50%] tests/test_api.py::TestReceive::test_async_receive_error[trio] PASSED [ 51%] tests/test_api.py::TestReceive::test_async_receive_closed_socket[trio] PASSED [ 52%] tests/test_api.py::TestReceivePing::test_receive_ping[trio] PASSED [ 53%] tests/test_api.py::TestReceivePing::test_async_receive_ping[trio] PASSED [ 54%] tests/test_api.py::TestKeepalivePing::test_keepalive_ping[trio] PASSED [ 55%] tests/test_api.py::TestKeepalivePing::test_keepalive_ping_timeout[trio] PASSED [ 56%] tests/test_api.py::TestKeepalivePing::test_async_keepalive_ping[trio] PASSED [ 57%] tests/test_api.py::TestKeepalivePing::test_async_keepalive_ping_timeout[trio] PASSED [ 58%] tests/test_api.py::test_ping_pong[trio-wsproto] PASSED [ 60%] tests/test_api.py::test_ping_pong[trio-websockets] PASSED [ 61%] tests/test_api.py::test_send_close[trio-wsproto] PASSED [ 62%] tests/test_api.py::test_send_close[trio-websockets] PASSED [ 63%] tests/test_api.py::test_default_httpx_client[trio] PASSED [ 64%] tests/test_api.py::test_subprotocol_and_response[trio] PASSED [ 65%] tests/test_api.py::test_threads_wont_hang[trio-wsproto] PASSED [ 66%] tests/test_api.py::test_threads_wont_hang[trio-websockets] PASSED [ 67%] tests/test_api.py::test_concurrency_write[trio-wsproto] PASSED [ 68%] tests/test_api.py::test_concurrency_write[trio-websockets] PASSED [ 70%] tests/test_api.py::test_client[trio] PASSED [ 71%] tests/test_transport.py::TestASGIWebSocketAsyncNetworkStream::test_write[asyncio] PASSED [ 72%] tests/test_transport.py::TestASGIWebSocketAsyncNetworkStream::test_write_unhandled_event[asyncio] PASSED [ 73%] tests/test_transport.py::TestASGIWebSocketAsyncNetworkStream::test_read[asyncio] PASSED [ 74%] tests/test_transport.py::TestASGIWebSocketAsyncNetworkStream::test_read_unhandled_asgi_message[asyncio] PASSED [ 75%] tests/test_transport.py::TestASGIWebSocketAsyncNetworkStream::test_close_immediately[asyncio] PASSED [ 76%] tests/test_transport.py::TestASGIWebSocketAsyncNetworkStream::test_denial_response[asyncio] PASSED [ 77%] tests/test_transport.py::TestASGIWebSocketAsyncNetworkStream::test_exception[asyncio] PASSED [ 78%] tests/test_transport.py::TestASGIWebSocketTransport::test_http[asyncio] PASSED [ 80%] tests/test_transport.py::TestASGIWebSocketTransport::test_websocket[asyncio-ws://localhost:8000/ws-headers0] PASSED [ 81%] tests/test_transport.py::TestASGIWebSocketTransport::test_websocket[asyncio-wss://localhost:8000/ws-headers1] PASSED [ 82%] tests/test_transport.py::TestASGIWebSocketTransport::test_websocket[asyncio-http://localhost:8000/ws-headers2] PASSED [ 83%] tests/test_transport.py::test_subprotocol_support[asyncio] PASSED [ 84%] tests/test_transport.py::test_keepalive_ping_disabled[asyncio] PASSED [ 85%] tests/test_transport.py::TestASGIWebSocketAsyncNetworkStream::test_write[trio] PASSED [ 86%] tests/test_transport.py::TestASGIWebSocketAsyncNetworkStream::test_write_unhandled_event[trio] PASSED [ 87%] tests/test_transport.py::TestASGIWebSocketAsyncNetworkStream::test_read[trio] PASSED [ 88%] tests/test_transport.py::TestASGIWebSocketAsyncNetworkStream::test_read_unhandled_asgi_message[trio] PASSED [ 90%] tests/test_transport.py::TestASGIWebSocketAsyncNetworkStream::test_close_immediately[trio] PASSED [ 91%] tests/test_transport.py::TestASGIWebSocketAsyncNetworkStream::test_denial_response[trio] PASSED [ 92%] tests/test_transport.py::TestASGIWebSocketAsyncNetworkStream::test_exception[trio] PASSED [ 93%] tests/test_transport.py::TestASGIWebSocketTransport::test_http[trio] PASSED [ 94%] tests/test_transport.py::TestASGIWebSocketTransport::test_websocket[trio-ws://localhost:8000/ws-headers0] PASSED [ 95%] tests/test_transport.py::TestASGIWebSocketTransport::test_websocket[trio-wss://localhost:8000/ws-headers1] PASSED [ 96%] tests/test_transport.py::TestASGIWebSocketTransport::test_websocket[trio-http://localhost:8000/ws-headers2] PASSED [ 97%] tests/test_transport.py::test_subprotocol_support[trio] PASSED [ 98%] tests/test_transport.py::test_keepalive_ping_disabled[trio] PASSED [100%] =================================== FAILURES =================================== _____________________ test_send_close[asyncio-websockets] ______________________ server_factory = ._server_factory at 0x3f8992ef20> on_receive_message = @pytest.mark.anyio async def test_send_close( server_factory: ServerFactoryFixture, on_receive_message: MagicMock ): async def websocket_endpoint(websocket: WebSocket): await websocket.accept() try: await websocket.receive_text() except StarletteWebSocketDisconnect as e: print(e) on_receive_message(e.code, e.reason) with server_factory(websocket_endpoint) as socket: with httpx.Client(transport=httpx.HTTPTransport(uds=socket)) as client: with connect_ws("http://socket/ws", client) as ws: ws.close(code=1001, reason="CLOSE_REASON") async with httpx.AsyncClient( transport=httpx.AsyncHTTPTransport(uds=socket) ) as aclient: async with aconnect_ws("http://socket/ws", aclient) as aws: await aws.close(code=1001, reason="CLOSE_REASON") > on_receive_message.assert_has_calls( [call(1001, "CLOSE_REASON"), call(1001, "CLOSE_REASON")] ) tests/test_api.py:747: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = calls = [call(1001, 'CLOSE_REASON'), call(1001, 'CLOSE_REASON')] any_order = False def assert_has_calls(self, calls, any_order=False): """assert the mock has been called with the specified calls. The `mock_calls` list is checked for the calls. If `any_order` is False (the default) then the calls must be sequential. There can be extra calls before or after the specified calls. If `any_order` is True then the calls can be in any order, but they must all appear in `mock_calls`.""" expected = [self._call_matcher(c) for c in calls] cause = next((e for e in expected if isinstance(e, Exception)), None) all_calls = _CallList(self._call_matcher(c) for c in self.mock_calls) if not any_order: if expected not in all_calls: if cause is None: problem = 'Calls not found.' else: problem = ('Error processing expected calls.\n' 'Errors: {}').format( [e if isinstance(e, Exception) else None for e in expected]) > raise AssertionError( f'{problem}\n' f'Expected: {_CallList(calls)}\n' f' Actual: {safe_repr(self.mock_calls)}' ) from cause E AssertionError: Calls not found. E Expected: [call(1001, 'CLOSE_REASON'), call(1001, 'CLOSE_REASON')] E Actual: [call(1001, 'CLOSE_REASON'), call(1012, '')] /usr/lib/python3.13/unittest/mock.py:1016: AssertionError ----------------------------- Captured stdout call ----------------------------- (1001, 'CLOSE_REASON') (1012, None) ----------------------------- Captured stderr call ----------------------------- INFO: Started server process [1170] INFO: Waiting for application startup. INFO: Application startup complete. INFO: Uvicorn running on unix socket /tmp/tmp261mj5h_/socket.sock (Press CTRL+C to quit) INFO: - "WebSocket /ws" [accepted] INFO: connection open INFO: connection closed INFO: - "WebSocket /ws" [accepted] INFO: connection open INFO: Shutting down INFO: connection closed INFO: Waiting for application shutdown. INFO: Application shutdown complete. INFO: Finished server process [1170] =============================== warnings summary =============================== tests/test_api.py:624 /build/python-httpx-ws/src/httpx-ws/tests/test_api.py:624: PytestUnknownMarkWarning: Unknown pytest.mark.flaky - is this a typo? You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html @pytest.mark.flaky(max_runs=5, min_passes=1) tests/test_api.py::TestSend::test_send[asyncio-websockets] /usr/lib/python3.13/site-packages/websockets/legacy/__init__.py:6: DeprecationWarning: websockets.legacy is deprecated; see https://websockets.readthedocs.io/en/stable/howto/upgrade.html for upgrade instructions warnings.warn( # deprecated in 14.0 - 2024-11-09 tests/test_api.py::TestSend::test_send[asyncio-websockets] /usr/lib/python3.13/site-packages/uvicorn/protocols/websockets/websockets_impl.py:17: DeprecationWarning: websockets.server.WebSocketServerProtocol is deprecated from websockets.server import WebSocketServerProtocol tests/test_api.py: 34 warnings /usr/lib/python3.13/site-packages/websockets/legacy/server.py:1178: DeprecationWarning: remove second argument of ws_handler warnings.warn("remove second argument of ws_handler", DeprecationWarning) -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html ================================ tests coverage ================================ _______________ coverage: platform linux, python 3.13.7-final-0 ________________ Name Stmts Miss Cover Missing ------------------------------------------------------- httpx_ws/__init__.py 4 0 100% httpx_ws/_api.py 408 42 90% 294, 332-335, 372-375, 419-425, 496-499, 505-510, 562, 813, 854, 891-894, 938-944, 1013-1016, 1022-1027 httpx_ws/_exceptions.py 16 1 94% 44 httpx_ws/_ping.py 28 0 100% httpx_ws/transport.py 142 1 99% 49 ------------------------------------------------------- TOTAL 598 44 93% =========================== short test summary info ============================ FAILED tests/test_api.py::test_send_close[asyncio-websockets] - AssertionErro... ========== 1 failed, 89 passed, 43 deselected, 37 warnings in 47.99s =========== ==> ERROR: A failure occurred in check().  Aborting... ==> ERROR: Build failed, check /var/lib/archbuild/extra-riscv64/felix-0/build [?25h[?25h[?25hreceiving incremental file list python-httpx-ws-0.8.0-1-riscv64-build.log python-httpx-ws-0.8.0-1-riscv64-check.log python-httpx-ws-0.8.0-1-riscv64-prepare.log sent 81 bytes received 3,703 bytes 2,522.67 bytes/sec total size is 14,826 speedup is 3.92