all:
  children:
    zuul_unreachable:
      hosts: {}
  hosts:
    debian-bookworm:
      ansible_connection: ssh
      ansible_host: 2a13:1a81:8000:3124:f816:3eff:fee3:f9f4
      ansible_port: 22
      ansible_python_interpreter: auto
      ansible_user: zuul
      nodepool:
        az: nova
        cloud: regiocloud-a-ci
        external_id: 3e2bdbe3-7e66-41f5-8708-3f365ef9915e
        host_id: 25afcdcd4b24cc9d1766f11f81549380a3029030a455889bb61ec093
        interface_ip: 2a13:1a81:8000:3124:f816:3eff:fee3:f9f4
        label: debian-bookworm
        node_properties: {}
        private_ipv4: 10.128.0.107
        private_ipv6: null
        provider: regiocloud-a
        public_ipv4: 81.163.192.251
        public_ipv6: 2a13:1a81:8000:3124:f816:3eff:fee3:f9f4
        region: null
        slot: null
      tox_environment:
        MANAGER_VERSION: latest
        NOSE_HTML_OUT_FILE: nose_results.html
        NOSE_WITH_HTML_OUTPUT: 1
        NOSE_WITH_XUNIT: 1
      tox_envlist: test
  vars:
    tox_environment:
      MANAGER_VERSION: latest
      NOSE_HTML_OUT_FILE: nose_results.html
      NOSE_WITH_HTML_OUTPUT: 1
      NOSE_WITH_XUNIT: 1
    tox_envlist: test
    zuul:
      _inheritance_path:
      - '<Job base explicit: None implied: {MatchAny:{ImpliedBranchMatcher:main}}
        source: osism/zuul-config/zuul.d/jobs.yaml@main#2>'
      - '<Job unittests explicit: None implied: {MatchAny:{ImpliedBranchMatcher:master}}
        source: osism/openinfra-zuul-jobs/zuul.d/general-jobs.yaml@master#9>'
      - '<Job tox explicit: None implied: {MatchAny:{ImpliedBranchMatcher:master}}
        source: osism/openinfra-zuul-jobs/zuul.d/python-jobs.yaml@master#1>'
      - '<Job cfg-generics-tox-test-latest explicit: None implied: {MatchAny:{ImpliedBranchMatcher:main}}
        source: osism/generics/.zuul.yaml@main#87>'
      - '<Job cfg-generics-tox-test-latest explicit: None implied: None source: osism/generics/.zuul.yaml@main#117>'
      ansible_version: '9'
      attempts: 1
      branch: main
      build: 0b50c84ded6e432bbbc912e964d6879e
      build_refs:
      - branch: main
        change: '567'
        change_message: "chore(deps): update dependency ansible-pylibssh to v1.3.0\n\nThis
          PR contains the following updates:\n\n| Package | Change | Age | Confidence
          |\n|---|---|---|---|\n| [ansible-pylibssh](https://redirect.github.com/ansible/pylibssh)
          | `==1.2.2` -> `==1.3.0` | [![age](https://developer.mend.io/api/mc/badges/age/pypi/ansible-pylibssh/1.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
          | [![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/ansible-pylibssh/1.2.2/1.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
          |\n\n---\n\n### Release Notes\n\n<details>\n<summary>ansible/pylibssh (ansible-pylibssh)</summary>\n\n###
          [`v1.3.0`](https://redirect.github.com/ansible/pylibssh/blob/HEAD/CHANGELOG.rst#v130)\n\n[Compare
          Source](https://redirect.github.com/ansible/pylibssh/compare/v1.2.2...v1.3.0)\n\n\\======\n\n*(2025-10-12)*\n\n##
          Bug fixes\n\n- The bundled libssh 0.11.2 no longer fails, when the SFTP
          server announces\n  protocol version 3, but does not provide error message
          and language tag\n  in the `SSH_FXP_STATUS` message -- by :user:`Jakuje`.\n\n
          \ *Related issues and pull requests on GitHub:*\n  :issue:`222`.\n\n- Fixed
          reading files over SFTP that go over the pre-defined chunk size.\n\n  Prior
          to this change, the files could end up being corrupted, ending up with the
          last read chunk written to the file instead of the entire payload.\n\n  \\--
          by :user:`Jakuje`\n\n  *Related issues and pull requests on GitHub:*\n  :issue:`638`.\n\n-
          Repetitive calls to `exec_channel()` no longer crash and return reliable
          output -- by :user:`Jakuje`.\n\n  *Related issues and pull requests on GitHub:*\n
          \ :issue:`658`.\n\n- Uploading large files over SCP no longer fails -- by
          :user:`Jakuje`.\n\n  *Related issues and pull requests on GitHub:*\n  :issue:`661`.\n\n-
          Improved performance of SFTP transfers by using larger transfer chunks --
          by :user:`Jakuje`.\n\n  *Related issues and pull requests on GitHub:*\n
          \ :issue:`664`.\n\n- Fixed crash when more operations were called after
          `session.close()` -- by :user:`Jakuje`.\n\n  *Related issues and pull requests
          on GitHub:*\n  :issue:`709`.\n\n## Features\n\n- The underlying `SSH_OPTIONS_KEY_EXCHANGE`
          option of `libssh` is\n  now available as `key_exchange_algorithms` -- by
          :user:`NilashishC`.\n\n  *Related issues and pull requests on GitHub:*\n
          \ :issue:`675`.\n\n- Added a `pylibsshext.session.connect()` parameter\n
          \ `open_session_retries` -- by :user:`justin-stephenson`.\n\n  The `open_session_retries`
          session `connect()`\n  parameter allows a configurable number of retries
          if\n  libssh `ssh_channel_open_session()` returns `SSH_AGAIN`.\n  The default
          option value is 0, no retries will be\n  attempted.\n\n  *Related issues
          and pull requests on GitHub:*\n  :issue:`756`.\n\n- Added a `pylibsshext.session.connect()`
          parameter\n  `timeout_usec` to set `SSH_OPTIONS_TIMEOUT_USEC`.\n\n  This
          allows setting the `SSH_OPTIONS_TIMEOUT_USEC`\n  ssh option, though `SSH_OPTIONS_TIMEOUT`
          is a more\n  practical option.\n\n  \\-- by :user:`justin-stephenson`\n\n
          \ *Related issues and pull requests on GitHub:*\n  :issue:`756`.\n\n## Deprecations
          (removal in next major release)\n\n- The project stopped being tested under
          Ubuntu 20.04 VM since\n  GitHub has sunset their CI images -- by :user:`webknjaz`.\n\n
          \ *Related issues and pull requests on GitHub:*\n  :issue:`708`.\n\n## Removals
          and backward incompatible breaking changes\n\n- Dropped support for Python
          3.6, 3.7 and 3.8\n  \\-- by :user:`Qalthos` and :user:`webknjaz`.\n\n  *Related
          issues and pull requests on GitHub:*\n  :issue:`532`, :issue:`718`.\n\n-
          PyPI no longer ships year-versioned manylinux wheels. One may\n  have to
          update their version of pip to pick up the new ones.\n\n  \\-- by :user:`webknjaz`\n\n
          \ *Related issues and pull requests on GitHub:*\n  :issue:`562`.\n\n## Improved
          documentation\n\n- Added a :ref:`Communication <communication>` section
          to the main\n  documentation page -- by :user:`Andersson007`.\n\n  *Related
          issues and pull requests on GitHub:*\n  :issue:`640`.\n\n- Fixed the argument
          order in the `scp.put()` usage example\n  \\-- by :user:`kucharskim`.\n\n
          \ *Related issues and pull requests on GitHub:*\n  :issue:`646`.\n\n## Packaging
          updates and notes for downstreams\n\n- PyPI now only ships :pep:`600`-compatible
          manylinux wheels\n  \\-- by :user:`webknjaz`.\n\n  *Related issues and pull
          requests on GitHub:*\n  :issue:`562`.\n\n- The `pytest-forked` dependency
          of build, development and test environments was removed -- by :user:`Jakuje`.\n\n
          \ *Related issues and pull requests on GitHub:*\n  :issue:`658`, :issue:`760`.\n\n-
          The wheels are now built in cached container images with a\n  correctly
          set platform identifier.\n\n  \\-- by :user:`webknjaz`\n\n  *Related issues
          and pull requests on GitHub:*\n  :issue:`692`.\n\n- The `manylinux` build
          scripts now limit `cmake` below\n  version 4 -- by :user:`webknjaz`.\n\n
          \ *Related issues and pull requests on GitHub:*\n  :issue:`713`.\n\n- Stopped
          skipping SCP tests in the RPM spec -- by :user:`Jakuje`.\n\n  *Related issues
          and pull requests on GitHub:*\n  :issue:`714`.\n\n- Started bundling a copy
          of libssh 0.11.1 in platform-specific\n  wheels published on PyPI -- by
          :user:`Jakuje`.\n\n  *Related issues and pull requests on GitHub:*\n  :issue:`735`.\n\n-
          Updated the bundled copy of OpenSSL to the latest version 3.5.0\n  in `manylinux`
          wheels -- by :user:`Jakuje`.\n\n  *Related issues and pull requests on GitHub:*\n
          \ :issue:`738`.\n\n- Updated the bundled version of libssh to 0.11.2 in
          platform-specific\n  wheels published on PyPI -- by :user:`Jakuje`.\n\n
          \ *Related issues and pull requests on GitHub:*\n  :issue:`753`.\n\n- The
          RPM spec file no longer makes use of unpackaged dists\n  from PyPI on RHEL.
          The configuration is almost identical to\n  the one for Fedora. Only the
          `setuptools-scm` spec is\n  temporarily patched to allow older versions
          under RHEL.\n\n  \\-- by :user:`webknjaz`\n\n  *Related issues and pull
          requests on GitHub:*\n  :issue:`759`.\n\n- A workaround has been applied
          to the in-tree build backend that prevents\n  Cython from hanging when `libssh`
          header files are missing\n  \\-- by :user:`webknjaz`.\n\n  The patch makes
          `cythonize()` single-threaded because :mod:`multiprocessing`\n  gets stuck.
          The upstream will eventually fix this by migrating to\n  :mod:`concurrent.futures`.\n\n
          \ *Related issues and pull requests on GitHub:*\n  :issue:`762`, :issue:`769`,
          :issue:`770`.\n\n- Updated the bundled version of libssh to 0.11.3 in platform-specific\n
          \ wheels published on PyPI -- by :user:`Jakuje`.\n\n  *Related issues and
          pull requests on GitHub:*\n  :issue:`766`.\n\n## Contributor-facing changes\n\n-
          The manylinux build scripts have been adjusted to resolve the\n  dependency
          conflict between certain `packaging` and `setuptools`\n  versions -- by
          :user:`webknjaz`.\n\n  Previously, this was making some of the CI jobs crash
          with a traceback\n  when building said wheels.\n\n  *Related commits on
          GitHub:*\n  :commit:`1dfbf70fdfd99ae75068fdb3630790c96101a96a`.\n\n- The
          Git archives are now immutable per the packaging recommendations.\n  This
          allows downstreams safely use GitHub archive URLs when\n  re-packaging --
          by :user:`webknjaz`.\n\n  *Related commits on GitHub:*\n  :commit:`ea34887831a0c6547b32cd8c6a035bb77b91e771`.\n\n-
          Manylinux wheels are no longer built using custom shell scripts.\n  Instead,
          this is delegated to the `cibuildwheel` tool.\n\n  \\-- by :user:`webknjaz`\n\n
          \ *Related issues and pull requests on GitHub:*\n  :issue:`562`.\n\n- Updated
          the version of `libssh` to the latest release v0.11.1\n  in the cached `manylinux`
          build environment container images\n  \\-- by :user:`Jakuje`.\n\n  *Related
          issues and pull requests on GitHub:*\n  :issue:`636`.\n\n- All the uses
          of `actions/upload-artifact@v3` and\n  `actions/download-artifact@v3` have
          been updated to use\n  `v4`. This also includes bumping\n  `re-actors/checkout-python-sdist`
          to `release/v2` as it\n  uses `actions/download-artifact` internally.\n\n
          \ \\-- by :user:`NilashishC` and :user:`webknjaz`\n\n  *Related issues and
          pull requests on GitHub:*\n  :issue:`676`.\n\n- The `dumb-pypi`-produced
          static package index now renders correct\n  URLs to the distribution packages
          -- by :user:`webknjaz`.\n\n  *Related issues and pull requests on GitHub:*\n
          \ :issue:`678`, :issue:`679`, :issue:`749`.\n\n- The CI is now configured
          to use\n  :external+tox:std:ref:`tox-run---installpkg` when testing\n  pre-built
          dists. This replaces the previously existing\n  tox-level hacks in `test-binary-dists`
          and\n  `test-source-dists` environments that have now been\n  removed.\n\n
          \ \\-- by :user:`webknjaz`\n\n  *Related issues and pull requests on GitHub:*\n
          \ :issue:`688`.\n\n- The wheel building workflows have been updated to set
          the\n  OCI image platform identifiers to legal values like\n  `linux/arm64`.\n\n
          \ \\-- by :user:`webknjaz`\n\n  *Related issues and pull requests on GitHub:*\n
          \ :issue:`692`.\n\n- The CI is now configured to always set job timeout
          values.\n  This will ensure that the jobs that get stuck don't consume\n
          \ all 6 hours just hanging, improving responsiveness and the\n  overall
          CI/CD resource usage.\n\n  \\-- by :user:`webknjaz`\n\n  *Related issues
          and pull requests on GitHub:*\n  :issue:`706`.\n\n- The linting is now configured
          to check schemas of the\n  Read The Docs configuration file and the GitHub
          Actions\n  CI/CD workflow files in addition to enforcing timeouts.\n\n  \\--
          by :user:`webknjaz`\n\n  *Related issues and pull requests on GitHub:*\n
          \ :issue:`707`.\n\n- The `multiarch/qemu-user-static` image got replaced
          with\n  `tonistiigi/binfmt` because the latter is no longer\n  maintained
          and the former includes the fixed version of QEMU.\n\n  \\-- by :user:`webknjaz`\n\n
          \ *Related issues and pull requests on GitHub:*\n  :issue:`713`.\n\n- Added
          Fedora 41 and 42 to CI configuration -- by :user:`Jakuje`.\n\n  *Related
          issues and pull requests on GitHub:*\n  :issue:`715`.\n\n- Removed needless
          step from CI adjusting centos8 repositories -- by :user:`Jakuje`.\n\n  *Related
          issues and pull requests on GitHub:*\n  :issue:`716`.\n\n- The CI/CD infrastructure
          no longer pre-builds custom manylinux images\n  for building wheel targeting
          `manylinux1`, `manylinux2010` and\n  `manylinux2014` tags.\n\n  \\-- by
          :user:`webknjaz`\n\n  *Related issues and pull requests on GitHub:*\n  :issue:`730`.\n\n-
          The host OS is now ARM-based when building `manylinux_*_*_aarch64`\n  images
          for CI/CD -- by :user:`webknjaz`.\n\n  *Related issues and pull requests
          on GitHub:*\n  :issue:`731`.\n\n- False negative warnings reported by `coveragepy`
          when are now\n  disabled. They are evident when `pytest-cov` runs with the\n
          \ `pytest-xdist` integration. `pytest` 8.4 gives them more\n  visibility
          and out `filterwarnings = error` setting was turning\n  them into errors
          before this change.\n\n  \\-- by :user:`webknjaz`\n\n  *Related issues and
          pull requests on GitHub:*\n  :issue:`732`.\n\n- GitHub Actions CI/CD no
          longer runs jobs that install source\n  distributions into the tox environments
          for testing\n  \\-- by :user:`webknjaz`.\n\n  This is a temporary workaround
          for an upstream bug in tox and\n  said jobs are non-essential.\n\n  *Related
          issues and pull requests on GitHub:*\n  :issue:`733`.\n\n- Updated the pre-built
          `libffi` version to 3.4.8 in the\n  cached `manylinux` build environment
          container images\n  \\-- by :user:`Jakuje`.\n\n  *Related issues and pull
          requests on GitHub:*\n  :issue:`734`.\n\n- Reverted workaround keeping the
          old CMake version installed\n  as the new `libssh` works with newer versions
          -- by :user:`Jakuje`.\n\n  *Related issues and pull requests on GitHub:*\n
          \ :issue:`737`.\n\n- The CI infrastructure now produces `manylinux_2_31_armv7l`
          base images\n  with `libssh` and `openssl` pre-built -- by :user:`Jakuje`
          and\n  :user:`webknjaz`.\n\n  *Related issues and pull requests on GitHub:*\n
          \ :issue:`740`.\n\n- Started caching `manylinux` build images to be used
          for producing `2_34` tagged wheels\n  in `build-manylinux-container-images`
          workflow -- by :user:`KB-perByte`.\n\n  *Related issues and pull requests
          on GitHub:*\n  :issue:`741`.\n\n- The :file:`reusable-cibuildwheel.yml`
          workflow has been refactored to\n  be more generic and :file:`ci-cd.yml`
          now holds all the configuration\n  toggles -- by :user:`webknjaz`.\n\n  *Related
          issues and pull requests on GitHub:*\n  :issue:`750`.\n\n- Updated the version
          of `libssh` to the latest release v0.11.2\n  in the cached `manylinux` build
          environment container images\n  \\-- by :user:`Jakuje`.\n\n  *Related issues
          and pull requests on GitHub:*\n  :issue:`752`.\n\n- When building wheels,
          the source distribution is now passed directly\n  to the `cibuildwheel`
          invocation -- by :user:`webknjaz`.\n\n  *Related issues and pull requests
          on GitHub:*\n  :issue:`754`.\n\n- Fixed link to python3-pytest for CentOS
          9 Stream as it was recently moved from\n  CRB to AppStream -- by :user:`Jakuje`.\n\n
          \ *Related issues and pull requests on GitHub:*\n  :issue:`758`.\n\n- The
          CI/CD jobs for smoke-testing RPMs have been simplified\n  and now, they
          execute the same steps for all distro types.\n  They make use of `pyproject-rpm-macros`
          even under RHEL.\n  Installing external RPMs is the only conditional step
          that\n  is skipped on Fedora.\n\n  \\-- by :user:`webknjaz`\n\n  *Related
          issues and pull requests on GitHub:*\n  :issue:`759`.\n\n- The `requires`
          setting has been removed from :file:`tox.ini`, which\n  works around the
          upstream tool bug. This enabled us to re-introduce\n  CI jobs testing against
          sdist under Python 3.12 and newer\n  \\-- by :user:`webknjaz`.\n\n  *Related
          issues and pull requests on GitHub:*\n  :issue:`764`.\n\n- Updated the version
          of `libssh` to the latest release v0.11.3\n  in the cached `manylinux` build
          environment container images\n  \\-- by :user:`Jakuje`.\n\n  *Related issues
          and pull requests on GitHub:*\n  :issue:`765`.\n\n- Changed tests to use
          more lightweight ECDSA keys to avoid\n  timeouts -- by :user:`Jakuje`.\n\n
          \ *Related issues and pull requests on GitHub:*\n  :issue:`768`.\n\n***\n\n</details>\n\n---\n\n###
          Configuration\n\n\U0001F4C5 **Schedule**: Branch creation - At any time
          (no schedule defined), Automerge - At any time (no schedule defined).\n\n\U0001F6A6
          **Automerge**: Disabled by config. Please merge this manually once you are
          satisfied.\n\n\u267B **Rebasing**: Whenever PR becomes conflicted, or you
          tick the rebase/retry checkbox.\n\n\U0001F515 **Ignore**: Close this PR
          and you won't be reminded about this update again.\n\n---\n\n - [ ] <!--
          rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis
          PR was generated by [Mend Renovate](https://mend.io/renovate/). View the
          [repository job log](https://developer.mend.io/github/osism/generics).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xNDMuMSIsInVwZGF0ZWRJblZlciI6IjQxLjE0My4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJyZW5vdmF0ZSJdfQ==-->\n"
        change_url: https://github.com/osism/generics/pull/567
        commit_id: 9e3df0f7766d191985971c4e9a60274fc7537527
        patchset: 9e3df0f7766d191985971c4e9a60274fc7537527
        project:
          canonical_hostname: github.com
          canonical_name: github.com/osism/generics
          name: osism/generics
          short_name: generics
        src_dir: src/github.com/osism/generics
        topic: null
      buildset: bfcbcf1eda814da793d000dc4ba18a3f
      buildset_refs:
      - branch: main
        change: '567'
        change_message: "chore(deps): update dependency ansible-pylibssh to v1.3.0\n\nThis
          PR contains the following updates:\n\n| Package | Change | Age | Confidence
          |\n|---|---|---|---|\n| [ansible-pylibssh](https://redirect.github.com/ansible/pylibssh)
          | `==1.2.2` -> `==1.3.0` | [![age](https://developer.mend.io/api/mc/badges/age/pypi/ansible-pylibssh/1.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
          | [![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/ansible-pylibssh/1.2.2/1.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
          |\n\n---\n\n### Release Notes\n\n<details>\n<summary>ansible/pylibssh (ansible-pylibssh)</summary>\n\n###
          [`v1.3.0`](https://redirect.github.com/ansible/pylibssh/blob/HEAD/CHANGELOG.rst#v130)\n\n[Compare
          Source](https://redirect.github.com/ansible/pylibssh/compare/v1.2.2...v1.3.0)\n\n\\======\n\n*(2025-10-12)*\n\n##
          Bug fixes\n\n- The bundled libssh 0.11.2 no longer fails, when the SFTP
          server announces\n  protocol version 3, but does not provide error message
          and language tag\n  in the `SSH_FXP_STATUS` message -- by :user:`Jakuje`.\n\n
          \ *Related issues and pull requests on GitHub:*\n  :issue:`222`.\n\n- Fixed
          reading files over SFTP that go over the pre-defined chunk size.\n\n  Prior
          to this change, the files could end up being corrupted, ending up with the
          last read chunk written to the file instead of the entire payload.\n\n  \\--
          by :user:`Jakuje`\n\n  *Related issues and pull requests on GitHub:*\n  :issue:`638`.\n\n-
          Repetitive calls to `exec_channel()` no longer crash and return reliable
          output -- by :user:`Jakuje`.\n\n  *Related issues and pull requests on GitHub:*\n
          \ :issue:`658`.\n\n- Uploading large files over SCP no longer fails -- by
          :user:`Jakuje`.\n\n  *Related issues and pull requests on GitHub:*\n  :issue:`661`.\n\n-
          Improved performance of SFTP transfers by using larger transfer chunks --
          by :user:`Jakuje`.\n\n  *Related issues and pull requests on GitHub:*\n
          \ :issue:`664`.\n\n- Fixed crash when more operations were called after
          `session.close()` -- by :user:`Jakuje`.\n\n  *Related issues and pull requests
          on GitHub:*\n  :issue:`709`.\n\n## Features\n\n- The underlying `SSH_OPTIONS_KEY_EXCHANGE`
          option of `libssh` is\n  now available as `key_exchange_algorithms` -- by
          :user:`NilashishC`.\n\n  *Related issues and pull requests on GitHub:*\n
          \ :issue:`675`.\n\n- Added a `pylibsshext.session.connect()` parameter\n
          \ `open_session_retries` -- by :user:`justin-stephenson`.\n\n  The `open_session_retries`
          session `connect()`\n  parameter allows a configurable number of retries
          if\n  libssh `ssh_channel_open_session()` returns `SSH_AGAIN`.\n  The default
          option value is 0, no retries will be\n  attempted.\n\n  *Related issues
          and pull requests on GitHub:*\n  :issue:`756`.\n\n- Added a `pylibsshext.session.connect()`
          parameter\n  `timeout_usec` to set `SSH_OPTIONS_TIMEOUT_USEC`.\n\n  This
          allows setting the `SSH_OPTIONS_TIMEOUT_USEC`\n  ssh option, though `SSH_OPTIONS_TIMEOUT`
          is a more\n  practical option.\n\n  \\-- by :user:`justin-stephenson`\n\n
          \ *Related issues and pull requests on GitHub:*\n  :issue:`756`.\n\n## Deprecations
          (removal in next major release)\n\n- The project stopped being tested under
          Ubuntu 20.04 VM since\n  GitHub has sunset their CI images -- by :user:`webknjaz`.\n\n
          \ *Related issues and pull requests on GitHub:*\n  :issue:`708`.\n\n## Removals
          and backward incompatible breaking changes\n\n- Dropped support for Python
          3.6, 3.7 and 3.8\n  \\-- by :user:`Qalthos` and :user:`webknjaz`.\n\n  *Related
          issues and pull requests on GitHub:*\n  :issue:`532`, :issue:`718`.\n\n-
          PyPI no longer ships year-versioned manylinux wheels. One may\n  have to
          update their version of pip to pick up the new ones.\n\n  \\-- by :user:`webknjaz`\n\n
          \ *Related issues and pull requests on GitHub:*\n  :issue:`562`.\n\n## Improved
          documentation\n\n- Added a :ref:`Communication <communication>` section
          to the main\n  documentation page -- by :user:`Andersson007`.\n\n  *Related
          issues and pull requests on GitHub:*\n  :issue:`640`.\n\n- Fixed the argument
          order in the `scp.put()` usage example\n  \\-- by :user:`kucharskim`.\n\n
          \ *Related issues and pull requests on GitHub:*\n  :issue:`646`.\n\n## Packaging
          updates and notes for downstreams\n\n- PyPI now only ships :pep:`600`-compatible
          manylinux wheels\n  \\-- by :user:`webknjaz`.\n\n  *Related issues and pull
          requests on GitHub:*\n  :issue:`562`.\n\n- The `pytest-forked` dependency
          of build, development and test environments was removed -- by :user:`Jakuje`.\n\n
          \ *Related issues and pull requests on GitHub:*\n  :issue:`658`, :issue:`760`.\n\n-
          The wheels are now built in cached container images with a\n  correctly
          set platform identifier.\n\n  \\-- by :user:`webknjaz`\n\n  *Related issues
          and pull requests on GitHub:*\n  :issue:`692`.\n\n- The `manylinux` build
          scripts now limit `cmake` below\n  version 4 -- by :user:`webknjaz`.\n\n
          \ *Related issues and pull requests on GitHub:*\n  :issue:`713`.\n\n- Stopped
          skipping SCP tests in the RPM spec -- by :user:`Jakuje`.\n\n  *Related issues
          and pull requests on GitHub:*\n  :issue:`714`.\n\n- Started bundling a copy
          of libssh 0.11.1 in platform-specific\n  wheels published on PyPI -- by
          :user:`Jakuje`.\n\n  *Related issues and pull requests on GitHub:*\n  :issue:`735`.\n\n-
          Updated the bundled copy of OpenSSL to the latest version 3.5.0\n  in `manylinux`
          wheels -- by :user:`Jakuje`.\n\n  *Related issues and pull requests on GitHub:*\n
          \ :issue:`738`.\n\n- Updated the bundled version of libssh to 0.11.2 in
          platform-specific\n  wheels published on PyPI -- by :user:`Jakuje`.\n\n
          \ *Related issues and pull requests on GitHub:*\n  :issue:`753`.\n\n- The
          RPM spec file no longer makes use of unpackaged dists\n  from PyPI on RHEL.
          The configuration is almost identical to\n  the one for Fedora. Only the
          `setuptools-scm` spec is\n  temporarily patched to allow older versions
          under RHEL.\n\n  \\-- by :user:`webknjaz`\n\n  *Related issues and pull
          requests on GitHub:*\n  :issue:`759`.\n\n- A workaround has been applied
          to the in-tree build backend that prevents\n  Cython from hanging when `libssh`
          header files are missing\n  \\-- by :user:`webknjaz`.\n\n  The patch makes
          `cythonize()` single-threaded because :mod:`multiprocessing`\n  gets stuck.
          The upstream will eventually fix this by migrating to\n  :mod:`concurrent.futures`.\n\n
          \ *Related issues and pull requests on GitHub:*\n  :issue:`762`, :issue:`769`,
          :issue:`770`.\n\n- Updated the bundled version of libssh to 0.11.3 in platform-specific\n
          \ wheels published on PyPI -- by :user:`Jakuje`.\n\n  *Related issues and
          pull requests on GitHub:*\n  :issue:`766`.\n\n## Contributor-facing changes\n\n-
          The manylinux build scripts have been adjusted to resolve the\n  dependency
          conflict between certain `packaging` and `setuptools`\n  versions -- by
          :user:`webknjaz`.\n\n  Previously, this was making some of the CI jobs crash
          with a traceback\n  when building said wheels.\n\n  *Related commits on
          GitHub:*\n  :commit:`1dfbf70fdfd99ae75068fdb3630790c96101a96a`.\n\n- The
          Git archives are now immutable per the packaging recommendations.\n  This
          allows downstreams safely use GitHub archive URLs when\n  re-packaging --
          by :user:`webknjaz`.\n\n  *Related commits on GitHub:*\n  :commit:`ea34887831a0c6547b32cd8c6a035bb77b91e771`.\n\n-
          Manylinux wheels are no longer built using custom shell scripts.\n  Instead,
          this is delegated to the `cibuildwheel` tool.\n\n  \\-- by :user:`webknjaz`\n\n
          \ *Related issues and pull requests on GitHub:*\n  :issue:`562`.\n\n- Updated
          the version of `libssh` to the latest release v0.11.1\n  in the cached `manylinux`
          build environment container images\n  \\-- by :user:`Jakuje`.\n\n  *Related
          issues and pull requests on GitHub:*\n  :issue:`636`.\n\n- All the uses
          of `actions/upload-artifact@v3` and\n  `actions/download-artifact@v3` have
          been updated to use\n  `v4`. This also includes bumping\n  `re-actors/checkout-python-sdist`
          to `release/v2` as it\n  uses `actions/download-artifact` internally.\n\n
          \ \\-- by :user:`NilashishC` and :user:`webknjaz`\n\n  *Related issues and
          pull requests on GitHub:*\n  :issue:`676`.\n\n- The `dumb-pypi`-produced
          static package index now renders correct\n  URLs to the distribution packages
          -- by :user:`webknjaz`.\n\n  *Related issues and pull requests on GitHub:*\n
          \ :issue:`678`, :issue:`679`, :issue:`749`.\n\n- The CI is now configured
          to use\n  :external+tox:std:ref:`tox-run---installpkg` when testing\n  pre-built
          dists. This replaces the previously existing\n  tox-level hacks in `test-binary-dists`
          and\n  `test-source-dists` environments that have now been\n  removed.\n\n
          \ \\-- by :user:`webknjaz`\n\n  *Related issues and pull requests on GitHub:*\n
          \ :issue:`688`.\n\n- The wheel building workflows have been updated to set
          the\n  OCI image platform identifiers to legal values like\n  `linux/arm64`.\n\n
          \ \\-- by :user:`webknjaz`\n\n  *Related issues and pull requests on GitHub:*\n
          \ :issue:`692`.\n\n- The CI is now configured to always set job timeout
          values.\n  This will ensure that the jobs that get stuck don't consume\n
          \ all 6 hours just hanging, improving responsiveness and the\n  overall
          CI/CD resource usage.\n\n  \\-- by :user:`webknjaz`\n\n  *Related issues
          and pull requests on GitHub:*\n  :issue:`706`.\n\n- The linting is now configured
          to check schemas of the\n  Read The Docs configuration file and the GitHub
          Actions\n  CI/CD workflow files in addition to enforcing timeouts.\n\n  \\--
          by :user:`webknjaz`\n\n  *Related issues and pull requests on GitHub:*\n
          \ :issue:`707`.\n\n- The `multiarch/qemu-user-static` image got replaced
          with\n  `tonistiigi/binfmt` because the latter is no longer\n  maintained
          and the former includes the fixed version of QEMU.\n\n  \\-- by :user:`webknjaz`\n\n
          \ *Related issues and pull requests on GitHub:*\n  :issue:`713`.\n\n- Added
          Fedora 41 and 42 to CI configuration -- by :user:`Jakuje`.\n\n  *Related
          issues and pull requests on GitHub:*\n  :issue:`715`.\n\n- Removed needless
          step from CI adjusting centos8 repositories -- by :user:`Jakuje`.\n\n  *Related
          issues and pull requests on GitHub:*\n  :issue:`716`.\n\n- The CI/CD infrastructure
          no longer pre-builds custom manylinux images\n  for building wheel targeting
          `manylinux1`, `manylinux2010` and\n  `manylinux2014` tags.\n\n  \\-- by
          :user:`webknjaz`\n\n  *Related issues and pull requests on GitHub:*\n  :issue:`730`.\n\n-
          The host OS is now ARM-based when building `manylinux_*_*_aarch64`\n  images
          for CI/CD -- by :user:`webknjaz`.\n\n  *Related issues and pull requests
          on GitHub:*\n  :issue:`731`.\n\n- False negative warnings reported by `coveragepy`
          when are now\n  disabled. They are evident when `pytest-cov` runs with the\n
          \ `pytest-xdist` integration. `pytest` 8.4 gives them more\n  visibility
          and out `filterwarnings = error` setting was turning\n  them into errors
          before this change.\n\n  \\-- by :user:`webknjaz`\n\n  *Related issues and
          pull requests on GitHub:*\n  :issue:`732`.\n\n- GitHub Actions CI/CD no
          longer runs jobs that install source\n  distributions into the tox environments
          for testing\n  \\-- by :user:`webknjaz`.\n\n  This is a temporary workaround
          for an upstream bug in tox and\n  said jobs are non-essential.\n\n  *Related
          issues and pull requests on GitHub:*\n  :issue:`733`.\n\n- Updated the pre-built
          `libffi` version to 3.4.8 in the\n  cached `manylinux` build environment
          container images\n  \\-- by :user:`Jakuje`.\n\n  *Related issues and pull
          requests on GitHub:*\n  :issue:`734`.\n\n- Reverted workaround keeping the
          old CMake version installed\n  as the new `libssh` works with newer versions
          -- by :user:`Jakuje`.\n\n  *Related issues and pull requests on GitHub:*\n
          \ :issue:`737`.\n\n- The CI infrastructure now produces `manylinux_2_31_armv7l`
          base images\n  with `libssh` and `openssl` pre-built -- by :user:`Jakuje`
          and\n  :user:`webknjaz`.\n\n  *Related issues and pull requests on GitHub:*\n
          \ :issue:`740`.\n\n- Started caching `manylinux` build images to be used
          for producing `2_34` tagged wheels\n  in `build-manylinux-container-images`
          workflow -- by :user:`KB-perByte`.\n\n  *Related issues and pull requests
          on GitHub:*\n  :issue:`741`.\n\n- The :file:`reusable-cibuildwheel.yml`
          workflow has been refactored to\n  be more generic and :file:`ci-cd.yml`
          now holds all the configuration\n  toggles -- by :user:`webknjaz`.\n\n  *Related
          issues and pull requests on GitHub:*\n  :issue:`750`.\n\n- Updated the version
          of `libssh` to the latest release v0.11.2\n  in the cached `manylinux` build
          environment container images\n  \\-- by :user:`Jakuje`.\n\n  *Related issues
          and pull requests on GitHub:*\n  :issue:`752`.\n\n- When building wheels,
          the source distribution is now passed directly\n  to the `cibuildwheel`
          invocation -- by :user:`webknjaz`.\n\n  *Related issues and pull requests
          on GitHub:*\n  :issue:`754`.\n\n- Fixed link to python3-pytest for CentOS
          9 Stream as it was recently moved from\n  CRB to AppStream -- by :user:`Jakuje`.\n\n
          \ *Related issues and pull requests on GitHub:*\n  :issue:`758`.\n\n- The
          CI/CD jobs for smoke-testing RPMs have been simplified\n  and now, they
          execute the same steps for all distro types.\n  They make use of `pyproject-rpm-macros`
          even under RHEL.\n  Installing external RPMs is the only conditional step
          that\n  is skipped on Fedora.\n\n  \\-- by :user:`webknjaz`\n\n  *Related
          issues and pull requests on GitHub:*\n  :issue:`759`.\n\n- The `requires`
          setting has been removed from :file:`tox.ini`, which\n  works around the
          upstream tool bug. This enabled us to re-introduce\n  CI jobs testing against
          sdist under Python 3.12 and newer\n  \\-- by :user:`webknjaz`.\n\n  *Related
          issues and pull requests on GitHub:*\n  :issue:`764`.\n\n- Updated the version
          of `libssh` to the latest release v0.11.3\n  in the cached `manylinux` build
          environment container images\n  \\-- by :user:`Jakuje`.\n\n  *Related issues
          and pull requests on GitHub:*\n  :issue:`765`.\n\n- Changed tests to use
          more lightweight ECDSA keys to avoid\n  timeouts -- by :user:`Jakuje`.\n\n
          \ *Related issues and pull requests on GitHub:*\n  :issue:`768`.\n\n***\n\n</details>\n\n---\n\n###
          Configuration\n\n\U0001F4C5 **Schedule**: Branch creation - At any time
          (no schedule defined), Automerge - At any time (no schedule defined).\n\n\U0001F6A6
          **Automerge**: Disabled by config. Please merge this manually once you are
          satisfied.\n\n\u267B **Rebasing**: Whenever PR becomes conflicted, or you
          tick the rebase/retry checkbox.\n\n\U0001F515 **Ignore**: Close this PR
          and you won't be reminded about this update again.\n\n---\n\n - [ ] <!--
          rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis
          PR was generated by [Mend Renovate](https://mend.io/renovate/). View the
          [repository job log](https://developer.mend.io/github/osism/generics).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xNDMuMSIsInVwZGF0ZWRJblZlciI6IjQxLjE0My4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJyZW5vdmF0ZSJdfQ==-->\n"
        change_url: https://github.com/osism/generics/pull/567
        commit_id: 9e3df0f7766d191985971c4e9a60274fc7537527
        patchset: 9e3df0f7766d191985971c4e9a60274fc7537527
        project:
          canonical_hostname: github.com
          canonical_name: github.com/osism/generics
          name: osism/generics
          short_name: generics
        src_dir: src/github.com/osism/generics
        topic: null
      change: '567'
      change_message: "chore(deps): update dependency ansible-pylibssh to v1.3.0\n\nThis
        PR contains the following updates:\n\n| Package | Change | Age | Confidence
        |\n|---|---|---|---|\n| [ansible-pylibssh](https://redirect.github.com/ansible/pylibssh)
        | `==1.2.2` -> `==1.3.0` | [![age](https://developer.mend.io/api/mc/badges/age/pypi/ansible-pylibssh/1.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
        | [![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/ansible-pylibssh/1.2.2/1.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
        |\n\n---\n\n### Release Notes\n\n<details>\n<summary>ansible/pylibssh (ansible-pylibssh)</summary>\n\n###
        [`v1.3.0`](https://redirect.github.com/ansible/pylibssh/blob/HEAD/CHANGELOG.rst#v130)\n\n[Compare
        Source](https://redirect.github.com/ansible/pylibssh/compare/v1.2.2...v1.3.0)\n\n\\======\n\n*(2025-10-12)*\n\n##
        Bug fixes\n\n- The bundled libssh 0.11.2 no longer fails, when the SFTP server
        announces\n  protocol version 3, but does not provide error message and language
        tag\n  in the `SSH_FXP_STATUS` message -- by :user:`Jakuje`.\n\n  *Related
        issues and pull requests on GitHub:*\n  :issue:`222`.\n\n- Fixed reading files
        over SFTP that go over the pre-defined chunk size.\n\n  Prior to this change,
        the files could end up being corrupted, ending up with the last read chunk
        written to the file instead of the entire payload.\n\n  \\-- by :user:`Jakuje`\n\n
        \ *Related issues and pull requests on GitHub:*\n  :issue:`638`.\n\n- Repetitive
        calls to `exec_channel()` no longer crash and return reliable output -- by
        :user:`Jakuje`.\n\n  *Related issues and pull requests on GitHub:*\n  :issue:`658`.\n\n-
        Uploading large files over SCP no longer fails -- by :user:`Jakuje`.\n\n  *Related
        issues and pull requests on GitHub:*\n  :issue:`661`.\n\n- Improved performance
        of SFTP transfers by using larger transfer chunks -- by :user:`Jakuje`.\n\n
        \ *Related issues and pull requests on GitHub:*\n  :issue:`664`.\n\n- Fixed
        crash when more operations were called after `session.close()` -- by :user:`Jakuje`.\n\n
        \ *Related issues and pull requests on GitHub:*\n  :issue:`709`.\n\n## Features\n\n-
        The underlying `SSH_OPTIONS_KEY_EXCHANGE` option of `libssh` is\n  now available
        as `key_exchange_algorithms` -- by :user:`NilashishC`.\n\n  *Related issues
        and pull requests on GitHub:*\n  :issue:`675`.\n\n- Added a `pylibsshext.session.connect()`
        parameter\n  `open_session_retries` -- by :user:`justin-stephenson`.\n\n  The
        `open_session_retries` session `connect()`\n  parameter allows a configurable
        number of retries if\n  libssh `ssh_channel_open_session()` returns `SSH_AGAIN`.\n
        \ The default option value is 0, no retries will be\n  attempted.\n\n  *Related
        issues and pull requests on GitHub:*\n  :issue:`756`.\n\n- Added a `pylibsshext.session.connect()`
        parameter\n  `timeout_usec` to set `SSH_OPTIONS_TIMEOUT_USEC`.\n\n  This allows
        setting the `SSH_OPTIONS_TIMEOUT_USEC`\n  ssh option, though `SSH_OPTIONS_TIMEOUT`
        is a more\n  practical option.\n\n  \\-- by :user:`justin-stephenson`\n\n
        \ *Related issues and pull requests on GitHub:*\n  :issue:`756`.\n\n## Deprecations
        (removal in next major release)\n\n- The project stopped being tested under
        Ubuntu 20.04 VM since\n  GitHub has sunset their CI images -- by :user:`webknjaz`.\n\n
        \ *Related issues and pull requests on GitHub:*\n  :issue:`708`.\n\n## Removals
        and backward incompatible breaking changes\n\n- Dropped support for Python
        3.6, 3.7 and 3.8\n  \\-- by :user:`Qalthos` and :user:`webknjaz`.\n\n  *Related
        issues and pull requests on GitHub:*\n  :issue:`532`, :issue:`718`.\n\n- PyPI
        no longer ships year-versioned manylinux wheels. One may\n  have to update
        their version of pip to pick up the new ones.\n\n  \\-- by :user:`webknjaz`\n\n
        \ *Related issues and pull requests on GitHub:*\n  :issue:`562`.\n\n## Improved
        documentation\n\n- Added a :ref:`Communication <communication>` section to
        the main\n  documentation page -- by :user:`Andersson007`.\n\n  *Related issues
        and pull requests on GitHub:*\n  :issue:`640`.\n\n- Fixed the argument order
        in the `scp.put()` usage example\n  \\-- by :user:`kucharskim`.\n\n  *Related
        issues and pull requests on GitHub:*\n  :issue:`646`.\n\n## Packaging updates
        and notes for downstreams\n\n- PyPI now only ships :pep:`600`-compatible manylinux
        wheels\n  \\-- by :user:`webknjaz`.\n\n  *Related issues and pull requests
        on GitHub:*\n  :issue:`562`.\n\n- The `pytest-forked` dependency of build,
        development and test environments was removed -- by :user:`Jakuje`.\n\n  *Related
        issues and pull requests on GitHub:*\n  :issue:`658`, :issue:`760`.\n\n- The
        wheels are now built in cached container images with a\n  correctly set platform
        identifier.\n\n  \\-- by :user:`webknjaz`\n\n  *Related issues and pull requests
        on GitHub:*\n  :issue:`692`.\n\n- The `manylinux` build scripts now limit
        `cmake` below\n  version 4 -- by :user:`webknjaz`.\n\n  *Related issues and
        pull requests on GitHub:*\n  :issue:`713`.\n\n- Stopped skipping SCP tests
        in the RPM spec -- by :user:`Jakuje`.\n\n  *Related issues and pull requests
        on GitHub:*\n  :issue:`714`.\n\n- Started bundling a copy of libssh 0.11.1
        in platform-specific\n  wheels published on PyPI -- by :user:`Jakuje`.\n\n
        \ *Related issues and pull requests on GitHub:*\n  :issue:`735`.\n\n- Updated
        the bundled copy of OpenSSL to the latest version 3.5.0\n  in `manylinux`
        wheels -- by :user:`Jakuje`.\n\n  *Related issues and pull requests on GitHub:*\n
        \ :issue:`738`.\n\n- Updated the bundled version of libssh to 0.11.2 in platform-specific\n
        \ wheels published on PyPI -- by :user:`Jakuje`.\n\n  *Related issues and
        pull requests on GitHub:*\n  :issue:`753`.\n\n- The RPM spec file no longer
        makes use of unpackaged dists\n  from PyPI on RHEL. The configuration is almost
        identical to\n  the one for Fedora. Only the `setuptools-scm` spec is\n  temporarily
        patched to allow older versions under RHEL.\n\n  \\-- by :user:`webknjaz`\n\n
        \ *Related issues and pull requests on GitHub:*\n  :issue:`759`.\n\n- A workaround
        has been applied to the in-tree build backend that prevents\n  Cython from
        hanging when `libssh` header files are missing\n  \\-- by :user:`webknjaz`.\n\n
        \ The patch makes `cythonize()` single-threaded because :mod:`multiprocessing`\n
        \ gets stuck. The upstream will eventually fix this by migrating to\n  :mod:`concurrent.futures`.\n\n
        \ *Related issues and pull requests on GitHub:*\n  :issue:`762`, :issue:`769`,
        :issue:`770`.\n\n- Updated the bundled version of libssh to 0.11.3 in platform-specific\n
        \ wheels published on PyPI -- by :user:`Jakuje`.\n\n  *Related issues and
        pull requests on GitHub:*\n  :issue:`766`.\n\n## Contributor-facing changes\n\n-
        The manylinux build scripts have been adjusted to resolve the\n  dependency
        conflict between certain `packaging` and `setuptools`\n  versions -- by :user:`webknjaz`.\n\n
        \ Previously, this was making some of the CI jobs crash with a traceback\n
        \ when building said wheels.\n\n  *Related commits on GitHub:*\n  :commit:`1dfbf70fdfd99ae75068fdb3630790c96101a96a`.\n\n-
        The Git archives are now immutable per the packaging recommendations.\n  This
        allows downstreams safely use GitHub archive URLs when\n  re-packaging --
        by :user:`webknjaz`.\n\n  *Related commits on GitHub:*\n  :commit:`ea34887831a0c6547b32cd8c6a035bb77b91e771`.\n\n-
        Manylinux wheels are no longer built using custom shell scripts.\n  Instead,
        this is delegated to the `cibuildwheel` tool.\n\n  \\-- by :user:`webknjaz`\n\n
        \ *Related issues and pull requests on GitHub:*\n  :issue:`562`.\n\n- Updated
        the version of `libssh` to the latest release v0.11.1\n  in the cached `manylinux`
        build environment container images\n  \\-- by :user:`Jakuje`.\n\n  *Related
        issues and pull requests on GitHub:*\n  :issue:`636`.\n\n- All the uses of
        `actions/upload-artifact@v3` and\n  `actions/download-artifact@v3` have been
        updated to use\n  `v4`. This also includes bumping\n  `re-actors/checkout-python-sdist`
        to `release/v2` as it\n  uses `actions/download-artifact` internally.\n\n
        \ \\-- by :user:`NilashishC` and :user:`webknjaz`\n\n  *Related issues and
        pull requests on GitHub:*\n  :issue:`676`.\n\n- The `dumb-pypi`-produced static
        package index now renders correct\n  URLs to the distribution packages --
        by :user:`webknjaz`.\n\n  *Related issues and pull requests on GitHub:*\n
        \ :issue:`678`, :issue:`679`, :issue:`749`.\n\n- The CI is now configured
        to use\n  :external+tox:std:ref:`tox-run---installpkg` when testing\n  pre-built
        dists. This replaces the previously existing\n  tox-level hacks in `test-binary-dists`
        and\n  `test-source-dists` environments that have now been\n  removed.\n\n
        \ \\-- by :user:`webknjaz`\n\n  *Related issues and pull requests on GitHub:*\n
        \ :issue:`688`.\n\n- The wheel building workflows have been updated to set
        the\n  OCI image platform identifiers to legal values like\n  `linux/arm64`.\n\n
        \ \\-- by :user:`webknjaz`\n\n  *Related issues and pull requests on GitHub:*\n
        \ :issue:`692`.\n\n- The CI is now configured to always set job timeout values.\n
        \ This will ensure that the jobs that get stuck don't consume\n  all 6 hours
        just hanging, improving responsiveness and the\n  overall CI/CD resource usage.\n\n
        \ \\-- by :user:`webknjaz`\n\n  *Related issues and pull requests on GitHub:*\n
        \ :issue:`706`.\n\n- The linting is now configured to check schemas of the\n
        \ Read The Docs configuration file and the GitHub Actions\n  CI/CD workflow
        files in addition to enforcing timeouts.\n\n  \\-- by :user:`webknjaz`\n\n
        \ *Related issues and pull requests on GitHub:*\n  :issue:`707`.\n\n- The
        `multiarch/qemu-user-static` image got replaced with\n  `tonistiigi/binfmt`
        because the latter is no longer\n  maintained and the former includes the
        fixed version of QEMU.\n\n  \\-- by :user:`webknjaz`\n\n  *Related issues
        and pull requests on GitHub:*\n  :issue:`713`.\n\n- Added Fedora 41 and 42
        to CI configuration -- by :user:`Jakuje`.\n\n  *Related issues and pull requests
        on GitHub:*\n  :issue:`715`.\n\n- Removed needless step from CI adjusting
        centos8 repositories -- by :user:`Jakuje`.\n\n  *Related issues and pull requests
        on GitHub:*\n  :issue:`716`.\n\n- The CI/CD infrastructure no longer pre-builds
        custom manylinux images\n  for building wheel targeting `manylinux1`, `manylinux2010`
        and\n  `manylinux2014` tags.\n\n  \\-- by :user:`webknjaz`\n\n  *Related issues
        and pull requests on GitHub:*\n  :issue:`730`.\n\n- The host OS is now ARM-based
        when building `manylinux_*_*_aarch64`\n  images for CI/CD -- by :user:`webknjaz`.\n\n
        \ *Related issues and pull requests on GitHub:*\n  :issue:`731`.\n\n- False
        negative warnings reported by `coveragepy` when are now\n  disabled. They
        are evident when `pytest-cov` runs with the\n  `pytest-xdist` integration.
        `pytest` 8.4 gives them more\n  visibility and out `filterwarnings = error`
        setting was turning\n  them into errors before this change.\n\n  \\-- by :user:`webknjaz`\n\n
        \ *Related issues and pull requests on GitHub:*\n  :issue:`732`.\n\n- GitHub
        Actions CI/CD no longer runs jobs that install source\n  distributions into
        the tox environments for testing\n  \\-- by :user:`webknjaz`.\n\n  This is
        a temporary workaround for an upstream bug in tox and\n  said jobs are non-essential.\n\n
        \ *Related issues and pull requests on GitHub:*\n  :issue:`733`.\n\n- Updated
        the pre-built `libffi` version to 3.4.8 in the\n  cached `manylinux` build
        environment container images\n  \\-- by :user:`Jakuje`.\n\n  *Related issues
        and pull requests on GitHub:*\n  :issue:`734`.\n\n- Reverted workaround keeping
        the old CMake version installed\n  as the new `libssh` works with newer versions
        -- by :user:`Jakuje`.\n\n  *Related issues and pull requests on GitHub:*\n
        \ :issue:`737`.\n\n- The CI infrastructure now produces `manylinux_2_31_armv7l`
        base images\n  with `libssh` and `openssl` pre-built -- by :user:`Jakuje`
        and\n  :user:`webknjaz`.\n\n  *Related issues and pull requests on GitHub:*\n
        \ :issue:`740`.\n\n- Started caching `manylinux` build images to be used for
        producing `2_34` tagged wheels\n  in `build-manylinux-container-images` workflow
        -- by :user:`KB-perByte`.\n\n  *Related issues and pull requests on GitHub:*\n
        \ :issue:`741`.\n\n- The :file:`reusable-cibuildwheel.yml` workflow has been
        refactored to\n  be more generic and :file:`ci-cd.yml` now holds all the configuration\n
        \ toggles -- by :user:`webknjaz`.\n\n  *Related issues and pull requests on
        GitHub:*\n  :issue:`750`.\n\n- Updated the version of `libssh` to the latest
        release v0.11.2\n  in the cached `manylinux` build environment container images\n
        \ \\-- by :user:`Jakuje`.\n\n  *Related issues and pull requests on GitHub:*\n
        \ :issue:`752`.\n\n- When building wheels, the source distribution is now
        passed directly\n  to the `cibuildwheel` invocation -- by :user:`webknjaz`.\n\n
        \ *Related issues and pull requests on GitHub:*\n  :issue:`754`.\n\n- Fixed
        link to python3-pytest for CentOS 9 Stream as it was recently moved from\n
        \ CRB to AppStream -- by :user:`Jakuje`.\n\n  *Related issues and pull requests
        on GitHub:*\n  :issue:`758`.\n\n- The CI/CD jobs for smoke-testing RPMs have
        been simplified\n  and now, they execute the same steps for all distro types.\n
        \ They make use of `pyproject-rpm-macros` even under RHEL.\n  Installing external
        RPMs is the only conditional step that\n  is skipped on Fedora.\n\n  \\--
        by :user:`webknjaz`\n\n  *Related issues and pull requests on GitHub:*\n  :issue:`759`.\n\n-
        The `requires` setting has been removed from :file:`tox.ini`, which\n  works
        around the upstream tool bug. This enabled us to re-introduce\n  CI jobs testing
        against sdist under Python 3.12 and newer\n  \\-- by :user:`webknjaz`.\n\n
        \ *Related issues and pull requests on GitHub:*\n  :issue:`764`.\n\n- Updated
        the version of `libssh` to the latest release v0.11.3\n  in the cached `manylinux`
        build environment container images\n  \\-- by :user:`Jakuje`.\n\n  *Related
        issues and pull requests on GitHub:*\n  :issue:`765`.\n\n- Changed tests to
        use more lightweight ECDSA keys to avoid\n  timeouts -- by :user:`Jakuje`.\n\n
        \ *Related issues and pull requests on GitHub:*\n  :issue:`768`.\n\n***\n\n</details>\n\n---\n\n###
        Configuration\n\n\U0001F4C5 **Schedule**: Branch creation - At any time (no
        schedule defined), Automerge - At any time (no schedule defined).\n\n\U0001F6A6
        **Automerge**: Disabled by config. Please merge this manually once you are
        satisfied.\n\n\u267B **Rebasing**: Whenever PR becomes conflicted, or you
        tick the rebase/retry checkbox.\n\n\U0001F515 **Ignore**: Close this PR and
        you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check
        -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR was
        generated by [Mend Renovate](https://mend.io/renovate/). View the [repository
        job log](https://developer.mend.io/github/osism/generics).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xNDMuMSIsInVwZGF0ZWRJblZlciI6IjQxLjE0My4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJyZW5vdmF0ZSJdfQ==-->\n"
      change_url: https://github.com/osism/generics/pull/567
      child_jobs: []
      commit_id: 9e3df0f7766d191985971c4e9a60274fc7537527
      event_id: 21d73210-a70d-11f0-9b8a-aff6deb8f716
      executor:
        hostname: 521e9411259a
        inventory_file: /var/lib/zuul/builds/0b50c84ded6e432bbbc912e964d6879e/ansible/inventory.yaml
        log_root: /var/lib/zuul/builds/0b50c84ded6e432bbbc912e964d6879e/work/logs
        result_data_file: /var/lib/zuul/builds/0b50c84ded6e432bbbc912e964d6879e/work/results.json
        src_root: /var/lib/zuul/builds/0b50c84ded6e432bbbc912e964d6879e/work/src
        work_root: /var/lib/zuul/builds/0b50c84ded6e432bbbc912e964d6879e/work
      include_vars: []
      items:
      - branch: main
        change: '567'
        change_message: "chore(deps): update dependency ansible-pylibssh to v1.3.0\n\nThis
          PR contains the following updates:\n\n| Package | Change | Age | Confidence
          |\n|---|---|---|---|\n| [ansible-pylibssh](https://redirect.github.com/ansible/pylibssh)
          | `==1.2.2` -> `==1.3.0` | [![age](https://developer.mend.io/api/mc/badges/age/pypi/ansible-pylibssh/1.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
          | [![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/ansible-pylibssh/1.2.2/1.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
          |\n\n---\n\n### Release Notes\n\n<details>\n<summary>ansible/pylibssh (ansible-pylibssh)</summary>\n\n###
          [`v1.3.0`](https://redirect.github.com/ansible/pylibssh/blob/HEAD/CHANGELOG.rst#v130)\n\n[Compare
          Source](https://redirect.github.com/ansible/pylibssh/compare/v1.2.2...v1.3.0)\n\n\\======\n\n*(2025-10-12)*\n\n##
          Bug fixes\n\n- The bundled libssh 0.11.2 no longer fails, when the SFTP
          server announces\n  protocol version 3, but does not provide error message
          and language tag\n  in the `SSH_FXP_STATUS` message -- by :user:`Jakuje`.\n\n
          \ *Related issues and pull requests on GitHub:*\n  :issue:`222`.\n\n- Fixed
          reading files over SFTP that go over the pre-defined chunk size.\n\n  Prior
          to this change, the files could end up being corrupted, ending up with the
          last read chunk written to the file instead of the entire payload.\n\n  \\--
          by :user:`Jakuje`\n\n  *Related issues and pull requests on GitHub:*\n  :issue:`638`.\n\n-
          Repetitive calls to `exec_channel()` no longer crash and return reliable
          output -- by :user:`Jakuje`.\n\n  *Related issues and pull requests on GitHub:*\n
          \ :issue:`658`.\n\n- Uploading large files over SCP no longer fails -- by
          :user:`Jakuje`.\n\n  *Related issues and pull requests on GitHub:*\n  :issue:`661`.\n\n-
          Improved performance of SFTP transfers by using larger transfer chunks --
          by :user:`Jakuje`.\n\n  *Related issues and pull requests on GitHub:*\n
          \ :issue:`664`.\n\n- Fixed crash when more operations were called after
          `session.close()` -- by :user:`Jakuje`.\n\n  *Related issues and pull requests
          on GitHub:*\n  :issue:`709`.\n\n## Features\n\n- The underlying `SSH_OPTIONS_KEY_EXCHANGE`
          option of `libssh` is\n  now available as `key_exchange_algorithms` -- by
          :user:`NilashishC`.\n\n  *Related issues and pull requests on GitHub:*\n
          \ :issue:`675`.\n\n- Added a `pylibsshext.session.connect()` parameter\n
          \ `open_session_retries` -- by :user:`justin-stephenson`.\n\n  The `open_session_retries`
          session `connect()`\n  parameter allows a configurable number of retries
          if\n  libssh `ssh_channel_open_session()` returns `SSH_AGAIN`.\n  The default
          option value is 0, no retries will be\n  attempted.\n\n  *Related issues
          and pull requests on GitHub:*\n  :issue:`756`.\n\n- Added a `pylibsshext.session.connect()`
          parameter\n  `timeout_usec` to set `SSH_OPTIONS_TIMEOUT_USEC`.\n\n  This
          allows setting the `SSH_OPTIONS_TIMEOUT_USEC`\n  ssh option, though `SSH_OPTIONS_TIMEOUT`
          is a more\n  practical option.\n\n  \\-- by :user:`justin-stephenson`\n\n
          \ *Related issues and pull requests on GitHub:*\n  :issue:`756`.\n\n## Deprecations
          (removal in next major release)\n\n- The project stopped being tested under
          Ubuntu 20.04 VM since\n  GitHub has sunset their CI images -- by :user:`webknjaz`.\n\n
          \ *Related issues and pull requests on GitHub:*\n  :issue:`708`.\n\n## Removals
          and backward incompatible breaking changes\n\n- Dropped support for Python
          3.6, 3.7 and 3.8\n  \\-- by :user:`Qalthos` and :user:`webknjaz`.\n\n  *Related
          issues and pull requests on GitHub:*\n  :issue:`532`, :issue:`718`.\n\n-
          PyPI no longer ships year-versioned manylinux wheels. One may\n  have to
          update their version of pip to pick up the new ones.\n\n  \\-- by :user:`webknjaz`\n\n
          \ *Related issues and pull requests on GitHub:*\n  :issue:`562`.\n\n## Improved
          documentation\n\n- Added a :ref:`Communication <communication>` section
          to the main\n  documentation page -- by :user:`Andersson007`.\n\n  *Related
          issues and pull requests on GitHub:*\n  :issue:`640`.\n\n- Fixed the argument
          order in the `scp.put()` usage example\n  \\-- by :user:`kucharskim`.\n\n
          \ *Related issues and pull requests on GitHub:*\n  :issue:`646`.\n\n## Packaging
          updates and notes for downstreams\n\n- PyPI now only ships :pep:`600`-compatible
          manylinux wheels\n  \\-- by :user:`webknjaz`.\n\n  *Related issues and pull
          requests on GitHub:*\n  :issue:`562`.\n\n- The `pytest-forked` dependency
          of build, development and test environments was removed -- by :user:`Jakuje`.\n\n
          \ *Related issues and pull requests on GitHub:*\n  :issue:`658`, :issue:`760`.\n\n-
          The wheels are now built in cached container images with a\n  correctly
          set platform identifier.\n\n  \\-- by :user:`webknjaz`\n\n  *Related issues
          and pull requests on GitHub:*\n  :issue:`692`.\n\n- The `manylinux` build
          scripts now limit `cmake` below\n  version 4 -- by :user:`webknjaz`.\n\n
          \ *Related issues and pull requests on GitHub:*\n  :issue:`713`.\n\n- Stopped
          skipping SCP tests in the RPM spec -- by :user:`Jakuje`.\n\n  *Related issues
          and pull requests on GitHub:*\n  :issue:`714`.\n\n- Started bundling a copy
          of libssh 0.11.1 in platform-specific\n  wheels published on PyPI -- by
          :user:`Jakuje`.\n\n  *Related issues and pull requests on GitHub:*\n  :issue:`735`.\n\n-
          Updated the bundled copy of OpenSSL to the latest version 3.5.0\n  in `manylinux`
          wheels -- by :user:`Jakuje`.\n\n  *Related issues and pull requests on GitHub:*\n
          \ :issue:`738`.\n\n- Updated the bundled version of libssh to 0.11.2 in
          platform-specific\n  wheels published on PyPI -- by :user:`Jakuje`.\n\n
          \ *Related issues and pull requests on GitHub:*\n  :issue:`753`.\n\n- The
          RPM spec file no longer makes use of unpackaged dists\n  from PyPI on RHEL.
          The configuration is almost identical to\n  the one for Fedora. Only the
          `setuptools-scm` spec is\n  temporarily patched to allow older versions
          under RHEL.\n\n  \\-- by :user:`webknjaz`\n\n  *Related issues and pull
          requests on GitHub:*\n  :issue:`759`.\n\n- A workaround has been applied
          to the in-tree build backend that prevents\n  Cython from hanging when `libssh`
          header files are missing\n  \\-- by :user:`webknjaz`.\n\n  The patch makes
          `cythonize()` single-threaded because :mod:`multiprocessing`\n  gets stuck.
          The upstream will eventually fix this by migrating to\n  :mod:`concurrent.futures`.\n\n
          \ *Related issues and pull requests on GitHub:*\n  :issue:`762`, :issue:`769`,
          :issue:`770`.\n\n- Updated the bundled version of libssh to 0.11.3 in platform-specific\n
          \ wheels published on PyPI -- by :user:`Jakuje`.\n\n  *Related issues and
          pull requests on GitHub:*\n  :issue:`766`.\n\n## Contributor-facing changes\n\n-
          The manylinux build scripts have been adjusted to resolve the\n  dependency
          conflict between certain `packaging` and `setuptools`\n  versions -- by
          :user:`webknjaz`.\n\n  Previously, this was making some of the CI jobs crash
          with a traceback\n  when building said wheels.\n\n  *Related commits on
          GitHub:*\n  :commit:`1dfbf70fdfd99ae75068fdb3630790c96101a96a`.\n\n- The
          Git archives are now immutable per the packaging recommendations.\n  This
          allows downstreams safely use GitHub archive URLs when\n  re-packaging --
          by :user:`webknjaz`.\n\n  *Related commits on GitHub:*\n  :commit:`ea34887831a0c6547b32cd8c6a035bb77b91e771`.\n\n-
          Manylinux wheels are no longer built using custom shell scripts.\n  Instead,
          this is delegated to the `cibuildwheel` tool.\n\n  \\-- by :user:`webknjaz`\n\n
          \ *Related issues and pull requests on GitHub:*\n  :issue:`562`.\n\n- Updated
          the version of `libssh` to the latest release v0.11.1\n  in the cached `manylinux`
          build environment container images\n  \\-- by :user:`Jakuje`.\n\n  *Related
          issues and pull requests on GitHub:*\n  :issue:`636`.\n\n- All the uses
          of `actions/upload-artifact@v3` and\n  `actions/download-artifact@v3` have
          been updated to use\n  `v4`. This also includes bumping\n  `re-actors/checkout-python-sdist`
          to `release/v2` as it\n  uses `actions/download-artifact` internally.\n\n
          \ \\-- by :user:`NilashishC` and :user:`webknjaz`\n\n  *Related issues and
          pull requests on GitHub:*\n  :issue:`676`.\n\n- The `dumb-pypi`-produced
          static package index now renders correct\n  URLs to the distribution packages
          -- by :user:`webknjaz`.\n\n  *Related issues and pull requests on GitHub:*\n
          \ :issue:`678`, :issue:`679`, :issue:`749`.\n\n- The CI is now configured
          to use\n  :external+tox:std:ref:`tox-run---installpkg` when testing\n  pre-built
          dists. This replaces the previously existing\n  tox-level hacks in `test-binary-dists`
          and\n  `test-source-dists` environments that have now been\n  removed.\n\n
          \ \\-- by :user:`webknjaz`\n\n  *Related issues and pull requests on GitHub:*\n
          \ :issue:`688`.\n\n- The wheel building workflows have been updated to set
          the\n  OCI image platform identifiers to legal values like\n  `linux/arm64`.\n\n
          \ \\-- by :user:`webknjaz`\n\n  *Related issues and pull requests on GitHub:*\n
          \ :issue:`692`.\n\n- The CI is now configured to always set job timeout
          values.\n  This will ensure that the jobs that get stuck don't consume\n
          \ all 6 hours just hanging, improving responsiveness and the\n  overall
          CI/CD resource usage.\n\n  \\-- by :user:`webknjaz`\n\n  *Related issues
          and pull requests on GitHub:*\n  :issue:`706`.\n\n- The linting is now configured
          to check schemas of the\n  Read The Docs configuration file and the GitHub
          Actions\n  CI/CD workflow files in addition to enforcing timeouts.\n\n  \\--
          by :user:`webknjaz`\n\n  *Related issues and pull requests on GitHub:*\n
          \ :issue:`707`.\n\n- The `multiarch/qemu-user-static` image got replaced
          with\n  `tonistiigi/binfmt` because the latter is no longer\n  maintained
          and the former includes the fixed version of QEMU.\n\n  \\-- by :user:`webknjaz`\n\n
          \ *Related issues and pull requests on GitHub:*\n  :issue:`713`.\n\n- Added
          Fedora 41 and 42 to CI configuration -- by :user:`Jakuje`.\n\n  *Related
          issues and pull requests on GitHub:*\n  :issue:`715`.\n\n- Removed needless
          step from CI adjusting centos8 repositories -- by :user:`Jakuje`.\n\n  *Related
          issues and pull requests on GitHub:*\n  :issue:`716`.\n\n- The CI/CD infrastructure
          no longer pre-builds custom manylinux images\n  for building wheel targeting
          `manylinux1`, `manylinux2010` and\n  `manylinux2014` tags.\n\n  \\-- by
          :user:`webknjaz`\n\n  *Related issues and pull requests on GitHub:*\n  :issue:`730`.\n\n-
          The host OS is now ARM-based when building `manylinux_*_*_aarch64`\n  images
          for CI/CD -- by :user:`webknjaz`.\n\n  *Related issues and pull requests
          on GitHub:*\n  :issue:`731`.\n\n- False negative warnings reported by `coveragepy`
          when are now\n  disabled. They are evident when `pytest-cov` runs with the\n
          \ `pytest-xdist` integration. `pytest` 8.4 gives them more\n  visibility
          and out `filterwarnings = error` setting was turning\n  them into errors
          before this change.\n\n  \\-- by :user:`webknjaz`\n\n  *Related issues and
          pull requests on GitHub:*\n  :issue:`732`.\n\n- GitHub Actions CI/CD no
          longer runs jobs that install source\n  distributions into the tox environments
          for testing\n  \\-- by :user:`webknjaz`.\n\n  This is a temporary workaround
          for an upstream bug in tox and\n  said jobs are non-essential.\n\n  *Related
          issues and pull requests on GitHub:*\n  :issue:`733`.\n\n- Updated the pre-built
          `libffi` version to 3.4.8 in the\n  cached `manylinux` build environment
          container images\n  \\-- by :user:`Jakuje`.\n\n  *Related issues and pull
          requests on GitHub:*\n  :issue:`734`.\n\n- Reverted workaround keeping the
          old CMake version installed\n  as the new `libssh` works with newer versions
          -- by :user:`Jakuje`.\n\n  *Related issues and pull requests on GitHub:*\n
          \ :issue:`737`.\n\n- The CI infrastructure now produces `manylinux_2_31_armv7l`
          base images\n  with `libssh` and `openssl` pre-built -- by :user:`Jakuje`
          and\n  :user:`webknjaz`.\n\n  *Related issues and pull requests on GitHub:*\n
          \ :issue:`740`.\n\n- Started caching `manylinux` build images to be used
          for producing `2_34` tagged wheels\n  in `build-manylinux-container-images`
          workflow -- by :user:`KB-perByte`.\n\n  *Related issues and pull requests
          on GitHub:*\n  :issue:`741`.\n\n- The :file:`reusable-cibuildwheel.yml`
          workflow has been refactored to\n  be more generic and :file:`ci-cd.yml`
          now holds all the configuration\n  toggles -- by :user:`webknjaz`.\n\n  *Related
          issues and pull requests on GitHub:*\n  :issue:`750`.\n\n- Updated the version
          of `libssh` to the latest release v0.11.2\n  in the cached `manylinux` build
          environment container images\n  \\-- by :user:`Jakuje`.\n\n  *Related issues
          and pull requests on GitHub:*\n  :issue:`752`.\n\n- When building wheels,
          the source distribution is now passed directly\n  to the `cibuildwheel`
          invocation -- by :user:`webknjaz`.\n\n  *Related issues and pull requests
          on GitHub:*\n  :issue:`754`.\n\n- Fixed link to python3-pytest for CentOS
          9 Stream as it was recently moved from\n  CRB to AppStream -- by :user:`Jakuje`.\n\n
          \ *Related issues and pull requests on GitHub:*\n  :issue:`758`.\n\n- The
          CI/CD jobs for smoke-testing RPMs have been simplified\n  and now, they
          execute the same steps for all distro types.\n  They make use of `pyproject-rpm-macros`
          even under RHEL.\n  Installing external RPMs is the only conditional step
          that\n  is skipped on Fedora.\n\n  \\-- by :user:`webknjaz`\n\n  *Related
          issues and pull requests on GitHub:*\n  :issue:`759`.\n\n- The `requires`
          setting has been removed from :file:`tox.ini`, which\n  works around the
          upstream tool bug. This enabled us to re-introduce\n  CI jobs testing against
          sdist under Python 3.12 and newer\n  \\-- by :user:`webknjaz`.\n\n  *Related
          issues and pull requests on GitHub:*\n  :issue:`764`.\n\n- Updated the version
          of `libssh` to the latest release v0.11.3\n  in the cached `manylinux` build
          environment container images\n  \\-- by :user:`Jakuje`.\n\n  *Related issues
          and pull requests on GitHub:*\n  :issue:`765`.\n\n- Changed tests to use
          more lightweight ECDSA keys to avoid\n  timeouts -- by :user:`Jakuje`.\n\n
          \ *Related issues and pull requests on GitHub:*\n  :issue:`768`.\n\n***\n\n</details>\n\n---\n\n###
          Configuration\n\n\U0001F4C5 **Schedule**: Branch creation - At any time
          (no schedule defined), Automerge - At any time (no schedule defined).\n\n\U0001F6A6
          **Automerge**: Disabled by config. Please merge this manually once you are
          satisfied.\n\n\u267B **Rebasing**: Whenever PR becomes conflicted, or you
          tick the rebase/retry checkbox.\n\n\U0001F515 **Ignore**: Close this PR
          and you won't be reminded about this update again.\n\n---\n\n - [ ] <!--
          rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis
          PR was generated by [Mend Renovate](https://mend.io/renovate/). View the
          [repository job log](https://developer.mend.io/github/osism/generics).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xNDMuMSIsInVwZGF0ZWRJblZlciI6IjQxLjE0My4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJyZW5vdmF0ZSJdfQ==-->\n"
        change_url: https://github.com/osism/generics/pull/567
        commit_id: 9e3df0f7766d191985971c4e9a60274fc7537527
        patchset: 9e3df0f7766d191985971c4e9a60274fc7537527
        project:
          canonical_hostname: github.com
          canonical_name: github.com/osism/generics
          name: osism/generics
          short_name: generics
          src_dir: src/github.com/osism/generics
        topic: null
      job: cfg-generics-tox-test-latest
      jobtags: []
      max_attempts: 3
      message: Y2hvcmUoZGVwcyk6IHVwZGF0ZSBkZXBlbmRlbmN5IGFuc2libGUtcHlsaWJzc2ggdG8gdjEuMy4wCgpUaGlzIFBSIGNvbnRhaW5zIHRoZSBmb2xsb3dpbmcgdXBkYXRlczoKCnwgUGFja2FnZSB8IENoYW5nZSB8IEFnZSB8IENvbmZpZGVuY2UgfAp8LS0tfC0tLXwtLS18LS0tfAp8IFthbnNpYmxlLXB5bGlic3NoXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vYW5zaWJsZS9weWxpYnNzaCkgfCBgPT0xLjIuMmAgLT4gYD09MS4zLjBgIHwgWyFbYWdlXShodHRwczovL2RldmVsb3Blci5tZW5kLmlvL2FwaS9tYy9iYWRnZXMvYWdlL3B5cGkvYW5zaWJsZS1weWxpYnNzaC8xLjMuMD9zbGltPXRydWUpXShodHRwczovL2RvY3MucmVub3ZhdGVib3QuY29tL21lcmdlLWNvbmZpZGVuY2UvKSB8IFshW2NvbmZpZGVuY2VdKGh0dHBzOi8vZGV2ZWxvcGVyLm1lbmQuaW8vYXBpL21jL2JhZGdlcy9jb25maWRlbmNlL3B5cGkvYW5zaWJsZS1weWxpYnNzaC8xLjIuMi8xLjMuMD9zbGltPXRydWUpXShodHRwczovL2RvY3MucmVub3ZhdGVib3QuY29tL21lcmdlLWNvbmZpZGVuY2UvKSB8CgotLS0KCiMjIyBSZWxlYXNlIE5vdGVzCgo8ZGV0YWlscz4KPHN1bW1hcnk+YW5zaWJsZS9weWxpYnNzaCAoYW5zaWJsZS1weWxpYnNzaCk8L3N1bW1hcnk+CgojIyMgW2B2MS4zLjBgXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vYW5zaWJsZS9weWxpYnNzaC9ibG9iL0hFQUQvQ0hBTkdFTE9HLnJzdCN2MTMwKQoKW0NvbXBhcmUgU291cmNlXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vYW5zaWJsZS9weWxpYnNzaC9jb21wYXJlL3YxLjIuMi4uLnYxLjMuMCkKClw9PT09PT0KCiooMjAyNS0xMC0xMikqCgojIyBCdWcgZml4ZXMKCi0gVGhlIGJ1bmRsZWQgbGlic3NoIDAuMTEuMiBubyBsb25nZXIgZmFpbHMsIHdoZW4gdGhlIFNGVFAgc2VydmVyIGFubm91bmNlcwogIHByb3RvY29sIHZlcnNpb24gMywgYnV0IGRvZXMgbm90IHByb3ZpZGUgZXJyb3IgbWVzc2FnZSBhbmQgbGFuZ3VhZ2UgdGFnCiAgaW4gdGhlIGBTU0hfRlhQX1NUQVRVU2AgbWVzc2FnZSAtLSBieSA6dXNlcjpgSmFrdWplYC4KCiAgKlJlbGF0ZWQgaXNzdWVzIGFuZCBwdWxsIHJlcXVlc3RzIG9uIEdpdEh1YjoqCiAgOmlzc3VlOmAyMjJgLgoKLSBGaXhlZCByZWFkaW5nIGZpbGVzIG92ZXIgU0ZUUCB0aGF0IGdvIG92ZXIgdGhlIHByZS1kZWZpbmVkIGNodW5rIHNpemUuCgogIFByaW9yIHRvIHRoaXMgY2hhbmdlLCB0aGUgZmlsZXMgY291bGQgZW5kIHVwIGJlaW5nIGNvcnJ1cHRlZCwgZW5kaW5nIHVwIHdpdGggdGhlIGxhc3QgcmVhZCBjaHVuayB3cml0dGVuIHRvIHRoZSBmaWxlIGluc3RlYWQgb2YgdGhlIGVudGlyZSBwYXlsb2FkLgoKICBcLS0gYnkgOnVzZXI6YEpha3VqZWAKCiAgKlJlbGF0ZWQgaXNzdWVzIGFuZCBwdWxsIHJlcXVlc3RzIG9uIEdpdEh1YjoqCiAgOmlzc3VlOmA2MzhgLgoKLSBSZXBldGl0aXZlIGNhbGxzIHRvIGBleGVjX2NoYW5uZWwoKWAgbm8gbG9uZ2VyIGNyYXNoIGFuZCByZXR1cm4gcmVsaWFibGUgb3V0cHV0IC0tIGJ5IDp1c2VyOmBKYWt1amVgLgoKICAqUmVsYXRlZCBpc3N1ZXMgYW5kIHB1bGwgcmVxdWVzdHMgb24gR2l0SHViOioKICA6aXNzdWU6YDY1OGAuCgotIFVwbG9hZGluZyBsYXJnZSBmaWxlcyBvdmVyIFNDUCBubyBsb25nZXIgZmFpbHMgLS0gYnkgOnVzZXI6YEpha3VqZWAuCgogICpSZWxhdGVkIGlzc3VlcyBhbmQgcHVsbCByZXF1ZXN0cyBvbiBHaXRIdWI6KgogIDppc3N1ZTpgNjYxYC4KCi0gSW1wcm92ZWQgcGVyZm9ybWFuY2Ugb2YgU0ZUUCB0cmFuc2ZlcnMgYnkgdXNpbmcgbGFyZ2VyIHRyYW5zZmVyIGNodW5rcyAtLSBieSA6dXNlcjpgSmFrdWplYC4KCiAgKlJlbGF0ZWQgaXNzdWVzIGFuZCBwdWxsIHJlcXVlc3RzIG9uIEdpdEh1YjoqCiAgOmlzc3VlOmA2NjRgLgoKLSBGaXhlZCBjcmFzaCB3aGVuIG1vcmUgb3BlcmF0aW9ucyB3ZXJlIGNhbGxlZCBhZnRlciBgc2Vzc2lvbi5jbG9zZSgpYCAtLSBieSA6dXNlcjpgSmFrdWplYC4KCiAgKlJlbGF0ZWQgaXNzdWVzIGFuZCBwdWxsIHJlcXVlc3RzIG9uIEdpdEh1YjoqCiAgOmlzc3VlOmA3MDlgLgoKIyMgRmVhdHVyZXMKCi0gVGhlIHVuZGVybHlpbmcgYFNTSF9PUFRJT05TX0tFWV9FWENIQU5HRWAgb3B0aW9uIG9mIGBsaWJzc2hgIGlzCiAgbm93IGF2YWlsYWJsZSBhcyBga2V5X2V4Y2hhbmdlX2FsZ29yaXRobXNgIC0tIGJ5IDp1c2VyOmBOaWxhc2hpc2hDYC4KCiAgKlJlbGF0ZWQgaXNzdWVzIGFuZCBwdWxsIHJlcXVlc3RzIG9uIEdpdEh1YjoqCiAgOmlzc3VlOmA2NzVgLgoKLSBBZGRlZCBhIGBweWxpYnNzaGV4dC5zZXNzaW9uLmNvbm5lY3QoKWAgcGFyYW1ldGVyCiAgYG9wZW5fc2Vzc2lvbl9yZXRyaWVzYCAtLSBieSA6dXNlcjpganVzdGluLXN0ZXBoZW5zb25gLgoKICBUaGUgYG9wZW5fc2Vzc2lvbl9yZXRyaWVzYCBzZXNzaW9uIGBjb25uZWN0KClgCiAgcGFyYW1ldGVyIGFsbG93cyBhIGNvbmZpZ3VyYWJsZSBudW1iZXIgb2YgcmV0cmllcyBpZgogIGxpYnNzaCBgc3NoX2NoYW5uZWxfb3Blbl9zZXNzaW9uKClgIHJldHVybnMgYFNTSF9BR0FJTmAuCiAgVGhlIGRlZmF1bHQgb3B0aW9uIHZhbHVlIGlzIDAsIG5vIHJldHJpZXMgd2lsbCBiZQogIGF0dGVtcHRlZC4KCiAgKlJlbGF0ZWQgaXNzdWVzIGFuZCBwdWxsIHJlcXVlc3RzIG9uIEdpdEh1YjoqCiAgOmlzc3VlOmA3NTZgLgoKLSBBZGRlZCBhIGBweWxpYnNzaGV4dC5zZXNzaW9uLmNvbm5lY3QoKWAgcGFyYW1ldGVyCiAgYHRpbWVvdXRfdXNlY2AgdG8gc2V0IGBTU0hfT1BUSU9OU19USU1FT1VUX1VTRUNgLgoKICBUaGlzIGFsbG93cyBzZXR0aW5nIHRoZSBgU1NIX09QVElPTlNfVElNRU9VVF9VU0VDYAogIHNzaCBvcHRpb24sIHRob3VnaCBgU1NIX09QVElPTlNfVElNRU9VVGAgaXMgYSBtb3JlCiAgcHJhY3RpY2FsIG9wdGlvbi4KCiAgXC0tIGJ5IDp1c2VyOmBqdXN0aW4tc3RlcGhlbnNvbmAKCiAgKlJlbGF0ZWQgaXNzdWVzIGFuZCBwdWxsIHJlcXVlc3RzIG9uIEdpdEh1YjoqCiAgOmlzc3VlOmA3NTZgLgoKIyMgRGVwcmVjYXRpb25zIChyZW1vdmFsIGluIG5leHQgbWFqb3IgcmVsZWFzZSkKCi0gVGhlIHByb2plY3Qgc3RvcHBlZCBiZWluZyB0ZXN0ZWQgdW5kZXIgVWJ1bnR1IDIwLjA0IFZNIHNpbmNlCiAgR2l0SHViIGhhcyBzdW5zZXQgdGhlaXIgQ0kgaW1hZ2VzIC0tIGJ5IDp1c2VyOmB3ZWJrbmphemAuCgogICpSZWxhdGVkIGlzc3VlcyBhbmQgcHVsbCByZXF1ZXN0cyBvbiBHaXRIdWI6KgogIDppc3N1ZTpgNzA4YC4KCiMjIFJlbW92YWxzIGFuZCBiYWNrd2FyZCBpbmNvbXBhdGlibGUgYnJlYWtpbmcgY2hhbmdlcwoKLSBEcm9wcGVkIHN1cHBvcnQgZm9yIFB5dGhvbiAzLjYsIDMuNyBhbmQgMy44CiAgXC0tIGJ5IDp1c2VyOmBRYWx0aG9zYCBhbmQgOnVzZXI6YHdlYmtuamF6YC4KCiAgKlJlbGF0ZWQgaXNzdWVzIGFuZCBwdWxsIHJlcXVlc3RzIG9uIEdpdEh1YjoqCiAgOmlzc3VlOmA1MzJgLCA6aXNzdWU6YDcxOGAuCgotIFB5UEkgbm8gbG9uZ2VyIHNoaXBzIHllYXItdmVyc2lvbmVkIG1hbnlsaW51eCB3aGVlbHMuIE9uZSBtYXkKICBoYXZlIHRvIHVwZGF0ZSB0aGVpciB2ZXJzaW9uIG9mIHBpcCB0byBwaWNrIHVwIHRoZSBuZXcgb25lcy4KCiAgXC0tIGJ5IDp1c2VyOmB3ZWJrbmphemAKCiAgKlJlbGF0ZWQgaXNzdWVzIGFuZCBwdWxsIHJlcXVlc3RzIG9uIEdpdEh1YjoqCiAgOmlzc3VlOmA1NjJgLgoKIyMgSW1wcm92ZWQgZG9jdW1lbnRhdGlvbgoKLSBBZGRlZCBhIDpyZWY6YENvbW11bmljYXRpb24gPGNvbW11bmljYXRpb24+YCBzZWN0aW9uIHRvIHRoZSBtYWluCiAgZG9jdW1lbnRhdGlvbiBwYWdlIC0tIGJ5IDp1c2VyOmBBbmRlcnNzb24wMDdgLgoKICAqUmVsYXRlZCBpc3N1ZXMgYW5kIHB1bGwgcmVxdWVzdHMgb24gR2l0SHViOioKICA6aXNzdWU6YDY0MGAuCgotIEZpeGVkIHRoZSBhcmd1bWVudCBvcmRlciBpbiB0aGUgYHNjcC5wdXQoKWAgdXNhZ2UgZXhhbXBsZQogIFwtLSBieSA6dXNlcjpga3VjaGFyc2tpbWAuCgogICpSZWxhdGVkIGlzc3VlcyBhbmQgcHVsbCByZXF1ZXN0cyBvbiBHaXRIdWI6KgogIDppc3N1ZTpgNjQ2YC4KCiMjIFBhY2thZ2luZyB1cGRhdGVzIGFuZCBub3RlcyBmb3IgZG93bnN0cmVhbXMKCi0gUHlQSSBub3cgb25seSBzaGlwcyA6cGVwOmA2MDBgLWNvbXBhdGlibGUgbWFueWxpbnV4IHdoZWVscwogIFwtLSBieSA6dXNlcjpgd2Via25qYXpgLgoKICAqUmVsYXRlZCBpc3N1ZXMgYW5kIHB1bGwgcmVxdWVzdHMgb24gR2l0SHViOioKICA6aXNzdWU6YDU2MmAuCgotIFRoZSBgcHl0ZXN0LWZvcmtlZGAgZGVwZW5kZW5jeSBvZiBidWlsZCwgZGV2ZWxvcG1lbnQgYW5kIHRlc3QgZW52aXJvbm1lbnRzIHdhcyByZW1vdmVkIC0tIGJ5IDp1c2VyOmBKYWt1amVgLgoKICAqUmVsYXRlZCBpc3N1ZXMgYW5kIHB1bGwgcmVxdWVzdHMgb24gR2l0SHViOioKICA6aXNzdWU6YDY1OGAsIDppc3N1ZTpgNzYwYC4KCi0gVGhlIHdoZWVscyBhcmUgbm93IGJ1aWx0IGluIGNhY2hlZCBjb250YWluZXIgaW1hZ2VzIHdpdGggYQogIGNvcnJlY3RseSBzZXQgcGxhdGZvcm0gaWRlbnRpZmllci4KCiAgXC0tIGJ5IDp1c2VyOmB3ZWJrbmphemAKCiAgKlJlbGF0ZWQgaXNzdWVzIGFuZCBwdWxsIHJlcXVlc3RzIG9uIEdpdEh1YjoqCiAgOmlzc3VlOmA2OTJgLgoKLSBUaGUgYG1hbnlsaW51eGAgYnVpbGQgc2NyaXB0cyBub3cgbGltaXQgYGNtYWtlYCBiZWxvdwogIHZlcnNpb24gNCAtLSBieSA6dXNlcjpgd2Via25qYXpgLgoKICAqUmVsYXRlZCBpc3N1ZXMgYW5kIHB1bGwgcmVxdWVzdHMgb24gR2l0SHViOioKICA6aXNzdWU6YDcxM2AuCgotIFN0b3BwZWQgc2tpcHBpbmcgU0NQIHRlc3RzIGluIHRoZSBSUE0gc3BlYyAtLSBieSA6dXNlcjpgSmFrdWplYC4KCiAgKlJlbGF0ZWQgaXNzdWVzIGFuZCBwdWxsIHJlcXVlc3RzIG9uIEdpdEh1YjoqCiAgOmlzc3VlOmA3MTRgLgoKLSBTdGFydGVkIGJ1bmRsaW5nIGEgY29weSBvZiBsaWJzc2ggMC4xMS4xIGluIHBsYXRmb3JtLXNwZWNpZmljCiAgd2hlZWxzIHB1Ymxpc2hlZCBvbiBQeVBJIC0tIGJ5IDp1c2VyOmBKYWt1amVgLgoKICAqUmVsYXRlZCBpc3N1ZXMgYW5kIHB1bGwgcmVxdWVzdHMgb24gR2l0SHViOioKICA6aXNzdWU6YDczNWAuCgotIFVwZGF0ZWQgdGhlIGJ1bmRsZWQgY29weSBvZiBPcGVuU1NMIHRvIHRoZSBsYXRlc3QgdmVyc2lvbiAzLjUuMAogIGluIGBtYW55bGludXhgIHdoZWVscyAtLSBieSA6dXNlcjpgSmFrdWplYC4KCiAgKlJlbGF0ZWQgaXNzdWVzIGFuZCBwdWxsIHJlcXVlc3RzIG9uIEdpdEh1YjoqCiAgOmlzc3VlOmA3MzhgLgoKLSBVcGRhdGVkIHRoZSBidW5kbGVkIHZlcnNpb24gb2YgbGlic3NoIHRvIDAuMTEuMiBpbiBwbGF0Zm9ybS1zcGVjaWZpYwogIHdoZWVscyBwdWJsaXNoZWQgb24gUHlQSSAtLSBieSA6dXNlcjpgSmFrdWplYC4KCiAgKlJlbGF0ZWQgaXNzdWVzIGFuZCBwdWxsIHJlcXVlc3RzIG9uIEdpdEh1YjoqCiAgOmlzc3VlOmA3NTNgLgoKLSBUaGUgUlBNIHNwZWMgZmlsZSBubyBsb25nZXIgbWFrZXMgdXNlIG9mIHVucGFja2FnZWQgZGlzdHMKICBmcm9tIFB5UEkgb24gUkhFTC4gVGhlIGNvbmZpZ3VyYXRpb24gaXMgYWxtb3N0IGlkZW50aWNhbCB0bwogIHRoZSBvbmUgZm9yIEZlZG9yYS4gT25seSB0aGUgYHNldHVwdG9vbHMtc2NtYCBzcGVjIGlzCiAgdGVtcG9yYXJpbHkgcGF0Y2hlZCB0byBhbGxvdyBvbGRlciB2ZXJzaW9ucyB1bmRlciBSSEVMLgoKICBcLS0gYnkgOnVzZXI6YHdlYmtuamF6YAoKICAqUmVsYXRlZCBpc3N1ZXMgYW5kIHB1bGwgcmVxdWVzdHMgb24gR2l0SHViOioKICA6aXNzdWU6YDc1OWAuCgotIEEgd29ya2Fyb3VuZCBoYXMgYmVlbiBhcHBsaWVkIHRvIHRoZSBpbi10cmVlIGJ1aWxkIGJhY2tlbmQgdGhhdCBwcmV2ZW50cwogIEN5dGhvbiBmcm9tIGhhbmdpbmcgd2hlbiBgbGlic3NoYCBoZWFkZXIgZmlsZXMgYXJlIG1pc3NpbmcKICBcLS0gYnkgOnVzZXI6YHdlYmtuamF6YC4KCiAgVGhlIHBhdGNoIG1ha2VzIGBjeXRob25pemUoKWAgc2luZ2xlLXRocmVhZGVkIGJlY2F1c2UgOm1vZDpgbXVsdGlwcm9jZXNzaW5nYAogIGdldHMgc3R1Y2suIFRoZSB1cHN0cmVhbSB3aWxsIGV2ZW50dWFsbHkgZml4IHRoaXMgYnkgbWlncmF0aW5nIHRvCiAgOm1vZDpgY29uY3VycmVudC5mdXR1cmVzYC4KCiAgKlJlbGF0ZWQgaXNzdWVzIGFuZCBwdWxsIHJlcXVlc3RzIG9uIEdpdEh1YjoqCiAgOmlzc3VlOmA3NjJgLCA6aXNzdWU6YDc2OWAsIDppc3N1ZTpgNzcwYC4KCi0gVXBkYXRlZCB0aGUgYnVuZGxlZCB2ZXJzaW9uIG9mIGxpYnNzaCB0byAwLjExLjMgaW4gcGxhdGZvcm0tc3BlY2lmaWMKICB3aGVlbHMgcHVibGlzaGVkIG9uIFB5UEkgLS0gYnkgOnVzZXI6YEpha3VqZWAuCgogICpSZWxhdGVkIGlzc3VlcyBhbmQgcHVsbCByZXF1ZXN0cyBvbiBHaXRIdWI6KgogIDppc3N1ZTpgNzY2YC4KCiMjIENvbnRyaWJ1dG9yLWZhY2luZyBjaGFuZ2VzCgotIFRoZSBtYW55bGludXggYnVpbGQgc2NyaXB0cyBoYXZlIGJlZW4gYWRqdXN0ZWQgdG8gcmVzb2x2ZSB0aGUKICBkZXBlbmRlbmN5IGNvbmZsaWN0IGJldHdlZW4gY2VydGFpbiBgcGFja2FnaW5nYCBhbmQgYHNldHVwdG9vbHNgCiAgdmVyc2lvbnMgLS0gYnkgOnVzZXI6YHdlYmtuamF6YC4KCiAgUHJldmlvdXNseSwgdGhpcyB3YXMgbWFraW5nIHNvbWUgb2YgdGhlIENJIGpvYnMgY3Jhc2ggd2l0aCBhIHRyYWNlYmFjawogIHdoZW4gYnVpbGRpbmcgc2FpZCB3aGVlbHMuCgogICpSZWxhdGVkIGNvbW1pdHMgb24gR2l0SHViOioKICA6Y29tbWl0OmAxZGZiZjcwZmRmZDk5YWU3NTA2OGZkYjM2MzA3OTBjOTYxMDFhOTZhYC4KCi0gVGhlIEdpdCBhcmNoaXZlcyBhcmUgbm93IGltbXV0YWJsZSBwZXIgdGhlIHBhY2thZ2luZyByZWNvbW1lbmRhdGlvbnMuCiAgVGhpcyBhbGxvd3MgZG93bnN0cmVhbXMgc2FmZWx5IHVzZSBHaXRIdWIgYXJjaGl2ZSBVUkxzIHdoZW4KICByZS1wYWNrYWdpbmcgLS0gYnkgOnVzZXI6YHdlYmtuamF6YC4KCiAgKlJlbGF0ZWQgY29tbWl0cyBvbiBHaXRIdWI6KgogIDpjb21taXQ6YGVhMzQ4ODc4MzFhMGM2NTQ3YjMyY2Q4YzZhMDM1YmI3N2I5MWU3NzFgLgoKLSBNYW55bGludXggd2hlZWxzIGFyZSBubyBsb25nZXIgYnVpbHQgdXNpbmcgY3VzdG9tIHNoZWxsIHNjcmlwdHMuCiAgSW5zdGVhZCwgdGhpcyBpcyBkZWxlZ2F0ZWQgdG8gdGhlIGBjaWJ1aWxkd2hlZWxgIHRvb2wuCgogIFwtLSBieSA6dXNlcjpgd2Via25qYXpgCgogICpSZWxhdGVkIGlzc3VlcyBhbmQgcHVsbCByZXF1ZXN0cyBvbiBHaXRIdWI6KgogIDppc3N1ZTpgNTYyYC4KCi0gVXBkYXRlZCB0aGUgdmVyc2lvbiBvZiBgbGlic3NoYCB0byB0aGUgbGF0ZXN0IHJlbGVhc2UgdjAuMTEuMQogIGluIHRoZSBjYWNoZWQgYG1hbnlsaW51eGAgYnVpbGQgZW52aXJvbm1lbnQgY29udGFpbmVyIGltYWdlcwogIFwtLSBieSA6dXNlcjpgSmFrdWplYC4KCiAgKlJlbGF0ZWQgaXNzdWVzIGFuZCBwdWxsIHJlcXVlc3RzIG9uIEdpdEh1YjoqCiAgOmlzc3VlOmA2MzZgLgoKLSBBbGwgdGhlIHVzZXMgb2YgYGFjdGlvbnMvdXBsb2FkLWFydGlmYWN0QHYzYCBhbmQKICBgYWN0aW9ucy9kb3dubG9hZC1hcnRpZmFjdEB2M2AgaGF2ZSBiZWVuIHVwZGF0ZWQgdG8gdXNlCiAgYHY0YC4gVGhpcyBhbHNvIGluY2x1ZGVzIGJ1bXBpbmcKICBgcmUtYWN0b3JzL2NoZWNrb3V0LXB5dGhvbi1zZGlzdGAgdG8gYHJlbGVhc2UvdjJgIGFzIGl0CiAgdXNlcyBgYWN0aW9ucy9kb3dubG9hZC1hcnRpZmFjdGAgaW50ZXJuYWxseS4KCiAgXC0tIGJ5IDp1c2VyOmBOaWxhc2hpc2hDYCBhbmQgOnVzZXI6YHdlYmtuamF6YAoKICAqUmVsYXRlZCBpc3N1ZXMgYW5kIHB1bGwgcmVxdWVzdHMgb24gR2l0SHViOioKICA6aXNzdWU6YDY3NmAuCgotIFRoZSBgZHVtYi1weXBpYC1wcm9kdWNlZCBzdGF0aWMgcGFja2FnZSBpbmRleCBub3cgcmVuZGVycyBjb3JyZWN0CiAgVVJMcyB0byB0aGUgZGlzdHJpYnV0aW9uIHBhY2thZ2VzIC0tIGJ5IDp1c2VyOmB3ZWJrbmphemAuCgogICpSZWxhdGVkIGlzc3VlcyBhbmQgcHVsbCByZXF1ZXN0cyBvbiBHaXRIdWI6KgogIDppc3N1ZTpgNjc4YCwgOmlzc3VlOmA2NzlgLCA6aXNzdWU6YDc0OWAuCgotIFRoZSBDSSBpcyBub3cgY29uZmlndXJlZCB0byB1c2UKICA6ZXh0ZXJuYWwrdG94OnN0ZDpyZWY6YHRveC1ydW4tLS1pbnN0YWxscGtnYCB3aGVuIHRlc3RpbmcKICBwcmUtYnVpbHQgZGlzdHMuIFRoaXMgcmVwbGFjZXMgdGhlIHByZXZpb3VzbHkgZXhpc3RpbmcKICB0b3gtbGV2ZWwgaGFja3MgaW4gYHRlc3QtYmluYXJ5LWRpc3RzYCBhbmQKICBgdGVzdC1zb3VyY2UtZGlzdHNgIGVudmlyb25tZW50cyB0aGF0IGhhdmUgbm93IGJlZW4KICByZW1vdmVkLgoKICBcLS0gYnkgOnVzZXI6YHdlYmtuamF6YAoKICAqUmVsYXRlZCBpc3N1ZXMgYW5kIHB1bGwgcmVxdWVzdHMgb24gR2l0SHViOioKICA6aXNzdWU6YDY4OGAuCgotIFRoZSB3aGVlbCBidWlsZGluZyB3b3JrZmxvd3MgaGF2ZSBiZWVuIHVwZGF0ZWQgdG8gc2V0IHRoZQogIE9DSSBpbWFnZSBwbGF0Zm9ybSBpZGVudGlmaWVycyB0byBsZWdhbCB2YWx1ZXMgbGlrZQogIGBsaW51eC9hcm02NGAuCgogIFwtLSBieSA6dXNlcjpgd2Via25qYXpgCgogICpSZWxhdGVkIGlzc3VlcyBhbmQgcHVsbCByZXF1ZXN0cyBvbiBHaXRIdWI6KgogIDppc3N1ZTpgNjkyYC4KCi0gVGhlIENJIGlzIG5vdyBjb25maWd1cmVkIHRvIGFsd2F5cyBzZXQgam9iIHRpbWVvdXQgdmFsdWVzLgogIFRoaXMgd2lsbCBlbnN1cmUgdGhhdCB0aGUgam9icyB0aGF0IGdldCBzdHVjayBkb24ndCBjb25zdW1lCiAgYWxsIDYgaG91cnMganVzdCBoYW5naW5nLCBpbXByb3ZpbmcgcmVzcG9uc2l2ZW5lc3MgYW5kIHRoZQogIG92ZXJhbGwgQ0kvQ0QgcmVzb3VyY2UgdXNhZ2UuCgogIFwtLSBieSA6dXNlcjpgd2Via25qYXpgCgogICpSZWxhdGVkIGlzc3VlcyBhbmQgcHVsbCByZXF1ZXN0cyBvbiBHaXRIdWI6KgogIDppc3N1ZTpgNzA2YC4KCi0gVGhlIGxpbnRpbmcgaXMgbm93IGNvbmZpZ3VyZWQgdG8gY2hlY2sgc2NoZW1hcyBvZiB0aGUKICBSZWFkIFRoZSBEb2NzIGNvbmZpZ3VyYXRpb24gZmlsZSBhbmQgdGhlIEdpdEh1YiBBY3Rpb25zCiAgQ0kvQ0Qgd29ya2Zsb3cgZmlsZXMgaW4gYWRkaXRpb24gdG8gZW5mb3JjaW5nIHRpbWVvdXRzLgoKICBcLS0gYnkgOnVzZXI6YHdlYmtuamF6YAoKICAqUmVsYXRlZCBpc3N1ZXMgYW5kIHB1bGwgcmVxdWVzdHMgb24gR2l0SHViOioKICA6aXNzdWU6YDcwN2AuCgotIFRoZSBgbXVsdGlhcmNoL3FlbXUtdXNlci1zdGF0aWNgIGltYWdlIGdvdCByZXBsYWNlZCB3aXRoCiAgYHRvbmlzdGlpZ2kvYmluZm10YCBiZWNhdXNlIHRoZSBsYXR0ZXIgaXMgbm8gbG9uZ2VyCiAgbWFpbnRhaW5lZCBhbmQgdGhlIGZvcm1lciBpbmNsdWRlcyB0aGUgZml4ZWQgdmVyc2lvbiBvZiBRRU1VLgoKICBcLS0gYnkgOnVzZXI6YHdlYmtuamF6YAoKICAqUmVsYXRlZCBpc3N1ZXMgYW5kIHB1bGwgcmVxdWVzdHMgb24gR2l0SHViOioKICA6aXNzdWU6YDcxM2AuCgotIEFkZGVkIEZlZG9yYSA0MSBhbmQgNDIgdG8gQ0kgY29uZmlndXJhdGlvbiAtLSBieSA6dXNlcjpgSmFrdWplYC4KCiAgKlJlbGF0ZWQgaXNzdWVzIGFuZCBwdWxsIHJlcXVlc3RzIG9uIEdpdEh1YjoqCiAgOmlzc3VlOmA3MTVgLgoKLSBSZW1vdmVkIG5lZWRsZXNzIHN0ZXAgZnJvbSBDSSBhZGp1c3RpbmcgY2VudG9zOCByZXBvc2l0b3JpZXMgLS0gYnkgOnVzZXI6YEpha3VqZWAuCgogICpSZWxhdGVkIGlzc3VlcyBhbmQgcHVsbCByZXF1ZXN0cyBvbiBHaXRIdWI6KgogIDppc3N1ZTpgNzE2YC4KCi0gVGhlIENJL0NEIGluZnJhc3RydWN0dXJlIG5vIGxvbmdlciBwcmUtYnVpbGRzIGN1c3RvbSBtYW55bGludXggaW1hZ2VzCiAgZm9yIGJ1aWxkaW5nIHdoZWVsIHRhcmdldGluZyBgbWFueWxpbnV4MWAsIGBtYW55bGludXgyMDEwYCBhbmQKICBgbWFueWxpbnV4MjAxNGAgdGFncy4KCiAgXC0tIGJ5IDp1c2VyOmB3ZWJrbmphemAKCiAgKlJlbGF0ZWQgaXNzdWVzIGFuZCBwdWxsIHJlcXVlc3RzIG9uIEdpdEh1YjoqCiAgOmlzc3VlOmA3MzBgLgoKLSBUaGUgaG9zdCBPUyBpcyBub3cgQVJNLWJhc2VkIHdoZW4gYnVpbGRpbmcgYG1hbnlsaW51eF8qXypfYWFyY2g2NGAKICBpbWFnZXMgZm9yIENJL0NEIC0tIGJ5IDp1c2VyOmB3ZWJrbmphemAuCgogICpSZWxhdGVkIGlzc3VlcyBhbmQgcHVsbCByZXF1ZXN0cyBvbiBHaXRIdWI6KgogIDppc3N1ZTpgNzMxYC4KCi0gRmFsc2UgbmVnYXRpdmUgd2FybmluZ3MgcmVwb3J0ZWQgYnkgYGNvdmVyYWdlcHlgIHdoZW4gYXJlIG5vdwogIGRpc2FibGVkLiBUaGV5IGFyZSBldmlkZW50IHdoZW4gYHB5dGVzdC1jb3ZgIHJ1bnMgd2l0aCB0aGUKICBgcHl0ZXN0LXhkaXN0YCBpbnRlZ3JhdGlvbi4gYHB5dGVzdGAgOC40IGdpdmVzIHRoZW0gbW9yZQogIHZpc2liaWxpdHkgYW5kIG91dCBgZmlsdGVyd2FybmluZ3MgPSBlcnJvcmAgc2V0dGluZyB3YXMgdHVybmluZwogIHRoZW0gaW50byBlcnJvcnMgYmVmb3JlIHRoaXMgY2hhbmdlLgoKICBcLS0gYnkgOnVzZXI6YHdlYmtuamF6YAoKICAqUmVsYXRlZCBpc3N1ZXMgYW5kIHB1bGwgcmVxdWVzdHMgb24gR2l0SHViOioKICA6aXNzdWU6YDczMmAuCgotIEdpdEh1YiBBY3Rpb25zIENJL0NEIG5vIGxvbmdlciBydW5zIGpvYnMgdGhhdCBpbnN0YWxsIHNvdXJjZQogIGRpc3RyaWJ1dGlvbnMgaW50byB0aGUgdG94IGVudmlyb25tZW50cyBmb3IgdGVzdGluZwogIFwtLSBieSA6dXNlcjpgd2Via25qYXpgLgoKICBUaGlzIGlzIGEgdGVtcG9yYXJ5IHdvcmthcm91bmQgZm9yIGFuIHVwc3RyZWFtIGJ1ZyBpbiB0b3ggYW5kCiAgc2FpZCBqb2JzIGFyZSBub24tZXNzZW50aWFsLgoKICAqUmVsYXRlZCBpc3N1ZXMgYW5kIHB1bGwgcmVxdWVzdHMgb24gR2l0SHViOioKICA6aXNzdWU6YDczM2AuCgotIFVwZGF0ZWQgdGhlIHByZS1idWlsdCBgbGliZmZpYCB2ZXJzaW9uIHRvIDMuNC44IGluIHRoZQogIGNhY2hlZCBgbWFueWxpbnV4YCBidWlsZCBlbnZpcm9ubWVudCBjb250YWluZXIgaW1hZ2VzCiAgXC0tIGJ5IDp1c2VyOmBKYWt1amVgLgoKICAqUmVsYXRlZCBpc3N1ZXMgYW5kIHB1bGwgcmVxdWVzdHMgb24gR2l0SHViOioKICA6aXNzdWU6YDczNGAuCgotIFJldmVydGVkIHdvcmthcm91bmQga2VlcGluZyB0aGUgb2xkIENNYWtlIHZlcnNpb24gaW5zdGFsbGVkCiAgYXMgdGhlIG5ldyBgbGlic3NoYCB3b3JrcyB3aXRoIG5ld2VyIHZlcnNpb25zIC0tIGJ5IDp1c2VyOmBKYWt1amVgLgoKICAqUmVsYXRlZCBpc3N1ZXMgYW5kIHB1bGwgcmVxdWVzdHMgb24gR2l0SHViOioKICA6aXNzdWU6YDczN2AuCgotIFRoZSBDSSBpbmZyYXN0cnVjdHVyZSBub3cgcHJvZHVjZXMgYG1hbnlsaW51eF8yXzMxX2FybXY3bGAgYmFzZSBpbWFnZXMKICB3aXRoIGBsaWJzc2hgIGFuZCBgb3BlbnNzbGAgcHJlLWJ1aWx0IC0tIGJ5IDp1c2VyOmBKYWt1amVgIGFuZAogIDp1c2VyOmB3ZWJrbmphemAuCgogICpSZWxhdGVkIGlzc3VlcyBhbmQgcHVsbCByZXF1ZXN0cyBvbiBHaXRIdWI6KgogIDppc3N1ZTpgNzQwYC4KCi0gU3RhcnRlZCBjYWNoaW5nIGBtYW55bGludXhgIGJ1aWxkIGltYWdlcyB0byBiZSB1c2VkIGZvciBwcm9kdWNpbmcgYDJfMzRgIHRhZ2dlZCB3aGVlbHMKICBpbiBgYnVpbGQtbWFueWxpbnV4LWNvbnRhaW5lci1pbWFnZXNgIHdvcmtmbG93IC0tIGJ5IDp1c2VyOmBLQi1wZXJCeXRlYC4KCiAgKlJlbGF0ZWQgaXNzdWVzIGFuZCBwdWxsIHJlcXVlc3RzIG9uIEdpdEh1YjoqCiAgOmlzc3VlOmA3NDFgLgoKLSBUaGUgOmZpbGU6YHJldXNhYmxlLWNpYnVpbGR3aGVlbC55bWxgIHdvcmtmbG93IGhhcyBiZWVuIHJlZmFjdG9yZWQgdG8KICBiZSBtb3JlIGdlbmVyaWMgYW5kIDpmaWxlOmBjaS1jZC55bWxgIG5vdyBob2xkcyBhbGwgdGhlIGNvbmZpZ3VyYXRpb24KICB0b2dnbGVzIC0tIGJ5IDp1c2VyOmB3ZWJrbmphemAuCgogICpSZWxhdGVkIGlzc3VlcyBhbmQgcHVsbCByZXF1ZXN0cyBvbiBHaXRIdWI6KgogIDppc3N1ZTpgNzUwYC4KCi0gVXBkYXRlZCB0aGUgdmVyc2lvbiBvZiBgbGlic3NoYCB0byB0aGUgbGF0ZXN0IHJlbGVhc2UgdjAuMTEuMgogIGluIHRoZSBjYWNoZWQgYG1hbnlsaW51eGAgYnVpbGQgZW52aXJvbm1lbnQgY29udGFpbmVyIGltYWdlcwogIFwtLSBieSA6dXNlcjpgSmFrdWplYC4KCiAgKlJlbGF0ZWQgaXNzdWVzIGFuZCBwdWxsIHJlcXVlc3RzIG9uIEdpdEh1YjoqCiAgOmlzc3VlOmA3NTJgLgoKLSBXaGVuIGJ1aWxkaW5nIHdoZWVscywgdGhlIHNvdXJjZSBkaXN0cmlidXRpb24gaXMgbm93IHBhc3NlZCBkaXJlY3RseQogIHRvIHRoZSBgY2lidWlsZHdoZWVsYCBpbnZvY2F0aW9uIC0tIGJ5IDp1c2VyOmB3ZWJrbmphemAuCgogICpSZWxhdGVkIGlzc3VlcyBhbmQgcHVsbCByZXF1ZXN0cyBvbiBHaXRIdWI6KgogIDppc3N1ZTpgNzU0YC4KCi0gRml4ZWQgbGluayB0byBweXRob24zLXB5dGVzdCBmb3IgQ2VudE9TIDkgU3RyZWFtIGFzIGl0IHdhcyByZWNlbnRseSBtb3ZlZCBmcm9tCiAgQ1JCIHRvIEFwcFN0cmVhbSAtLSBieSA6dXNlcjpgSmFrdWplYC4KCiAgKlJlbGF0ZWQgaXNzdWVzIGFuZCBwdWxsIHJlcXVlc3RzIG9uIEdpdEh1YjoqCiAgOmlzc3VlOmA3NThgLgoKLSBUaGUgQ0kvQ0Qgam9icyBmb3Igc21va2UtdGVzdGluZyBSUE1zIGhhdmUgYmVlbiBzaW1wbGlmaWVkCiAgYW5kIG5vdywgdGhleSBleGVjdXRlIHRoZSBzYW1lIHN0ZXBzIGZvciBhbGwgZGlzdHJvIHR5cGVzLgogIFRoZXkgbWFrZSB1c2Ugb2YgYHB5cHJvamVjdC1ycG0tbWFjcm9zYCBldmVuIHVuZGVyIFJIRUwuCiAgSW5zdGFsbGluZyBleHRlcm5hbCBSUE1zIGlzIHRoZSBvbmx5IGNvbmRpdGlvbmFsIHN0ZXAgdGhhdAogIGlzIHNraXBwZWQgb24gRmVkb3JhLgoKICBcLS0gYnkgOnVzZXI6YHdlYmtuamF6YAoKICAqUmVsYXRlZCBpc3N1ZXMgYW5kIHB1bGwgcmVxdWVzdHMgb24gR2l0SHViOioKICA6aXNzdWU6YDc1OWAuCgotIFRoZSBgcmVxdWlyZXNgIHNldHRpbmcgaGFzIGJlZW4gcmVtb3ZlZCBmcm9tIDpmaWxlOmB0b3guaW5pYCwgd2hpY2gKICB3b3JrcyBhcm91bmQgdGhlIHVwc3RyZWFtIHRvb2wgYnVnLiBUaGlzIGVuYWJsZWQgdXMgdG8gcmUtaW50cm9kdWNlCiAgQ0kgam9icyB0ZXN0aW5nIGFnYWluc3Qgc2Rpc3QgdW5kZXIgUHl0aG9uIDMuMTIgYW5kIG5ld2VyCiAgXC0tIGJ5IDp1c2VyOmB3ZWJrbmphemAuCgogICpSZWxhdGVkIGlzc3VlcyBhbmQgcHVsbCByZXF1ZXN0cyBvbiBHaXRIdWI6KgogIDppc3N1ZTpgNzY0YC4KCi0gVXBkYXRlZCB0aGUgdmVyc2lvbiBvZiBgbGlic3NoYCB0byB0aGUgbGF0ZXN0IHJlbGVhc2UgdjAuMTEuMwogIGluIHRoZSBjYWNoZWQgYG1hbnlsaW51eGAgYnVpbGQgZW52aXJvbm1lbnQgY29udGFpbmVyIGltYWdlcwogIFwtLSBieSA6dXNlcjpgSmFrdWplYC4KCiAgKlJlbGF0ZWQgaXNzdWVzIGFuZCBwdWxsIHJlcXVlc3RzIG9uIEdpdEh1YjoqCiAgOmlzc3VlOmA3NjVgLgoKLSBDaGFuZ2VkIHRlc3RzIHRvIHVzZSBtb3JlIGxpZ2h0d2VpZ2h0IEVDRFNBIGtleXMgdG8gYXZvaWQKICB0aW1lb3V0cyAtLSBieSA6dXNlcjpgSmFrdWplYC4KCiAgKlJlbGF0ZWQgaXNzdWVzIGFuZCBwdWxsIHJlcXVlc3RzIG9uIEdpdEh1YjoqCiAgOmlzc3VlOmA3NjhgLgoKKioqCgo8L2RldGFpbHM+CgotLS0KCiMjIyBDb25maWd1cmF0aW9uCgrwn5OFICoqU2NoZWR1bGUqKjogQnJhbmNoIGNyZWF0aW9uIC0gQXQgYW55IHRpbWUgKG5vIHNjaGVkdWxlIGRlZmluZWQpLCBBdXRvbWVyZ2UgLSBBdCBhbnkgdGltZSAobm8gc2NoZWR1bGUgZGVmaW5lZCkuCgrwn5qmICoqQXV0b21lcmdlKio6IERpc2FibGVkIGJ5IGNvbmZpZy4gUGxlYXNlIG1lcmdlIHRoaXMgbWFudWFsbHkgb25jZSB5b3UgYXJlIHNhdGlzZmllZC4KCuKZuyAqKlJlYmFzaW5nKio6IFdoZW5ldmVyIFBSIGJlY29tZXMgY29uZmxpY3RlZCwgb3IgeW91IHRpY2sgdGhlIHJlYmFzZS9yZXRyeSBjaGVja2JveC4KCvCflJUgKipJZ25vcmUqKjogQ2xvc2UgdGhpcyBQUiBhbmQgeW91IHdvbid0IGJlIHJlbWluZGVkIGFib3V0IHRoaXMgdXBkYXRlIGFnYWluLgoKLS0tCgogLSBbIF0gPCEtLSByZWJhc2UtY2hlY2sgLS0+SWYgeW91IHdhbnQgdG8gcmViYXNlL3JldHJ5IHRoaXMgUFIsIGNoZWNrIHRoaXMgYm94CgotLS0KClRoaXMgUFIgd2FzIGdlbmVyYXRlZCBieSBbTWVuZCBSZW5vdmF0ZV0oaHR0cHM6Ly9tZW5kLmlvL3Jlbm92YXRlLykuIFZpZXcgdGhlIFtyZXBvc2l0b3J5IGpvYiBsb2ddKGh0dHBzOi8vZGV2ZWxvcGVyLm1lbmQuaW8vZ2l0aHViL29zaXNtL2dlbmVyaWNzKS4KPCEtLXJlbm92YXRlLWRlYnVnOmV5SmpjbVZoZEdWa1NXNVdaWElpT2lJME1TNHhORE11TVNJc0luVndaR0YwWldSSmJsWmxjaUk2SWpReExqRTBNeTR4SWl3aWRHRnlaMlYwUW5KaGJtTm9Jam9pYldGcGJpSXNJbXhoWW1Wc2N5STZXeUp5Wlc1dmRtRjBaU0pkZlE9PS0tPgo=
      patchset: 9e3df0f7766d191985971c4e9a60274fc7537527
      pipeline: check
      playbook_context:
        playbook_projects:
          trusted/project_0/github.com/osism/zuul-config:
            canonical_name: github.com/osism/zuul-config
            checkout: main
            commit: caa0df55ed55158f32903d317317ac95db4da6ce
          trusted/project_1/github.com/osism/openinfra-zuul-jobs:
            canonical_name: github.com/osism/openinfra-zuul-jobs
            checkout: master
            commit: 397240f42127868e42e86e6aeb120c2cb092d117
          untrusted/project_0/github.com/osism/openinfra-zuul-jobs:
            canonical_name: github.com/osism/openinfra-zuul-jobs
            checkout: master
            commit: 397240f42127868e42e86e6aeb120c2cb092d117
          untrusted/project_1/github.com/osism/zuul-config:
            canonical_name: github.com/osism/zuul-config
            checkout: main
            commit: caa0df55ed55158f32903d317317ac95db4da6ce
        playbooks:
        - path: untrusted/project_0/github.com/osism/openinfra-zuul-jobs/playbooks/tox/run.yaml
          roles:
          - checkout: main
            checkout_description: zuul branch
            link_name: ansible/playbook_0/role_0/zuul-config
            link_target: untrusted/project_1/github.com/osism/zuul-config
            role_path: ansible/playbook_0/role_0/zuul-config/roles
          - checkout: master
            checkout_description: playbook branch
            link_name: ansible/playbook_0/role_1/openinfra-zuul-jobs
            link_target: untrusted/project_0/github.com/osism/openinfra-zuul-jobs
            role_path: ansible/playbook_0/role_1/openinfra-zuul-jobs/roles
      post_review: false
      post_timeout: null
      pre_timeout: null
      project:
        canonical_hostname: github.com
        canonical_name: github.com/osism/generics
        name: osism/generics
        short_name: generics
        src_dir: src/github.com/osism/generics
      projects:
        github.com/osism/generics:
          canonical_hostname: github.com
          canonical_name: github.com/osism/generics
          checkout: main
          checkout_description: zuul branch
          commit: df1c8c4735dcf5014139d0f8943dfcddc4fabd31
          name: osism/generics
          required: false
          short_name: generics
          src_dir: src/github.com/osism/generics
      ref: refs/pull/567/head
      resources: {}
      tenant: osism
      timeout: 1800
      topic: null
      voting: true
