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 <ka...@b1-systems.de> + +- 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 <steven.kowa...@suse.com> + +- 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 <ssbar...@redhat.com> Maintainer-email: Sorin Sbarnea <ssbar...@redhat.com> 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 <ssbar...@redhat.com> Maintainer-email: Sorin Sbarnea <ssbar...@redhat.com> 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 =