Skip to content

Sanity tests are failing for py3.13 and py3.14 due to ADE and missing libssh #99

@omnom62

Description

@omnom62

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions