Bug 263033

Summary: sysutils/py-ansible-lint @py38 6.0.2 fails to run - No module named 'ansible_compat'
Product: Ports & Packages Reporter: Vikash Badal <vikashb>
Component: Individual Port(s)Assignee: Matthew Seaman <matthew>
Status: Closed FIXED    
Severity: Affects Only Me CC: bas, freebsd-ports
Priority: --- Flags: bugzilla: maintainer-feedback? (matthew)
Version: Latest   
Hardware: Any   
OS: Any   

Description Vikash Badal 2022-04-04 11:28:20 UTC
after upgrade to 6.0.2
ansible-lint --version
Traceback (most recent call last):
  File "/usr/local/bin/ansible-lint", line 33, in <module>
    sys.exit(load_entry_point('ansible-lint==6.0.2', 'console_scripts', 'ansible-lint')())
  File "/usr/local/bin/ansible-lint", line 25, in importlib_load_entry_point
    return next(matches).load()
  File "/usr/local/lib/python3.8/importlib/metadata.py", line 77, in load
    module = import_module(match.group('module'))
  File "/usr/local/lib/python3.8/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1014, in _gcd_import
  File "<frozen importlib._bootstrap>", line 991, in _find_and_load
  File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 671, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 843, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/usr/local/lib/python3.8/site-packages/ansiblelint/__main__.py", line 33, in <module>
    from ansible_compat.config import ansible_version
ModuleNotFoundError: No module named 'ansible_compat'

% pkg info | grep ansible
py38-ansible-5.5.0             Radically simple IT automation
py38-ansible-core-2.12.4       Radically simple IT automation
py38-ansible-lint-6.0.2        Checks playbooks for sub-optimal practices and behaviour


