Done: Description updated and fix uploaded ** Description changed:
[ Impact ] * The code in wcmatch uses inner details of libraries hidden in python 3.12 * That breaks several use cases like ansible-lint and many self tests [racb] ansible-lint doesn't work at all. Calling it with no arguments, calling it with --help, and calling it with --version all fail with the same stack trace. [ Test Plan ] 1. For the original report, run ansible-lint + - without arguments you expect it to fail to load any file (that is ok, a total breakage failing to load wcmatch is not) + + - with --help you want to see the help to be shown + + - One can run ansible yaml file, with ansible-lint <file>, here are + two one can use for that + + a) With mistakes (1x fqcn[action-core] 1x yaml[truthy]) + Result is + ... + fqcn[action-core]: Use FQCN for builtin module actions (apt). + yaml[truthy]: Truthy value should be one of [false, true] + ... + + $ cat test.yaml + - name: Install apache2 + hosts: servers + tasks: + - name: Ensure apache2 is installed + apt: + name: apache2 + state: present + become: yes + + b) A file that makes lint happy, result is + Passed: 0 failure(s), 0 warning(s) on 1 files. Last profile that met the validation criteria was 'production'. + + $ cat test2.yaml + - name: Install apache2 + hosts: servers + tasks: + - name: Ensure apache2 is installed + ansible.builtin.apt: + name: apache2 + state: present + become: true + 2. For a wider coverage I recommend running the full self-tests $ apt install dpkg-dev # add deb-src to entries in /etc/apt/sources.list.d/ubuntu.sources $ apt update $ apt source python-wcmatch $ cd python-wcmatch-8.* $ pytestdetailed instructions how to reproduce the bug [ Where problems could occur ] * wcmatch has multiple subelements, only pathlib use cases got changed * There are untested changes to the windows code paths, but even WSL will run the linux paths, so that should be a no-op [ Other Info ] * while in universe, this is just an easy fix and an oversight in the python transition hence I think we should fix it --- original report Running ansible-lint in Ubuntu 24.04 on my role ends up with a stack trace: Traceback (most recent call last): File "/usr/bin/ansible-lint", line 5, in <module> from ansiblelint.__main__ import _run_cli_entrypoint File "/usr/lib/python3/dist-packages/ansiblelint/__main__.py", line 39, in <module> from ansiblelint import cli File "/usr/lib/python3/dist-packages/ansiblelint/cli.py", line 20, in <module> from ansiblelint.file_utils import ( File "/usr/lib/python3/dist-packages/ansiblelint/file_utils.py", line 15, in <module> import wcmatch.pathlib File "/usr/lib/python3/dist-packages/wcmatch/pathlib.py", line 218, in <module> class PurePosixPath(PurePath): File "/usr/lib/python3/dist-packages/wcmatch/pathlib.py", line 221, in PurePosixPath _flavour = pathlib._posix_flavour # type: ignore[attr-defined] ^^^^^^^^^^^^^^^^^^^^^^ AttributeError: module 'pathlib' has no attribute '_posix_flavour' This is due to python3-wcmatch=8.4-2 being incompatible with python3.12. Upstream fixed this in the next version https://github.com/facelessuser/wcmatch/releases/tag/8.5 I think the following portion of changes can be added to library package for Noble release: https://github.com/facelessuser/wcmatch/pull/203/files#diff-081b2096c270ab6b17a6c70f95ea07d24dd0d343522e135dbdeb609e59867186L83 Versions of installed packages: ansible-lint: Installed: 6.17.2-1 Candidate: 6.17.2-1 Version table: *** 6.17.2-1 500 500 http://ru.archive.ubuntu.com/ubuntu noble/universe amd64 Packages 500 http://ru.archive.ubuntu.com/ubuntu noble/universe i386 Packages 100 /var/lib/dpkg/status python3-wcmatch: Installed: 8.4-2 Candidate: 8.4-2 Version table: *** 8.4-2 500 500 http://ru.archive.ubuntu.com/ubuntu noble/universe amd64 Packages 500 http://ru.archive.ubuntu.com/ubuntu noble/universe i386 Packages 100 /var/lib/dpkg/status -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/2060649 Title: python-wcmatch not compatible to python3.12 To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/python-wcmatch/+bug/2060649/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs