Sanity workflow is using ubuntu-latest, which, in combination with the recent change to tox-ansible ansible/tox-ansible@10d45dc breaks tests for py.3.13 and py3.14 in our environment due to missing dependancy.
Error is due to missing
Run sudo apt-get update sudo apt-get update sudo apt-get install -y libssh-dev shell: /usr/bin/bash -e {0} Get:1 file:/etc/apt/apt-mirrors.txt Mirrorlist [144 B] Hit:2 http://azure.archive.ubuntu.com/ubuntu noble InRelease Hit:6 https://packages.microsoft.com/repos/azure-cli noble InRelease Get:3 http://azure.archive.ubuntu.com/ubuntu noble-updates InRelease [126 kB] Get:4 http://azure.archive.ubuntu.com/ubuntu noble-backports InRelease [126 kB] Get:7 https://packages.microsoft.com/ubuntu/24.04/prod noble InRelease [3600 B] Get:5 http://azure.archive.ubuntu.com/ubuntu noble-security InRelease [126 kB] Get:8 http://azure.archive.ubuntu.com/ubuntu noble-updates/main amd64 Packages [1835 kB] Get:9 http://azure.archive.ubuntu.com/ubuntu noble-updates/main Translation-en [336 kB] Get:10 http://azure.archive.ubuntu.com/ubuntu noble-updates/main amd64 Components [177 kB] Get:11 http://azure.archive.ubuntu.com/ubuntu noble-updates/main amd64 c-n-f Metadata [16.7 kB] Get:12 http://azure.archive.ubuntu.com/ubuntu noble-updates/universe amd64 Packages [1566 kB] Get:13 http://azure.archive.ubuntu.com/ubuntu noble-updates/universe Translation-en [319 kB] Get:14 http://azure.archive.ubuntu.com/ubuntu noble-updates/universe amd64 Components [386 kB] Get:15 http://azure.archive.ubuntu.com/ubuntu noble-updates/universe amd64 c-n-f Metadata [33.0 kB] Get:16 http://azure.archive.ubuntu.com/ubuntu noble-updates/restricted amd64 Packages [2813 kB] Get:21 https://packages.microsoft.com/ubuntu/24.04/prod noble/main arm64 Packages [79.5 kB] Get:17 http://azure.archive.ubuntu.com/ubuntu noble-updates/restricted Translation-en [650 kB] Get:22 https://packages.microsoft.com/ubuntu/24.04/prod noble/main armhf Packages [11.4 kB] Get:23 https://packages.microsoft.com/ubuntu/24.04/prod noble/main amd64 Packages [101 kB] Get:18 http://azure.archive.ubuntu.com/ubuntu noble-updates/restricted amd64 Components [212 B] Get:19 http://azure.archive.ubuntu.com/ubuntu noble-updates/restricted amd64 c-n-f Metadata [556 B] Get:20 http://azure.archive.ubuntu.com/ubuntu noble-updates/multiverse amd64 Components [940 B] Get:24 http://azure.archive.ubuntu.com/ubuntu noble-backports/main amd64 Packages [40.4 kB] Get:25 http://azure.archive.ubuntu.com/ubuntu noble-backports/main amd64 Components [7348 B] Get:26 http://azure.archive.ubuntu.com/ubuntu noble-backports/main amd64 c-n-f Metadata [368 B] Get:27 http://azure.archive.ubuntu.com/ubuntu noble-backports/universe amd64 Packages [30.7 kB] Get:28 http://azure.archive.ubuntu.com/ubuntu noble-backports/universe Translation-en [18.2 kB] Get:29 http://azure.archive.ubuntu.com/ubuntu noble-backports/universe amd64 Components [13.2 kB] Get:30 http://azure.archive.ubuntu.com/ubuntu noble-backports/universe amd64 c-n-f Metadata [1480 B] Get:31 http://azure.archive.ubuntu.com/ubuntu noble-backports/restricted amd64 Components [216 B] Get:32 http://azure.archive.ubuntu.com/ubuntu noble-backports/multiverse amd64 Packages [780 B] Get:33 http://azure.archive.ubuntu.com/ubuntu noble-backports/multiverse Translation-en [372 B] Get:34 http://azure.archive.ubuntu.com/ubuntu noble-backports/multiverse amd64 Components [212 B] Get:35 http://azure.archive.ubuntu.com/ubuntu noble-security/main amd64 Packages [1538 kB] Get:36 http://azure.archive.ubuntu.com/ubuntu noble-security/main Translation-en [246 kB] Get:37 http://azure.archive.ubuntu.com/ubuntu noble-security/main amd64 Components [21.5 kB] Get:38 http://azure.archive.ubuntu.com/ubuntu noble-security/main amd64 c-n-f Metadata [10.5 kB] Get:39 http://azure.archive.ubuntu.com/ubuntu noble-security/universe amd64 Packages [976 kB] Get:40 http://azure.archive.ubuntu.com/ubuntu noble-security/universe Translation-en [219 kB] Get:41 http://azure.archive.ubuntu.com/ubuntu noble-security/universe amd64 Components [74.2 kB] Get:42 http://azure.archive.ubuntu.com/ubuntu noble-security/universe amd64 c-n-f Metadata [20.8 kB] Get:43 http://azure.archive.ubuntu.com/ubuntu noble-security/restricted amd64 Packages [2677 kB] Get:44 http://azure.archive.ubuntu.com/ubuntu noble-security/restricted Translation-en [622 kB] Get:45 http://azure.archive.ubuntu.com/ubuntu noble-security/restricted amd64 Components [212 B] Get:46 http://azure.archive.ubuntu.com/ubuntu noble-security/restricted amd64 c-n-f Metadata [544 B] Get:47 http://azure.archive.ubuntu.com/ubuntu noble-security/multiverse amd64 Components [212 B] Fetched 15.2 MB in 2s (8534 kB/s) Reading package lists... Reading package lists... Building dependency tree... Reading state information... The following additional packages will be installed: libssh-4 Suggested packages: libssh-doc The following NEW packages will be installed: libssh-dev The following packages will be upgraded: libssh-4 1 upgraded, 1 newly installed, 0 to remove and 89 not upgraded. Need to get 440 kB of archives. After this operation, 1188 kB of additional disk space will be used. Get:1 file:/etc/apt/apt-mirrors.txt Mirrorlist [144 B] Get:2 http://azure.archive.ubuntu.com/ubuntu noble-updates/main amd64 libssh-4 amd64 0.10.6-2ubuntu0.3 [190 kB] Get:3 http://azure.archive.ubuntu.com/ubuntu noble-updates/main amd64 libssh-dev amd64 0.10.6-2ubuntu0.3 [250 kB] Fetched 440 kB in 0s (2530 kB/s) (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 219144 files and directories currently installed.) Preparing to unpack .../libssh-4_0.10.6-2ubuntu0.3_amd64.deb ... Unpacking libssh-4:amd64 (0.10.6-2ubuntu0.3) over (0.10.6-2ubuntu0.2) ... Selecting previously unselected package libssh-dev:amd64. Preparing to unpack .../libssh-dev_0.10.6-2ubuntu0.3_amd64.deb ... Unpacking libssh-dev:amd64 (0.10.6-2ubuntu0.3) ... Setting up libssh-4:amd64 (0.10.6-2ubuntu0.3) ... Setting up libssh-dev:amd64 (0.10.6-2ubuntu0.3) ... Processing triggers for libc-bin (2.39-0ubuntu8.7) ... Running kernel seems to be up-to-date. Restarting services... systemctl restart packagekit.service php8.3-fpm.service No containers need to be restarted. No user sessions are running outdated binaries. No VM guests are running outdated hypervisor (qemu) binaries on this host. error for some still: Run python -m tox --ansible -e sanity-py3.13-2.18 --conf tox-ansible.ini python -m tox --ansible -e sanity-py3.13-2.18 --conf tox-ansible.ini shell: /usr/bin/bash -e {0} env: pythonLocation: /opt/hostedtoolcache/Python/3.13.12/x64 PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.13.12/x64/lib/pkgconfig Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.13.12/x64 Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.13.12/x64 Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.13.12/x64 LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.13.12/x64/lib GITHUB_TOKEN: *** sanity-py3.13-2.18: install_deps> python -I -m pip install 'ansible-dev-environment>=26.2.0' sanity-py3.13-2.18: freeze> python -m pip freeze --all sanity-py3.13-2.18: ansible-builder==3.1.1,ansible-dev-environment==26.2.0,attrs==25.4.0,bindep==2.13.0,distro==1.9.0,jsonschema==4.26.0,jsonschema-specifications==2025.9.1,packaging==26.0,Parsley==1.3,pbr==7.0.3,pip==26.0.1,PyYAML==6.0.3,referencing==0.37.0,rpds-py==0.30.0,setuptools==82.0.1,subprocess-tee==0.4.2 sanity-py3.13-2.18: commands_pre[0]> echo ::group::Install collection with ade Install collection with ade sanity-py3.13-2.18: commands_pre[1]> bash -c 'ade install --venv /home/runner/work/vyos.vyos/vyos.vyos/.tox/sanity-py3.13-2.18 --acv stable-2.18 --no-seed --im none .; rc=$?; if [ $rc -ne 0 ] && [ $rc -ne 2 ]; then exit $rc; fi' Warning: An unisolated development environment can cause issues with conflicting dependency versions and the use of incompatible collections. Critical: Failed to install requirements from /home/runner/work/vyos.vyos/vyos.vyos/.tox/sanity-py3.13-2.18/.ansible-dev-environment/discovered_requirements.txt: Got 1 return code from: /home/runner/work/vyos.vyos/vyos.vyos/.tox/sanity-py3.13-2.18/bin/python -m pip install -r /home/runner/work/vyos.vyos/vyos.vyos/.tox/sanity-py3.13-2.18/.ansible-dev-environment/discovered_requirements.txt stdout: Collecting ansible-pylibssh>=0.2.0 (from -r /home/runner/work/vyos.vyos/vyos.vyos/.tox/sanity-py3.13-2.18/.ansible-dev-environment/discovered_requirements.txt (line 1)) Downloading ansible-pylibssh-1.3.0.tar.gz (151 kB) Installing build dependencies: started Installing build dependencies: finished with status 'done' Getting requirements to build wheel: started Getting requirements to build wheel: finished with status 'done' Installing backend dependencies: started Installing backend dependencies: finished with status 'done' Preparing metadata (pyproject.toml): started Preparing metadata (pyproject.toml): finished with status 'done' Collecting jxmlease (from -r /home/runner/work/vyos.vyos/vyos.vyos/.tox/sanity-py3.13-2.18/.ansible-dev-environment/discovered_requirements.txt (line 2)) Downloading jxmlease-1.0.3-py2.py3-none-any.whl.metadata (980 bytes) Collecting ncclient (from -r /home/runner/work/vyos.vyos/vyos.vyos/.tox/sanity-py3.13-2.18/.ansible-dev-environment/discovered_requirements.txt (line 3)) Downloading ncclient-0.7.0.tar.gz (116 kB) Installing build dependencies: started Installing build dependencies: finished with status 'done' Getting requirements to build wheel: started Getting requirements to build wheel: finished with status 'done' Preparing metadata (pyproject.toml): started Preparing metadata (pyproject.toml): finished with status 'done' Collecting paramiko (from -r /home/runner/work/vyos.vyos/vyos.vyos/.tox/sanity-py3.13-2.18/.ansible-dev-environment/discovered_requirements.txt (line 4)) Downloading paramiko-4.0.0-py3-none-any.whl.metadata (3.9 kB) Collecting xmltodict (from -r /home/runner/work/vyos.vyos/vyos.vyos/.tox/sanity-py3.13-2.18/.ansible-dev-environment/discovered_requirements.txt (line 5)) Downloading xmltodict-1.0.4-py3-none-any.whl.metadata (14 kB) Collecting grpcio (from -r /home/runner/work/vyos.vyos/vyos.vyos/.tox/sanity-py3.13-2.18/.ansible-dev-environment/discovered_requirements.txt (line 6)) Downloading grpcio-1.78.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.metadata (3.8 kB) Collecting protobuf (from -r /home/runner/work/vyos.vyos/vyos.vyos/.tox/sanity-py3.13-2.18/.ansible-dev-environment/discovered_requirements.txt (line 7)) Downloading protobuf-7.34.0-cp310-abi3-manylinux2014_x86_64.whl.metadata (595 bytes) Requirement already satisfied: jsonschema in ./.tox/sanity-py3.13-2.18/lib/python3.13/site-packages (from -r /home/runner/work/vyos.vyos/vyos.vyos/.tox/sanity-py3.13-2.18/.ansible-dev-environment/discovered_requirements.txt (line 8)) (4.26.0) Collecting textfsm (from -r /home/runner/work/vyos.vyos/vyos.vyos/.tox/sanity-py3.13-2.18/.ansible-dev-environment/discovered_requirements.txt (line 9)) Downloading textfsm-2.1.0-py2.py3-none-any.whl.metadata (2.7 kB) Collecting ttp (from -r /home/runner/work/vyos.vyos/vyos.vyos/.tox/sanity-py3.13-2.18/.ansible-dev-environment/discovered_requirements.txt (line 10)) Downloading ttp-0.10.0-py3-none-any.whl.metadata (9.2 kB) Collecting netaddr>=0.10.1 (from -r /home/runner/work/vyos.vyos/vyos.vyos/.tox/sanity-py3.13-2.18/.ansible-dev-environment/discovered_requirements.txt (line 12)) Downloading netaddr-1.3.0-py3-none-any.whl.metadata (5.0 kB) Collecting scp (from -r /home/runner/work/vyos.vyos/vyos.vyos/.tox/sanity-py3.13-2.18/.ansible-dev-environment/discovered_requirements.txt (line 14)) Downloading scp-0.15.0-py2.py3-none-any.whl.metadata (4.3 kB) Collecting lxml>=3.3.0 (from ncclient->-r /home/runner/work/vyos.vyos/vyos.vyos/.tox/sanity-py3.13-2.18/.ansible-dev-environment/discovered_requirements.txt (line 3)) Note: Installed collections include: ansible.netcommon, ansible.utils, and vyos.vyos Downloading lxml-6.0.2-cp313-cp313-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl.metadata (3.6 kB) Collecting bcrypt>=3.2 (from paramiko->-r /home/runner/work/vyos.vyos/vyos.vyos/.tox/sanity-py3.13-2.18/.ansible-dev-environment/discovered_requirements.txt (line 4)) Downloading bcrypt-5.0.0-cp39-abi3-manylinux_2_34_x86_64.whl.metadata (10 kB) Requirement already satisfied: cryptography>=3.3 in ./.tox/sanity-py3.13-2.18/lib/python3.13/site-packages (from paramiko->-r /home/runner/work/vyos.vyos/vyos.vyos/.tox/sanity-py3.13-2.18/.ansible-dev-environment/discovered_requirements.txt (line 4)) (46.0.5) Collecting invoke>=2.0 (from paramiko->-r /home/runner/work/vyos.vyos/vyos.vyos/.tox/sanity-py3.13-2.18/.ansible-dev-environment/discovered_requirements.txt (line 4)) Downloading invoke-2.2.1-py3-none-any.whl.metadata (3.3 kB) Collecting pynacl>=1.5 (from paramiko->-r /home/runner/work/vyos.vyos/vyos.vyos/.tox/sanity-py3.13-2.18/.ansible-dev-environment/discovered_requirements.txt (line 4)) Downloading pynacl-1.6.2-cp38-abi3-manylinux_2_34_x86_64.whl.metadata (10.0 kB) Collecting typing-extensions~=4.12 (from grpcio->-r /home/runner/work/vyos.vyos/vyos.vyos/.tox/sanity-py3.13-2.18/.ansible-dev-environment/discovered_requirements.txt (line 6)) Downloading typing_extensions-4.15.0-py3-none-any.whl.metadata (3.3 kB) Requirement already satisfied: attrs>=22.2.0 in ./.tox/sanity-py3.13-2.18/lib/python3.13/site-packages (from jsonschema->-r /home/runner/work/vyos.vyos/vyos.vyos/.tox/sanity-py3.13-2.18/.ansible-dev-environment/discovered_requirements.txt (line 8)) (25.4.0) Requirement already satisfied: jsonschema-specifications>=2023.03.6 in ./.tox/sanity-py3.13-2.18/lib/python3.13/site-packages (from jsonschema->-r /home/runner/work/vyos.vyos/vyos.vyos/.tox/sanity-py3.13-2.18/.ansible-dev-environment/discovered_requirements.txt (line 8)) (2025.9.1) Requirement already satisfied: referencing>=0.28.4 in ./.tox/sanity-py3.13-2.18/lib/python3.13/site-packages (from jsonschema->-r /home/runner/work/vyos.vyos/vyos.vyos/.tox/sanity-py3.13-2.18/.ansible-dev-environment/discovered_requirements.txt (line 8)) (0.37.0) Requirement already satisfied: rpds-py>=0.25.0 in ./.tox/sanity-py3.13-2.18/lib/python3.13/site-packages (from jsonschema->-r /home/runner/work/vyos.vyos/vyos.vyos/.tox/sanity-py3.13-2.18/.ansible-dev-environment/discovered_requirements.txt (line 8)) (0.30.0) Requirement already satisfied: cffi>=2.0.0 in ./.tox/sanity-py3.13-2.18/lib/python3.13/site-packages (from cryptography>=3.3->paramiko->-r /home/runner/work/vyos.vyos/vyos.vyos/.tox/sanity-py3.13-2.18/.ansible-dev-environment/discovered_requirements.txt (line 4)) (2.0.0) Requirement already satisfied: pycparser in ./.tox/sanity-py3.13-2.18/lib/python3.13/site-packages (from cffi>=2.0.0->cryptography>=3.3->paramiko->-r /home/runner/work/vyos.vyos/vyos.vyos/.tox/sanity-py3.13-2.18/.ansible-dev-environment/discovered_requirements.txt (line 4)) (3.0) Downloading jxmlease-1.0.3-py2.py3-none-any.whl (37 kB) Downloading paramiko-4.0.0-py3-none-any.whl (223 kB) Downloading xmltodict-1.0.4-py3-none-any.whl (13 kB) Downloading grpcio-1.78.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (6.7 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 6.7/6.7 MB 18.3 MB/s 0:00:00 Downloading typing_extensions-4.15.0-py3-none-any.whl (44 kB) Downloading protobuf-7.34.0-cp310-abi3-manylinux2014_x86_64.whl (324 kB) Downloading textfsm-2.1.0-py2.py3-none-any.whl (44 kB) Downloading ttp-0.10.0-py3-none-any.whl (84 kB) Downloading netaddr-1.3.0-py3-none-any.whl (2.3 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.3/2.3 MB 35.2 MB/s 0:00:00 Downloading scp-0.15.0-py2.py3-none-any.whl (8.8 kB) Downloading bcrypt-5.0.0-cp39-abi3-manylinux_2_34_x86_64.whl (278 kB) Downloading invoke-2.2.1-py3-none-any.whl (160 kB) Downloading lxml-6.0.2-cp313-cp313-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl (5.2 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 5.2/5.2 MB 44.5 MB/s 0:00:00 Downloading pynacl-1.6.2-cp38-abi3-manylinux_2_34_x86_64.whl (1.4 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.4/1.4 MB 55.7 MB/s 0:00:00 Building wheels for collected packages: ansible-pylibssh, ncclient Building wheel for ansible-pylibssh (pyproject.toml): started Building wheel for ansible-pylibssh (pyproject.toml): finished with status 'error' Building wheel for ncclient (pyproject.toml): started Building wheel for ncclient (pyproject.toml): finished with status 'done' Created wheel for ncclient: filename=ncclient-0.7.0-py3-none-any.whl size=94121 sha256=bc6fce748feca1b6bce6abba6ab2549b45b3b94eee0bfa84baa9105b7a74ecde Stored in directory: /home/runner/work/vyos.vyos/vyos.vyos/.tox/sanity-py3.13-2.18/.cache/pip/wheels/37/22/6a/283b8735553d2790c6f534dc17301734fd636aa645d5039437 Successfully built ncclient Failed to build ansible-pylibssh stderr: error: subprocess-exited-with-error × Building wheel for ansible-pylibssh (pyproject.toml) did not run successfully. │ exit code: 1 ╰─> [11 lines of output] [1/1] Cythonizing /tmp/.tmp-ansible-pylibssh-pep517-7zq0cl46/src/src/pylibsshext/session.pyx [1/1] Cythonizing /tmp/.tmp-ansible-pylibssh-pep517-7zq0cl46/src/src/pylibsshext/sftp.pyx [1/1] Cythonizing /tmp/.tmp-ansible-pylibssh-pep517-7zq0cl46/src/src/pylibsshext/scp.pyx [1/1] Cythonizing /tmp/.tmp-ansible-pylibssh-pep517-7zq0cl46/src/src/pylibsshext/_libssh_version.pyx [1/1] Cythonizing /tmp/.tmp-ansible-pylibssh-pep517-7zq0cl46/src/src/pylibsshext/errors.pyx [1/1] Cythonizing /tmp/.tmp-ansible-pylibssh-pep517-7zq0cl46/src/src/pylibsshext/channel.pyx /tmp/.tmp-ansible-pylibssh-pep517-7zq0cl46/src/src/pylibsshext/session.c:1137:10: fatal error: libssh/libssh.h: No such file or directory 1137 | #include "libssh/libssh.h" | ^~~~~~~~~~~~~~~~~ compilation terminated. error: command '/usr/bin/gcc' failed with exit code 1 [end of output] note: This error originates from a subprocess, and is likely not a problem with pip. ERROR: Failed building wheel for ansible-pylibssh error: failed-wheel-build-for-install × Failed to build installable wheels for some pyproject.toml based projects ╰─> ansible-pylibssh sanity-py3.13-2.18: exit 1 (27.66 seconds) /home/runner/work/vyos.vyos/vyos.vyos> bash -c 'ade install --venv /home/runner/work/vyos.vyos/vyos.vyos/.tox/sanity-py3.13-2.18 --acv stable-2.18 --no-seed --im none .; rc=$?; if [ $rc -ne 0 ] && [ $rc -ne 2 ]; then exit $rc; fi' pid=2413 sanity-py3.13-2.18: FAIL code 1 (32.16=setup[4.50]+cmd[0.00,27.66] seconds) evaluation failed :( (32.32 seconds) Error: Process completed with exit code 1.
Sanity workflow is using ubuntu-latest, which, in combination with the recent change to tox-ansible ansible/tox-ansible@10d45dc breaks tests for py.3.13 and py3.14 in our environment due to missing dependancy.
Error is due to missing
Run sudo apt-get update sudo apt-get update sudo apt-get install -y libssh-dev shell: /usr/bin/bash -e {0} Get:1 file:/etc/apt/apt-mirrors.txt Mirrorlist [144 B] Hit:2 http://azure.archive.ubuntu.com/ubuntu noble InRelease Hit:6 https://packages.microsoft.com/repos/azure-cli noble InRelease Get:3 http://azure.archive.ubuntu.com/ubuntu noble-updates InRelease [126 kB] Get:4 http://azure.archive.ubuntu.com/ubuntu noble-backports InRelease [126 kB] Get:7 https://packages.microsoft.com/ubuntu/24.04/prod noble InRelease [3600 B] Get:5 http://azure.archive.ubuntu.com/ubuntu noble-security InRelease [126 kB] Get:8 http://azure.archive.ubuntu.com/ubuntu noble-updates/main amd64 Packages [1835 kB] Get:9 http://azure.archive.ubuntu.com/ubuntu noble-updates/main Translation-en [336 kB] Get:10 http://azure.archive.ubuntu.com/ubuntu noble-updates/main amd64 Components [177 kB] Get:11 http://azure.archive.ubuntu.com/ubuntu noble-updates/main amd64 c-n-f Metadata [16.7 kB] Get:12 http://azure.archive.ubuntu.com/ubuntu noble-updates/universe amd64 Packages [1566 kB] Get:13 http://azure.archive.ubuntu.com/ubuntu noble-updates/universe Translation-en [319 kB] Get:14 http://azure.archive.ubuntu.com/ubuntu noble-updates/universe amd64 Components [386 kB] Get:15 http://azure.archive.ubuntu.com/ubuntu noble-updates/universe amd64 c-n-f Metadata [33.0 kB] Get:16 http://azure.archive.ubuntu.com/ubuntu noble-updates/restricted amd64 Packages [2813 kB] Get:21 https://packages.microsoft.com/ubuntu/24.04/prod noble/main arm64 Packages [79.5 kB] Get:17 http://azure.archive.ubuntu.com/ubuntu noble-updates/restricted Translation-en [650 kB] Get:22 https://packages.microsoft.com/ubuntu/24.04/prod noble/main armhf Packages [11.4 kB] Get:23 https://packages.microsoft.com/ubuntu/24.04/prod noble/main amd64 Packages [101 kB] Get:18 http://azure.archive.ubuntu.com/ubuntu noble-updates/restricted amd64 Components [212 B] Get:19 http://azure.archive.ubuntu.com/ubuntu noble-updates/restricted amd64 c-n-f Metadata [556 B] Get:20 http://azure.archive.ubuntu.com/ubuntu noble-updates/multiverse amd64 Components [940 B] Get:24 http://azure.archive.ubuntu.com/ubuntu noble-backports/main amd64 Packages [40.4 kB] Get:25 http://azure.archive.ubuntu.com/ubuntu noble-backports/main amd64 Components [7348 B] Get:26 http://azure.archive.ubuntu.com/ubuntu noble-backports/main amd64 c-n-f Metadata [368 B] Get:27 http://azure.archive.ubuntu.com/ubuntu noble-backports/universe amd64 Packages [30.7 kB] Get:28 http://azure.archive.ubuntu.com/ubuntu noble-backports/universe Translation-en [18.2 kB] Get:29 http://azure.archive.ubuntu.com/ubuntu noble-backports/universe amd64 Components [13.2 kB] Get:30 http://azure.archive.ubuntu.com/ubuntu noble-backports/universe amd64 c-n-f Metadata [1480 B] Get:31 http://azure.archive.ubuntu.com/ubuntu noble-backports/restricted amd64 Components [216 B] Get:32 http://azure.archive.ubuntu.com/ubuntu noble-backports/multiverse amd64 Packages [780 B] Get:33 http://azure.archive.ubuntu.com/ubuntu noble-backports/multiverse Translation-en [372 B] Get:34 http://azure.archive.ubuntu.com/ubuntu noble-backports/multiverse amd64 Components [212 B] Get:35 http://azure.archive.ubuntu.com/ubuntu noble-security/main amd64 Packages [1538 kB] Get:36 http://azure.archive.ubuntu.com/ubuntu noble-security/main Translation-en [246 kB] Get:37 http://azure.archive.ubuntu.com/ubuntu noble-security/main amd64 Components [21.5 kB] Get:38 http://azure.archive.ubuntu.com/ubuntu noble-security/main amd64 c-n-f Metadata [10.5 kB] Get:39 http://azure.archive.ubuntu.com/ubuntu noble-security/universe amd64 Packages [976 kB] Get:40 http://azure.archive.ubuntu.com/ubuntu noble-security/universe Translation-en [219 kB] Get:41 http://azure.archive.ubuntu.com/ubuntu noble-security/universe amd64 Components [74.2 kB] Get:42 http://azure.archive.ubuntu.com/ubuntu noble-security/universe amd64 c-n-f Metadata [20.8 kB] Get:43 http://azure.archive.ubuntu.com/ubuntu noble-security/restricted amd64 Packages [2677 kB] Get:44 http://azure.archive.ubuntu.com/ubuntu noble-security/restricted Translation-en [622 kB] Get:45 http://azure.archive.ubuntu.com/ubuntu noble-security/restricted amd64 Components [212 B] Get:46 http://azure.archive.ubuntu.com/ubuntu noble-security/restricted amd64 c-n-f Metadata [544 B] Get:47 http://azure.archive.ubuntu.com/ubuntu noble-security/multiverse amd64 Components [212 B] Fetched 15.2 MB in 2s (8534 kB/s) Reading package lists... Reading package lists... Building dependency tree... Reading state information... The following additional packages will be installed: libssh-4 Suggested packages: libssh-doc The following NEW packages will be installed: libssh-dev The following packages will be upgraded: libssh-4 1 upgraded, 1 newly installed, 0 to remove and 89 not upgraded. Need to get 440 kB of archives. After this operation, 1188 kB of additional disk space will be used. Get:1 file:/etc/apt/apt-mirrors.txt Mirrorlist [144 B] Get:2 http://azure.archive.ubuntu.com/ubuntu noble-updates/main amd64 libssh-4 amd64 0.10.6-2ubuntu0.3 [190 kB] Get:3 http://azure.archive.ubuntu.com/ubuntu noble-updates/main amd64 libssh-dev amd64 0.10.6-2ubuntu0.3 [250 kB] Fetched 440 kB in 0s (2530 kB/s) (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 219144 files and directories currently installed.) Preparing to unpack .../libssh-4_0.10.6-2ubuntu0.3_amd64.deb ... Unpacking libssh-4:amd64 (0.10.6-2ubuntu0.3) over (0.10.6-2ubuntu0.2) ... Selecting previously unselected package libssh-dev:amd64. Preparing to unpack .../libssh-dev_0.10.6-2ubuntu0.3_amd64.deb ... Unpacking libssh-dev:amd64 (0.10.6-2ubuntu0.3) ... Setting up libssh-4:amd64 (0.10.6-2ubuntu0.3) ... Setting up libssh-dev:amd64 (0.10.6-2ubuntu0.3) ... Processing triggers for libc-bin (2.39-0ubuntu8.7) ... Running kernel seems to be up-to-date. Restarting services... systemctl restart packagekit.service php8.3-fpm.service No containers need to be restarted. No user sessions are running outdated binaries. No VM guests are running outdated hypervisor (qemu) binaries on this host. error for some still: Run python -m tox --ansible -e sanity-py3.13-2.18 --conf tox-ansible.ini python -m tox --ansible -e sanity-py3.13-2.18 --conf tox-ansible.ini shell: /usr/bin/bash -e {0} env: pythonLocation: /opt/hostedtoolcache/Python/3.13.12/x64 PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.13.12/x64/lib/pkgconfig Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.13.12/x64 Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.13.12/x64 Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.13.12/x64 LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.13.12/x64/lib GITHUB_TOKEN: *** sanity-py3.13-2.18: install_deps> python -I -m pip install 'ansible-dev-environment>=26.2.0' sanity-py3.13-2.18: freeze> python -m pip freeze --all sanity-py3.13-2.18: ansible-builder==3.1.1,ansible-dev-environment==26.2.0,attrs==25.4.0,bindep==2.13.0,distro==1.9.0,jsonschema==4.26.0,jsonschema-specifications==2025.9.1,packaging==26.0,Parsley==1.3,pbr==7.0.3,pip==26.0.1,PyYAML==6.0.3,referencing==0.37.0,rpds-py==0.30.0,setuptools==82.0.1,subprocess-tee==0.4.2 sanity-py3.13-2.18: commands_pre[0]> echo ::group::Install collection with ade Install collection with ade sanity-py3.13-2.18: commands_pre[1]> bash -c 'ade install --venv /home/runner/work/vyos.vyos/vyos.vyos/.tox/sanity-py3.13-2.18 --acv stable-2.18 --no-seed --im none .; rc=$?; if [ $rc -ne 0 ] && [ $rc -ne 2 ]; then exit $rc; fi' Warning: An unisolated development environment can cause issues with conflicting dependency versions and the use of incompatible collections. Critical: Failed to install requirements from /home/runner/work/vyos.vyos/vyos.vyos/.tox/sanity-py3.13-2.18/.ansible-dev-environment/discovered_requirements.txt: Got 1 return code from: /home/runner/work/vyos.vyos/vyos.vyos/.tox/sanity-py3.13-2.18/bin/python -m pip install -r /home/runner/work/vyos.vyos/vyos.vyos/.tox/sanity-py3.13-2.18/.ansible-dev-environment/discovered_requirements.txt stdout: Collecting ansible-pylibssh>=0.2.0 (from -r /home/runner/work/vyos.vyos/vyos.vyos/.tox/sanity-py3.13-2.18/.ansible-dev-environment/discovered_requirements.txt (line 1)) Downloading ansible-pylibssh-1.3.0.tar.gz (151 kB) Installing build dependencies: started Installing build dependencies: finished with status 'done' Getting requirements to build wheel: started Getting requirements to build wheel: finished with status 'done' Installing backend dependencies: started Installing backend dependencies: finished with status 'done' Preparing metadata (pyproject.toml): started Preparing metadata (pyproject.toml): finished with status 'done' Collecting jxmlease (from -r /home/runner/work/vyos.vyos/vyos.vyos/.tox/sanity-py3.13-2.18/.ansible-dev-environment/discovered_requirements.txt (line 2)) Downloading jxmlease-1.0.3-py2.py3-none-any.whl.metadata (980 bytes) Collecting ncclient (from -r /home/runner/work/vyos.vyos/vyos.vyos/.tox/sanity-py3.13-2.18/.ansible-dev-environment/discovered_requirements.txt (line 3)) Downloading ncclient-0.7.0.tar.gz (116 kB) Installing build dependencies: started Installing build dependencies: finished with status 'done' Getting requirements to build wheel: started Getting requirements to build wheel: finished with status 'done' Preparing metadata (pyproject.toml): started Preparing metadata (pyproject.toml): finished with status 'done' Collecting paramiko (from -r /home/runner/work/vyos.vyos/vyos.vyos/.tox/sanity-py3.13-2.18/.ansible-dev-environment/discovered_requirements.txt (line 4)) Downloading paramiko-4.0.0-py3-none-any.whl.metadata (3.9 kB) Collecting xmltodict (from -r /home/runner/work/vyos.vyos/vyos.vyos/.tox/sanity-py3.13-2.18/.ansible-dev-environment/discovered_requirements.txt (line 5)) Downloading xmltodict-1.0.4-py3-none-any.whl.metadata (14 kB) Collecting grpcio (from -r /home/runner/work/vyos.vyos/vyos.vyos/.tox/sanity-py3.13-2.18/.ansible-dev-environment/discovered_requirements.txt (line 6)) Downloading grpcio-1.78.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.metadata (3.8 kB) Collecting protobuf (from -r /home/runner/work/vyos.vyos/vyos.vyos/.tox/sanity-py3.13-2.18/.ansible-dev-environment/discovered_requirements.txt (line 7)) Downloading protobuf-7.34.0-cp310-abi3-manylinux2014_x86_64.whl.metadata (595 bytes) Requirement already satisfied: jsonschema in ./.tox/sanity-py3.13-2.18/lib/python3.13/site-packages (from -r /home/runner/work/vyos.vyos/vyos.vyos/.tox/sanity-py3.13-2.18/.ansible-dev-environment/discovered_requirements.txt (line 8)) (4.26.0) Collecting textfsm (from -r /home/runner/work/vyos.vyos/vyos.vyos/.tox/sanity-py3.13-2.18/.ansible-dev-environment/discovered_requirements.txt (line 9)) Downloading textfsm-2.1.0-py2.py3-none-any.whl.metadata (2.7 kB) Collecting ttp (from -r /home/runner/work/vyos.vyos/vyos.vyos/.tox/sanity-py3.13-2.18/.ansible-dev-environment/discovered_requirements.txt (line 10)) Downloading ttp-0.10.0-py3-none-any.whl.metadata (9.2 kB) Collecting netaddr>=0.10.1 (from -r /home/runner/work/vyos.vyos/vyos.vyos/.tox/sanity-py3.13-2.18/.ansible-dev-environment/discovered_requirements.txt (line 12)) Downloading netaddr-1.3.0-py3-none-any.whl.metadata (5.0 kB) Collecting scp (from -r /home/runner/work/vyos.vyos/vyos.vyos/.tox/sanity-py3.13-2.18/.ansible-dev-environment/discovered_requirements.txt (line 14)) Downloading scp-0.15.0-py2.py3-none-any.whl.metadata (4.3 kB) Collecting lxml>=3.3.0 (from ncclient->-r /home/runner/work/vyos.vyos/vyos.vyos/.tox/sanity-py3.13-2.18/.ansible-dev-environment/discovered_requirements.txt (line 3)) Note: Installed collections include: ansible.netcommon, ansible.utils, and vyos.vyos Downloading lxml-6.0.2-cp313-cp313-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl.metadata (3.6 kB) Collecting bcrypt>=3.2 (from paramiko->-r /home/runner/work/vyos.vyos/vyos.vyos/.tox/sanity-py3.13-2.18/.ansible-dev-environment/discovered_requirements.txt (line 4)) Downloading bcrypt-5.0.0-cp39-abi3-manylinux_2_34_x86_64.whl.metadata (10 kB) Requirement already satisfied: cryptography>=3.3 in ./.tox/sanity-py3.13-2.18/lib/python3.13/site-packages (from paramiko->-r /home/runner/work/vyos.vyos/vyos.vyos/.tox/sanity-py3.13-2.18/.ansible-dev-environment/discovered_requirements.txt (line 4)) (46.0.5) Collecting invoke>=2.0 (from paramiko->-r /home/runner/work/vyos.vyos/vyos.vyos/.tox/sanity-py3.13-2.18/.ansible-dev-environment/discovered_requirements.txt (line 4)) Downloading invoke-2.2.1-py3-none-any.whl.metadata (3.3 kB) Collecting pynacl>=1.5 (from paramiko->-r /home/runner/work/vyos.vyos/vyos.vyos/.tox/sanity-py3.13-2.18/.ansible-dev-environment/discovered_requirements.txt (line 4)) Downloading pynacl-1.6.2-cp38-abi3-manylinux_2_34_x86_64.whl.metadata (10.0 kB) Collecting typing-extensions~=4.12 (from grpcio->-r /home/runner/work/vyos.vyos/vyos.vyos/.tox/sanity-py3.13-2.18/.ansible-dev-environment/discovered_requirements.txt (line 6)) Downloading typing_extensions-4.15.0-py3-none-any.whl.metadata (3.3 kB) Requirement already satisfied: attrs>=22.2.0 in ./.tox/sanity-py3.13-2.18/lib/python3.13/site-packages (from jsonschema->-r /home/runner/work/vyos.vyos/vyos.vyos/.tox/sanity-py3.13-2.18/.ansible-dev-environment/discovered_requirements.txt (line 8)) (25.4.0) Requirement already satisfied: jsonschema-specifications>=2023.03.6 in ./.tox/sanity-py3.13-2.18/lib/python3.13/site-packages (from jsonschema->-r /home/runner/work/vyos.vyos/vyos.vyos/.tox/sanity-py3.13-2.18/.ansible-dev-environment/discovered_requirements.txt (line 8)) (2025.9.1) Requirement already satisfied: referencing>=0.28.4 in ./.tox/sanity-py3.13-2.18/lib/python3.13/site-packages (from jsonschema->-r /home/runner/work/vyos.vyos/vyos.vyos/.tox/sanity-py3.13-2.18/.ansible-dev-environment/discovered_requirements.txt (line 8)) (0.37.0) Requirement already satisfied: rpds-py>=0.25.0 in ./.tox/sanity-py3.13-2.18/lib/python3.13/site-packages (from jsonschema->-r /home/runner/work/vyos.vyos/vyos.vyos/.tox/sanity-py3.13-2.18/.ansible-dev-environment/discovered_requirements.txt (line 8)) (0.30.0) Requirement already satisfied: cffi>=2.0.0 in ./.tox/sanity-py3.13-2.18/lib/python3.13/site-packages (from cryptography>=3.3->paramiko->-r /home/runner/work/vyos.vyos/vyos.vyos/.tox/sanity-py3.13-2.18/.ansible-dev-environment/discovered_requirements.txt (line 4)) (2.0.0) Requirement already satisfied: pycparser in ./.tox/sanity-py3.13-2.18/lib/python3.13/site-packages (from cffi>=2.0.0->cryptography>=3.3->paramiko->-r /home/runner/work/vyos.vyos/vyos.vyos/.tox/sanity-py3.13-2.18/.ansible-dev-environment/discovered_requirements.txt (line 4)) (3.0) Downloading jxmlease-1.0.3-py2.py3-none-any.whl (37 kB) Downloading paramiko-4.0.0-py3-none-any.whl (223 kB) Downloading xmltodict-1.0.4-py3-none-any.whl (13 kB) Downloading grpcio-1.78.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (6.7 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 6.7/6.7 MB 18.3 MB/s 0:00:00 Downloading typing_extensions-4.15.0-py3-none-any.whl (44 kB) Downloading protobuf-7.34.0-cp310-abi3-manylinux2014_x86_64.whl (324 kB) Downloading textfsm-2.1.0-py2.py3-none-any.whl (44 kB) Downloading ttp-0.10.0-py3-none-any.whl (84 kB) Downloading netaddr-1.3.0-py3-none-any.whl (2.3 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.3/2.3 MB 35.2 MB/s 0:00:00 Downloading scp-0.15.0-py2.py3-none-any.whl (8.8 kB) Downloading bcrypt-5.0.0-cp39-abi3-manylinux_2_34_x86_64.whl (278 kB) Downloading invoke-2.2.1-py3-none-any.whl (160 kB) Downloading lxml-6.0.2-cp313-cp313-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl (5.2 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 5.2/5.2 MB 44.5 MB/s 0:00:00 Downloading pynacl-1.6.2-cp38-abi3-manylinux_2_34_x86_64.whl (1.4 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.4/1.4 MB 55.7 MB/s 0:00:00 Building wheels for collected packages: ansible-pylibssh, ncclient Building wheel for ansible-pylibssh (pyproject.toml): started Building wheel for ansible-pylibssh (pyproject.toml): finished with status 'error' Building wheel for ncclient (pyproject.toml): started Building wheel for ncclient (pyproject.toml): finished with status 'done' Created wheel for ncclient: filename=ncclient-0.7.0-py3-none-any.whl size=94121 sha256=bc6fce748feca1b6bce6abba6ab2549b45b3b94eee0bfa84baa9105b7a74ecde Stored in directory: /home/runner/work/vyos.vyos/vyos.vyos/.tox/sanity-py3.13-2.18/.cache/pip/wheels/37/22/6a/283b8735553d2790c6f534dc17301734fd636aa645d5039437 Successfully built ncclient Failed to build ansible-pylibssh stderr: error: subprocess-exited-with-error × Building wheel for ansible-pylibssh (pyproject.toml) did not run successfully. │ exit code: 1 ╰─> [11 lines of output] [1/1] Cythonizing /tmp/.tmp-ansible-pylibssh-pep517-7zq0cl46/src/src/pylibsshext/session.pyx [1/1] Cythonizing /tmp/.tmp-ansible-pylibssh-pep517-7zq0cl46/src/src/pylibsshext/sftp.pyx [1/1] Cythonizing /tmp/.tmp-ansible-pylibssh-pep517-7zq0cl46/src/src/pylibsshext/scp.pyx [1/1] Cythonizing /tmp/.tmp-ansible-pylibssh-pep517-7zq0cl46/src/src/pylibsshext/_libssh_version.pyx [1/1] Cythonizing /tmp/.tmp-ansible-pylibssh-pep517-7zq0cl46/src/src/pylibsshext/errors.pyx [1/1] Cythonizing /tmp/.tmp-ansible-pylibssh-pep517-7zq0cl46/src/src/pylibsshext/channel.pyx /tmp/.tmp-ansible-pylibssh-pep517-7zq0cl46/src/src/pylibsshext/session.c:1137:10: fatal error: libssh/libssh.h: No such file or directory 1137 | #include "libssh/libssh.h" | ^~~~~~~~~~~~~~~~~ compilation terminated. error: command '/usr/bin/gcc' failed with exit code 1 [end of output] note: This error originates from a subprocess, and is likely not a problem with pip. ERROR: Failed building wheel for ansible-pylibssh error: failed-wheel-build-for-install × Failed to build installable wheels for some pyproject.toml based projects ╰─> ansible-pylibssh sanity-py3.13-2.18: exit 1 (27.66 seconds) /home/runner/work/vyos.vyos/vyos.vyos> bash -c 'ade install --venv /home/runner/work/vyos.vyos/vyos.vyos/.tox/sanity-py3.13-2.18 --acv stable-2.18 --no-seed --im none .; rc=$?; if [ $rc -ne 0 ] && [ $rc -ne 2 ]; then exit $rc; fi' pid=2413 sanity-py3.13-2.18: FAIL code 1 (32.16=setup[4.50]+cmd[0.00,27.66] seconds) evaluation failed :( (32.32 seconds) Error: Process completed with exit code 1.