Subject: CVS commit: pkgsrc/sysutils/ansible-core
From: Adam Ciarcinski
Date: 2023-05-18 15:02:12
Message id: 20230518130212.862A1FA87@cvs.NetBSD.org

Log Message:
ansible-core: updated to 2.15.0

v2.15.0
=======

Major Changes
-------------

- ansible-test - Docker Desktop on WSL2 is now supported (additional \ 
configuration required).
- ansible-test - Docker and Podman are now supported on hosts with cgroup v2 \ 
unified. Previously only cgroup v1 and cgroup v2 hybrid were supported.
- ansible-test - Podman now works on container hosts without systemd. Previously \ 
only some containers worked, while others required rootfull or rootless Podman, \ 
but would not work with both. Some containers did not work at all.
- ansible-test - Podman on WSL2 is now supported.
- ansible-test - When additional cgroup setup is required on the container host, \ 
this will be automatically detected. Instructions on how to configure the host \ 
will be provided in the error message shown.

Minor Changes
-------------

- Add support for custom salt for vault encoding to make it deterministic \ 
(https://github.com/ansible/ansible/issues/35480).
- Added the conditional that was False if ``when`` caused a task to skip under \ 
``false_condition``.
- Allow force deletion of a group even when it is the primary group of a user. \ 
(https://github.com/ansible/ansible/issues/77849)
- Ansible.ModuleUtils.AddType - Add support for compiling ``unsafe`` code with \ 
the ``//AllowUnsafe`` directive
- Cache field attributes list on the playbook classes
- Cleaned up unused imports in core.
- Get user input for ``pause`` and ``paramiko_ssh`` from the strategy rather \ 
than access ``sys.stdin`` in the WorkerProcess.
- Introduce ``Delegatable`` and ``Notifiable`` mixin classes for playbook objects
- Make using blocks as handlers a parser error \ 
(https://github.com/ansible/ansible/issues/79968)
- Playbook objects - Replace deprecated stacked ``@classmethod`` and ``@property``
- Raise an error when an incorrect ``isa`` type is passed to ``FieldAttribute``.
- Remove fallback code for when ``defined``/``undefined`` tests were used on \ 
objects containing nested undefined variables; due to changes in lazy evalution \ 
of Jinja2 expressions it is no longer needed.
- Remove unused Python stdlib imports from module_utils which were not present \ 
for backwards compatibility in: common.file, compat.selectors, \ 
facts.network.iscsi, facts.network.nvme, yumdnf
- Remove unused internal imports from module_utils which were not present for \ 
backwards compatibility in: common.file, common.parameters, facts.system.caps, \ 
yumdnf
- Removed ``straight.plugin`` from the build and packaging requirements.
- Removed unused imports from the following action plugins: async_status, \ 
command, pause, set_stats, uri, validate_argument_spec
- Removed unused imports from the following lookup plugins: fileglob, template
- Removed unused imports from the following modules: apt, dnf, expect, pip, \ 
slurp, user, yum
- Removed unused imports from the following set of test plugins: files
- Removed unused imports from the following strategy plugins: debug
- Removed unused imports from the following vars plugins: host_group_vars
- The minimum required ``setuptools`` version is now 45.2.0, as it is the oldest \ 
version to support Python 3.10.
- Use ``ansible.module_utils.six.moves.collections_abc`` instead of \ 
``ansible.module_utils.common._collections_compat`` in modules and module_utils.
- Use ``collections.abc`` instead of \ 
``ansible.module_utils.common._collections_compat`` in controller code.
- Use ``package_data`` instead of ``include_package_data`` for ``setup.cfg`` to \ 
avoid ``setuptools`` warnings.
- ``AnsibleJ2Vars`` class that acts as a storage for all variables for \ 
templating purposes now uses ``collections.ChainMap`` internally.
- add parameter ``numeric`` to the iptables module to disable dns lookups when \ 
running list -action internally \ 
(https://github.com/ansible/ansible/issues/78793).
- allow user to set ansible specific env vars for selecting pager and editor, \ 
but still fall back to commonly used defaults.
- ansible-doc - support role extension for semantic markup spec so that ``O()`` \ 
and ``RV()`` referring to role entrypoints are rendered more readable \ 
(https://github.com/ansible/ansible/pull/80305).
- ansible-doc - support semantic markup in text output \ 
(https://github.com/ansible/ansible/pull/80242).
- ansible-doc text output - support ``seealso`` plugin record that was added for \ 
filter and test plugin documentation \ 
(https://github.com/ansible/ansible/pull/80212).
- ansible-galaxy - Add ability to specify collection versions on the CLI without \ 
the need for a colon. Such as ``namespace.name==1.2.3`` vs \ 
``namespace.name:1.2.3``.
- ansible-galaxy - Use Python's native ``raise ... from`` instead of \ 
``six.raise_from``.
- ansible-galaxy - support ``resolvelib >= 0.5.3, < 0.10.0``.
- ansible-galaxy - support ``resolvelib >= 0.5.3, < 1.1.0``.
- ansible-inventory now supports the limit command line options.
- ansible-test - A new ``audit`` option is available when running custom \ 
containers. This option can be used to indicate whether a container requires the \ 
AUDIT_WRITE capability. The default is ``required``, which most containers will \ 
need when using Podman. If necessary, the ``none`` option can be used to opt-out \ 
of the capability. This has no effect on Docker, which always provides the \ 
capability.
- ansible-test - A new ``cgroup`` option is available when running custom \ 
containers. This option can be used to indicate a container requires cgroup v1 \ 
or that it does not use cgroup. The default behavior assumes the container works \ 
with cgroup v2 (as well as v1).
- ansible-test - Add Alpine 3.17 remote.
- ansible-test - Add Fedora 37 container.
- ansible-test - Add Fedora 37 remote.
- ansible-test - Add FreeBSD 12.4 remote.
- ansible-test - Add RHEL 8.7 remote.
- ansible-test - Add RHEL 9.1 remote.
- ansible-test - Add macOS 13.2 remote.
- ansible-test - Additional log details are shown when containers fail to start \ 
or SSH connections to containers fail.
- ansible-test - Connection failures to remote provisioned hosts now show \ 
failure details as a warning.
- ansible-test - Containers included with ansible-test no longer disable seccomp \ 
by default.
- ansible-test - Disabled the ``ansible-format-automatic-specification`` rule \ 
from the ``pylint`` sanity test, now that Python 2.6 is no longer supported.
- ansible-test - Enable the ``trailing-comma-tuple`` rule in the ``pylint`` \ 
sanity test.
- ansible-test - Enable the ``unused-import`` rule for the ``pylint`` sanity \ 
test for collections.
- ansible-test - Failure to connect to a container over SSH now results in a \ 
clear error. Previously tests would be attempted even after initial connection \ 
attempts failed.
- ansible-test - Improve consistency of executed ``pylint`` commands by making \ 
the plugins ordered.
- ansible-test - Improve consistency of version specific documentation links.
- ansible-test - Integration tests can be excluded from retries triggered by the \ 
``--retry-on-error`` option by adding the ``retry/never`` alias. This is useful \ 
for tests that cannot pass on a retry or are too slow to make retries useful.
- ansible-test - Minor cleanup and package updates in distro containers.
- ansible-test - More details are provided about an instance when provisioning fails.
- ansible-test - Moved git handling out of the validate-modules sanity test and \ 
into ansible-test.
- ansible-test - Reduce the polling limit for SSHD startup in containers from 60 \ 
retries to 10. The one second delay between retries remains in place.
- ansible-test - Removed test containers: fedora36
- ansible-test - Removed test remotes: alpine/3.16, fedora/36, freebsd/12.3, \ 
rhel/8.6, rhel/9.0, macos/12.0
- ansible-test - Removed the ``--keep-git`` sanity test option, which was \ 
limited to testing ansible-core itself.
- ansible-test - SSH connections from OpenSSH 8.8+ to CentOS 6 containers now \ 
work without additional configuration. However, clients older than OpenSSH 7.0 \ 
can no longer connect to CentOS 6 containers as a result. The container must \ 
have ``centos6`` in the image name for this work-around to be applied.
- ansible-test - SSH shell connections from OpenSSH 8.8+ to ansible-test \ 
provisioned network instances now work without additional configuration. \ 
However, clients older than OpenSSH 7.0 can no longer open shell sessions for \ 
ansible-test provisioned network instances as a result.
- ansible-test - Specify the configuration file location required by test \ 
plugins when the config file is not found. This resolves issue: \ 
https://github.com/ansible/ansible/issues/79411
- ansible-test - The ``ansible-test env`` command now detects and reports the \ 
container ID if running in a container.
- ansible-test - The ``pep8`` sanity test rule ``E203`` is now disabled since it \ 
is not PEP 8 compliant. This provides compatibility with output generated by the \ 
``black`` code formatter.
- ansible-test - The ``validate-modules`` sanity test no longer limits the \ 
``__future__`` imports that can be used. Other sanity tests that check \ 
``__future__`` imports remain unchanged. As a result, the error code \ 
``illegal-future-imports`` is no longer used.
- ansible-test - Unit tests now support network disconnect by default when \ 
running under Podman. Previously this feature only worked by default under \ 
Docker.
- ansible-test - Update Alpine 3 container to 3.17.
- ansible-test - Update Python requirements used for sanity tests.
- ansible-test - Update ``base`` and ``default`` containers to include Python 3.11.0.
- ansible-test - Update ``default`` containers to include new ``docs-build`` \ 
sanity test requirements.
- ansible-test - Update error handling code to use Python 3.x constructs, \ 
avoiding direct use of ``errno``.
- ansible-test - Update test container to ``7.4.0`` which includes the new \ 
PSScriptAnalyzer versions
- ansible-test - Update the CloudStack test plugin to use a newer test container \ 
with CloudStack 4.18.0.
- ansible-test - Update the NIOS test plugin to use a newer multi-arch test \ 
container.
- ansible-test - Update the ``ansible-bad-import-from`` rule in the ``pylint`` \ 
sanity test to recommend ``ansible.module_utils.six.moves.collections_abc`` \ 
instead of ``ansible.module_utils.common._collections_compat``.
- ansible-test - Update the ``base`` and ``default`` test containers with the \ 
latest requirements.
- ansible-test - Update the ``default`` containers to include the \ 
``package-data`` requirements update.
- ansible-test - Update the ``default`` containers to include the ``pylint`` \ 
requirements update.
- ansible-test - Updated the Azure Pipelines CI plugin to work with newer \ 
versions of git.
- ansible-test - Use ``stop --time 0`` followed by ``rm`` to remove ephemeral \ 
containers instead of ``rm -f``. This speeds up teardown of ephemeral \ 
containers.
- ansible-test - Warnings are now shown when using containers that were built \ 
with VOLUME instructions.
- ansible-test - When setting the max open files for containers, the container \ 
host's limit will be checked. If the host limit is lower than the preferred \ 
value, it will be used and a warning will be shown.
- ansible-test - When using Podman, ansible-test will detect if the loginuid \ 
used in containers is incorrect. When this occurs a warning is displayed and the \ 
container is run with the AUDIT_CONTROL capability. Previously containers would \ 
fail under this situation, with no useful warnings or errors given.
- ansible-test acme test container - update version to update used Pebble \ 
version, underlying Python and Go base containers, and Python requirements \ 
(https://github.com/ansible/ansible/pull/79783).
- ansible-test pslint - Upgrade PSScriptAnalyzer to ``1.21.0`` which enables the \ 
``AvoidMultipleTypeAttributes``, ``AvoidSemicolonsAsLineTerminators``, and \ 
``AvoidUsingBrokenHashAlgorithms`` rules
- ansible-test runtime-metadata sanity test - ensure that ``redirect`` entries \ 
in ``meta/runtime.yml`` contain collection names, except for ``module_utils`` \ 
plugin redirects and ``import_redirect`` redirects \ 
(https://github.com/ansible/ansible/pull/78802).
- ansible-test sanity --test ansible-doc - now also lists documentation for test \ 
and filter plugins that are documented \ 
(https://github.com/ansible/ansible/pull/77737).
- ansible-test validate-modules - Added support for validating module \ 
documentation stored in a sidecar file alongside the module (``{module}.yml`` or \ 
``{module}.yaml``). Previously these files were ignored and documentation had to \ 
be placed in ``{module}.py``.
- ansible-test validate-modules - no longer treat falsy non-``False`` values for \ 
defaults as ``None`` (https://github.com/ansible/ansible/pull/79267).
- apt - add allow-change-held-packages option to apt remove \ 
(https://github.com/ansible/ansible/issues/78131)
- apt_repository - adds ``sources_added`` and ``sources_removed`` to the return \ 
of the module (https://github.com/ansible/ansible/issues/79306).
- apt_repository will use the trust repo directories in order of preference \ 
(more appropriate to less) as they exist on the target.
- collections - Add additional ignores for commonly rejected file extensions
- collections - Add additional includes for REUSE license files \ 
(https://github.com/ansible/ansible/issues/79368)
- deb822_repository - Add new module for managing DEB822 formatted apt repositories
- debug - Perform argspec valdiation in debug action plugin \ 
(https://github.com/ansible/ansible/issues/79862)
- dnf5 - Add new module for managing packages and other artifacts via the next \ 
version of DNF (https://github.com/ansible/ansible/issues/78898)
- galaxy - include ``license_file`` in the default manifest directives \ 
(https://github.com/ansible/ansible/pull-request/79420)
- optimized var loading by caching results as there is no variance in input \ 
during run.
- pycompat24 module_utils - Remove support for Python 2.5 and earlier.
- sanity tests - updates the collection-deprecated-version tests to ignore the \ 
``prerelease`` component of the collection version ().
- strftime filter, additional docs and links to source of truth.
- updated the vendored distro library to upstream version \ 
(https://github.com/ansible/ansible/pull/79227)
- validate-modules sanity test - add support for semantic markup \ 
(https://github.com/ansible/ansible/pull/80243).
- validate-modules sanity test - if the ``check_mode`` attribute is present, \ 
check that it coincides with the ``support_check_mode`` parameter of \ 
``AnsibleModule`` (https://github.com/ansible/ansible/pull/80090).
- validate-modules sanity test - remove support for the never implemented \ 
``forced_action_plugin`` attribute \ 
(https://github.com/ansible/ansible/pull/79317).
- validate-modules sanity test - support the ``plugin`` see-also part of the \ 
semantic markup specification (https://github.com/ansible/ansible/pull/80244).

Breaking Changes / Porting Guide
--------------------------------

- ansible-doc - no longer treat plugins in collections whose name starts with \ 
``_`` as deprecated (https://github.com/ansible/ansible/pull/79362).
- ansible-test - Integration tests which depend on specific file permissions \ 
when running in an ansible-test managed host environment may require changes. \ 
Tests that require permissions other than ``755`` or ``644`` may need to be \ 
updated to set the necessary permissions as part of the test run.
- ansible-test - The ``vcenter`` test plugin now defaults to using a \ 
user-provided static configuration instead of the ``govcsim`` simulator for \ 
collections. Set the ``ANSIBLE_VCSIM_CONTAINER`` environment variable to \ 
``govcsim`` to use the simulator. Keep in mind that the simulator is deprecated \ 
and will be removed in a future release.
- ansible-test sanity - previously plugins and modules in collections whose name \ 
started with ``_`` were treated as deprecated, even when they were not marked as \ 
deprecated in ``meta/runtime.yml``. This is no longer the case \ 
(https://github.com/ansible/ansible/pull/79362).
- ansible-test validate-modules - Removed the ``missing-python-doc`` error code \ 
in validate modules, ``missing-documentation`` is used instead for missing \ 
PowerShell module documentation.

Deprecated Features
-------------------

- The ``ConnectionBase()._new_stdin`` attribute is deprecated, use \ 
``display.prompt_until(msg)`` instead.
- ansible-test - The ``foreman`` test plugin is now deprecated. It will be \ 
removed in a future release.
- ansible-test - The ``govcsim`` simulator in the ``vcenter`` test plugin is now \ 
deprecated. It will be removed in a future release. Users should switch to \ 
providing their own test environment through a static configuration file.
- password_hash - deprecate using passlib.hash.hashtype if hashtype isn't in the \ 
list of documented choices.
- vars - Specifying a list of dictionaries for ``vars:`` is deprecated in favor \ 
of specifying a dictionary.

Removed Features (previously deprecated)
----------------------------------------

- Remove deprecated ``ANSIBLE_CALLBACK_WHITELIST`` configuration environment \ 
variable, use ``ANSIBLE_CALLBACKS_ENABLED`` instead. \ 
(https://github.com/ansible/ansible/issues/78821)
- Remove deprecated ``ANSIBLE_COW_WHITELIST`` configuration environment \ 
variable, use ``ANSIBLE_COW_ACCEPTLIST`` instead. \ 
(https://github.com/ansible/ansible/issues/78819)
- Remove deprecated ``callback_whitelist`` configuration option, use \ 
``callbacks_enabled`` instead. (https://github.com/ansible/ansible/issues/78822)
- Remove deprecated ``cow_whitelist`` configuration option, use \ 
``cowsay_enabled_stencils`` instead. \ 
(https://github.com/ansible/ansible/issues/78820)

Bugfixes
--------

- Ansible.Basic.cs - Ignore compiler warning (reported as an error) when running \ 
under PowerShell 7.3.x.
- AnsibleModule.run_command - Only use selectors when needed, and rely on Python \ 
stdlib subprocess for the simple task of collecting stdout/stderr when prompt \ 
matching is not required.
- BSD network facts - Do not assume column indexes, look for ``netmask`` and \ 
``broadcast`` for determining the correct columns when parsing ``inet`` line \ 
(https://github.com/ansible/ansible/issues/79117)
- Correctly count rescued tasks in play recap \ 
(https://github.com/ansible/ansible/issues/79711)
- Display - Defensively configure writing to stdout and stderr with a custom \ 
encoding error handler that will replace invalid characters while providing a \ 
deprecation warning that non-utf8 text will result in an error in a future \ 
version.
- Do not crash when templating an expression with a test or filter that is not a \ 
valid Ansible filter name (https://github.com/ansible/ansible/issues/78912, \ 
https://github.com/ansible/ansible/pull/78913).
- Fix ``MANIFEST.in`` to exclude unwanted files in the ``packaging/`` directory.
- Fix ``MANIFEST.in`` to include ``*.md`` files in the ``test/support/`` directory.
- Fix a traceback occuring when a task is named ``meta`` \ 
(https://github.com/ansible/ansible/issues/79459)
- Fix an issue where the value of ``become`` was ignored when used on a role \ 
used as a dependency in ``main/meta.yml`` \ 
(https://github.com/ansible/ansible/issues/79777)
- Fix bug in `vars` applied to roles, they were being incorrectly exported among \ 
others while only vars/main.yml was meant to be. Also adjusted the precedence to \ 
act the same as inline params.
- Fix conditionally notifying ``include_tasks` handlers when ``force_handlers`` \ 
is used (https://github.com/ansible/ansible/issues/79776)
- Fix post-validating looped task fields so the strategy uses the correct values \ 
after task execution.
- Fix reusing a connection in a task loop that uses a redirected or aliased name \ 
- https://github.com/ansible/ansible/issues/78425
- Fix setting become activation in a task loop - \ 
https://github.com/ansible/ansible/issues/78425
- Fix traceback when using the ``template`` module and running with \ 
``ANSIBLE_DEBUG=1`` (https://github.com/ansible/ansible/issues/79763)
- Fix using ``GALAXY_IGNORE_CERTS`` in conjunction with collections in \ 
requirements files which specify a specific ``source`` that isn't in the \ 
configured servers.
- Fix using ``GALAXY_IGNORE_CERTS`` when downloading tarballs from Galaxy \ 
servers (https://github.com/ansible/ansible/issues/79557).
- Fixes leftover _valid_attrs usage.
- Fixes the password lookup to not rewrite files if they are not changed when \ 
using the "encrypt" parameter
- Module and role argument validation - include the valid suboption choices in \ 
the error when an invalid suboption is provided.
- Perform type check on data passed to Display.display to enforce the \ 
requirement of being given a python3 unicode string
- Prevent running same handler multiple times when included via ``include_role`` \ 
(https://github.com/ansible/ansible/issues/73643)
- TaskExecutor - don't ignore templated _raw_params that k=v parser failed to \ 
parse (https://github.com/ansible/ansible/issues/79862)
- Windows - Display a warning if the module failed to cleanup any temporary \ 
files rather than failing the task. The warning contains a brief description of \ 
what failed to be deleted.
- Windows - Ensure the module temp directory contains more unique values to \ 
avoid conflicts with concurrent runs - \ 
https://github.com/ansible/ansible/issues/80294
- Windows - Improve temporary file cleanup used by modules. Will use a more \ 
reliable delete operation on Windows Server 2016 and newer to delete files that \ 
might still be open by other software like Anti Virus scanners. There are still \ 
scenarios where a file or directory cannot be deleted but the new method should \ 
work in more scenarios.
- ``ansible-galaxy search rolename`` - give a warning instead of non-zero return \ 
code when search results are empty. This is similar to the behavior when listing \ 
roles, which gives a warning if a role cannot be found and exits with a return \ 
code of ``0``.
- ``ansible_eval_concat`` - avoid redundant unsafe wrapping of templated strings \ 
converted to Python types
- ``pkg_mgr`` - fix the default dnf version detection
- ansible-config limit shorthand format to assigned values
- ansible-doc - stop generating wrong module URLs for module see-alsos. The URLs \ 
for modules in ansible.builtin do now work, and URLs for modules outside \ 
ansible.builtin are no longer added \ 
(https://github.com/ansible/ansible/pull/80280).
- ansible-doc now will correctly display short descriptions on listing \ 
filters/tests no matter the directory sorting.
- ansible-galaxy - Improve retries for collection installs, to properly retry, \ 
and extend retry logic to common URL related connection errors \ 
(https://github.com/ansible/ansible/issues/80170 \ 
https://github.com/ansible/ansible/issues/80174)
- ansible-galaxy - fix installing collections from directories that have a \ 
trailing path separator (https://github.com/ansible/ansible/issues/77803).
- ansible-galaxy - fix installing collections in git repositories/directories \ 
which contain a MANIFEST.json file \ 
(https://github.com/ansible/ansible/issues/79796).
- ansible-galaxy - fix installing signed collections \ 
(https://github.com/ansible/ansible/issues/80648).
- ansible-galaxy - make initial call to Galaxy server on-demand only when \ 
installing, getting info about, and listing roles.
- ansible-galaxy - reduce API calls to servers by fetching signatures only for \ 
final candidates.
- ansible-galaxy collection install - respect symlinks when installing from \ 
source or local repository (https://github.com/ansible/ansible/issues/78442)
- ansible-galaxy collection verify - fix verifying signed collections when the \ 
keyring is not configured.
- ansible-galaxy collection/role init - preserve symlinks \ 
(https://github.com/ansible/ansible/issues/39334).
- ansible-galaxy role info - fix unhandled AttributeError by catching the \ 
correct exception.
- ansible-inventory will no longer duplicate host entries if they were part of a \ 
group's childrens tree.
- ansible-inventory will not explicitly sort groups/hosts anymore, giving a \ 
chance (depending on output format) to match the order in the input sources.
- ansible-playbook -K breaks when passwords have quotes \ 
(https://github.com/ansible/ansible/issues/79836).
- ansible-test - Add ``wheel < 0.38.0`` constraint for Python 3.6 and earlier.
- ansible-test - Add support for ``argcomplete`` version 3.
- ansible-test - Add support for ``pytest`` assertion rewriting when running \ 
unit tests on Python 3.5 and later. Resolves issue \ 
https://github.com/ansible/ansible/issues/68032
- ansible-test - Added a work-around for a traceback under Python 3.11 when \ 
completing certain command line options.
- ansible-test - Allow disabled, unsupported, unstable and destructive \ 
integration test targets to be selected using their respective prefixes.
- ansible-test - Allow unstable tests to run when targeted changes are made and \ 
the ``--allow-unstable-changed`` option is specified (resolves \ 
https://github.com/ansible/ansible/issues/74213).
- ansible-test - Always indicate the Python version being used before installing \ 
requirements. Resolves issue https://github.com/ansible/ansible/issues/72855
- ansible-test - Avoid using ``exec`` after container startup when possible. \ 
This improves container startup performance and avoids intermittent startup \ 
issues with some old containers.
- ansible-test - Connection attempts to managed remote instances no longer abort \ 
on ``Permission denied`` errors.
- ansible-test - Detection for running in a Podman or Docker container has been \ 
fixed to detect more scenarios. The new detection relies on \ 
``/proc/self/mountinfo`` instead of ``/proc/self/cpuset``. Detection now works \ 
with custom cgroups and private cgroup namespaces.
- ansible-test - Exclude ansible-core vendored Python packages from ansible-test \ 
payloads.
- ansible-test - Fix broken documentation link for ``aws`` test plugin error \ 
messages.
- ansible-test - Fix validate-modules error when retrieving PowerShell argspec \ 
when retrieved inside a Cmdlet
- ansible-test - Handle server errors when executing the ``docker info`` command.
- ansible-test - Integration test target prefixes defined in a \ 
``tests/integration/target-prefixes.{group}`` file can now contain an underscore \ 
(``_``) character. Resolves issue \ 
https://github.com/ansible/ansible/issues/79225
- ansible-test - Multiple containers now work under Podman without specifying \ 
the ``--docker-network`` option.
- ansible-test - Pass the ``XDG_RUNTIME_DIR`` environment variable through to \ 
container commands.
- ansible-test - Perform PyPI proxy configuration after instances are ready and \ 
bootstrapping has been completed. Only target instances are affected, as \ 
controller instances were already handled this way. This avoids proxy \ 
configuration errors when target instances are not yet ready for use.
- ansible-test - Prevent concurrent / repeat inspections of the same container image.
- ansible-test - Prevent concurrent / repeat pulls of the same container image.
- ansible-test - Prevent concurrent execution of cached methods.
- ansible-test - Removed pointless comparison in diff evaluation logic.
- ansible-test - Set ``PYLINTHOME`` for the ``pylint`` sanity test to prevent \ 
failures due to ``pylint`` checking for the existence of an obsolete home \ 
directory.
- ansible-test - Show the exception type when reporting errors during instance \ 
provisioning.
- ansible-test - Support Podman 4.4.0+ by adding the ``SYS_CHROOT`` capability \ 
when running containers.
- ansible-test - Support loading of vendored Python packages from ansible-core.
- ansible-test - The ``validate-modules`` sanity test now properly enforces \ 
documentation before imports for plugins. Previously this was only enforced for \ 
modules due to a coding error.
- ansible-test - Update ``pylint`` to 2.17.2 to resolve several possible false \ 
positives.
- ansible-test - Update ``pylint`` to 2.17.3 to resolve several possible false \ 
positives.
- ansible-test - Update the ``pylint`` sanity test requirements to resolve \ 
crashes on Python 3.11. (https://github.com/ansible/ansible/issues/78882)
- ansible-test - Update the ``pylint`` sanity test to use version 2.15.4.
- ansible-test - Update the ``pylint`` sanity test to use version 2.15.5.
- ansible-test - Use consistent file permissions when delegating tests to a \ 
container or remote host. Files with any execute bit set will use permissions \ 
``755``. All other files will use permissions ``644``. (Resolves issue \ 
https://github.com/ansible/ansible/issues/75079)
- ansible-test - When bootstrapping remote FreeBSD instances, use the OS \ 
packaged ``setuptools`` instead of installing the latest version from PyPI.
- ansible-test - fix warning message about failing to run an image to include \ 
the image name
- ansible-test runtime-metadata sanity test - do not crash on YAML parsing \ 
errors without a context mark (https://github.com/ansible/ansible/pull/78802).
- ansible-test sanity - correctly report invalid YAML in validate-modules \ 
(https://github.com/ansible/ansible/issues/75837).
- ansible-vault encrypt_string - started appending a line feed at the end of the \ 
encrypted string output. Missing newline character caused problems identifying \ 
where the string ends in some shells (like bash) or accidentally copying an \ 
extra trailing terminator symbol (e.g., zsh prints out a ``%`` sign to signal \ 
where the original output stops) \ 
(https://github.com/ansible/ansible/issues/78932).
- ansible_facts.hardware - Define all processor facts on s390x \ 
(https://github.com/ansible/ansible/issues/19755)
- apt - set locale to fix updating the cache \ 
(https://github.com/ansible/ansible/issues/79523).
- apt module should not traceback on invalid type given as package. issue 78663.
- apt_repository will no longer fail to detect key when unrelated \ 
errors/warnings are issued by apt-key.
- argument spec validation - again report deprecated parameters for Python-based \ 
modules. This was accidentally removed in ansible-core 2.11 when argument spec \ 
validation was refactored (https://github.com/ansible/ansible/issues/79680, \ 
https://github.com/ansible/ansible/pull/79681).
- argument spec validation - ensure that deprecated aliases in suboptions are \ 
also reported (https://github.com/ansible/ansible/pull/79740).
- argument spec validation - fix warning message when two aliases of the same \ 
option are used for suboptions to also mention the option's name they are in \ 
(https://github.com/ansible/ansible/pull/79740).
- basic.py module_utils - Perform Python version check much earlier to ensure it \ 
runs before other errors occur.
- connection local now avoids traceback on invalid user being used to execuet \ 
ansible (valid in host, but not in container).
- copy - fix creating the dest directory in check mode with remote_src=True \ 
(https://github.com/ansible/ansible/issues/78611).
- copy - fix reporting changes to file attributes in check mode with \ 
remote_src=True (https://github.com/ansible/ansible/issues/77957).
- copy module will no longer move 'non files' set as src when remote_src=true.
- copy remote_src=true - fix copying subdirs recursively when the dest exists \ 
and the src and dest have multiple common subdirectories in a common directory \ 
(https://github.com/ansible/ansible/issues/74536).
- copy remote_src=true - fix reporting changed for copying empty directories.
- display - reduce risk of post-fork output deadlocks \ 
(https://github.com/ansible/ansible/pull/79522)
- dnf5 - Use ``transaction.check_gpg_signatures`` API call to check package \ 
signatures AND possibly to recover from when keys are missing.
- dnf5 - fix module and package names in the message following failed module \ 
respawn attempt
- dnf5 - use the logs API to determine transaction problems
- file - touch action in check mode was always returning ok. Fix now evaluates \ 
the different conditions and returns the appropriate changed status. \ 
(https://github.com/ansible/ansible/issues/79360)
- file lookup now handles missing files more gracefully.
- file lookup now plays nice with generic lookup ``errors`` option.
- get_url - Ensure we are passing ciphers to all url_get calls \ 
(https://github.com/ansible/ansible/issues/79717)
- get_url module - Added a documentation reference to ``hashlib`` regarding \ 
algorithms, as well as a note about ``md5`` support on systems running in FIPS \ 
compliant mode.
- get_url module - Removed out-of-date documentation stating that ``hashlib`` is \ 
a third-party library.
- handlers - fix ``v2_playbook_on_notify`` callback not being called when \ 
notifying handlers
- handlers - fix an issue where the ``flush_handlers`` meta task could not be \ 
used with FQCN: ``ansible.builtin.meta`` \ 
(https://github.com/ansible/ansible/issues/79023)
- include_role - Inherit from role parents beyond a depth of 3 \ 
(https://github.com/ansible/ansible/issues/47023).
- jinja2_native - fix intermittent 'could not find job' failures when a value of \ 
``ansible_job_id`` from a result of an async task was inadvertently changed \ 
during execution; to prevent this a format of ``ansible_job_id`` was changed.
- jinja2_native: preserve quotes in strings \ 
(https://github.com/ansible/ansible/issues/79083)
- keyword inheritance - Ensure that we do not squash keywords in validate \ 
(https://github.com/ansible/ansible/issues/79021)
- known_hosts - do not return changed status when a non-existing key is removed \ 
(https://github.com/ansible/ansible/issues/78598)
- list-tags now shows the 'never' tag, which was being excluded by default. To \ 
list all tasks you still need to add `--list-tasks --tags never,all`.
- loops/delegate_to - Do not double calculate the values of loops and \ 
``delegate_to`` (https://github.com/ansible/ansible/issues/80038)
- module responses - Ensure that module responses are utf-8 adhereing to JSON \ 
RFC and expectations of the core code.
- module/role argument spec - validate the type for options that are None when \ 
the option is required or has a non-None default \ 
(https://github.com/ansible/ansible/issues/79656).
- module_utils/basic.py - Fix detection of available hashing algorithms on \ 
Python 3.x. All supported algorithms are now available instead of being limited \ 
to a hard-coded list. This affects modules such as ``get_url`` which accept an \ 
arbitrary checksum algorithm.
- normal action plugin - remove obsolete ``if`` \ 
(https://github.com/ansible/ansible/pull/79690).
- omit on keywords was resetting to default value, ignoring inheritance.
- paramiko - Add a new option to allow paramiko >= 2.9 to easily work with \ 
all devices now that rsa-sha2 support was added to paramiko, which prevented \ 
communication with numerous platforms. \ 
(https://github.com/ansible/ansible/issues/76737)
- paramiko - Add back support for ``ssh_args``, ``ssh_common_args``, and \ 
``ssh_extra_args`` for parsing the ``ProxyCommand`` \ 
(https://github.com/ansible/ansible/issues/78750)
- paramiko connection was still using outdated playcontext, this should bring it \ 
up to date to use the 'correct' data for each task/loop.
- password lookup now correctly reads stored ident fields.
- password_hash - handle errors using unknown passlib hashtypes more gracefully \ 
(https://github.com/ansible/ansible/issues/45392).
- pep517 build backend - Use the documented ``import_module`` import from \ 
``importlib``.
- plugin loader, fix detection for existing configuration before initializing \ 
for a plugin
- role deduplication - Always create new role object, regardless of \ 
deduplication. Deduplication will only affect whether a duplicate call to a role \ 
will execute, as opposed to re-using the same object. \ 
(https://github.com/ansible/ansible/pull/78661)
- roles - Fix templating ``public``, ``allow_duplicates`` and \ 
``rolespec_validate`` (https://github.com/ansible/ansible/issues/80304).
- service_facts - Use python re to parse service output instead of grep \ 
(https://github.com/ansible/ansible/issues/78541)
- strategy plugins now correctly identify bad registered variables, even on skip.
- strategy plugins: get the correctly templated and validated run_once value on \ 
strategy linear (https://github.com/ansible/ansible/issues/78492)
- syntax check - Limit ``--syntax-check`` to ``ansible-playbook`` only, as that \ 
is the only CLI affected by this argument \ 
(https://github.com/ansible/ansible/issues/80506)
- systemd - daemon-reload and daemon-reexec ignore errors when running in a \ 
chroot (https://github.com/ansible/ansible/pull/79643)
- templates - Fixed ``TypeError`` when a lookup plugin has an option called ``name``.
- unarchive - allow relative path for ``dest`` \ 
(https://github.com/ansible/ansible/issues/64612)
- unarchive - log errors from commands to assist in debugging \ 
(https://github.com/ansible/ansible/issues/64612)
- updated error messages to include 'acl' and not just mode changes when failing \ 
to set required permissions on remote.
- uri - improve JSON content type detection
- user - fix comparing group IDs to existing group names so groups are not \ 
always updated (https://github.com/ansible/ansible/issues/79956).
- user module - Removed ``password_expire_max`` from the return docs, as it is \ 
not returned.
- user module - Removed ``password_expire_min`` from the return docs, as it is \ 
not returned.
- validate-modules sanity test - replace semantic markup parsing and validating \ 
code with the code from `antsibull-docs-parser 0.2.0 \ 
<https://github.com/ansible-community/antsibull-docs-parser/releases/tag/0.2.0>`__ \ 
(https://github.com/ansible/ansible/pull/80406).
- vault - show filename additionally if missing secrets prevents decryption \ 
(https://github.com/ansible/ansible/issues/79723)
- winrm - Increase the read timeout to 10 seconds later than the operation \ 
timeout reducing the chances of a false read timeout

Known Issues
------------

- ansible-test - Additional configuration may be required for certain container \ 
host and container combinations. Further details are available in the testing \ 
documentation.
- ansible-test - Custom containers with ``VOLUME`` instructions may be unable to \ 
start, when previously the containers started correctly. Remove the ``VOLUME`` \ 
instructions to resolve the issue. Containers with this condition will cause \ 
``ansible-test`` to emit a warning.
- ansible-test - Systems with Podman networking issues may be unable to run \ 
containers, when previously the issue went unreported. Correct the networking \ 
issues to continue using ``ansible-test`` with Podman.
- ansible-test - Unit tests for collections do not support ``pytest`` assertion \ 
rewriting on Python 2.7.
- ansible-test - Using Docker on systems with SELinux may require setting \ 
SELinux to permissive mode. Podman should work with SELinux in enforcing mode.
- dnf5 - The DNF5 package manager currently does not provide all functionality \ 
to ensure feature parity between the existing ``dnf`` and the new ``dnf5`` \ 
module. As a result the following ``dnf5`` options are effectively a no-op: \ 
``cacheonly``, ``enable_plugin``, ``disable_plugin`` and ``lock_timeout``.

New Plugins
-----------

Filter
~~~~~~

- commonpath - gets the common path
- normpath - Normalize a pathname

New Modules
-----------

Lib
~~~

ansible.modules
^^^^^^^^^^^^^^^

- deb822_repository - Add and remove deb822 formatted repositories
- dnf5 - Manages packages with the I(dnf5) package manager

Files:
RevisionActionfile
1.17modifypkgsrc/sysutils/ansible-core/Makefile
1.6modifypkgsrc/sysutils/ansible-core/PLIST
1.15modifypkgsrc/sysutils/ansible-core/distinfo
1.1removepkgsrc/sysutils/ansible-core/patches/patch-lib_ansible_galaxy_dependency__resolution_providers.py
1.1removepkgsrc/sysutils/ansible-core/patches/patch-requirements.txt