Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package python-ansible-compat for 
openSUSE:Factory checked in at 2024-01-14 19:02:54
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-ansible-compat (Old)
 and      /work/SRC/openSUSE:Factory/.python-ansible-compat.new.21961 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-ansible-compat"

Sun Jan 14 19:02:54 2024 rev:21 rq:1138453 version:4.1.11

Changes:
--------
--- 
/work/SRC/openSUSE:Factory/python-ansible-compat/python-ansible-compat.changes  
    2023-11-24 23:35:48.537685593 +0100
+++ 
/work/SRC/openSUSE:Factory/.python-ansible-compat.new.21961/python-ansible-compat.changes
   2024-01-14 19:03:27.099326317 +0100
@@ -1,0 +2,11 @@
+Wed Jan 10 19:27:59 UTC 2024 - Johannes Kastl 
<opensuse_buildserv...@ojkastl.de>
+
+- update to 4.1.11:
+  * Bugfixes
+    - Allow more control over verbosity when calling ansible-galaxy (#278) 
@ziegenberg
+    - Fix collection installation with custom project_dir (#343) @ssbarnea
+    - Fix collection installation bug when having custom config (#344) 
@ssbarnea
+    - Add support for python 3.12 (#336) @ssbarnea
+    - Remove isolated option while adding sys.path (#335) @shatakshiiii
+
+-------------------------------------------------------------------

Old:
----
  ansible-compat-4.1.10.tar.gz

New:
----
  ansible-compat-4.1.11.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ python-ansible-compat.spec ++++++
--- /var/tmp/diff_new_pack.Zc1WqX/_old  2024-01-14 19:03:27.719348904 +0100
+++ /var/tmp/diff_new_pack.Zc1WqX/_new  2024-01-14 19:03:27.719348904 +0100
@@ -24,7 +24,7 @@
 %endif
 
 Name:           python-ansible-compat
-Version:        4.1.10
+Version:        4.1.11
 Release:        0
 Summary:        Compatibility shim for Ansible 2.9 and newer
 License:        MIT
@@ -86,6 +86,8 @@
 IGNORED_CHECKS="${IGNORED_CHECKS} or 
test_scan_sys_path[isolatedF-scanT-raises_not_foundF]"
 IGNORED_CHECKS="${IGNORED_CHECKS} or 
test_scan_sys_path[isolatedT-scanF-raises_not_foundT]"
 IGNORED_CHECKS="${IGNORED_CHECKS} or 
test_scan_sys_path[isolatedT-scanT-raises_not_foundT]"
+IGNORED_CHECKS="${IGNORED_CHECKS} or 
test_scan_sys_path[scanF-raises_not_foundT]"
+IGNORED_CHECKS="${IGNORED_CHECKS} or 
test_scan_sys_path[scanT-raises_not_foundF]"
 IGNORED_CHECKS="${IGNORED_CHECKS} or test_upgrade_collection"
 # Disable checks on test names: 
https://github.com/pytest-dev/pytest-plus#user-content-avoiding-problematic-test-identifiers
 https://github.com/ansible/ansible-compat/issues/340
 export PYTEST_CHECK_TEST_ID_REGEX=0

++++++ ansible-compat-4.1.10.tar.gz -> ansible-compat-4.1.11.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ansible-compat-4.1.10/.github/release-drafter.yml 
new/ansible-compat-4.1.11/.github/release-drafter.yml
--- old/ansible-compat-4.1.10/.github/release-drafter.yml       2023-09-06 
14:55:41.000000000 +0200
+++ new/ansible-compat-4.1.11/.github/release-drafter.yml       2024-01-10 
13:52:49.000000000 +0100
@@ -1,2 +1,3 @@
-# see https://github.com/ansible/devtools
-_extends: ansible/devtools
+---
+# see https://github.com/ansible/team-devtools
+_extends: ansible/team-devtools
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ansible-compat-4.1.10/.github/workflows/release.yml 
new/ansible-compat-4.1.11/.github/workflows/release.yml
--- old/ansible-compat-4.1.10/.github/workflows/release.yml     2023-09-06 
14:55:41.000000000 +0200
+++ new/ansible-compat-4.1.11/.github/workflows/release.yml     2024-01-10 
13:52:49.000000000 +0100
@@ -23,10 +23,10 @@
       TOX_PARALLEL_NO_SPINNER: 1
 
     steps:
-      - name: Switch to using Python 3.9 by default
-        uses: actions/setup-python@v4
+      - name: Switch to using Python 3.12 by default
+        uses: actions/setup-python@v5
         with:
-          python-version: 3.9
+          python-version: "3.12"
       - name: Install tox
         run: python3 -m pip install --user "tox>=4.0.0"
       - name: Check out src from Git
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ansible-compat-4.1.10/.github/workflows/tox.yml 
new/ansible-compat-4.1.11/.github/workflows/tox.yml
--- old/ansible-compat-4.1.10/.github/workflows/tox.yml 2023-09-06 
14:55:41.000000000 +0200
+++ new/ansible-compat-4.1.11/.github/workflows/tox.yml 2024-01-10 
13:52:49.000000000 +0100
@@ -23,7 +23,8 @@
         uses: coactions/dynamic-matrix@v1
         with:
           min_python: "3.9"
-          max_python: "3.11"
+          max_python: "3.12"
+          default_python: "3.10"
           other_names: |
             lint
             docs
@@ -32,7 +33,10 @@
             py39-ansible213
             py39-ansible214
             py39-ansible215
-            py311-devel
+            py310-ansible215
+            py311-ansible215
+            py312-ansible216
+            py312-devel
             smoke
           platforms: linux,macos
           macos: minmax
@@ -53,7 +57,7 @@
           fetch-depth: 0 # needed by setuptools-scm
 
       - name: Set up Python ${{ matrix.python_version }}
-        uses: actions/setup-python@v4
+        uses: actions/setup-python@v5
         with:
           python-version: ${{ matrix.python_version }}
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ansible-compat-4.1.10/.pre-commit-config.yaml 
new/ansible-compat-4.1.11/.pre-commit-config.yaml
--- old/ansible-compat-4.1.10/.pre-commit-config.yaml   2023-09-06 
14:55:41.000000000 +0200
+++ new/ansible-compat-4.1.11/.pre-commit-config.yaml   2024-01-10 
13:52:49.000000000 +0100
@@ -9,22 +9,27 @@
     for more information, see https://pre-commit.ci
   skip:
     # https://github.com/pre-commit-ci/issues/issues/55
+    - ccv
     - pip-compile
     # No docker on pre-commit.ci
     - validate-config-in-container
 default_language_version:
   # Needed in order to make pip-compile output predictable.
-  python: python3.9
+  python: python3.10
 exclude: |
   (?x)^(
     test/assets/.*
   )$
 repos:
   - repo: https://github.com/astral-sh/ruff-pre-commit
-    rev: "v0.0.287"
+    rev: "v0.1.9"
     hooks:
       - id: ruff
         args: [--fix, --exit-non-zero-on-fix]
+  - repo: https://github.com/pappasam/toml-sort
+    rev: v0.23.1
+    hooks:
+      - id: toml-sort-fix
   - repo: https://github.com/pre-commit/mirrors-prettier
     # keep it before yamllint
     rev: "v3.0.3"
@@ -35,7 +40,7 @@
           - prettier-plugin-toml
           - prettier-plugin-sort-json
   - repo: https://github.com/pre-commit/pre-commit-hooks.git
-    rev: v4.4.0
+    rev: v4.5.0
     hooks:
       - id: end-of-file-fixer
       - id: trailing-whitespace
@@ -51,23 +56,23 @@
       - id: debug-statements
         language_version: python3
   - repo: https://github.com/codespell-project/codespell
-    rev: v2.2.5
+    rev: v2.2.6
     hooks:
       - id: codespell
   - repo: https://github.com/adrienverge/yamllint.git
-    rev: v1.32.0
+    rev: v1.33.0
     hooks:
       - id: yamllint
         files: \.(yaml|yml)$
         types: [file, yaml]
         entry: yamllint --strict
   - repo: https://github.com/psf/black
-    rev: 23.7.0
+    rev: 23.12.1
     hooks:
       - id: black
         language_version: python3
   - repo: https://github.com/pre-commit/mirrors-mypy
-    rev: v1.5.1
+    rev: v1.8.0
     hooks:
       - id: mypy
         # empty args needed in order to match mypy cli behavior
@@ -84,7 +89,7 @@
           - types-pkg_resources
           - types-jsonschema>=4.4.9
   - repo: https://github.com/pycqa/pylint
-    rev: v3.0.0a7
+    rev: v3.0.3
     hooks:
       - id: pylint
         additional_dependencies:
@@ -117,4 +122,10 @@
     rev: v1.2.0
     hooks:
       - id: validate-config-in-container
+        name: packit
         alias: packit
+  - repo: https://github.com/mashi/codecov-validator
+    rev: "1.0.1"
+    hooks:
+      - id: ccv
+        name: codecov
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ansible-compat-4.1.10/.vscode/settings.json 
new/ansible-compat-4.1.11/.vscode/settings.json
--- old/ansible-compat-4.1.10/.vscode/settings.json     2023-09-06 
14:55:41.000000000 +0200
+++ new/ansible-compat-4.1.11/.vscode/settings.json     2024-01-10 
13:52:49.000000000 +0100
@@ -4,9 +4,9 @@
   },
   "[python]": {
     "editor.codeActionsOnSave": {
-      "source.fixAll": true,
-      "source.fixAll.ruff": false,
-      "source.organizeImports": false
+      "source.fixAll": "explicit",
+      "source.fixAll.ruff": "never",
+      "source.organizeImports": "never"
     }
   },
   "editor.formatOnSave": true,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ansible-compat-4.1.10/PKG-INFO 
new/ansible-compat-4.1.11/PKG-INFO
--- old/ansible-compat-4.1.10/PKG-INFO  2023-09-06 14:56:06.785466000 +0200
+++ new/ansible-compat-4.1.11/PKG-INFO  2024-01-10 13:53:09.517272000 +0100
@@ -1,6 +1,6 @@
 Metadata-Version: 2.1
 Name: ansible-compat
-Version: 4.1.10
+Version: 4.1.11
 Summary: Ansible compatibility goodies
 Author-email: Sorin Sbarnea <ssbar...@redhat.com>
 Maintainer-email: Sorin Sbarnea <ssbar...@redhat.com>
@@ -21,6 +21,7 @@
 Classifier: Programming Language :: Python :: 3.9
 Classifier: Programming Language :: Python :: 3.10
 Classifier: Programming Language :: Python :: 3.11
+Classifier: Programming Language :: Python :: 3.12
 Classifier: Programming Language :: Python
 Classifier: Topic :: System :: Systems Administration
 Classifier: Topic :: Software Development :: Bug Tracking
@@ -29,9 +30,23 @@
 Classifier: Topic :: Utilities
 Requires-Python: >=3.9
 Description-Content-Type: text/markdown
+License-File: LICENSE
+Requires-Dist: ansible-core>=2.12
+Requires-Dist: packaging
+Requires-Dist: PyYAML
+Requires-Dist: subprocess-tee>=0.4.1
+Requires-Dist: jsonschema>=4.6.0
+Requires-Dist: typing-extensions>=4.5.0; python_version < "3.10"
 Provides-Extra: docs
+Requires-Dist: argparse-manpage; extra == "docs"
+Requires-Dist: black; extra == "docs"
+Requires-Dist: mkdocs-ansible[lock]>=0.1.2; extra == "docs"
 Provides-Extra: test
-License-File: LICENSE
+Requires-Dist: coverage; extra == "test"
+Requires-Dist: pip-tools; extra == "test"
+Requires-Dist: pytest>=7.2.0; extra == "test"
+Requires-Dist: pytest-mock; extra == "test"
+Requires-Dist: pytest-plus>=0.6.1; extra == "test"
 
 # ansible-compat
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ansible-compat-4.1.10/codecov.yml 
new/ansible-compat-4.1.11/codecov.yml
--- old/ansible-compat-4.1.10/codecov.yml       2023-09-06 14:55:41.000000000 
+0200
+++ new/ansible-compat-4.1.11/codecov.yml       2024-01-10 13:52:49.000000000 
+0100
@@ -3,6 +3,4 @@
 comment: false
 coverage:
   status:
-    patch: false
-    project:
-      threshold: 0.5%
+    patch: true # we want github annotations
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ansible-compat-4.1.10/pyproject.toml 
new/ansible-compat-4.1.11/pyproject.toml
--- old/ansible-compat-4.1.10/pyproject.toml    2023-09-06 14:55:41.000000000 
+0200
+++ new/ansible-compat-4.1.11/pyproject.toml    2024-01-10 13:52:49.000000000 
+0100
@@ -1,7 +1,7 @@
 [build-system]
 requires = [
   "setuptools >= 65.3.0", # required by pyproject+setuptools_scm integration 
and editable installs
-  "setuptools_scm[toml] >= 7.0.5", # required for "no-local-version" scheme
+  "setuptools_scm[toml] >= 7.0.5" # required for "no-local-version" scheme
 ]
 build-backend = "setuptools.build_meta"
 
@@ -12,9 +12,9 @@
 name = "ansible-compat"
 description = "Ansible compatibility goodies"
 readme = "README.md"
-authors = [{ "name" = "Sorin Sbarnea", "email" = "ssbar...@redhat.com" }]
-maintainers = [{ "name" = "Sorin Sbarnea", "email" = "ssbar...@redhat.com" }]
-license = { text = "MIT" }
+authors = [{"name" = "Sorin Sbarnea", "email" = "ssbar...@redhat.com"}]
+maintainers = [{"name" = "Sorin Sbarnea", "email" = "ssbar...@redhat.com"}]
+license = {text = "MIT"}
 classifiers = [
   "Development Status :: 5 - Production/Stable",
   "Environment :: Console",
@@ -27,12 +27,13 @@
   "Programming Language :: Python :: 3.9",
   "Programming Language :: Python :: 3.10",
   "Programming Language :: Python :: 3.11",
+  "Programming Language :: Python :: 3.12",
   "Programming Language :: Python",
   "Topic :: System :: Systems Administration",
   "Topic :: Software Development :: Bug Tracking",
   "Topic :: Software Development :: Quality Assurance",
   "Topic :: Software Development :: Testing",
-  "Topic :: Utilities",
+  "Topic :: Utilities"
 ]
 keywords = ["ansible"]
 dependencies = [
@@ -42,18 +43,24 @@
   "PyYAML",
   "subprocess-tee>=0.4.1",
   "jsonschema>=4.6.0",
-  "typing-extensions>=4.5.0;python_version<'3.10'",
+  "typing-extensions>=4.5.0;python_version<'3.10'"
 ]
 
+[project.optional-dependencies]
+docs = ["argparse-manpage", "black", "mkdocs-ansible[lock]>=0.1.2"]
+test = ["coverage", "pip-tools", "pytest>=7.2.0", "pytest-mock", 
"pytest-plus>=0.6.1"]
+
 [project.urls]
 homepage = "https://github.com/ansible/ansible-compat";
 documentation = "https://ansible-compat.readthedocs.io/";
 repository = "https://github.com/ansible/ansible-compat";
 changelog = "https://github.com/ansible/ansible-compat/releases";
 
-[project.optional-dependencies]
-docs = ["argparse-manpage", "black", "mkdocs-ansible[lock]>=0.1.2"]
-test = ["coverage", "pip-tools", "pytest>=7.2.0", "pytest-mock", "pytest-plus"]
+[tool.coverage.report]
+exclude_lines = ["pragma: no cover", "if TYPE_CHECKING:"]
+fail_under = 92
+skip_covered = true
+show_missing = true
 
 [tool.coverage.run]
 source = ["src"]
@@ -63,11 +70,8 @@
 parallel = true
 concurrency = ["multiprocessing", "thread"]
 
-[tool.coverage.report]
-exclude_lines = ["pragma: no cover", "if TYPE_CHECKING:"]
-fail_under = 93
-skip_covered = true
-show_missing = true
+[tool.isort]
+profile = "black"
 
 [tool.mypy]
 python_version = 3.9
@@ -77,7 +81,7 @@
 disallow_untyped_defs = true
 disallow_any_generics = true
 # disallow_any_unimported = True
-#; warn_redundant_casts = True
+# ; warn_redundant_casts = True
 # warn_return_any = True
 # warn_unused_configs = True
 exclude = "test/local-content"
@@ -86,9 +90,6 @@
 module = "ansible.*"
 ignore_missing_imports = true
 
-[tool.isort]
-profile = "black"
-
 [tool.pylint.BASIC]
 good-names = [
   "f", # filename
@@ -98,7 +99,7 @@
   "ns", # namespace
   "ex",
   "Run",
-  "_",
+  "_"
 ]
 
 [tool.pylint.IMPORTS]
@@ -114,12 +115,17 @@
   "too-many-arguments", # PLR0913
   "raise-missing-from",
   # Temporary disable duplicate detection we remove old code from prerun
-  "duplicate-code",
+  "duplicate-code"
 ]
 
 [tool.pytest.ini_options]
 # ensure we treat warnings as error
-filterwarnings = ["error"]
+filterwarnings = [
+  "error",
+  # py312 ansible-core
+  # https://github.com/ansible/ansible/issues/81906
+  "ignore:'importlib.abc.TraversableResources' is deprecated and slated for 
removal in Python 3.14:DeprecationWarning"
+]
 testpaths = ["test"]
 
 [tool.ruff]
@@ -137,13 +143,10 @@
   "PLR0912", # Bug https://github.com/charliermarsh/ruff/issues/4244
   "PLR0913", # Bug https://github.com/charliermarsh/ruff/issues/4244
   "RUF012",
-  "PERF203",
+  "PERF203"
 ]
 target-version = "py39"
 
-[tool.ruff.pydocstyle]
-convention = "pep257"
-
 [tool.ruff.flake8-pytest-style]
 parametrize-values-type = "tuple"
 
@@ -154,6 +157,9 @@
 [tool.ruff.per-file-ignores]
 "test/**/*.py" = ["SLF001", "S101", "FBT001"]
 
+[tool.ruff.pydocstyle]
+convention = "pep257"
+
 [tool.setuptools_scm]
 local_scheme = "no-local-version"
 write_to = "src/ansible_compat/_version.py"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ansible-compat-4.1.10/requirements.txt 
new/ansible-compat-4.1.11/requirements.txt
--- old/ansible-compat-4.1.10/requirements.txt  2023-09-06 14:55:41.000000000 
+0200
+++ new/ansible-compat-4.1.11/requirements.txt  2024-01-10 13:52:49.000000000 
+0100
@@ -1,56 +1,62 @@
 #
-# This file is autogenerated by pip-compile with Python 3.9
+# This file is autogenerated by pip-compile with Python 3.10
 # by the following command:
 #
 #    pip-compile --extra=docs --extra=test --output-file=requirements.txt 
--strip-extras --unsafe-package=ansible-core --unsafe-package=resolvelib 
--unsafe-package=typing_extensions pyproject.toml
 #
-argparse-manpage==4.3
+argparse-manpage==4.5
     # via ansible-compat (pyproject.toml)
-attrs==23.1.0
+attrs==23.2.0
     # via
     #   jsonschema
     #   referencing
+babel==2.13.1
+    # via
+    #   mkdocs-ansible
+    #   mkdocs-material
 beautifulsoup4==4.12.2
     # via
+    #   linkchecker
     #   mkdocs-ansible
     #   mkdocs-htmlproofer-plugin
-black==23.7.0
+black==23.12.1
     # via ansible-compat (pyproject.toml)
-build==0.10.0
+build==1.0.3
     # via pip-tools
-cairocffi==1.5.1
+cairocffi==1.6.1
     # via
     #   cairosvg
     #   mkdocs-ansible
-cairosvg==2.7.0
+cairosvg==2.7.1
     # via mkdocs-ansible
-certifi==2023.5.7
+certifi==2023.11.17
     # via
     #   mkdocs-ansible
     #   requests
-cffi==1.15.1
+cffi==1.16.0
     # via
     #   cairocffi
     #   cryptography
     #   mkdocs-ansible
-charset-normalizer==3.1.0
+charset-normalizer==3.3.2
     # via
     #   mkdocs-ansible
     #   requests
-click==8.1.3
+click==8.1.7
     # via
     #   black
     #   mkdocs
     #   mkdocs-ansible
+    #   mkdocstrings
     #   pip-tools
 colorama==0.4.6
     # via
     #   griffe
     #   mkdocs-ansible
     #   mkdocs-material
-coverage==7.3.0
+coverage==7.4.0
     # via ansible-compat (pyproject.toml)
-cryptography==41.0.3
+cryptography==41.0.7
     # via ansible-core
 csscompressor==0.9.5
     # via
@@ -64,13 +70,17 @@
     # via
     #   cairosvg
     #   mkdocs-ansible
-exceptiongroup==1.1.3
+dnspython==2.4.2
+    # via
+    #   linkchecker
+    #   mkdocs-ansible
+exceptiongroup==1.2.0
     # via pytest
 ghp-import==2.1.0
     # via
     #   mkdocs
     #   mkdocs-ansible
-griffe==0.29.0
+griffe==0.38.0
     # via
     #   mkdocs-ansible
     #   mkdocstrings-python
@@ -82,14 +92,8 @@
     # via
     #   mkdocs-ansible
     #   requests
-importlib-metadata==6.6.0
-    # via
-    #   markdown
-    #   mkdocs
-    #   mkdocs-ansible
-    #   mkdocstrings
-importlib-resources==5.0.7
-    # via ansible-core
+importlib-metadata==6.8.0
+    # via mkdocs-ansible
 iniconfig==2.0.0
     # via pytest
 jinja2==3.1.2
@@ -103,11 +107,13 @@
     # via
     #   mkdocs-ansible
     #   mkdocs-minify-plugin
-jsonschema==4.19.0
+jsonschema==4.20.0
     # via ansible-compat (pyproject.toml)
-jsonschema-specifications==2023.7.1
+jsonschema-specifications==2023.12.1
     # via jsonschema
-markdown==3.3.7
+linkchecker==10.3.0
+    # via mkdocs-ansible
+markdown==3.5.1
     # via
     #   markdown-include
     #   mkdocs
@@ -117,20 +123,21 @@
     #   mkdocs-material
     #   mkdocstrings
     #   pymdown-extensions
-markdown-exec==1.6.0
+markdown-exec==1.8.0
     # via mkdocs-ansible
 markdown-include==0.8.1
     # via mkdocs-ansible
-markupsafe==2.1.2
+markupsafe==2.1.3
     # via
     #   jinja2
+    #   mkdocs
     #   mkdocs-ansible
     #   mkdocstrings
 mergedeep==1.3.4
     # via
     #   mkdocs
     #   mkdocs-ansible
-mkdocs==1.4.3
+mkdocs==1.5.3
     # via
     #   mkdocs-ansible
     #   mkdocs-autorefs
@@ -140,35 +147,37 @@
     #   mkdocs-minify-plugin
     #   mkdocs-monorepo-plugin
     #   mkdocstrings
-mkdocs-ansible==0.1.6
-    # via ansible-compat (pyproject.toml)
-mkdocs-autorefs==0.4.1
+mkdocs-ansible==0.2.1
+    # via
+    #   ansible-compat (pyproject.toml)
+    #   mkdocs-ansible
+mkdocs-autorefs==0.5.0
     # via
     #   mkdocs-ansible
     #   mkdocstrings
 mkdocs-gen-files==0.5.0
     # via mkdocs-ansible
-mkdocs-htmlproofer-plugin==0.13.1
+mkdocs-htmlproofer-plugin==1.0.0
     # via mkdocs-ansible
-mkdocs-material==9.1.15
+mkdocs-material==9.5.3
     # via mkdocs-ansible
-mkdocs-material-extensions==1.1.1
+mkdocs-material-extensions==1.3.1
     # via
     #   mkdocs-ansible
     #   mkdocs-material
-mkdocs-minify-plugin==0.6.4
+mkdocs-minify-plugin==0.7.2
     # via mkdocs-ansible
-mkdocs-monorepo-plugin==1.0.5
+mkdocs-monorepo-plugin==1.1.0
     # via mkdocs-ansible
-mkdocstrings==0.22.0
+mkdocstrings==0.24.0
     # via
     #   mkdocs-ansible
     #   mkdocstrings-python
-mkdocstrings-python==1.1.0
+mkdocstrings-python==1.7.5
     # via mkdocs-ansible
 mypy-extensions==1.0.0
     # via black
-packaging==23.1
+packaging==23.2
     # via
     #   ansible-compat (pyproject.toml)
     #   ansible-core
@@ -177,31 +186,42 @@
     #   mkdocs
     #   mkdocs-ansible
     #   pytest
+paginate==0.5.6
+    # via
+    #   mkdocs-ansible
+    #   mkdocs-material
 pathspec==0.11.2
-    # via black
-pillow==9.5.0
+    # via
+    #   black
+    #   mkdocs
+    #   mkdocs-ansible
+pillow==10.2.0
     # via
     #   cairosvg
     #   mkdocs-ansible
-pip==23.2.1
+pip==23.3.2
     # via pip-tools
 pip-tools==7.3.0
     # via ansible-compat (pyproject.toml)
-pipdeptree==2.7.1
+pipdeptree==2.13.1
     # via mkdocs-ansible
-platformdirs==3.10.0
-    # via black
-pluggy==1.2.0
+platformdirs==4.0.0
+    # via
+    #   black
+    #   mkdocs
+    #   mkdocs-ansible
+    #   mkdocstrings
+pluggy==1.3.0
     # via pytest
 pycparser==2.21
     # via
     #   cffi
     #   mkdocs-ansible
-pygments==2.15.1
+pygments==2.17.1
     # via
     #   mkdocs-ansible
     #   mkdocs-material
-pymdown-extensions==10.0.1
+pymdown-extensions==10.7
     # via
     #   markdown-exec
     #   mkdocs-ansible
@@ -209,14 +229,14 @@
     #   mkdocstrings
 pyproject-hooks==1.0.0
     # via build
-pytest==7.4.0
+pytest==7.4.4
     # via
     #   ansible-compat (pyproject.toml)
     #   pytest-mock
     #   pytest-plus
-pytest-mock==3.11.1
+pytest-mock==3.12.0
     # via ansible-compat (pyproject.toml)
-pytest-plus==0.4.0
+pytest-plus==0.6.1
     # via ansible-compat (pyproject.toml)
 python-dateutil==2.8.2
     # via
@@ -226,7 +246,7 @@
     # via
     #   mkdocs-ansible
     #   mkdocs-monorepo-plugin
-pyyaml==6.0
+pyyaml==6.0.1
     # via
     #   ansible-compat (pyproject.toml)
     #   ansible-core
@@ -238,30 +258,31 @@
     # via
     #   mkdocs
     #   mkdocs-ansible
-referencing==0.30.2
+referencing==0.32.1
     # via
     #   jsonschema
     #   jsonschema-specifications
-regex==2023.5.5
+regex==2023.10.3
     # via
     #   mkdocs-ansible
     #   mkdocs-material
 requests==2.31.0
     # via
+    #   linkchecker
     #   mkdocs-ansible
     #   mkdocs-htmlproofer-plugin
     #   mkdocs-material
-rpds-py==0.9.2
+rpds-py==0.16.2
     # via
     #   jsonschema
     #   referencing
-setuptools==68.1.2
+setuptools==69.0.3
     # via pip-tools
 six==1.16.0
     # via
     #   mkdocs-ansible
     #   python-dateutil
-soupsieve==2.4.1
+soupsieve==2.5
     # via
     #   beautifulsoup4
     #   mkdocs-ansible
@@ -284,13 +305,11 @@
     #   pip-tools
     #   pyproject-hooks
     #   pytest
-typing-extensions==4.6.2 ; python_version < "3.10"
+typing-extensions==4.8.0
     # via
-    #   ansible-compat (pyproject.toml)
     #   black
     #   mkdocs-ansible
-    #   mkdocstrings
-urllib3==2.0.2
+urllib3==2.1.0
     # via
     #   mkdocs-ansible
     #   requests
@@ -303,9 +322,9 @@
     #   cssselect2
     #   mkdocs-ansible
     #   tinycss2
-wheel==0.41.1
+wheel==0.42.0
     # via pip-tools
-zipp==3.15.0
+zipp==3.17.0
     # via
     #   importlib-metadata
     #   mkdocs-ansible
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ansible-compat-4.1.10/src/ansible_compat/_version.py 
new/ansible-compat-4.1.11/src/ansible_compat/_version.py
--- old/ansible-compat-4.1.10/src/ansible_compat/_version.py    2023-09-06 
14:56:06.000000000 +0200
+++ new/ansible-compat-4.1.11/src/ansible_compat/_version.py    2024-01-10 
13:53:09.000000000 +0100
@@ -1,4 +1,16 @@
 # file generated by setuptools_scm
 # don't change, don't track in version control
-__version__ = version = '4.1.10'
-__version_tuple__ = version_tuple = (4, 1, 10)
+TYPE_CHECKING = False
+if TYPE_CHECKING:
+    from typing import Tuple, Union
+    VERSION_TUPLE = Tuple[Union[int, str], ...]
+else:
+    VERSION_TUPLE = object
+
+version: str
+__version__: str
+__version_tuple__: VERSION_TUPLE
+version_tuple: VERSION_TUPLE
+
+__version__ = version = '4.1.11'
+__version_tuple__ = version_tuple = (4, 1, 11)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ansible-compat-4.1.10/src/ansible_compat/config.py 
new/ansible-compat-4.1.11/src/ansible_compat/config.py
--- old/ansible-compat-4.1.10/src/ansible_compat/config.py      2023-09-06 
14:55:41.000000000 +0200
+++ new/ansible-compat-4.1.11/src/ansible_compat/config.py      2024-01-10 
13:52:49.000000000 +0100
@@ -216,6 +216,11 @@
     default_private_role_vars: bool = False
     default_remote_port: str | None = None
     default_remote_user: str | None = None
+    # 
https://docs.ansible.com/ansible/latest/reference_appendices/config.html#collections-paths
+    default_collections_path: list[str] = [
+        "~/.ansible/collections",
+        "/usr/share/ansible/collections",
+    ]
     default_roles_path: list[str] = [
         "~/.ansible/roles",
         "/usr/share/ansible/roles",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ansible-compat-4.1.10/src/ansible_compat/runtime.py 
new/ansible-compat-4.1.11/src/ansible_compat/runtime.py
--- old/ansible-compat-4.1.10/src/ansible_compat/runtime.py     2023-09-06 
14:55:41.000000000 +0200
+++ new/ansible-compat-4.1.11/src/ansible_compat/runtime.py     2024-01-10 
13:52:49.000000000 +0100
@@ -10,7 +10,6 @@
 import shutil
 import subprocess
 import sys
-import tempfile
 import warnings
 from collections import OrderedDict
 from dataclasses import dataclass, field
@@ -166,6 +165,7 @@
         require_module: bool = False,
         max_retries: int = 0,
         environ: dict[str, str] | None = None,
+        verbosity: int = 0,
     ) -> None:
         """Initialize Ansible runtime environment.
 
@@ -187,12 +187,17 @@
                             Default is 0, no retries.
         :param environ: Environment dictionary to use, if undefined
                         ``os.environ`` will be copied and used.
+        :param verbosity: Verbosity level to use.
         """
         self.project_dir = project_dir or Path.cwd()
         self.isolated = isolated
         self.max_retries = max_retries
         self.environ = environ or os.environ.copy()
         self.plugins = Plugins(runtime=self)
+        self.verbosity = verbosity
+
+        self.initialize_logger(level=self.verbosity)
+
         # Reduce noise from paramiko, unless user already defined 
PYTHONWARNINGS
         # paramiko/transport.py:236: CryptographyDeprecationWarning: Blowfish 
has been deprecated
         # https://github.com/paramiko/paramiko/issues/2038
@@ -236,9 +241,24 @@
         # Monkey patch ansible warning in order to use warnings module.
         Display.warning = warning
 
+    def initialize_logger(self, level: int = 0) -> None:
+        """Set up the global logging level based on the verbosity number."""
+        verbosity_map = {
+            -2: logging.CRITICAL,
+            -1: logging.ERROR,
+            0: logging.WARNING,
+            1: logging.INFO,
+            2: logging.DEBUG,
+        }
+        # Unknown logging level is treated as DEBUG
+        logging_level = verbosity_map.get(level, logging.DEBUG)
+        _logger.setLevel(logging_level)
+        # Use module-level _logger instance to validate it
+        _logger.debug("Logging initialized to level %s", logging_level)
+
     def _add_sys_path_to_collection_paths(self) -> None:
         """Add the sys.path to the collection paths."""
-        if not self.isolated and self.config.collections_scan_sys_path:
+        if self.config.collections_scan_sys_path:
             for path in sys.path:
                 if (
                     path not in self.config.collections_paths
@@ -436,7 +456,7 @@
         if isinstance(collection, Path):
             collection = str(collection)
         # As ansible-galaxy install is not able to automatically determine
-        # if the range requires a pre-release, we need to manuall add the --pre
+        # if the range requires a pre-release, we need to manually add the 
--pre
         # flag when needed.
         matches = version_re.search(collection)
 
@@ -456,13 +476,13 @@
         cmd.append(f"{collection}")
 
         _logger.info("Running from %s : %s", Path.cwd(), " ".join(cmd))
-        run = self.run(
+        process = self.run(
             cmd,
             retry=True,
             env={**self.environ, ansible_collections_path(): ":".join(cpaths)},
         )
-        if run.returncode != 0:
-            msg = f"Command returned {run.returncode} 
code:\n{run.stdout}\n{run.stderr}"
+        if process.returncode != 0:
+            msg = f"Command returned {process.returncode} 
code:\n{process.stdout}\n{process.stderr}"
             _logger.error(msg)
             raise InvalidPrerequisiteError(msg)
 
@@ -472,30 +492,7 @@
         destination: Path | None = None,
     ) -> None:
         """Build and install collection from a given disk path."""
-        if not self.version_in_range(upper="2.11"):
-            self.install_collection(path, destination=destination, force=True)
-            return
-        # older versions of ansible able unable to install without building
-        with tempfile.TemporaryDirectory() as tmp_dir:
-            cmd = [
-                "ansible-galaxy",
-                "collection",
-                "build",
-                "--output-path",
-                str(tmp_dir),
-                str(path),
-            ]
-            _logger.info("Running %s", " ".join(cmd))
-            run = self.run(cmd, retry=False)
-            if run.returncode != 0:
-                _logger.error(run.stdout)
-                raise AnsibleCommandError(run)
-            for archive_file in os.listdir(tmp_dir):
-                self.install_collection(
-                    str(Path(tmp_dir) / archive_file),
-                    destination=destination,
-                    force=True,
-                )
+        self.install_collection(path, destination=destination, force=True)
 
     # pylint: disable=too-many-branches
     def install_requirements(  # noqa: C901
@@ -529,9 +526,11 @@
                 "ansible-galaxy",
                 "role",
                 "install",
-                "-vr",
+                "-r",
                 f"{requirement}",
             ]
+            if self.verbosity > 0:
+                cmd.extend(["-" + ("v" * self.verbosity)])
             if self.cache_dir:
                 cmd.extend(["--roles-path", f"{self.cache_dir}/roles"])
 
@@ -543,8 +542,9 @@
                 _logger.info("Running %s", " ".join(cmd))
 
                 result = self.run(cmd, retry=retry)
+                _logger.debug(result.stdout)
                 if result.returncode != 0:
-                    _logger.error(result.stdout)
+                    _logger.error(result.stderr)
                     raise AnsibleCommandError(result)
 
         # Run galaxy collection install works on v2 requirements.yml
@@ -553,8 +553,10 @@
                 "ansible-galaxy",
                 "collection",
                 "install",
-                "-v",
             ]
+            if self.verbosity > 0:
+                cmd.extend(["-" + ("v" * self.verbosity)])
+
             for collection in reqs_yaml["collections"]:
                 if isinstance(collection, dict) and collection.get("type", "") 
== "git":
                     _logger.info(
@@ -582,8 +584,8 @@
                     retry=retry,
                     env={**os.environ, "ANSIBLE_COLLECTIONS_PATH": 
":".join(cpaths)},
                 )
+                _logger.debug(result.stdout)
                 if result.returncode != 0:
-                    _logger.error(result.stdout)
                     _logger.error(result.stderr)
                     raise AnsibleCommandError(result)
 
@@ -638,14 +640,14 @@
                 destination=destination,
             )
 
-        if Path("galaxy.yml").exists():
+        if (self.project_dir / "galaxy.yml").exists():
             if destination:
                 # while function can return None, that would not break the 
logic
                 colpath = Path(
-                    
f"{destination}/ansible_collections/{colpath_from_path(Path.cwd())}",
+                    
f"{destination}/ansible_collections/{colpath_from_path(self.project_dir)}",
                 )
                 if colpath.is_symlink():
-                    if os.path.realpath(colpath) == Path.cwd():
+                    if os.path.realpath(colpath) == str(Path.cwd()):
                         _logger.warning(
                             "Found symlinked collection, skipping its 
installation.",
                         )
@@ -765,7 +767,7 @@
             msg = "Unexpected ansible configuration"
             raise RuntimeError(msg) from exc
 
-        alterations_list = [
+        alterations_list: list[tuple[list[str], str, bool]] = [
             (library_paths, "plugins/modules", True),
             (roles_path, "roles", True),
         ]
@@ -786,12 +788,12 @@
                 if must_be_present:
                     continue
                 path.mkdir(parents=True, exist_ok=True)
-            if path not in path_list:
+            if str(path) not in path_list:
                 path_list.insert(0, str(path))
 
         if library_paths != self.config.DEFAULT_MODULE_PATH:
             self._update_env("ANSIBLE_LIBRARY", library_paths)
-        if collections_path != self.config.collections_paths:
+        if collections_path != self.config.default_collections_path:
             self._update_env(ansible_collections_path(), collections_path)
         if roles_path != self.config.default_roles_path:
             self._update_env("ANSIBLE_ROLES_PATH", roles_path)
@@ -934,7 +936,10 @@
 
 def _get_galaxy_role_name(galaxy_infos: dict[str, Any]) -> str:
     """Compute role name from meta/main.yml."""
-    return galaxy_infos.get("role_name", "")
+    result = galaxy_infos.get("role_name", "")
+    if not isinstance(result, str):
+        return ""
+    return result
 
 
 def search_galaxy_paths(search_dir: Path) -> list[str]:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/ansible-compat-4.1.10/src/ansible_compat.egg-info/PKG-INFO 
new/ansible-compat-4.1.11/src/ansible_compat.egg-info/PKG-INFO
--- old/ansible-compat-4.1.10/src/ansible_compat.egg-info/PKG-INFO      
2023-09-06 14:56:06.000000000 +0200
+++ new/ansible-compat-4.1.11/src/ansible_compat.egg-info/PKG-INFO      
2024-01-10 13:53:09.000000000 +0100
@@ -1,6 +1,6 @@
 Metadata-Version: 2.1
 Name: ansible-compat
-Version: 4.1.10
+Version: 4.1.11
 Summary: Ansible compatibility goodies
 Author-email: Sorin Sbarnea <ssbar...@redhat.com>
 Maintainer-email: Sorin Sbarnea <ssbar...@redhat.com>
@@ -21,6 +21,7 @@
 Classifier: Programming Language :: Python :: 3.9
 Classifier: Programming Language :: Python :: 3.10
 Classifier: Programming Language :: Python :: 3.11
+Classifier: Programming Language :: Python :: 3.12
 Classifier: Programming Language :: Python
 Classifier: Topic :: System :: Systems Administration
 Classifier: Topic :: Software Development :: Bug Tracking
@@ -29,9 +30,23 @@
 Classifier: Topic :: Utilities
 Requires-Python: >=3.9
 Description-Content-Type: text/markdown
+License-File: LICENSE
+Requires-Dist: ansible-core>=2.12
+Requires-Dist: packaging
+Requires-Dist: PyYAML
+Requires-Dist: subprocess-tee>=0.4.1
+Requires-Dist: jsonschema>=4.6.0
+Requires-Dist: typing-extensions>=4.5.0; python_version < "3.10"
 Provides-Extra: docs
+Requires-Dist: argparse-manpage; extra == "docs"
+Requires-Dist: black; extra == "docs"
+Requires-Dist: mkdocs-ansible[lock]>=0.1.2; extra == "docs"
 Provides-Extra: test
-License-File: LICENSE
+Requires-Dist: coverage; extra == "test"
+Requires-Dist: pip-tools; extra == "test"
+Requires-Dist: pytest>=7.2.0; extra == "test"
+Requires-Dist: pytest-mock; extra == "test"
+Requires-Dist: pytest-plus>=0.6.1; extra == "test"
 
 # ansible-compat
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/ansible-compat-4.1.10/src/ansible_compat.egg-info/SOURCES.txt 
new/ansible-compat-4.1.11/src/ansible_compat.egg-info/SOURCES.txt
--- old/ansible-compat-4.1.10/src/ansible_compat.egg-info/SOURCES.txt   
2023-09-06 14:56:06.000000000 +0200
+++ new/ansible-compat-4.1.11/src/ansible_compat.egg-info/SOURCES.txt   
2024-01-10 13:53:09.000000000 +0100
@@ -78,6 +78,7 @@
 test/collections/acme.goodies/roles/baz/molecule/deep_scenario/molecule.yml
 test/collections/acme.goodies/roles/baz/tasks/main.yml
 test/collections/acme.goodies/tests/requirements.yml
+test/collections/acme.minimal/galaxy.yml
 test/roles/acme.missing_deps/requirements.yml
 test/roles/acme.missing_deps/meta/main.yml
 test/roles/acme.sample2/meta/main.yml
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/ansible-compat-4.1.10/src/ansible_compat.egg-info/requires.txt 
new/ansible-compat-4.1.11/src/ansible_compat.egg-info/requires.txt
--- old/ansible-compat-4.1.10/src/ansible_compat.egg-info/requires.txt  
2023-09-06 14:56:06.000000000 +0200
+++ new/ansible-compat-4.1.11/src/ansible_compat.egg-info/requires.txt  
2024-01-10 13:53:09.000000000 +0100
@@ -17,4 +17,4 @@
 pip-tools
 pytest>=7.2.0
 pytest-mock
-pytest-plus
+pytest-plus>=0.6.1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/ansible-compat-4.1.10/test/collections/acme.minimal/galaxy.yml 
new/ansible-compat-4.1.11/test/collections/acme.minimal/galaxy.yml
--- old/ansible-compat-4.1.10/test/collections/acme.minimal/galaxy.yml  
1970-01-01 01:00:00.000000000 +0100
+++ new/ansible-compat-4.1.11/test/collections/acme.minimal/galaxy.yml  
2024-01-10 13:52:49.000000000 +0100
@@ -0,0 +1,30 @@
+name: minimal
+namespace: acme
+version: 1.0.0
+readme: README.md
+authors:
+  - Red Hat
+description: Sample collection to use with molecule
+build_ignore:
+  - "*.egg-info"
+  - .DS_Store
+  - .eggs
+  - .gitignore
+  - .mypy_cache
+  - .pytest_cache
+  - .stestr
+  - .stestr.conf
+  - .tox
+  - .vscode
+  - MANIFEST.in
+  - build
+  - dist
+  - doc
+  - report.html
+  - setup.cfg
+  - setup.py
+  - "tests/unit/*.*"
+  - README.rst
+  - tox.ini
+
+license_file: LICENSE
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ansible-compat-4.1.10/test/test_runtime.py 
new/ansible-compat-4.1.11/test/test_runtime.py
--- old/ansible-compat-4.1.10/test/test_runtime.py      2023-09-06 
14:55:41.000000000 +0200
+++ new/ansible-compat-4.1.11/test/test_runtime.py      2024-01-10 
13:52:49.000000000 +0100
@@ -24,6 +24,7 @@
 from ansible_compat.runtime import (
     CompletedProcess,
     Runtime,
+    _get_galaxy_role_name,
     is_url,
     search_galaxy_paths,
 )
@@ -239,10 +240,11 @@
         os.chdir(old_pwd)
 
 
-def test_prerun_reqs_v1(caplog: pytest.LogCaptureFixture, runtime: Runtime) -> 
None:
+def test_prerun_reqs_v1(caplog: pytest.LogCaptureFixture) -> None:
     """Checks that the linter can auto-install requirements v1 when found."""
+    runtime = Runtime(verbosity=1)
     path = Path(__file__).parent.parent / "examples" / "reqs_v1"
-    with cwd(path), caplog.at_level(logging.INFO):
+    with cwd(path):
         runtime.prepare_environment()
     assert any(
         msg.startswith("Running ansible-galaxy role install") for msg in 
caplog.messages
@@ -253,12 +255,12 @@
     )
 
 
-def test_prerun_reqs_v2(caplog: pytest.LogCaptureFixture, runtime: Runtime) -> 
None:
+def test_prerun_reqs_v2(caplog: pytest.LogCaptureFixture) -> None:
     """Checks that the linter can auto-install requirements v2 when found."""
+    runtime = Runtime(verbosity=1)
     path = (Path(__file__).parent.parent / "examples" / "reqs_v2").resolve()
     with cwd(path):
-        with caplog.at_level(logging.INFO):
-            runtime.prepare_environment()
+        runtime.prepare_environment()
         assert any(
             msg.startswith("Running ansible-galaxy role install")
             for msg in caplog.messages
@@ -525,11 +527,10 @@
 
 
 def test_install_galaxy_role_unlink(
-    runtime_tmp: Runtime,
     caplog: pytest.LogCaptureFixture,
 ) -> None:
     """Test ability to unlink incorrect symlinked roles."""
-    caplog.set_level(logging.INFO)
+    runtime_tmp = Runtime(verbosity=1)
     runtime_tmp.prepare_environment()
     pathlib.Path(f"{runtime_tmp.cache_dir}/roles").mkdir(parents=True, 
exist_ok=True)
     
pathlib.Path(f"{runtime_tmp.cache_dir}/roles/acme.get_rich").symlink_to("/dev/null")
@@ -861,3 +862,32 @@
 def test_is_url(name: str, result: bool) -> None:
     """Checks functionality of is_url."""
     assert is_url(name) == result
+
+
+def test_prepare_environment_repair_broken_symlink(
+    caplog: pytest.LogCaptureFixture,
+) -> None:
+    """Ensure we can deal with broken symlinks in collections."""
+    caplog.set_level(logging.INFO)
+    project_dir = Path(__file__).parent / "collections" / "acme.minimal"
+    runtime = Runtime(isolated=True, project_dir=project_dir)
+    assert runtime.cache_dir
+    acme = runtime.cache_dir / "collections" / "ansible_collections" / "acme"
+    acme.mkdir(parents=True, exist_ok=True)
+    goodies = acme / "minimal"
+    rmtree(goodies, ignore_errors=True)
+    goodies.unlink(missing_ok=True)
+    goodies.symlink_to("/invalid/destination")
+    runtime.prepare_environment(install_local=True)
+    assert any(
+        msg.startswith("Collection is symlinked, but not pointing to")
+        for msg in caplog.messages
+    )
+
+
+def test_get_galaxy_role_name_invalid() -> None:
+    """Verifies that function returns empty string on invalid input."""
+    galaxy_infos = {
+        "role_name": False,  # <-- invalid data, should be string
+    }
+    assert _get_galaxy_role_name(galaxy_infos) == ""
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ansible-compat-4.1.10/test/test_runtime_scan_path.py 
new/ansible-compat-4.1.11/test/test_runtime_scan_path.py
--- old/ansible-compat-4.1.10/test/test_runtime_scan_path.py    2023-09-06 
14:55:41.000000000 +0200
+++ new/ansible-compat-4.1.11/test/test_runtime_scan_path.py    2024-01-10 
13:52:49.000000000 +0100
@@ -23,7 +23,6 @@
 class ScanSysPath:
     """Parameters for scan tests."""
 
-    isolated: bool
     scan: bool
     raises_not_found: bool
 
@@ -38,10 +37,8 @@
 @pytest.mark.parametrize(
     ("param"),
     (
-        ScanSysPath(isolated=True, scan=True, raises_not_found=True),
-        ScanSysPath(isolated=True, scan=False, raises_not_found=True),
-        ScanSysPath(isolated=False, scan=True, raises_not_found=False),
-        ScanSysPath(isolated=False, scan=False, raises_not_found=True),
+        ScanSysPath(scan=False, raises_not_found=True),
+        ScanSysPath(scan=True, raises_not_found=False),
     ),
     ids=str,
 )
@@ -87,7 +84,7 @@
         f"""
     import json;
     from ansible_compat.runtime import Runtime;
-    r = Runtime(isolated={param.isolated});
+    r = Runtime();
     fv, cp = r.require_collection(name="{V2_COLLECTION_FULL_NAME}", 
version="{V2_COLLECTION_VERSION}", install=False);
     print(json.dumps({{"found_version": str(fv), "collection_path": 
str(cp)}}));
     """,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ansible-compat-4.1.10/tox.ini 
new/ansible-compat-4.1.11/tox.ini
--- old/ansible-compat-4.1.10/tox.ini   2023-09-06 14:55:41.000000000 +0200
+++ new/ansible-compat-4.1.11/tox.ini   2024-01-10 13:52:49.000000000 +0100
@@ -4,8 +4,22 @@
   lint
   pkg
   docs
-  # matrix assumed current (implicit) is 2.13:
-  py{39,310,311}{,-devel,-ansible212,-ansible213,-ansible214,-ansible215}
+  py
+  py-devel
+  py39-ansible212
+  py39-ansible213
+  py39-ansible214
+  py39-ansible215
+  py310-ansible212
+  py310-ansible213
+  py310-ansible214
+  py310-ansible215
+  py311-ansible212
+  py311-ansible213
+  py311-ansible214
+  py311-ansible215
+  py312-ansible216
+
 isolated_build = true
 skip_missing_interpreters = True
 requires =
@@ -14,18 +28,20 @@
 
 [testenv]
 description =
-  Run the tests with {basepython}
+  Run the tests
   devel: ansible devel branch
   ansible212: ansible-core 2.12
   ansible213: ansible-core 2.13
   ansible214: ansible-core 2.14
   ansible215: ansible-core 2.15
+  ansible216: ansible-core 2.16
 
 deps =
   ansible212: ansible-core>=2.12,<2.13
   ansible213: ansible-core>=2.13,<2.14
   ansible214: ansible-core>=2.14,<2.15
   ansible215: ansible-core>=2.15,<2.16
+  ansible216: ansible-core>=2.16,<2.17
 
   devel: ansible-core @ 
git+https://github.com/ansible/ansible.git@c5d18c39d81e2b3b10856b2fb76747230e4fac4a
  # GPLv3+
   # avoid installing ansible-core on -devel envs:
@@ -83,7 +99,7 @@
 [testenv:lint]
 description = Run all linters
 # locked basepython is needed because to keep constrains.txt predictable
-basepython = python3.9
+basepython = python3.10
 deps =
   pre-commit>=2.6.0
 skip_install = true

Reply via email to