downgrading to 5.2.0 works:
% pkg info | grep ansible
py38-ansible-5.5.0             Radically simple IT automation
py38-ansible-core-2.12.4       Radically simple IT automation
py38-ansible-lint-5.2.0        Checks playbooks for sub-optimal practices and behaviour
% ansible-lint --version
ansible-lint 5.2.0 using ansible 2.12.4
Comment 1 Matthew Seaman freebsd_committer freebsd_triage 2022-04-06 07:30:21 UTC
Thank you for the report.  Looks like we need a new port for the ansible_compat python module.
Comment 2 bas 2022-04-13 07:50:45 UTC
Also affected. This issue affects everyone who wants to run ansible-lint right now, so Importance should be higher.
Comment 3 Andre Rikkert de Koe - ARK-ICT 2022-04-14 10:20:19 UTC
(In reply to Matthew Seaman from comment #1)

Thanks for helping me in the right direction. subprocess_tee seems also needed apart from ansible_compat  Are you working on the new ports ? I got a functioning prototype, but currently I don't feel its ready to submit as new ports.

===>  Checking if py38-subprocess-tee is already installed
===>   Registering installation for py38-subprocess-tee-0.3.5
Installing py38-subprocess-tee-0.3.5...
root@infrastructure:/usr/ports/sysutils/py-subprocess-tee # ansible-lint --version
ansible-lint 6.0.2 using ansible 2.12.4
root@infrastructure:/usr/ports/sysutils/py-subprocess-tee # freebsd-version
12.2-RELEASE-p15
root@infrastructure:/usr/ports/sysutils/py-subprocess-tee # 

regards,

Andre
Comment 4 Matthew Seaman freebsd_committer freebsd_triage 2022-04-14 10:25:34 UTC
I am working on this, but I haven't had much spare time to devote to it,  so  progress has been slow.   Sorry.  I hope to commit a fix over this weekend.
Comment 5 commit-hook freebsd_committer freebsd_triage 2022-04-18 12:01:15 UTC
A commit in branch main references this bug:

URL: https://cgit.FreeBSD.org/ports/commit/?id=5d613390a733415afc8649a444011390a037aa5b

commit 5d613390a733415afc8649a444011390a037aa5b
Author:     Matthew Seaman <matthew@FreeBSD.org>
AuthorDate: 2022-04-18 09:21:56 +0000
Commit:     Matthew Seaman <matthew@FreeBSD.org>
CommitDate: 2022-04-18 11:59:09 +0000

    sysutils/py-ansible-compat: New Port

    A python package that contains functions that facilitate working with
    various versions of Ansible 2.9 and newer.

    PR:     263033

 sysutils/Makefile                                  |  1 +
 sysutils/py-ansible-compat/Makefile (new)          | 32 ++++++++++++++++++++++
 sysutils/py-ansible-compat/distinfo (new)          |  3 ++
 .../py-ansible-compat/files/patch-setup.py (new)   |  8 ++++++
 sysutils/py-ansible-compat/pkg-descr (new)         |  4 +++
 5 files changed, 48 insertions(+)
Comment 6 commit-hook freebsd_committer freebsd_triage 2022-04-18 12:01:16 UTC
A commit in branch main references this bug:

URL: https://cgit.FreeBSD.org/ports/commit/?id=b83ba9307a010be2de133e71dc5aa0c5d5af75d8

commit b83ba9307a010be2de133e71dc5aa0c5d5af75d8
Author:     Matthew Seaman <matthew@FreeBSD.org>
AuthorDate: 2022-04-18 11:57:50 +0000
Commit:     Matthew Seaman <matthew@FreeBSD.org>
CommitDate: 2022-04-18 11:59:09 +0000

    sysutils/py-ansible-lint: add missing dependency

    PR:     263033
    Reported by:    Vikash Badal

 sysutils/py-ansible-lint/Makefile | 15 ++++++++-------
 1 file changed, 8 insertions(+), 7 deletions(-)
Comment 7 commit-hook freebsd_committer freebsd_triage 2022-04-18 12:01:17 UTC
A commit in branch main references this bug:

URL: https://cgit.FreeBSD.org/ports/commit/?id=03d695bd0b6c5eec37307deb52b11fdefda6c011

commit 03d695bd0b6c5eec37307deb52b11fdefda6c011
Author:     Matthew Seaman <matthew@FreeBSD.org>
AuthorDate: 2022-04-18 09:13:05 +0000
Commit:     Matthew Seaman <matthew@FreeBSD.org>
CommitDate: 2022-04-18 11:59:08 +0000

    amend! devel/py-subprocess-tee: New port

    devel/py-subprocess-tee: New port

    This package provides a drop-in alternative to subprocess.run that
    captures the output while still printing it in real-time, just the way
    tee does.

    Required as part of the TEST_DEPENDS heirarchy for
    sysutils/py-ansible-compat

    PR:     263033
Comment 8 commit-hook freebsd_committer freebsd_triage 2022-04-18 12:01:18 UTC
A commit in branch main references this bug:

URL: https://cgit.FreeBSD.org/ports/commit/?id=8b454642f100a1ad6f6cc262c646bacd2548b4f2

commit 8b454642f100a1ad6f6cc262c646bacd2548b4f2
Author:     Matthew Seaman <matthew@FreeBSD.org>
AuthorDate: 2022-04-10 19:48:58 +0000
Commit:     Matthew Seaman <matthew@FreeBSD.org>
CommitDate: 2022-04-18 11:59:07 +0000

    devel/py-subprocess-tee: New port

    This package provides a drop-in alternative to subprocess.run that
    captures the output while still printing it in real-time, just the way
    tee does.

    Required as part of the TEST_DEPENDS heirarchy for
    sysutils/py-ansible-compat

    PR:     263033

 devel/Makefile                          |  1 +
 devel/py-subprocess-tee/Makefile (new)  | 34 +++++++++++++++++++++++++++++++++
 devel/py-subprocess-tee/distinfo (new)  |  3 +++
 devel/py-subprocess-tee/pkg-descr (new) |  5 +++++
 4 files changed, 43 insertions(+)
Comment 9 commit-hook freebsd_committer freebsd_triage 2022-04-18 12:01:19 UTC
A commit in branch main references this bug:

URL: https://cgit.FreeBSD.org/ports/commit/?id=e18b6e8fca01f960d73329ff1360c7615168f01b

commit e18b6e8fca01f960d73329ff1360c7615168f01b
Author:     Matthew Seaman <matthew@FreeBSD.org>
AuthorDate: 2022-04-10 17:44:24 +0000
Commit:     Matthew Seaman <matthew@FreeBSD.org>
CommitDate: 2022-04-18 11:59:07 +0000

    devel/py-pytest-plus: New port

    This plugin aims to be used to host multiple pytest extensions that
    meet the following criteria:

    * Keep py36 compatibility

    * Downgrade gracefully, meaning that if the plugin is removed, you
      will still be able to run pytest

    Required as part of the TEST_DEPENDS heirarchy for
    sysutils/py-ansible-compat

    PR:     263033

 devel/Makefile                       |  1 +
 devel/py-pytest-plus/Makefile (new)  | 23 +++++++++++++++++++++++
 devel/py-pytest-plus/distinfo (new)  |  3 +++
 devel/py-pytest-plus/pkg-descr (new) |  9 +++++++++
 4 files changed, 36 insertions(+)
Comment 10 commit-hook freebsd_committer freebsd_triage 2022-04-18 12:01:20 UTC
A commit in branch main references this bug:

URL: https://cgit.FreeBSD.org/ports/commit/?id=89ec15ff638c8ad24d4f0f58c8de7caf9dcb88f7

commit 89ec15ff638c8ad24d4f0f58c8de7caf9dcb88f7
Author:     Matthew Seaman <matthew@FreeBSD.org>
AuthorDate: 2022-04-10 10:07:10 +0000
Commit:     Matthew Seaman <matthew@FreeBSD.org>
CommitDate: 2022-04-18 11:59:06 +0000

    devel/py-pytest-metadata -- New port

    pytest-metadata is a plugin for pytest that provides access to test
    session metadata.

    Required as part of the TEST_DEPENDS heirarchy for
    sysutils/py-ansible-compat

    PR:     263033

 devel/Makefile                           |  1 +
 devel/py-pytest-metadata/Makefile (new)  | 18 ++++++++++++++++++
 devel/py-pytest-metadata/distinfo (new)  |  3 +++
 devel/py-pytest-metadata/pkg-descr (new) |  4 ++++
 4 files changed, 26 insertions(+)
Comment 11 commit-hook freebsd_committer freebsd_triage 2022-04-18 12:01:21 UTC
A commit in branch main references this bug:

URL: https://cgit.FreeBSD.org/ports/commit/?id=0c58a25be5ca11bbc760dcd92ec7e4b8bdd2e660

commit 0c58a25be5ca11bbc760dcd92ec7e4b8bdd2e660
Author:     Matthew Seaman <matthew@FreeBSD.org>
AuthorDate: 2022-04-10 17:21:27 +0000
Commit:     Matthew Seaman <matthew@FreeBSD.org>
CommitDate: 2022-04-18 11:59:06 +0000

    devel/py-pytest-html -- new port

    pytest-html is a plugin for pytest that generates a HTML report for
    test results.

    Required as part of the TEST_DEPENDS heirarchy for
    sysutils/py-ansible-compat

    PR:     263033

 devel/Makefile                       |  1 +
 devel/py-pytest-html/Makefile (new)  | 26 ++++++++++++++++++++++++++
 devel/py-pytest-html/distinfo (new)  |  3 +++
 devel/py-pytest-html/pkg-descr (new) |  4 ++++
 4 files changed, 34 insertions(+)
Comment 12 commit-hook freebsd_committer freebsd_triage 2022-04-18 12:01:22 UTC
A commit in branch main references this bug:

URL: https://cgit.FreeBSD.org/ports/commit/?id=de1b6a8c731ce293d119c692d38af9183c261044

commit de1b6a8c731ce293d119c692d38af9183c261044
Author:     Matthew Seaman <matthew@FreeBSD.org>
AuthorDate: 2022-04-18 09:13:47 +0000
Commit:     Matthew Seaman <matthew@FreeBSD.org>
CommitDate: 2022-04-18 11:59:08 +0000

    amend! devel/py-pytest-markdown: New port

    devel/py-pytest-markdown: New port

    You have written a README.md. In contains some of your best words. They are in
    an order, and you are happy its a good order. But all those code blocks... Do
    they contain valid python? This plugin will find tests in your markdown files
    and run them.

    Required as part of the TEST_DEPENDS heirarchy for
    sysutils/py-ansible-compat

    PR:     263033
Comment 13 Matthew Seaman freebsd_committer freebsd_triage 2022-04-18 12:06:17 UTC
Committed, thanks!