==> Building on articuno ==> Checking for remote environment... ==> Syncing package to remote host... sending incremental file list created directory packages/python-validate-pyproject ./ .SRCINFO 989 100% 0.00kB/s 0:00:00 989 100% 0.00kB/s 0:00:00 (xfr#1, to-chk=9/11) .nvchecker.toml 118 100% 115.23kB/s 0:00:00 118 100% 115.23kB/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,429 100% 1.36MB/s 0:00:00 1,429 100% 1.36MB/s 0:00:00 (xfr#4, to-chk=6/11) REUSE.toml 547 100% 534.18kB/s 0:00:00 547 100% 534.18kB/s 0:00:00 (xfr#5, to-chk=5/11) python-validate-pyproject-0.24.1-3.log 752 100% 734.38kB/s 0:00:00 752 100% 734.38kB/s 0:00:00 (xfr#6, to-chk=4/11) python-validate-pyproject-fix-tests.patch 1,820 100% 1.74MB/s 0:00:00 1,820 100% 1.74MB/s 0:00:00 (xfr#7, to-chk=3/11) LICENSES/ LICENSES/0BSD.txt -> ../LICENSE LICENSES/MPL-2.0.txt 16,727 100% 15.95MB/s 0:00:00 16,727 100% 15.95MB/s 0:00:00 (xfr#8, to-chk=0/11) sent 9,143 bytes received 239 bytes 6,254.67 bytes/sec total size is 22,481 speedup is 2.40 ==> Running pkgctl build --arch riscv64 on remote host... ==> WARNING: invalid architecture: riscv64 ==> Updating pacman database cache [?25l:: Synchronizing package databases... core downloading... extra downloading... multilib downloading... [?25h==> Building python-validate-pyproject  -> repo: extra  -> arch: riscv64  -> worker: felix-0 ==> Building python-validate-pyproject for [extra] (riscv64) ]3008;start=828bb70f822242d996a32d7a7dd6e45b;user=root;hostname=articuno.felixc.at;machineid=5c87428929f24fc498e0c27a9edd88e1;bootid=bb0ddc30b29e400c91dd589c78262dc1;pid=4022919;comm=systemd-nspawn;container=arch-nspawn-4022919;type=container\]11;?\]2;🔵 Container arch-nspawn-4022919 on articuno.felixc.at\[?25l:: Synchronizing package databases... core downloading... extra downloading... :: Starting full system upgrade... there is nothing to do [?25h[!p]104[?7h]3008;end=828bb70f822242d996a32d7a7dd6e45b\==> Building in chroot for [extra] (riscv64)... ==> Locking clean chroot [/var/lib/archbuild/extra-riscv64/root]...done ==> Synchronizing chroot copy [/var/lib/archbuild/extra-riscv64/root] -> [felix-0]...done ==> Making package: python-validate-pyproject 0.24.1-3 (Fri Jan 23 14:47:40 2026) ==> Retrieving sources...  -> Cloning validate-pyproject git repo... Cloning into bare repository '/home/felix/packages/python-validate-pyproject/validate-pyproject'... remote: Enumerating objects: 4381, done. remote: Counting objects: 0% (1/1031) remote: Counting objects: 1% (11/1031) remote: Counting objects: 2% (21/1031) remote: Counting objects: 3% (31/1031) remote: Counting objects: 4% (42/1031) remote: Counting objects: 5% (52/1031) remote: Counting objects: 6% (62/1031) remote: Counting objects: 7% (73/1031) remote: Counting objects: 8% (83/1031) remote: Counting objects: 9% (93/1031) remote: Counting objects: 10% (104/1031) remote: Counting objects: 11% (114/1031) remote: Counting objects: 12% (124/1031) remote: Counting objects: 13% (135/1031) remote: Counting objects: 14% (145/1031) remote: Counting objects: 15% (155/1031) remote: Counting objects: 16% (165/1031) remote: Counting objects: 17% (176/1031) remote: Counting objects: 18% (186/1031) remote: Counting objects: 19% (196/1031) remote: Counting objects: 20% (207/1031) remote: Counting objects: 21% (217/1031) remote: Counting objects: 22% (227/1031) remote: Counting objects: 23% (238/1031) remote: Counting objects: 24% (248/1031) remote: Counting objects: 25% (258/1031) remote: Counting objects: 26% (269/1031) remote: Counting objects: 27% (279/1031) remote: Counting objects: 28% (289/1031) remote: Counting objects: 29% (299/1031) remote: Counting objects: 30% (310/1031) remote: Counting objects: 31% (320/1031) remote: Counting objects: 32% (330/1031) remote: Counting objects: 33% (341/1031) remote: Counting objects: 34% (351/1031) remote: Counting objects: 35% (361/1031) remote: Counting objects: 36% (372/1031) remote: Counting objects: 37% (382/1031) remote: Counting objects: 38% (392/1031) remote: Counting objects: 39% (403/1031) remote: Counting objects: 40% (413/1031) remote: Counting objects: 41% (423/1031) remote: Counting objects: 42% (434/1031) remote: Counting objects: 43% (444/1031) remote: Counting objects: 44% (454/1031) remote: Counting objects: 45% (464/1031) remote: Counting objects: 46% (475/1031) remote: Counting objects: 47% (485/1031) remote: Counting objects: 48% (495/1031) remote: Counting objects: 49% (506/1031) remote: Counting objects: 50% (516/1031) remote: Counting objects: 51% (526/1031) remote: Counting objects: 52% (537/1031) remote: Counting objects: 53% (547/1031) remote: Counting objects: 54% (557/1031) remote: Counting objects: 55% (568/1031) remote: Counting objects: 56% (578/1031) remote: Counting objects: 57% (588/1031) remote: Counting objects: 58% (598/1031) remote: Counting objects: 59% (609/1031) remote: Counting objects: 60% (619/1031) remote: Counting objects: 61% (629/1031) remote: Counting objects: 62% (640/1031) remote: Counting objects: 63% (650/1031) remote: Counting objects: 64% (660/1031) remote: Counting objects: 65% (671/1031) remote: Counting objects: 66% (681/1031) remote: Counting objects: 67% (691/1031) remote: Counting objects: 68% (702/1031) remote: Counting objects: 69% (712/1031) remote: Counting objects: 70% (722/1031) remote: Counting objects: 71% (733/1031) remote: Counting objects: 72% (743/1031) remote: Counting objects: 73% (753/1031) remote: Counting objects: 74% (763/1031) remote: Counting objects: 75% (774/1031) remote: Counting objects: 76% (784/1031) remote: Counting objects: 77% (794/1031) remote: Counting objects: 78% (805/1031) remote: Counting objects: 79% (815/1031) remote: Counting objects: 80% (825/1031) remote: Counting objects: 81% (836/1031) remote: Counting objects: 82% (846/1031) remote: Counting objects: 83% (856/1031) remote: Counting objects: 84% (867/1031) remote: Counting objects: 85% (877/1031) remote: Counting objects: 86% (887/1031) remote: Counting objects: 87% (897/1031) remote: Counting objects: 88% (908/1031) remote: Counting objects: 89% (918/1031) remote: Counting objects: 90% (928/1031) remote: Counting objects: 91% (939/1031) remote: Counting objects: 92% (949/1031) remote: Counting objects: 93% (959/1031) remote: Counting objects: 94% (970/1031) remote: Counting objects: 95% (980/1031) remote: Counting objects: 96% (990/1031) remote: Counting objects: 97% (1001/1031) remote: Counting objects: 98% (1011/1031) remote: Counting objects: 99% (1021/1031) remote: Counting objects: 100% (1031/1031) remote: Counting objects: 100% (1031/1031), done. remote: Compressing objects: 0% (1/451) remote: Compressing objects: 1% (5/451) remote: Compressing objects: 2% (10/451) remote: Compressing objects: 3% (14/451) remote: Compressing objects: 4% (19/451) remote: Compressing objects: 5% (23/451) remote: Compressing objects: 6% (28/451) remote: Compressing objects: 7% (32/451) remote: Compressing objects: 8% (37/451) remote: Compressing objects: 9% (41/451) remote: Compressing objects: 10% (46/451) remote: Compressing objects: 11% (50/451) remote: Compressing objects: 12% (55/451) remote: Compressing objects: 13% (59/451) remote: Compressing objects: 14% (64/451) remote: Compressing objects: 15% (68/451) remote: Compressing objects: 16% (73/451) remote: Compressing objects: 17% (77/451) remote: Compressing objects: 18% (82/451) remote: Compressing objects: 19% (86/451) remote: Compressing objects: 20% (91/451) remote: Compressing objects: 21% (95/451) remote: Compressing objects: 22% (100/451) remote: Compressing objects: 23% (104/451) remote: Compressing objects: 24% (109/451) remote: Compressing objects: 25% (113/451) remote: Compressing objects: 26% (118/451) remote: Compressing objects: 27% (122/451) remote: Compressing objects: 28% (127/451) remote: Compressing objects: 29% (131/451) remote: Compressing objects: 30% (136/451) remote: Compressing objects: 31% (140/451) remote: Compressing objects: 32% (145/451) remote: Compressing objects: 33% (149/451) remote: Compressing objects: 34% (154/451) remote: Compressing objects: 35% (158/451) remote: Compressing objects: 36% (163/451) remote: Compressing objects: 37% (167/451) remote: Compressing objects: 38% (172/451) remote: Compressing objects: 39% (176/451) remote: Compressing objects: 40% (181/451) remote: Compressing objects: 41% (185/451) remote: Compressing objects: 42% (190/451) remote: Compressing objects: 43% (194/451) remote: Compressing objects: 44% (199/451) remote: Compressing objects: 45% (203/451) remote: Compressing objects: 46% (208/451) remote: Compressing objects: 47% (212/451) remote: Compressing objects: 48% (217/451) remote: Compressing objects: 49% (221/451) remote: Compressing objects: 50% (226/451) remote: Compressing objects: 51% (231/451) remote: Compressing objects: 52% (235/451) remote: Compressing objects: 53% (240/451) remote: Compressing objects: 54% (244/451) remote: Compressing objects: 55% (249/451) remote: Compressing objects: 56% (253/451) remote: Compressing objects: 57% (258/451) remote: Compressing objects: 58% (262/451) remote: Compressing objects: 59% (267/451) remote: Compressing objects: 60% (271/451) remote: Compressing objects: 61% (276/451) remote: Compressing objects: 62% (280/451) remote: Compressing objects: 63% (285/451) remote: Compressing objects: 64% (289/451) remote: Compressing objects: 65% (294/451) remote: Compressing objects: 66% (298/451) remote: Compressing objects: 67% (303/451) remote: Compressing objects: 68% (307/451) remote: Compressing objects: 69% (312/451) remote: Compressing objects: 70% (316/451) remote: Compressing objects: 71% (321/451) remote: Compressing objects: 72% (325/451) remote: Compressing objects: 73% (330/451) remote: Compressing objects: 74% (334/451) remote: Compressing objects: 75% (339/451) remote: Compressing objects: 76% (343/451) remote: Compressing objects: 77% (348/451) remote: Compressing objects: 78% (352/451) remote: Compressing objects: 79% (357/451) remote: Compressing objects: 80% (361/451) remote: Compressing objects: 81% (366/451) remote: Compressing objects: 82% (370/451) remote: Compressing objects: 83% (375/451) remote: Compressing objects: 84% (379/451) remote: Compressing objects: 85% (384/451) remote: Compressing objects: 86% (388/451) remote: Compressing objects: 87% (393/451) remote: Compressing objects: 88% (397/451) remote: Compressing objects: 89% (402/451) remote: Compressing objects: 90% (406/451) remote: Compressing objects: 91% (411/451) remote: Compressing objects: 92% (415/451) remote: Compressing objects: 93% (420/451) remote: Compressing objects: 94% (424/451) remote: Compressing objects: 95% (429/451) remote: Compressing objects: 96% (433/451) remote: Compressing objects: 97% (438/451) remote: Compressing objects: 98% (442/451) remote: Compressing objects: 99% (447/451) remote: Compressing objects: 100% (451/451) remote: Compressing objects: 100% (451/451), done. Receiving objects: 0% (1/4381) Receiving objects: 1% (44/4381) Receiving objects: 2% (88/4381) Receiving objects: 3% (132/4381) Receiving objects: 4% (176/4381) Receiving objects: 5% (220/4381), 76.00 KiB | 113.00 KiB/s Receiving objects: 6% (263/4381), 76.00 KiB | 113.00 KiB/s Receiving objects: 7% (307/4381), 76.00 KiB | 113.00 KiB/s Receiving objects: 8% (351/4381), 76.00 KiB | 113.00 KiB/s Receiving objects: 9% (395/4381), 76.00 KiB | 113.00 KiB/s Receiving objects: 10% (439/4381), 76.00 KiB | 113.00 KiB/s Receiving objects: 11% (482/4381), 76.00 KiB | 113.00 KiB/s Receiving objects: 12% (526/4381), 76.00 KiB | 113.00 KiB/s Receiving objects: 13% (570/4381), 76.00 KiB | 113.00 KiB/s Receiving objects: 14% (614/4381), 76.00 KiB | 113.00 KiB/s Receiving objects: 15% (658/4381), 76.00 KiB | 113.00 KiB/s Receiving objects: 16% (701/4381), 76.00 KiB | 113.00 KiB/s Receiving objects: 17% (745/4381), 76.00 KiB | 113.00 KiB/s Receiving objects: 18% (789/4381), 76.00 KiB | 113.00 KiB/s Receiving objects: 19% (833/4381), 76.00 KiB | 113.00 KiB/s Receiving objects: 20% (877/4381), 76.00 KiB | 113.00 KiB/s Receiving objects: 21% (921/4381), 76.00 KiB | 113.00 KiB/s Receiving objects: 22% (964/4381), 76.00 KiB | 113.00 KiB/s Receiving objects: 23% (1008/4381), 76.00 KiB | 113.00 KiB/s Receiving objects: 24% (1052/4381), 76.00 KiB | 113.00 KiB/s Receiving objects: 25% (1096/4381), 76.00 KiB | 113.00 KiB/s Receiving objects: 25% (1139/4381), 76.00 KiB | 113.00 KiB/s Receiving objects: 26% (1140/4381), 76.00 KiB | 113.00 KiB/s Receiving objects: 27% (1183/4381), 76.00 KiB | 113.00 KiB/s Receiving objects: 28% (1227/4381), 76.00 KiB | 113.00 KiB/s Receiving objects: 29% (1271/4381), 76.00 KiB | 113.00 KiB/s Receiving objects: 30% (1315/4381), 76.00 KiB | 113.00 KiB/s Receiving objects: 31% (1359/4381), 76.00 KiB | 113.00 KiB/s Receiving objects: 32% (1402/4381), 76.00 KiB | 113.00 KiB/s Receiving objects: 33% (1446/4381), 76.00 KiB | 113.00 KiB/s Receiving objects: 34% (1490/4381), 76.00 KiB | 113.00 KiB/s Receiving objects: 35% (1534/4381), 76.00 KiB | 113.00 KiB/s Receiving objects: 36% (1578/4381), 76.00 KiB | 113.00 KiB/s Receiving objects: 37% (1621/4381), 76.00 KiB | 113.00 KiB/s Receiving objects: 38% (1665/4381), 76.00 KiB | 113.00 KiB/s Receiving objects: 39% (1709/4381), 76.00 KiB | 113.00 KiB/s Receiving objects: 40% (1753/4381), 76.00 KiB | 113.00 KiB/s Receiving objects: 41% (1797/4381), 76.00 KiB | 113.00 KiB/s Receiving objects: 42% (1841/4381), 76.00 KiB | 113.00 KiB/s Receiving objects: 43% (1884/4381), 76.00 KiB | 113.00 KiB/s Receiving objects: 44% (1928/4381), 76.00 KiB | 113.00 KiB/s Receiving objects: 45% (1972/4381), 76.00 KiB | 113.00 KiB/s Receiving objects: 46% (2016/4381), 76.00 KiB | 113.00 KiB/s Receiving objects: 47% (2060/4381), 76.00 KiB | 113.00 KiB/s Receiving objects: 48% (2103/4381), 76.00 KiB | 113.00 KiB/s Receiving objects: 49% (2147/4381), 76.00 KiB | 113.00 KiB/s Receiving objects: 50% (2191/4381), 76.00 KiB | 113.00 KiB/s Receiving objects: 51% (2235/4381), 76.00 KiB | 113.00 KiB/s Receiving objects: 52% (2279/4381), 76.00 KiB | 113.00 KiB/s Receiving objects: 53% (2322/4381), 76.00 KiB | 113.00 KiB/s Receiving objects: 54% (2366/4381), 76.00 KiB | 113.00 KiB/s Receiving objects: 55% (2410/4381), 476.00 KiB | 383.00 KiB/s Receiving objects: 56% (2454/4381), 476.00 KiB | 383.00 KiB/s Receiving objects: 57% (2498/4381), 476.00 KiB | 383.00 KiB/s Receiving objects: 58% (2541/4381), 476.00 KiB | 383.00 KiB/s Receiving objects: 59% (2585/4381), 476.00 KiB | 383.00 KiB/s Receiving objects: 60% (2629/4381), 476.00 KiB | 383.00 KiB/s Receiving objects: 61% (2673/4381), 476.00 KiB | 383.00 KiB/s Receiving objects: 62% (2717/4381), 476.00 KiB | 383.00 KiB/s Receiving objects: 63% (2761/4381), 476.00 KiB | 383.00 KiB/s Receiving objects: 64% (2804/4381), 476.00 KiB | 383.00 KiB/s Receiving objects: 65% (2848/4381), 476.00 KiB | 383.00 KiB/s Receiving objects: 66% (2892/4381), 476.00 KiB | 383.00 KiB/s Receiving objects: 67% (2936/4381), 476.00 KiB | 383.00 KiB/s Receiving objects: 68% (2980/4381), 476.00 KiB | 383.00 KiB/s Receiving objects: 69% (3023/4381), 476.00 KiB | 383.00 KiB/s Receiving objects: 70% (3067/4381), 476.00 KiB | 383.00 KiB/s Receiving objects: 71% (3111/4381), 476.00 KiB | 383.00 KiB/s Receiving objects: 72% (3155/4381), 476.00 KiB | 383.00 KiB/s Receiving objects: 73% (3199/4381), 476.00 KiB | 383.00 KiB/s Receiving objects: 74% (3242/4381), 476.00 KiB | 383.00 KiB/s Receiving objects: 75% (3286/4381), 476.00 KiB | 383.00 KiB/s Receiving objects: 76% (3330/4381), 476.00 KiB | 383.00 KiB/s Receiving objects: 77% (3374/4381), 476.00 KiB | 383.00 KiB/s Receiving objects: 78% (3418/4381), 476.00 KiB | 383.00 KiB/s Receiving objects: 79% (3461/4381), 476.00 KiB | 383.00 KiB/s Receiving objects: 80% (3505/4381), 476.00 KiB | 383.00 KiB/s Receiving objects: 81% (3549/4381), 476.00 KiB | 383.00 KiB/s Receiving objects: 82% (3593/4381), 476.00 KiB | 383.00 KiB/s Receiving objects: 83% (3637/4381), 476.00 KiB | 383.00 KiB/s Receiving objects: 84% (3681/4381), 476.00 KiB | 383.00 KiB/s Receiving objects: 85% (3724/4381), 476.00 KiB | 383.00 KiB/s Receiving objects: 86% (3768/4381), 476.00 KiB | 383.00 KiB/s Receiving objects: 87% (3812/4381), 476.00 KiB | 383.00 KiB/s Receiving objects: 88% (3856/4381), 476.00 KiB | 383.00 KiB/s Receiving objects: 89% (3900/4381), 476.00 KiB | 383.00 KiB/s Receiving objects: 90% (3943/4381), 476.00 KiB | 383.00 KiB/s Receiving objects: 91% (3987/4381), 476.00 KiB | 383.00 KiB/s Receiving objects: 92% (4031/4381), 476.00 KiB | 383.00 KiB/s Receiving objects: 93% (4075/4381), 476.00 KiB | 383.00 KiB/s Receiving objects: 94% (4119/4381), 476.00 KiB | 383.00 KiB/s Receiving objects: 95% (4162/4381), 476.00 KiB | 383.00 KiB/s Receiving objects: 96% (4206/4381), 476.00 KiB | 383.00 KiB/s Receiving objects: 97% (4250/4381), 476.00 KiB | 383.00 KiB/s Receiving objects: 98% (4294/4381), 476.00 KiB | 383.00 KiB/s Receiving objects: 99% (4338/4381), 476.00 KiB | 383.00 KiB/s remote: Total 4381 (delta 674), reused 607 (delta 568), pack-reused 3350 (from 2) Receiving objects: 100% (4381/4381), 476.00 KiB | 383.00 KiB/s Receiving objects: 100% (4381/4381), 950.31 KiB | 666.00 KiB/s, done. Resolving deltas: 0% (0/2579) Resolving deltas: 1% (26/2579) Resolving deltas: 2% (52/2579) Resolving deltas: 3% (78/2579) Resolving deltas: 4% (105/2579) Resolving deltas: 5% (129/2579) Resolving deltas: 6% (155/2579) Resolving deltas: 7% (181/2579) Resolving deltas: 8% (208/2579) Resolving deltas: 9% (233/2579) Resolving deltas: 10% (258/2579) Resolving deltas: 11% (285/2579) Resolving deltas: 12% (310/2579) Resolving deltas: 13% (338/2579) Resolving deltas: 14% (364/2579) Resolving deltas: 15% (387/2579) Resolving deltas: 16% (413/2579) Resolving deltas: 17% (439/2579) Resolving deltas: 18% (465/2579) Resolving deltas: 19% (491/2579) Resolving deltas: 20% (517/2579) Resolving deltas: 21% (542/2579) Resolving deltas: 22% (569/2579) Resolving deltas: 23% (594/2579) Resolving deltas: 24% (619/2579) Resolving deltas: 25% (645/2579) Resolving deltas: 26% (672/2579) Resolving deltas: 27% (697/2579) Resolving deltas: 28% (723/2579) Resolving deltas: 29% (748/2579) Resolving deltas: 30% (774/2579) Resolving deltas: 31% (801/2579) Resolving deltas: 32% (828/2579) Resolving deltas: 33% (852/2579) Resolving deltas: 34% (877/2579) Resolving deltas: 35% (903/2579) Resolving deltas: 36% (930/2579) Resolving deltas: 37% (955/2579) Resolving deltas: 38% (981/2579) Resolving deltas: 39% (1006/2579) Resolving deltas: 40% (1033/2579) Resolving deltas: 41% (1058/2579) Resolving deltas: 42% (1084/2579) Resolving deltas: 43% (1109/2579) Resolving deltas: 44% (1135/2579) Resolving deltas: 45% (1162/2579) Resolving deltas: 46% (1187/2579) Resolving deltas: 47% (1213/2579) Resolving deltas: 48% (1239/2579) Resolving deltas: 49% (1264/2579) Resolving deltas: 50% (1290/2579) Resolving deltas: 51% (1317/2579) Resolving deltas: 52% (1342/2579) Resolving deltas: 53% (1368/2579) Resolving deltas: 54% (1394/2579) Resolving deltas: 55% (1419/2579) Resolving deltas: 56% (1445/2579) Resolving deltas: 57% (1471/2579) Resolving deltas: 58% (1496/2579) Resolving deltas: 59% (1522/2579) Resolving deltas: 60% (1548/2579) Resolving deltas: 61% (1574/2579) Resolving deltas: 62% (1599/2579) Resolving deltas: 63% (1625/2579) Resolving deltas: 64% (1651/2579) Resolving deltas: 65% (1677/2579) Resolving deltas: 66% (1704/2579) Resolving deltas: 67% (1728/2579) Resolving deltas: 68% (1757/2579) Resolving deltas: 69% (1780/2579) Resolving deltas: 70% (1807/2579) Resolving deltas: 71% (1832/2579) Resolving deltas: 72% (1858/2579) Resolving deltas: 73% (1883/2579) Resolving deltas: 74% (1909/2579) Resolving deltas: 75% (1936/2579) Resolving deltas: 76% (1961/2579) Resolving deltas: 77% (1986/2579) Resolving deltas: 78% (2012/2579) Resolving deltas: 79% (2038/2579) Resolving deltas: 80% (2064/2579) Resolving deltas: 81% (2089/2579) Resolving deltas: 82% (2115/2579) Resolving deltas: 83% (2141/2579) Resolving deltas: 84% (2167/2579) Resolving deltas: 85% (2193/2579) Resolving deltas: 86% (2219/2579) Resolving deltas: 87% (2244/2579) Resolving deltas: 88% (2271/2579) Resolving deltas: 89% (2296/2579) Resolving deltas: 90% (2322/2579) Resolving deltas: 91% (2347/2579) Resolving deltas: 92% (2373/2579) Resolving deltas: 93% (2403/2579) Resolving deltas: 94% (2425/2579) Resolving deltas: 95% (2451/2579) Resolving deltas: 96% (2477/2579) Resolving deltas: 97% (2502/2579) Resolving deltas: 98% (2528/2579) Resolving deltas: 99% (2554/2579) Resolving deltas: 100% (2579/2579) Resolving deltas: 100% (2579/2579), done.  -> Found python-validate-pyproject-fix-tests.patch ==> Validating source files with b2sums... validate-pyproject ... Passed python-validate-pyproject-fix-tests.patch ... Passed ]3008;start=4fcbe768bba14d0bb979c620ea0a2546;user=root;hostname=articuno.felixc.at;machineid=5c87428929f24fc498e0c27a9edd88e1;bootid=bb0ddc30b29e400c91dd589c78262dc1;pid=4025325;comm=systemd-nspawn;container=arch-nspawn-4025325;type=container\]11;?\]2;🔵 Container arch-nspawn-4025325 on articuno.felixc.at\==> Making package: python-validate-pyproject 0.24.1-3 (Fri Jan 23 14:48:04 2026) ==> Checking runtime dependencies... ==> Installing missing dependencies... [?25lresolving dependencies... looking for conflicting packages... Package (5) New Version Net Change Download Size core/mpdecimal 4.0.1-1 0.31 MiB core/python 3.14.2-2 132.78 MiB extra/python-fastjsonschema 2.21.2-2 0.28 MiB 0.05 MiB extra/python-packaging 26.0-1 0.89 MiB extra/python-trove-classifiers 2026.1.14.14-1.1 0.16 MiB 0.02 MiB Total Download Size: 0.07 MiB Total Installed Size: 134.42 MiB :: Proceed with installation? [Y/n] :: Retrieving packages... python-fastjsonschema-2.21.2-2-any downloading... python-trove-classifiers-2026.1.14.14-1.1-any downloading... 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-fastjsonschema... installing python-packaging... installing python-trove-classifiers... :: Running post-transaction hooks... (1/1) Arming ConditionNeedsUpdate... [?25h==> Checking buildtime dependencies... ==> Installing missing dependencies... [?25lresolving dependencies... looking for conflicting packages... Package (22) New Version Net Change Download Size extra/perl-error 0.17030-3 0.04 MiB extra/perl-mailtools 2.22-3 0.10 MiB extra/perl-timedate 2.33-9 0.08 MiB extra/python-autocommand 2.2.2-9 0.08 MiB extra/python-iniconfig 2.1.0-3.1 0.05 MiB 0.01 MiB extra/python-jaraco.collections 5.1.0-3 0.11 MiB extra/python-jaraco.context 6.0.1-3 0.04 MiB extra/python-jaraco.functools 4.1.0-3 0.07 MiB extra/python-jaraco.text 4.0.0-4 0.08 MiB extra/python-more-itertools 10.8.0-2 0.73 MiB extra/python-platformdirs 4.5.1-3 0.28 MiB extra/python-pluggy 1.6.0-3.1 0.23 MiB 0.05 MiB extra/python-pygments 2.19.2-3 15.30 MiB extra/python-pyproject-hooks 1.2.0-6 0.11 MiB extra/python-setuptools 1:80.9.0-4 8.03 MiB extra/zlib-ng 2.2.5-1 0.21 MiB extra/git 2.52.0-2 28.75 MiB extra/python-build 1.4.0-1 0.24 MiB extra/python-installer 0.7.0-14 0.20 MiB extra/python-pytest 1:8.4.2-3 4.69 MiB extra/python-setuptools-scm 9.2.2-3 0.61 MiB extra/python-wheel 0.45.1-4 0.30 MiB Total Download Size: 0.06 MiB Total Installed Size: 60.34 MiB :: Proceed with installation? [Y/n] :: Retrieving packages... python-pluggy-1.6.0-3.1-any downloading... python-iniconfig-2.1.0-3.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-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-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-installer... installing python-more-itertools... installing python-jaraco.functools... installing python-jaraco.context... installing python-autocommand... installing python-jaraco.text... Optional dependencies for python-jaraco.text python-inflect: for show-newlines script installing python-jaraco.collections... installing python-platformdirs... installing python-wheel... Optional dependencies for python-wheel python-keyring: for wheel.signatures python-xdg: for wheel.signatures python-setuptools: for legacy bdist_wheel subcommand [pending] installing python-setuptools... installing python-setuptools-scm... Optional dependencies for python-setuptools-scm python-rich: use rich as console log handler installing python-iniconfig... installing python-pluggy... installing python-pygments... installing python-pytest... :: Running post-transaction hooks... (1/4) Creating system user accounts... Creating group 'git' with GID 969. Creating user 'git' (git daemon user) with UID 969 and GID 969. (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 python-validate-pyproject-fix-tests.patch ==> WARNING: Skipping all source file integrity checks. ==> Extracting sources...  -> Creating working copy of validate-pyproject git repo... Cloning into 'validate-pyproject'... done. Switched to a new branch 'makepkg' ==> Starting prepare()... patching file src/validate_pyproject/formats.py patching file src/validate_pyproject/remote.py ==> Starting build()... * Getting build dependencies for wheel... /usr/lib/python3.14/site-packages/setuptools/config/_apply_pyprojecttoml.py:82: SetuptoolsDeprecationWarning: `project.license` as a TOML table is deprecated !! ******************************************************************************** Please use a simple string containing a SPDX expression for `project.license`. You can also use `project.license-files`. (Both options available on setuptools>=77.0.0). By 2026-Feb-18, you need to update your project and remove deprecated calls or your builds will no longer be supported. See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details. ******************************************************************************** !! corresp(dist, value, root_dir) running egg_info creating src/validate_pyproject.egg-info writing src/validate_pyproject.egg-info/PKG-INFO writing dependency_links to src/validate_pyproject.egg-info/dependency_links.txt writing entry points to src/validate_pyproject.egg-info/entry_points.txt writing requirements to src/validate_pyproject.egg-info/requires.txt writing top-level names to src/validate_pyproject.egg-info/top_level.txt writing manifest file 'src/validate_pyproject.egg-info/SOURCES.txt' adding license file 'LICENSE.txt' adding license file 'NOTICE.txt' adding license file 'AUTHORS.rst' writing manifest file 'src/validate_pyproject.egg-info/SOURCES.txt' * Building wheel... /usr/lib/python3.14/site-packages/setuptools/config/_apply_pyprojecttoml.py:82: SetuptoolsDeprecationWarning: `project.license` as a TOML table is deprecated !! ******************************************************************************** Please use a simple string containing a SPDX expression for `project.license`. You can also use `project.license-files`. (Both options available on setuptools>=77.0.0). By 2026-Feb-18, you need to update your project and remove deprecated calls or your builds will no longer be supported. See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details. ******************************************************************************** !! corresp(dist, value, root_dir) running bdist_wheel running build running build_py creating build/lib/validate_pyproject copying src/validate_pyproject/__main__.py -> build/lib/validate_pyproject copying src/validate_pyproject/error_reporting.py -> build/lib/validate_pyproject copying src/validate_pyproject/repo_review.py -> build/lib/validate_pyproject copying src/validate_pyproject/cli.py -> build/lib/validate_pyproject copying src/validate_pyproject/errors.py -> build/lib/validate_pyproject copying src/validate_pyproject/caching.py -> build/lib/validate_pyproject copying src/validate_pyproject/__init__.py -> build/lib/validate_pyproject copying src/validate_pyproject/api.py -> build/lib/validate_pyproject copying src/validate_pyproject/remote.py -> build/lib/validate_pyproject copying src/validate_pyproject/http.py -> build/lib/validate_pyproject copying src/validate_pyproject/extra_validations.py -> build/lib/validate_pyproject copying src/validate_pyproject/types.py -> build/lib/validate_pyproject copying src/validate_pyproject/formats.py -> build/lib/validate_pyproject copying src/validate_pyproject/_tomllib.py -> build/lib/validate_pyproject creating build/lib/validate_pyproject/vendoring copying src/validate_pyproject/vendoring/__main__.py -> build/lib/validate_pyproject/vendoring copying src/validate_pyproject/vendoring/cli.py -> build/lib/validate_pyproject/vendoring copying src/validate_pyproject/vendoring/__init__.py -> build/lib/validate_pyproject/vendoring creating build/lib/validate_pyproject/pre_compile copying src/validate_pyproject/pre_compile/__main__.py -> build/lib/validate_pyproject/pre_compile copying src/validate_pyproject/pre_compile/cli.py -> build/lib/validate_pyproject/pre_compile copying src/validate_pyproject/pre_compile/__init__.py -> build/lib/validate_pyproject/pre_compile creating build/lib/validate_pyproject/plugins copying src/validate_pyproject/plugins/__init__.py -> build/lib/validate_pyproject/plugins running egg_info writing src/validate_pyproject.egg-info/PKG-INFO writing dependency_links to src/validate_pyproject.egg-info/dependency_links.txt writing entry points to src/validate_pyproject.egg-info/entry_points.txt writing requirements to src/validate_pyproject.egg-info/requires.txt writing top-level names to src/validate_pyproject.egg-info/top_level.txt adding license file 'LICENSE.txt' adding license file 'NOTICE.txt' adding license file 'AUTHORS.rst' writing manifest file 'src/validate_pyproject.egg-info/SOURCES.txt' copying src/validate_pyproject/project_metadata.schema.json -> build/lib/validate_pyproject copying src/validate_pyproject/py.typed -> build/lib/validate_pyproject copying src/validate_pyproject/pyproject_toml.schema.json -> build/lib/validate_pyproject copying src/validate_pyproject/pre_compile/NOTICE.template -> build/lib/validate_pyproject/pre_compile copying src/validate_pyproject/pre_compile/api-notice.template -> build/lib/validate_pyproject/pre_compile copying src/validate_pyproject/pre_compile/cli-notice.template -> build/lib/validate_pyproject/pre_compile copying src/validate_pyproject/pre_compile/main_file.template -> build/lib/validate_pyproject/pre_compile copying src/validate_pyproject/plugins/distutils.schema.json -> build/lib/validate_pyproject/plugins copying src/validate_pyproject/plugins/setuptools.schema.json -> build/lib/validate_pyproject/plugins installing to build/bdist.linux-riscv64/wheel running install running install_lib creating build/bdist.linux-riscv64/wheel creating build/bdist.linux-riscv64/wheel/validate_pyproject copying build/lib/validate_pyproject/__main__.py -> build/bdist.linux-riscv64/wheel/./validate_pyproject copying build/lib/validate_pyproject/error_reporting.py -> build/bdist.linux-riscv64/wheel/./validate_pyproject copying build/lib/validate_pyproject/repo_review.py -> build/bdist.linux-riscv64/wheel/./validate_pyproject creating build/bdist.linux-riscv64/wheel/validate_pyproject/vendoring copying build/lib/validate_pyproject/vendoring/__main__.py -> build/bdist.linux-riscv64/wheel/./validate_pyproject/vendoring copying build/lib/validate_pyproject/vendoring/cli.py -> build/bdist.linux-riscv64/wheel/./validate_pyproject/vendoring copying build/lib/validate_pyproject/vendoring/__init__.py -> build/bdist.linux-riscv64/wheel/./validate_pyproject/vendoring copying build/lib/validate_pyproject/py.typed -> build/bdist.linux-riscv64/wheel/./validate_pyproject copying build/lib/validate_pyproject/cli.py -> build/bdist.linux-riscv64/wheel/./validate_pyproject copying build/lib/validate_pyproject/errors.py -> build/bdist.linux-riscv64/wheel/./validate_pyproject copying build/lib/validate_pyproject/caching.py -> build/bdist.linux-riscv64/wheel/./validate_pyproject copying build/lib/validate_pyproject/__init__.py -> build/bdist.linux-riscv64/wheel/./validate_pyproject copying build/lib/validate_pyproject/api.py -> build/bdist.linux-riscv64/wheel/./validate_pyproject copying build/lib/validate_pyproject/remote.py -> build/bdist.linux-riscv64/wheel/./validate_pyproject copying build/lib/validate_pyproject/project_metadata.schema.json -> build/bdist.linux-riscv64/wheel/./validate_pyproject copying build/lib/validate_pyproject/http.py -> build/bdist.linux-riscv64/wheel/./validate_pyproject creating build/bdist.linux-riscv64/wheel/validate_pyproject/pre_compile copying build/lib/validate_pyproject/pre_compile/__main__.py -> build/bdist.linux-riscv64/wheel/./validate_pyproject/pre_compile copying build/lib/validate_pyproject/pre_compile/NOTICE.template -> build/bdist.linux-riscv64/wheel/./validate_pyproject/pre_compile copying build/lib/validate_pyproject/pre_compile/cli.py -> build/bdist.linux-riscv64/wheel/./validate_pyproject/pre_compile copying build/lib/validate_pyproject/pre_compile/main_file.template -> build/bdist.linux-riscv64/wheel/./validate_pyproject/pre_compile copying build/lib/validate_pyproject/pre_compile/__init__.py -> build/bdist.linux-riscv64/wheel/./validate_pyproject/pre_compile copying build/lib/validate_pyproject/pre_compile/cli-notice.template -> build/bdist.linux-riscv64/wheel/./validate_pyproject/pre_compile copying build/lib/validate_pyproject/pre_compile/api-notice.template -> build/bdist.linux-riscv64/wheel/./validate_pyproject/pre_compile copying build/lib/validate_pyproject/pyproject_toml.schema.json -> build/bdist.linux-riscv64/wheel/./validate_pyproject copying build/lib/validate_pyproject/extra_validations.py -> build/bdist.linux-riscv64/wheel/./validate_pyproject creating build/bdist.linux-riscv64/wheel/validate_pyproject/plugins copying build/lib/validate_pyproject/plugins/setuptools.schema.json -> build/bdist.linux-riscv64/wheel/./validate_pyproject/plugins copying build/lib/validate_pyproject/plugins/__init__.py -> build/bdist.linux-riscv64/wheel/./validate_pyproject/plugins copying build/lib/validate_pyproject/plugins/distutils.schema.json -> build/bdist.linux-riscv64/wheel/./validate_pyproject/plugins copying build/lib/validate_pyproject/types.py -> build/bdist.linux-riscv64/wheel/./validate_pyproject copying build/lib/validate_pyproject/formats.py -> build/bdist.linux-riscv64/wheel/./validate_pyproject copying build/lib/validate_pyproject/_tomllib.py -> build/bdist.linux-riscv64/wheel/./validate_pyproject running install_egg_info Copying src/validate_pyproject.egg-info to build/bdist.linux-riscv64/wheel/./validate_pyproject-0.24.1.post1.dev0+g78f5e0f10.d20260123-py3.14.egg-info running install_scripts creating build/bdist.linux-riscv64/wheel/validate_pyproject-0.24.1.post1.dev0+g78f5e0f10.d20260123.dist-info/WHEEL creating '/build/python-validate-pyproject/src/validate-pyproject/dist/.tmp-pkq62ztv/validate_pyproject-0.24.1.post1.dev0+g78f5e0f10.d20260123-py3-none-any.whl' and adding 'build/bdist.linux-riscv64/wheel' to it adding 'validate_pyproject/__init__.py' adding 'validate_pyproject/__main__.py' adding 'validate_pyproject/_tomllib.py' adding 'validate_pyproject/api.py' adding 'validate_pyproject/caching.py' adding 'validate_pyproject/cli.py' adding 'validate_pyproject/error_reporting.py' adding 'validate_pyproject/errors.py' adding 'validate_pyproject/extra_validations.py' adding 'validate_pyproject/formats.py' adding 'validate_pyproject/http.py' adding 'validate_pyproject/project_metadata.schema.json' adding 'validate_pyproject/py.typed' adding 'validate_pyproject/pyproject_toml.schema.json' adding 'validate_pyproject/remote.py' adding 'validate_pyproject/repo_review.py' adding 'validate_pyproject/types.py' adding 'validate_pyproject/plugins/__init__.py' adding 'validate_pyproject/plugins/distutils.schema.json' adding 'validate_pyproject/plugins/setuptools.schema.json' adding 'validate_pyproject/pre_compile/NOTICE.template' adding 'validate_pyproject/pre_compile/__init__.py' adding 'validate_pyproject/pre_compile/__main__.py' adding 'validate_pyproject/pre_compile/api-notice.template' adding 'validate_pyproject/pre_compile/cli-notice.template' adding 'validate_pyproject/pre_compile/cli.py' adding 'validate_pyproject/pre_compile/main_file.template' adding 'validate_pyproject/vendoring/__init__.py' adding 'validate_pyproject/vendoring/__main__.py' adding 'validate_pyproject/vendoring/cli.py' adding 'validate_pyproject-0.24.1.post1.dev0+g78f5e0f10.d20260123.dist-info/licenses/AUTHORS.rst' adding 'validate_pyproject-0.24.1.post1.dev0+g78f5e0f10.d20260123.dist-info/licenses/LICENSE.txt' adding 'validate_pyproject-0.24.1.post1.dev0+g78f5e0f10.d20260123.dist-info/licenses/NOTICE.txt' adding 'validate_pyproject-0.24.1.post1.dev0+g78f5e0f10.d20260123.dist-info/METADATA' adding 'validate_pyproject-0.24.1.post1.dev0+g78f5e0f10.d20260123.dist-info/WHEEL' adding 'validate_pyproject-0.24.1.post1.dev0+g78f5e0f10.d20260123.dist-info/entry_points.txt' adding 'validate_pyproject-0.24.1.post1.dev0+g78f5e0f10.d20260123.dist-info/top_level.txt' adding 'validate_pyproject-0.24.1.post1.dev0+g78f5e0f10.d20260123.dist-info/RECORD' removing build/bdist.linux-riscv64/wheel Successfully built validate_pyproject-0.24.1.post1.dev0+g78f5e0f10.d20260123-py3-none-any.whl ==> Starting check()... ============================= test session starts ============================== platform linux -- Python 3.14.2, pytest-8.4.2, pluggy-1.6.0 rootdir: /build/python-validate-pyproject/src/validate-pyproject configfile: pyproject.toml testpaths: src, tests collected 576 items tests/pre_compile/test_cli.py .. [ 0%] tests/test_api.py .............. [ 2%] tests/test_caching.py .... [ 3%] tests/test_cli.py ..................... [ 7%] tests/test_error_reporting.py ...... [ 8%] tests/test_examples.py .................................F............... [ 16%] ...................................F...........................F........ [ 29%] ................................. [ 34%] tests/test_formats.py .................................................. [ 43%] ........................................................................ [ 56%] ............................................................... [ 67%] tests/test_json_schema_summary.py ........... [ 68%] tests/test_plugins.py ........... [ 70%] tests/test_pre_compile.py .............................................. [ 78%] ........................................................................ [ 91%] ...................................... [ 97%] tests/test_repo_review.py ......... [ 99%] tests/test_vendoring.py ... [100%] =================================== FAILURES =================================== ____________________ test_examples_api[store/example.toml] _____________________ self = http_class = req = http_conn_args = {'context': } host = 'json.schemastore.org' h = headers = {'Connection': 'close', 'Host': 'json.schemastore.org', 'User-Agent': 'Python-urllib/3.14'} def do_open(self, http_class, req, **http_conn_args): """Return an HTTPResponse object for the request, using http_class. http_class must implement the HTTPConnection API from http.client. """ host = req.host if not host: raise URLError('no host given') # will parse host:port h = http_class(host, timeout=req.timeout, **http_conn_args) h.set_debuglevel(self._debuglevel) headers = dict(req.unredirected_hdrs) headers.update({k: v for k, v in req.headers.items() if k not in headers}) # TODO(jhylton): Should this be redesigned to handle # persistent connections? # We want to make an HTTP/1.1 request, but the addinfourl # class isn't prepared to deal with a persistent connection. # It will try to read all remaining data from the socket, # which will block while the server waits for the next request. # So make sure the connection gets closed after the (only) # request. headers["Connection"] = "close" headers = {name.title(): val for name, val in headers.items()} if req._tunnel_host: tunnel_headers = {} proxy_auth_hdr = "Proxy-Authorization" if proxy_auth_hdr in headers: tunnel_headers[proxy_auth_hdr] = headers[proxy_auth_hdr] # Proxy-Authorization should not be sent to origin # server. del headers[proxy_auth_hdr] h.set_tunnel(req._tunnel_host, headers=tunnel_headers) try: try: > h.request(req.get_method(), req.selector, req.data, headers, encode_chunked=req.has_header('Transfer-encoding')) /usr/lib/python3.14/urllib/request.py:1321: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.14/http/client.py:1358: in request self._send_request(method, url, body, headers, encode_chunked) /usr/lib/python3.14/http/client.py:1404: in _send_request self.endheaders(body, encode_chunked=encode_chunked) /usr/lib/python3.14/http/client.py:1353: in endheaders self._send_output(message_body, encode_chunked=encode_chunked) /usr/lib/python3.14/http/client.py:1113: in _send_output self.send(msg) /usr/lib/python3.14/http/client.py:1057: in send self.connect() /usr/lib/python3.14/http/client.py:1492: in connect super().connect() /usr/lib/python3.14/http/client.py:1023: in connect self.sock = self._create_connection( /usr/lib/python3.14/socket.py:846: in create_connection for res in getaddrinfo(host, port, 0, SOCK_STREAM): ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ host = 'json.schemastore.org', port = 443, family = 0 type = , proto = 0, flags = 0 def getaddrinfo(host, port, family=0, type=0, proto=0, flags=0): """Resolve host and port into list of address info entries. Translate the host/port argument into a sequence of 5-tuples that contain all the necessary arguments for creating a socket connected to that service. host is a domain name, a string representation of an IPv4/v6 address or None. port is a string service name such as 'http', a numeric port number or None. By passing None as the value of host and port, you can pass NULL to the underlying C API. The family, type and proto arguments can be optionally specified in order to narrow the list of addresses returned. Passing zero as a value for each of these arguments selects the full range of results. """ # We override this function since we want to translate the numeric family # and socket type values to enum constants. addrlist = [] > for res in _socket.getaddrinfo(host, port, family, type, proto, flags): ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ E socket.gaierror: [Errno -3] Temporary failure in name resolution /usr/lib/python3.14/socket.py:983: gaierror During handling of the above exception, another exception occurred: example = PosixPath('/build/python-validate-pyproject/src/validate-pyproject/tests/examples/store/example.toml') def test_examples_api(example: Path) -> None: > load_tools = get_tools(example) ^^^^^^^^^^^^^^^^^^ tests/test_examples.py:15: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/helpers.py:34: in get_tools load_tools.extend(load_store(store)) test-env/lib/python3.14/site-packages/validate_pyproject/remote.py:79: in load_store rp = RemotePlugin.from_url(tool, info["$ref"]) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ test-env/lib/python3.14/site-packages/validate_pyproject/remote.py:50: in from_url fragment, schema = load_from_uri(url) ^^^^^^^^^^^^^^^^^^ test-env/lib/python3.14/site-packages/validate_pyproject/remote.py:31: in load_from_uri download = caching.as_file(http.open_url, url, cache_dir) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ test-env/lib/python3.14/site-packages/validate_pyproject/caching.py:27: in as_file return fn(arg) ^^^^^^^ test-env/lib/python3.14/site-packages/validate_pyproject/http.py:14: in open_url with urlopen(url) as response: # noqa: S310 ^^^^^^^^^^^^ /usr/lib/python3.14/urllib/request.py:187: in urlopen return opener.open(url, data, timeout) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3.14/urllib/request.py:487: in open response = self._open(req, data) ^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3.14/urllib/request.py:504: in _open result = self._call_chain(self.handle_open, protocol, protocol + /usr/lib/python3.14/urllib/request.py:464: in _call_chain result = func(*args) ^^^^^^^^^^^ /usr/lib/python3.14/urllib/request.py:1369: in https_open return self.do_open(http.client.HTTPSConnection, req, _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = http_class = req = http_conn_args = {'context': } host = 'json.schemastore.org' h = headers = {'Connection': 'close', 'Host': 'json.schemastore.org', 'User-Agent': 'Python-urllib/3.14'} def do_open(self, http_class, req, **http_conn_args): """Return an HTTPResponse object for the request, using http_class. http_class must implement the HTTPConnection API from http.client. """ host = req.host if not host: raise URLError('no host given') # will parse host:port h = http_class(host, timeout=req.timeout, **http_conn_args) h.set_debuglevel(self._debuglevel) headers = dict(req.unredirected_hdrs) headers.update({k: v for k, v in req.headers.items() if k not in headers}) # TODO(jhylton): Should this be redesigned to handle # persistent connections? # We want to make an HTTP/1.1 request, but the addinfourl # class isn't prepared to deal with a persistent connection. # It will try to read all remaining data from the socket, # which will block while the server waits for the next request. # So make sure the connection gets closed after the (only) # request. headers["Connection"] = "close" headers = {name.title(): val for name, val in headers.items()} if req._tunnel_host: tunnel_headers = {} proxy_auth_hdr = "Proxy-Authorization" if proxy_auth_hdr in headers: tunnel_headers[proxy_auth_hdr] = headers[proxy_auth_hdr] # Proxy-Authorization should not be sent to origin # server. del headers[proxy_auth_hdr] h.set_tunnel(req._tunnel_host, headers=tunnel_headers) try: try: h.request(req.get_method(), req.selector, req.data, headers, encode_chunked=req.has_header('Transfer-encoding')) except OSError as err: # timeout error > raise URLError(err) E urllib.error.URLError: /usr/lib/python3.14/urllib/request.py:1324: URLError ------------------------------ Captured log call ------------------------------- INFO validate_pyproject.remote:remote.py:78 Loading black from store: https://json.schemastore.org/pyproject.json INFO validate_pyproject.remote:remote.py:78 Loading cibuildwheel from store: https://json.schemastore.org/pyproject.json INFO validate_pyproject.remote:remote.py:78 Loading mypy from store: https://json.schemastore.org/pyproject.json INFO validate_pyproject.remote:remote.py:78 Loading ruff from store: https://json.schemastore.org/pyproject.json INFO validate_pyproject.remote:remote.py:78 Loading ty from store: https://json.schemastore.org/pyproject.json INFO validate_pyproject.remote:remote.py:78 Loading hatch from store: https://json.schemastore.org/pyproject.json INFO validate_pyproject.remote:remote.py:78 Loading maturin from store: https://json.schemastore.org/pyproject.json INFO validate_pyproject.remote:remote.py:78 Loading scikit-build from store: https://json.schemastore.org/pyproject.json INFO validate_pyproject.remote:remote.py:78 Loading setuptools_scm from store: https://json.schemastore.org/pyproject.json INFO validate_pyproject.remote:remote.py:78 Loading poe from store: https://json.schemastore.org/pyproject.json INFO validate_pyproject.remote:remote.py:78 Loading poetry from store: https://json.schemastore.org/pyproject.json INFO validate_pyproject.remote:remote.py:78 Loading pdm from store: https://json.schemastore.org/pyproject.json INFO validate_pyproject.remote:remote.py:78 Loading pyright from store: https://json.schemastore.org/pyproject.json ________ test_invalid_examples_api[store/cibw-overrides-noselect.toml] _________ self = http_class = req = http_conn_args = {'context': } host = 'www.schemastore.org' h = headers = {'Connection': 'close', 'Host': 'www.schemastore.org', 'User-Agent': 'Python-urllib/3.14'} def do_open(self, http_class, req, **http_conn_args): """Return an HTTPResponse object for the request, using http_class. http_class must implement the HTTPConnection API from http.client. """ host = req.host if not host: raise URLError('no host given') # will parse host:port h = http_class(host, timeout=req.timeout, **http_conn_args) h.set_debuglevel(self._debuglevel) headers = dict(req.unredirected_hdrs) headers.update({k: v for k, v in req.headers.items() if k not in headers}) # TODO(jhylton): Should this be redesigned to handle # persistent connections? # We want to make an HTTP/1.1 request, but the addinfourl # class isn't prepared to deal with a persistent connection. # It will try to read all remaining data from the socket, # which will block while the server waits for the next request. # So make sure the connection gets closed after the (only) # request. headers["Connection"] = "close" headers = {name.title(): val for name, val in headers.items()} if req._tunnel_host: tunnel_headers = {} proxy_auth_hdr = "Proxy-Authorization" if proxy_auth_hdr in headers: tunnel_headers[proxy_auth_hdr] = headers[proxy_auth_hdr] # Proxy-Authorization should not be sent to origin # server. del headers[proxy_auth_hdr] h.set_tunnel(req._tunnel_host, headers=tunnel_headers) try: try: > h.request(req.get_method(), req.selector, req.data, headers, encode_chunked=req.has_header('Transfer-encoding')) /usr/lib/python3.14/urllib/request.py:1321: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.14/http/client.py:1358: in request self._send_request(method, url, body, headers, encode_chunked) /usr/lib/python3.14/http/client.py:1404: in _send_request self.endheaders(body, encode_chunked=encode_chunked) /usr/lib/python3.14/http/client.py:1353: in endheaders self._send_output(message_body, encode_chunked=encode_chunked) /usr/lib/python3.14/http/client.py:1113: in _send_output self.send(msg) /usr/lib/python3.14/http/client.py:1057: in send self.connect() /usr/lib/python3.14/http/client.py:1492: in connect super().connect() /usr/lib/python3.14/http/client.py:1023: in connect self.sock = self._create_connection( /usr/lib/python3.14/socket.py:846: in create_connection for res in getaddrinfo(host, port, 0, SOCK_STREAM): ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ host = 'www.schemastore.org', port = 443, family = 0 type = , proto = 0, flags = 0 def getaddrinfo(host, port, family=0, type=0, proto=0, flags=0): """Resolve host and port into list of address info entries. Translate the host/port argument into a sequence of 5-tuples that contain all the necessary arguments for creating a socket connected to that service. host is a domain name, a string representation of an IPv4/v6 address or None. port is a string service name such as 'http', a numeric port number or None. By passing None as the value of host and port, you can pass NULL to the underlying C API. The family, type and proto arguments can be optionally specified in order to narrow the list of addresses returned. Passing zero as a value for each of these arguments selects the full range of results. """ # We override this function since we want to translate the numeric family # and socket type values to enum constants. addrlist = [] > for res in _socket.getaddrinfo(host, port, family, type, proto, flags): ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ E socket.gaierror: [Errno -3] Temporary failure in name resolution /usr/lib/python3.14/socket.py:983: gaierror During handling of the above exception, another exception occurred: invalid_example = PosixPath('/build/python-validate-pyproject/src/validate-pyproject/tests/invalid-examples/store/cibw-overrides-noselect.toml') def test_invalid_examples_api(invalid_example: Path) -> None: > load_tools = get_tools(invalid_example) ^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/test_examples.py:31: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/helpers.py:34: in get_tools load_tools.extend(load_store(store)) test-env/lib/python3.14/site-packages/validate_pyproject/remote.py:68: in load_store fragment, contents = load_from_uri(pyproject_url) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ test-env/lib/python3.14/site-packages/validate_pyproject/remote.py:31: in load_from_uri download = caching.as_file(http.open_url, url, cache_dir) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ test-env/lib/python3.14/site-packages/validate_pyproject/caching.py:27: in as_file return fn(arg) ^^^^^^^ test-env/lib/python3.14/site-packages/validate_pyproject/http.py:14: in open_url with urlopen(url) as response: # noqa: S310 ^^^^^^^^^^^^ /usr/lib/python3.14/urllib/request.py:187: in urlopen return opener.open(url, data, timeout) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3.14/urllib/request.py:493: in open response = meth(req, response) ^^^^^^^^^^^^^^^^^^^ /usr/lib/python3.14/urllib/request.py:602: in http_response response = self.parent.error( /usr/lib/python3.14/urllib/request.py:525: in error result = self._call_chain(*args) ^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3.14/urllib/request.py:464: in _call_chain result = func(*args) ^^^^^^^^^^^ /usr/lib/python3.14/urllib/request.py:718: in http_error_302 return self.parent.open(new, timeout=req.timeout) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3.14/urllib/request.py:487: in open response = self._open(req, data) ^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3.14/urllib/request.py:504: in _open result = self._call_chain(self.handle_open, protocol, protocol + /usr/lib/python3.14/urllib/request.py:464: in _call_chain result = func(*args) ^^^^^^^^^^^ /usr/lib/python3.14/urllib/request.py:1369: in https_open return self.do_open(http.client.HTTPSConnection, req, _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = http_class = req = http_conn_args = {'context': } host = 'www.schemastore.org' h = headers = {'Connection': 'close', 'Host': 'www.schemastore.org', 'User-Agent': 'Python-urllib/3.14'} def do_open(self, http_class, req, **http_conn_args): """Return an HTTPResponse object for the request, using http_class. http_class must implement the HTTPConnection API from http.client. """ host = req.host if not host: raise URLError('no host given') # will parse host:port h = http_class(host, timeout=req.timeout, **http_conn_args) h.set_debuglevel(self._debuglevel) headers = dict(req.unredirected_hdrs) headers.update({k: v for k, v in req.headers.items() if k not in headers}) # TODO(jhylton): Should this be redesigned to handle # persistent connections? # We want to make an HTTP/1.1 request, but the addinfourl # class isn't prepared to deal with a persistent connection. # It will try to read all remaining data from the socket, # which will block while the server waits for the next request. # So make sure the connection gets closed after the (only) # request. headers["Connection"] = "close" headers = {name.title(): val for name, val in headers.items()} if req._tunnel_host: tunnel_headers = {} proxy_auth_hdr = "Proxy-Authorization" if proxy_auth_hdr in headers: tunnel_headers[proxy_auth_hdr] = headers[proxy_auth_hdr] # Proxy-Authorization should not be sent to origin # server. del headers[proxy_auth_hdr] h.set_tunnel(req._tunnel_host, headers=tunnel_headers) try: try: h.request(req.get_method(), req.selector, req.data, headers, encode_chunked=req.has_header('Transfer-encoding')) except OSError as err: # timeout error > raise URLError(err) E urllib.error.URLError: /usr/lib/python3.14/urllib/request.py:1324: URLError _________ test_invalid_examples_cli[cibuildwheel/unknown-option.toml] __________ invalid_example = PosixPath('/build/python-validate-pyproject/src/validate-pyproject/tests/invalid-examples/cibuildwheel/unknown-option.toml') caplog = <_pytest.logging.LogCaptureFixture object at 0x3f82ca6e50> def test_invalid_examples_cli(invalid_example: Path, caplog) -> None: args = get_tools_as_args(invalid_example) caplog.set_level(logging.DEBUG) expected_error = error_file(invalid_example).read_text("utf-8") with pytest.raises(SystemExit) as exc_info: cli.main([str(invalid_example), *args]) assert exc_info.value.args == (1,) for error in expected_error.splitlines(): > assert error in caplog.text E assert "`tool.cibuildwheel` must not contain {'no-a-read-option'} properties" in 'ERROR validate_pyproject:cli.py:209 URLError: \n\nD...pen\n raise URLError(err)\nurllib.error.URLError: \n' E + where 'ERROR validate_pyproject:cli.py:209 URLError: \n\nD...pen\n raise URLError(err)\nurllib.error.URLError: \n' = <_pytest.logging.LogCaptureFixture object at 0x3f82ca6e50>.text tests/test_examples.py:54: AssertionError ------------------------------ Captured log call ------------------------------- ERROR validate_pyproject:cli.py:209 URLError: DEBUG validate_pyproject:cli.py:210 Please check the following information: Traceback (most recent call last): File "/usr/lib/python3.14/urllib/request.py", line 1321, in do_open h.request(req.get_method(), req.selector, req.data, headers, ~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ encode_chunked=req.has_header('Transfer-encoding')) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.14/http/client.py", line 1358, in request self._send_request(method, url, body, headers, encode_chunked) ~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.14/http/client.py", line 1404, in _send_request self.endheaders(body, encode_chunked=encode_chunked) ~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.14/http/client.py", line 1353, in endheaders self._send_output(message_body, encode_chunked=encode_chunked) ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.14/http/client.py", line 1113, in _send_output self.send(msg) ~~~~~~~~~^^^^^ File "/usr/lib/python3.14/http/client.py", line 1057, in send self.connect() ~~~~~~~~~~~~^^ File "/usr/lib/python3.14/http/client.py", line 1492, in connect super().connect() ~~~~~~~~~~~~~~~^^ File "/usr/lib/python3.14/http/client.py", line 1023, in connect self.sock = self._create_connection( ~~~~~~~~~~~~~~~~~~~~~~~^ (self.host,self.port), self.timeout, self.source_address) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.14/socket.py", line 846, in create_connection for res in getaddrinfo(host, port, 0, SOCK_STREAM): ~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.14/socket.py", line 983, in getaddrinfo for res in _socket.getaddrinfo(host, port, family, type, proto, flags): ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ socket.gaierror: [Errno -3] Temporary failure in name resolution During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/build/python-validate-pyproject/src/validate-pyproject/test-env/lib/python3.14/site-packages/validate_pyproject/cli.py", line 199, in exceptions2exit yield File "/usr/lib/python3.14/contextlib.py", line 85, in inner return func(*args, **kwds) File "/build/python-validate-pyproject/src/validate-pyproject/test-env/lib/python3.14/site-packages/validate_pyproject/cli.py", line 228, in run tool_plugins = [RemotePlugin.from_str(t) for t in params.tool] ~~~~~~~~~~~~~~~~~~~~~^^^ File "/build/python-validate-pyproject/src/validate-pyproject/test-env/lib/python3.14/site-packages/validate_pyproject/remote.py", line 58, in from_str return cls.from_url(tool, url) ~~~~~~~~~~~~^^^^^^^^^^^ File "/build/python-validate-pyproject/src/validate-pyproject/test-env/lib/python3.14/site-packages/validate_pyproject/remote.py", line 50, in from_url fragment, schema = load_from_uri(url) ~~~~~~~~~~~~~^^^^^ File "/build/python-validate-pyproject/src/validate-pyproject/test-env/lib/python3.14/site-packages/validate_pyproject/remote.py", line 31, in load_from_uri download = caching.as_file(http.open_url, url, cache_dir) File "/build/python-validate-pyproject/src/validate-pyproject/test-env/lib/python3.14/site-packages/validate_pyproject/caching.py", line 27, in as_file return fn(arg) File "/build/python-validate-pyproject/src/validate-pyproject/test-env/lib/python3.14/site-packages/validate_pyproject/http.py", line 14, in open_url with urlopen(url) as response: # noqa: S310 ~~~~~~~^^^^^ File "/usr/lib/python3.14/urllib/request.py", line 187, in urlopen return opener.open(url, data, timeout) ~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.14/urllib/request.py", line 487, in open response = self._open(req, data) File "/usr/lib/python3.14/urllib/request.py", line 504, in _open result = self._call_chain(self.handle_open, protocol, protocol + '_open', req) File "/usr/lib/python3.14/urllib/request.py", line 464, in _call_chain result = func(*args) File "/usr/lib/python3.14/urllib/request.py", line 1369, in https_open return self.do_open(http.client.HTTPSConnection, req, ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ context=self._context) ^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.14/urllib/request.py", line 1324, in do_open raise URLError(err) urllib.error.URLError: =============================== warnings summary =============================== test-env/lib/python3.14/site-packages/validate_pyproject/cli.py:54 /build/python-validate-pyproject/src/validate-pyproject/test-env/lib/python3.14/site-packages/validate_pyproject/cli.py:54: PendingDeprecationWarning: FileType is deprecated. Simply open files after parsing arguments. _STDIN = argparse.FileType("r")("-") test-env/lib/python3.14/site-packages/validate_pyproject/cli.py:66 /build/python-validate-pyproject/src/validate-pyproject/test-env/lib/python3.14/site-packages/validate_pyproject/cli.py:66: PendingDeprecationWarning: FileType is deprecated. Simply open files after parsing arguments. type=argparse.FileType("r"), -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html =========================== short test summary info ============================ FAILED tests/test_examples.py::test_examples_api[store/example.toml] - urllib... FAILED tests/test_examples.py::test_invalid_examples_api[store/cibw-overrides-noselect.toml] FAILED tests/test_examples.py::test_invalid_examples_cli[cibuildwheel/unknown-option.toml] ============ 3 failed, 573 passed, 2 warnings in 1102.60s (0:18:22) ============ ==> ERROR: A failure occurred in check().  Aborting... [!p]104[?7h]3008;end=4fcbe768bba14d0bb979c620ea0a2546\==> ERROR: Build failed, check /var/lib/archbuild/extra-riscv64/felix-0/build [?25h[?25h[?25hreceiving incremental file list python-validate-pyproject-0.24.1-3-riscv64-build.log python-validate-pyproject-0.24.1-3-riscv64-check.log python-validate-pyproject-0.24.1-3-riscv64-prepare.log sent 81 bytes received 6,272 bytes 2,541.20 bytes/sec total size is 42,696 speedup is 6.72