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 2023-07-24 18:25:52
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-ansible-compat (Old)
and /work/SRC/openSUSE:Factory/.python-ansible-compat.new.1467 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-ansible-compat"
Mon Jul 24 18:25:52 2023 rev:18 rq:1100222 version:4.1.5
Changes:
--------
---
/work/SRC/openSUSE:Factory/python-ansible-compat/python-ansible-compat.changes
2023-06-14 16:31:02.795097836 +0200
+++
/work/SRC/openSUSE:Factory/.python-ansible-compat.new.1467/python-ansible-compat.changes
2023-07-24 18:26:12.422234921 +0200
@@ -1,0 +2,15 @@
+Fri Jul 21 12:08:15 UTC 2023 - Johannes Kastl <[email protected]>
+
+- releases 4.1.3 and 4.1.4 were yanked
+- update to 4.1.5:
+ * Bugfixes
+ - Fix find roles inside collection repository (#297) @ajinkyau
+ - Enable packit rpm packaging (#292) @ssbarnea
+
+-------------------------------------------------------------------
+Fri Jul 21 07:02:13 UTC 2023 - Steve Kowalik <[email protected]>
+
+- Remove unneeded BuildRequires on setuptools_scm_git_archive.
+- Do not use a glob in %files
+
+-------------------------------------------------------------------
Old:
----
ansible-compat-4.1.2.tar.gz
New:
----
ansible-compat-4.1.5.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-ansible-compat.spec ++++++
--- /var/tmp/diff_new_pack.ejXcfB/_old 2023-07-24 18:26:13.290240020 +0200
+++ /var/tmp/diff_new_pack.ejXcfB/_new 2023-07-24 18:26:13.294240044 +0200
@@ -24,14 +24,13 @@
%endif
Name: python-ansible-compat
-Version: 4.1.2
+Version: 4.1.5
Release: 0
Summary: Compatibility shim for Ansible 2.9 and newer
License: MIT
URL: https://github.com/ansible-community/ansible-compat
Source:
https://files.pythonhosted.org/packages/source/a/ansible-compat/ansible-compat-%{version}.tar.gz
BuildRequires: %{python_module pip}
-BuildRequires: %{python_module setuptools_scm_git_archive}
BuildRequires: %{python_module setuptools_scm}
BuildRequires: %{python_module setuptools}
BuildRequires: %{python_module wheel}
@@ -70,7 +69,8 @@
%pytest -k 'not (test_runtime_example or test_require_collection_no_cache_dir
or test_upgrade_collection or test_install_collection_dest or
test_install_collection or test_require_collection or
test_require_collection_wrong_version or test_prerun_reqs_v2 or
test_prerun_reqs_v1 or test_prepare_environment_with_collections or
test_runtime_require_module)' -W ignore:'There is no current event loop'
%files %{python_files}
-%{python_sitelib}/ansible_compat*
+%{python_sitelib}/ansible_compat
+%{python_sitelib}/ansible_compat-%{version}.dist-info
%doc README.md
%license LICENSE
++++++ ansible-compat-4.1.2.tar.gz -> ansible-compat-4.1.5.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/ansible-compat-4.1.2/.git_archival.txt
new/ansible-compat-4.1.5/.git_archival.txt
--- old/ansible-compat-4.1.2/.git_archival.txt 1970-01-01 01:00:00.000000000
+0100
+++ new/ansible-compat-4.1.5/.git_archival.txt 2023-07-21 12:58:17.000000000
+0200
@@ -0,0 +1,4 @@
+node: $Format:%H$
+node-date: $Format:%cI$
+describe-name: $Format:%(describe:tags=true)$
+ref-names: $Format:%D$
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/ansible-compat-4.1.2/.gitattributes
new/ansible-compat-4.1.5/.gitattributes
--- old/ansible-compat-4.1.2/.gitattributes 1970-01-01 01:00:00.000000000
+0100
+++ new/ansible-compat-4.1.5/.gitattributes 2023-07-21 12:58:17.000000000
+0200
@@ -0,0 +1,7 @@
+# Force LF line endings for text files
+* text=auto eol=lf
+
+*.png binary
+
+# Needed for setuptools-scm-git-archive
+.git_archival.txt export-subst
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/ansible-compat-4.1.2/.gitignore
new/ansible-compat-4.1.5/.gitignore
--- old/ansible-compat-4.1.2/.gitignore 2023-06-01 14:53:53.000000000 +0200
+++ new/ansible-compat-4.1.5/.gitignore 2023-07-21 12:58:17.000000000 +0200
@@ -32,6 +32,8 @@
# before PyInstaller builds the exe, so as to inject date/other infos into it.
*.manifest
*.spec
+rpm/*.spec
+*.rpm
# Installer logs
pip-log.txt
@@ -129,3 +131,6 @@
.test-results
*.lcov
ansible_collections
+
+# Generated by setuptools-scm
+src/ansible_compat/_version.py
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/ansible-compat-4.1.2/.packit.yaml
new/ansible-compat-4.1.5/.packit.yaml
--- old/ansible-compat-4.1.2/.packit.yaml 1970-01-01 01:00:00.000000000
+0100
+++ new/ansible-compat-4.1.5/.packit.yaml 2023-07-21 12:58:17.000000000
+0200
@@ -0,0 +1,42 @@
+---
+# https://packit.dev/docs/configuration/
+# Test locally running: packit build locally
+# spell-checker:ignore packit specfile copr epel
+specfile_path: dist/python-ansible-compat.spec
+actions:
+ create-archive:
+ # packit.dev service does have these module pre-installed:
+ - python3 -m build --sdist --outdir dist
+ - sh -c "ls dist/ansible-compat-*.tar.gz"
+ get-current-version:
+ - ./tools/get-version.sh
+ post-upstream-clone:
+ - rm -f dist/*.tar.gz || true
+ - ./tools/update-version.sh
+srpm_build_deps:
+ - python3-build
+ - python3-setuptools_scm
+ - python3-pytest
+ - python3-pytest-mock
+jobs:
+ - job: copr_build
+ trigger: commit
+ branch: main
+ targets:
+ - fedora-rawhide-x86_64
+ - fedora-rawhide-aarch64
+ - fedora-latest-x86_64
+ - fedora-latest-aarch64
+ # Missing python3-build see
https://bugzilla.redhat.com/show_bug.cgi?id=2129071
+ # - centos-stream-9-aarch64
+ # - centos-stream-9-x86_64
+ - job: tests
+ trigger: pull_request
+ branch: main
+ targets:
+ - fedora-latest
+ - fedora-rawhide
+ # - job: propose_downstream
+ # trigger: release
+ # metadata:
+ # dist-git-branch: master
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/ansible-compat-4.1.2/.pre-commit-config.yaml
new/ansible-compat-4.1.5/.pre-commit-config.yaml
--- old/ansible-compat-4.1.2/.pre-commit-config.yaml 2023-06-01
14:53:53.000000000 +0200
+++ new/ansible-compat-4.1.5/.pre-commit-config.yaml 2023-07-21
12:58:17.000000000 +0200
@@ -10,6 +10,8 @@
skip:
# https://github.com/pre-commit-ci/issues/issues/55
- 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
@@ -19,13 +21,13 @@
)$
repos:
- repo: https://github.com/charliermarsh/ruff-pre-commit
- rev: "v0.0.267"
+ rev: "v0.0.277"
hooks:
- id: ruff
args: [--fix, --exit-non-zero-on-fix]
- repo: https://github.com/pre-commit/mirrors-prettier
# keep it before yamllint
- rev: "v3.0.0-alpha.9-for-vscode"
+ rev: "v3.0.0"
hooks:
- id: prettier
additional_dependencies:
@@ -49,11 +51,11 @@
- id: debug-statements
language_version: python3
- repo: https://github.com/codespell-project/codespell
- rev: v2.2.4
+ rev: v2.2.5
hooks:
- id: codespell
- repo: https://github.com/adrienverge/yamllint.git
- rev: v1.31.0
+ rev: v1.32.0
hooks:
- id: yamllint
files: \.(yaml|yml)$
@@ -65,7 +67,7 @@
- id: black
language_version: python3
- repo: https://github.com/pre-commit/mirrors-mypy
- rev: v1.3.0
+ rev: v1.4.1
hooks:
- id: mypy
# empty args needed in order to match mypy cli behavior
@@ -111,3 +113,8 @@
pass_filenames: false
additional_dependencies:
- pip-tools>=6.11.0
+ - repo: https://github.com/packit/pre-commit-hooks
+ rev: v1.2.0
+ hooks:
+ - id: validate-config-in-container
+ alias: packit
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/ansible-compat-4.1.2/.prettierignore
new/ansible-compat-4.1.5/.prettierignore
--- old/ansible-compat-4.1.2/.prettierignore 2023-06-01 14:53:53.000000000
+0200
+++ new/ansible-compat-4.1.5/.prettierignore 2023-07-21 12:58:17.000000000
+0200
@@ -1 +1,4 @@
test/assets/
+
+# Generated by setuptools-scm
+src/ansible_compat/_version.py
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/ansible-compat-4.1.2/PKG-INFO
new/ansible-compat-4.1.5/PKG-INFO
--- old/ansible-compat-4.1.2/PKG-INFO 2023-06-01 14:54:10.958107200 +0200
+++ new/ansible-compat-4.1.5/PKG-INFO 2023-07-21 12:58:43.393725200 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 2.1
Name: ansible-compat
-Version: 4.1.2
+Version: 4.1.5
Summary: Ansible compatibility goodies
Author-email: Sorin Sbarnea <[email protected]>
Maintainer-email: Sorin Sbarnea <[email protected]>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/ansible-compat-4.1.2/pyproject.toml
new/ansible-compat-4.1.5/pyproject.toml
--- old/ansible-compat-4.1.2/pyproject.toml 2023-06-01 14:53:53.000000000
+0200
+++ new/ansible-compat-4.1.5/pyproject.toml 2023-07-21 12:58:17.000000000
+0200
@@ -1,7 +1,7 @@
[build-system]
requires = [
- "setuptools >= 61.0", # PEP-621
- "setuptools_scm[toml] >= 7.0.0",
+ "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
]
build-backend = "setuptools.build_meta"
@@ -135,7 +135,8 @@
"S607", # Starting a process with a partial executable path
"PLR0912", # Bug https://github.com/charliermarsh/ruff/issues/4244
"PLR0913", # Bug https://github.com/charliermarsh/ruff/issues/4244
-
+ "RUF012",
+ "PERF203",
]
target-version = "py39"
@@ -154,3 +155,4 @@
[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.2/requirements.txt
new/ansible-compat-4.1.5/requirements.txt
--- old/ansible-compat-4.1.2/requirements.txt 2023-06-01 14:53:53.000000000
+0200
+++ new/ansible-compat-4.1.5/requirements.txt 2023-07-21 12:58:17.000000000
+0200
@@ -2,7 +2,7 @@
# This file is autogenerated by pip-compile with Python 3.9
# by the following command:
#
-# pip-compile --extra=docs --extra=test --output-file=requirements.txt
--resolver=backtracking --strip-extras --unsafe-package=ansible-core
--unsafe-package=resolvelib --unsafe-package=typing_extensions pyproject.toml
+# 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.2
# via ansible-compat (pyproject.toml)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/ansible-compat-4.1.2/src/ansible_compat/_version.py
new/ansible-compat-4.1.5/src/ansible_compat/_version.py
--- old/ansible-compat-4.1.2/src/ansible_compat/_version.py 1970-01-01
01:00:00.000000000 +0100
+++ new/ansible-compat-4.1.5/src/ansible_compat/_version.py 2023-07-21
12:58:43.000000000 +0200
@@ -0,0 +1,4 @@
+# file generated by setuptools_scm
+# don't change, don't track in version control
+__version__ = version = '4.1.5'
+__version_tuple__ = version_tuple = (4, 1, 5)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/ansible-compat-4.1.2/src/ansible_compat/runtime.py
new/ansible-compat-4.1.5/src/ansible_compat/runtime.py
--- old/ansible-compat-4.1.2/src/ansible_compat/runtime.py 2023-06-01
14:53:53.000000000 +0200
+++ new/ansible-compat-4.1.5/src/ansible_compat/runtime.py 2023-07-21
12:58:17.000000000 +0200
@@ -1,5 +1,8 @@
"""Ansible runtime environment manager."""
+from __future__ import annotations
+
import contextlib
+import fnmatch
import importlib
import json
import logging
@@ -12,7 +15,7 @@
from collections import OrderedDict
from dataclasses import dataclass, field
from pathlib import Path
-from typing import TYPE_CHECKING, Any, Callable, Optional, Union, no_type_check
+from typing import TYPE_CHECKING, Any, Callable, no_type_check
import subprocess_tee
from packaging.version import Version
@@ -78,7 +81,7 @@
class Plugins: # pylint: disable=too-many-instance-attributes
"""Dataclass to access installed Ansible plugins, uses ansible-doc to
retrieve them."""
- runtime: "Runtime"
+ runtime: Runtime
become: dict[str, str] = field(init=False)
cache: dict[str, str] = field(init=False)
callback: dict[str, str] = field(init=False)
@@ -143,9 +146,9 @@
class Runtime:
"""Ansible Runtime manager."""
- _version: Optional[Version] = None
+ _version: Version | None = None
collections: OrderedDict[str, Collection] = OrderedDict()
- cache_dir: Optional[Path] = None
+ cache_dir: Path | None = None
# Used to track if we have already initialized the Ansible runtime as
attempts
# to do it multiple tilmes will cause runtime warnings from within
ansible-core
initialized: bool = False
@@ -153,13 +156,13 @@
def __init__(
self,
- project_dir: Optional[Path] = None,
+ project_dir: Path | None = None,
*,
isolated: bool = False,
- min_required_version: Optional[str] = None,
+ min_required_version: str | None = None,
require_module: bool = False,
max_retries: int = 0,
- environ: Optional[dict[str, str]] = None,
+ environ: dict[str, str] | None = None,
) -> None:
"""Initialize Ansible runtime environment.
@@ -311,12 +314,12 @@
def run( # ruff: disable=PLR0913
self,
- args: Union[str, list[str]],
+ args: str | list[str],
*,
retry: bool = False,
tee: bool = False,
- env: Optional[dict[str, str]] = None,
- cwd: Optional[Path] = None,
+ env: dict[str, str] | None = None,
+ cwd: Path | None = None,
) -> CompletedProcess:
"""Execute a command inside an Ansible environment.
@@ -377,8 +380,8 @@
def version_in_range(
self,
- lower: Optional[str] = None,
- upper: Optional[str] = None,
+ lower: str | None = None,
+ upper: str | None = None,
) -> bool:
"""Check if Ansible version is inside a required range.
@@ -392,9 +395,9 @@
def install_collection(
self,
- collection: Union[str, Path],
+ collection: str | Path,
*,
- destination: Optional[Path] = None,
+ destination: Path | None = None,
force: bool = False,
) -> None:
"""Install an Ansible collection.
@@ -439,7 +442,7 @@
def install_collection_from_disk(
self,
path: Path,
- destination: Optional[Path] = None,
+ destination: Path | None = None,
) -> None:
"""Build and install collection from a given disk path."""
if not self.version_in_range(upper="2.11"):
@@ -550,9 +553,22 @@
_logger.error(result.stderr)
raise AnsibleCommandError(result)
+ def search_galaxy_paths(self, search_dir: Path, depth: int = 0) ->
list[str]:
+ """Search for galaxy paths (only one level deep)."""
+ galaxy_paths: list[str] = []
+ for file in os.listdir(search_dir):
+ file_path = Path(file)
+ if file_path.is_dir() and depth < 1:
+ galaxy_paths.extend(self.search_galaxy_paths(file_path, 1))
+ elif fnmatch.fnmatch(file, "galaxy.yml"):
+ galaxy_paths.append(str(search_dir / file))
+ if depth == 0 and not galaxy_paths:
+ return ["galaxy.yml"]
+ return galaxy_paths
+
def prepare_environment( # noqa: C901
self,
- required_collections: Optional[dict[str, str]] = None,
+ required_collections: dict[str, str] | None = None,
*,
retry: bool = False,
install_local: bool = False,
@@ -560,7 +576,7 @@
role_name_check: int = 0,
) -> None:
"""Make dependencies available if needed."""
- destination: Optional[Path] = None
+ destination: Path | None = None
if required_collections is None:
required_collections = {}
@@ -571,75 +587,82 @@
for req_file in REQUIREMENT_LOCATIONS:
self.install_requirements(Path(req_file), retry=retry,
offline=offline)
- galaxy_path = Path("galaxy.yml")
- if galaxy_path.exists():
- data = yaml_from_file(galaxy_path)
- if isinstance(data, dict) and "dependencies" in data:
- for name, required_version in data["dependencies"].items():
- _logger.info(
- "Provisioning collection %s:%s from galaxy.yml",
- name,
- required_version,
- )
- self.install_collection(
- f"{name}:{required_version}",
- destination=destination,
- )
+ for gpath in self.search_galaxy_paths(self.project_dir):
+ galaxy_path = Path(gpath)
+ if galaxy_path.exists():
+ data = yaml_from_file(galaxy_path)
+ if isinstance(data, dict) and "dependencies" in data:
+ for name, required_version in data["dependencies"].items():
+ _logger.info(
+ "Provisioning collection %s:%s from galaxy.yml",
+ name,
+ required_version,
+ )
+ self.install_collection(
+ f"{name}:{required_version}",
+ destination=destination,
+ )
- if self.cache_dir:
- destination = self.cache_dir / "collections"
- for name, min_version in required_collections.items():
- self.install_collection(
- f"{name}:>={min_version}",
- destination=destination,
- )
+ if self.cache_dir:
+ destination = self.cache_dir / "collections"
+ for name, min_version in required_collections.items():
+ self.install_collection(
+ f"{name}:>={min_version}",
+ destination=destination,
+ )
- self._prepare_ansible_paths()
+ self._prepare_ansible_paths()
- if not install_local:
- return
+ if not install_local:
+ return
- if Path("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())}",
- )
- if colpath.is_symlink():
- if os.path.realpath(colpath) == Path.cwd():
+ if galaxy_path.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())}",
+ )
+ if colpath.is_symlink():
+ if os.path.realpath(colpath) == Path.cwd():
+ _logger.warning(
+ "Found symlinked collection, skipping its
installation.",
+ )
+ return
_logger.warning(
- "Found symlinked collection, skipping its
installation.",
+ "Collection is symlinked, but not pointing to %s
directory, so we will remove it.",
+ Path.cwd(),
)
- return
- _logger.warning(
- "Collection is symlinked, but not pointing to %s
directory, so we will remove it.",
- Path.cwd(),
- )
- colpath.unlink()
+ colpath.unlink()
- # molecule scenario within a collection
- self.install_collection_from_disk(Path("."),
destination=destination)
- elif (
- Path().resolve().parent.name == "roles"
- and Path("../../galaxy.yml").exists()
- ):
- # molecule scenario located within roles/<role-name>/molecule
inside
- # a collection
- self.install_collection_from_disk(Path("../.."),
destination=destination)
- else:
- # no collection, try to recognize and install a standalone role
- self._install_galaxy_role(
- self.project_dir,
- role_name_check=role_name_check,
- ignore_errors=True,
- )
+ # molecule scenario within a collection
+ self.install_collection_from_disk(
+ galaxy_path.parent,
+ destination=destination,
+ )
+ elif (
+ Path().resolve().parent.name == "roles"
+ and Path("../../galaxy.yml").exists()
+ ):
+ # molecule scenario located within roles/<role-name>/molecule
inside
+ # a collection
+ self.install_collection_from_disk(
+ Path("../.."),
+ destination=destination,
+ )
+ else:
+ # no collection, try to recognize and install a standalone role
+ self._install_galaxy_role(
+ self.project_dir,
+ role_name_check=role_name_check,
+ ignore_errors=True,
+ )
# reload collections
self.load_collections()
def require_collection(
self,
name: str,
- version: Optional[str] = None,
+ version: str | None = None,
*,
install: bool = True,
) -> None:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/ansible-compat-4.1.2/src/ansible_compat.egg-info/PKG-INFO
new/ansible-compat-4.1.5/src/ansible_compat.egg-info/PKG-INFO
--- old/ansible-compat-4.1.2/src/ansible_compat.egg-info/PKG-INFO
2023-06-01 14:54:10.000000000 +0200
+++ new/ansible-compat-4.1.5/src/ansible_compat.egg-info/PKG-INFO
2023-07-21 12:58:43.000000000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 2.1
Name: ansible-compat
-Version: 4.1.2
+Version: 4.1.5
Summary: Ansible compatibility goodies
Author-email: Sorin Sbarnea <[email protected]>
Maintainer-email: Sorin Sbarnea <[email protected]>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/ansible-compat-4.1.2/src/ansible_compat.egg-info/SOURCES.txt
new/ansible-compat-4.1.5/src/ansible_compat.egg-info/SOURCES.txt
--- old/ansible-compat-4.1.2/src/ansible_compat.egg-info/SOURCES.txt
2023-06-01 14:54:10.000000000 +0200
+++ new/ansible-compat-4.1.5/src/ansible_compat.egg-info/SOURCES.txt
2023-07-21 12:58:43.000000000 +0200
@@ -1,4 +1,7 @@
+.git_archival.txt
+.gitattributes
.gitignore
+.packit.yaml
.pre-commit-config.yaml
.prettierignore
.prettierrc.yaml
@@ -33,6 +36,7 @@
examples/reqs_v2/community-molecule-0.1.0.tar.gz
examples/reqs_v2/requirements.yml
src/ansible_compat/__init__.py
+src/ansible_compat/_version.py
src/ansible_compat/config.py
src/ansible_compat/constants.py
src/ansible_compat/errors.py
@@ -76,4 +80,6 @@
test/roles/acme.sample2/meta/main.yml
test/roles/ansible-role-sample/meta/main.yml
test/roles/sample3/meta/main.yml
-test/roles/sample4/meta/main.yml
\ No newline at end of file
+test/roles/sample4/meta/main.yml
+tools/get-version.sh
+tools/update-version.sh
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/ansible-compat-4.1.2/test/test_runtime.py
new/ansible-compat-4.1.5/test/test_runtime.py
--- old/ansible-compat-4.1.2/test/test_runtime.py 2023-06-01
14:53:53.000000000 +0200
+++ new/ansible-compat-4.1.5/test/test_runtime.py 2023-07-21
12:58:17.000000000 +0200
@@ -669,7 +669,7 @@
expected_collections: list[str],
) -> None:
"""Tests ability to install a local collection."""
- # ensure we do not have acme.google installed in user directory as it may
+ # ensure we do not have acme.goodies installed in user directory as it may
# produce false positives
rmtree(
pathlib.Path(
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/ansible-compat-4.1.2/tools/get-version.sh
new/ansible-compat-4.1.5/tools/get-version.sh
--- old/ansible-compat-4.1.2/tools/get-version.sh 1970-01-01
01:00:00.000000000 +0100
+++ new/ansible-compat-4.1.5/tools/get-version.sh 2023-07-21
12:58:17.000000000 +0200
@@ -0,0 +1,7 @@
+#!/bin/bash
+set -e
+{
+ python3 -c "import setuptools_scm" || python3 -m pip install --user
setuptools-scm
+} 1>&2 # redirect stdout to stderr to avoid polluting the output
+python3 -m setuptools_scm | \
+ sed 's/Guessed Version\([^+]\+\).*/\1/'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/ansible-compat-4.1.2/tools/update-version.sh
new/ansible-compat-4.1.5/tools/update-version.sh
--- old/ansible-compat-4.1.2/tools/update-version.sh 1970-01-01
01:00:00.000000000 +0100
+++ new/ansible-compat-4.1.5/tools/update-version.sh 2023-07-21
12:58:17.000000000 +0200
@@ -0,0 +1,7 @@
+#!/bin/bash
+DIR=$(dirname "$0")
+VERSION=$(./tools/get-version.sh)
+mkdir -p "${DIR}/../dist"
+sed -e "s/VERSION_PLACEHOLDER/${VERSION}/" \
+ "${DIR}/../dist/python-ansible-compat.spec.in" \
+ > "${DIR}/../dist/python-ansible-compat.spec"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/ansible-compat-4.1.2/tox.ini
new/ansible-compat-4.1.5/tox.ini
--- old/ansible-compat-4.1.2/tox.ini 2023-06-01 14:53:53.000000000 +0200
+++ new/ansible-compat-4.1.5/tox.ini 2023-07-21 12:58:17.000000000 +0200
@@ -8,6 +8,9 @@
py{39,310,311}{,-devel,-ansible212,-ansible213,-ansible214,-ansible215}
isolated_build = true
skip_missing_interpreters = True
+requires =
+ tox >= 4.6.3
+ setuptools >= 65.3.0 # editable installs
[testenv]
description =
@@ -24,7 +27,7 @@
ansible214: ansible-core>=2.14,<2.15
ansible215: ansible-core>=2.15,<2.16
- devel: ansible-core @ git+https://github.com/ansible/ansible.git # GPLv3+
+ devel: ansible-core @
git+https://github.com/ansible/ansible.git@c5d18c39d81e2b3b10856b2fb76747230e4fac4a
# GPLv3+
# avoid installing ansible-core on -devel envs:
!devel: ansible-core
extras =
@@ -138,6 +141,13 @@
{[testenv]deps}
ansible-core>=2.12
+[testenv:rpm]
+description = Use packit to build RPM (requires RPM based Linux distro)
+deps =
+ packitos
+commands =
+ packit build in-mock
+
[testenv:docs]
description = Build docs
commands =