ancestor: 2.13.0
releases:
  2.14.0:
    changes:
      bugfixes:
      - ansible-test - Fix broken documentation link for ``aws`` test plugin error
        messages.
      minor_changes:
      - ansible-test - Improve consistency of version specific documentation links.
      release_summary: '| Release Date: 2022-11-07

        | `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`__

        '
    codename: C'mon Everybody
    fragments:
    - ansible-test-docs-links.yml
    - v2.14.0_summary.yaml
    release_date: '2022-11-07'
  2.14.0b1:
    changes:
      breaking_changes:
      - Allow for lazy evaluation of Jinja2 expressions (https://github.com/ansible/ansible/issues/56017)
      - The default ansible-galaxy role skeletons no longer contain .travis.yml files.
        You can configure ansible-galaxy to use a custom role skeleton that contains
        a .travis.yml file to continue using Galaxy's integration with Travis CI.
      - ansible - At startup the filesystem encoding and locale are checked to verify
        they are UTF-8. If not, the process exits with an error reporting the errant
        encoding.
      - ansible - Increase minimum Python requirement to Python 3.9 for CLI utilities
        and controller code
      - ansible-test - At startup the filesystem encoding is checked to verify it
        is UTF-8. If not, the process exits with an error reporting the errant encoding.
      - ansible-test - At startup the locale is configured as ``en_US.UTF-8``, with
        a fallback to ``C.UTF-8``. If neither encoding is available the process exits
        with an error. If the fallback is used, a warning is displayed. In previous
        versions the ``en_US.UTF-8`` locale was always requested. However, no startup
        checking was performed to verify the locale was successfully configured.
      - strategy plugins - Make ``ignore_unreachable`` to increase ``ignored`` and
        ``ok`` and  counter, not ``skipped`` and ``unreachable``. (https://github.com/ansible/ansible/issues/77690)
      bugfixes:
      - '"meta: refresh_inventory" does not clobber entries added by add_host/group_by
        anymore.'
      - Add PyYAML >= 5.1 as a dependency of ansible-core to be compatible with Python
        3.8+.
      - Avoid 'unreachable' error when chmod on AIX has 255 as return code.
      - Bug fix for when handlers were ran on failed hosts after an ``always`` section
        was executed (https://github.com/ansible/ansible/issues/52561)
      - Do not allow handlers from dynamic includes to be notified (https://github.com/ansible/ansible/pull/78399)
      - Ensure handlers observe ``any_errors_fatal`` (https://github.com/ansible/ansible/issues/46447)
      - Ensure syntax check errors include playbook filenames
      - Ensure the correct ``environment_class`` is set on ``AnsibleJ2Template``
      - Error for collection redirects that do not use fully qualified collection
        names, as the redirect would be determined by the ``collections`` keyword.
      - Fix PluginLoader to mimic Python import machinery by adding module to sys.modules
        before exec
      - Fix ``-vv`` output for meta tasks to not have an empty message when skipped,
        print the skip reason instead. (https://github.com/ansible/ansible/issues/77315)
      - Fix an issue where ``ansible_play_hosts`` and ``ansible_play_batch`` were
        not properly updated when a failure occured in an explicit block inside the
        rescue section (https://github.com/ansible/ansible/issues/78612)
      - Fix dnf module documentation to indicate that comparison operators for package
        version require spaces around them (https://github.com/ansible/ansible/issues/78295)
      - Fix for linear strategy when tasks were executed in incorrect order or even
        removed from execution. (https://github.com/ansible/ansible/issues/64611,
        https://github.com/ansible/ansible/issues/64999, https://github.com/ansible/ansible/issues/72725,
        https://github.com/ansible/ansible/issues/72781)
      - Fix for network_cli not getting all relevant connection options
      - Fix handlers execution with ``serial`` in the ``linear`` strategy (https://github.com/ansible/ansible/issues/54991)
      - Fix potential, but unlikely, cases of variable use before definition.
      - Fix traceback when installing a collection from a git repository and git is
        not installed (https://github.com/ansible/ansible/issues/77479).
      - GALAXY_IGNORE_CERTS reworked to allow each server entry to override
      - More gracefully handle separator errors in jinja2 template overrides (https://github.com/ansible/ansible/pull/77495).
      - Move undefined check from concat to finalize (https://github.com/ansible/ansible/issues/78156)
      - Prevent losing unsafe on results returned from lookups (https://github.com/ansible/ansible/issues/77535)
      - Propagate ``ansible_failed_task`` and ``ansible_failed_result`` to an outer
        rescue (https://github.com/ansible/ansible/issues/43191)
      - Properly execute rescue section when an include task fails in all loop iterations
        (https://github.com/ansible/ansible/issues/23161)
      - Properly send a skipped message when a list in a ``loop`` is empty and comes
        from a template (https://github.com/ansible/ansible/issues/77934)
      - Support colons in jinja2 template override values (https://github.com/ansible/ansible/pull/77495).
      - '``ansible-galaxy`` - remove extra server api call during dependency resolution
        for requirements and dependencies that are already satisfied (https://github.com/ansible/ansible/issues/77443).'
      - '`ansible-config init -f vars` will now use shorthand format'
      - action plugins now pass cannonical info to modules instead of 'temporary'
        info from play_context
      - ansible - Exclude Python 2.6 from Python interpreter discovery.
      - ansible-config dump - Only display plugin type headers when plugin options
        are changed if --only-changed is specified.
      - ansible-configi init should now skip internal reserved config entries
      - ansible-connection - decrypt vaulted parameters before sending over the socket,
        as vault secrets are not available on the other side.
      - ansible-console - Renamed the first argument of ``ConsoleCLI.default`` from
        ``arg`` to ``line`` to match the first argument of the same method on the
        base class ``Cmd``.
      - ansible-console commands now all have a help entry.
      - ansible-console fixed to load modules via fqcn, short names and handle redirects.
      - ansible-console now shows installed collection modules.
      - ansible-doc - fix listing plugins.
      - ansible-doc will not add 'website for' in ":ref:" substitutions as it made
        them confusing.
      - ansible-doc will not again warn and skip when missing docs, always show the
        doc file (for edit on github) and match legacy plugins.
      - ansible-doc will not traceback when legacy plugins don't have docs nor adjacent
        file with docs
      - ansible-doc will now also display until as an 'implicit' templating keyword.
      - ansible-doc will now not display version_added_collection under same conditions
        it does not display version_added.
      - ansible-galaxy - Fix detection of ``--role-file`` in arguments for implicit
        role invocation (https://github.com/ansible/ansible/issues/78204)
      - ansible-galaxy - Fix exit codes for role search and delete (https://github.com/ansible/ansible/issues/78516)
      - ansible-galaxy - Fix loading boolean server options so False doesn't become
        a truthy string (https://github.com/ansible/ansible/issues/77416).
      - ansible-galaxy - Fix reinitializing the whole collection directory with ``ansible-galaxy
        collection init ns.coll --force``. Now directories and files that are not
        included in the collection skeleton will be removed.
      - ansible-galaxy - Fix unhandled traceback if a role's dependencies in meta/main.yml
        or meta/requirements.yml are not lists.
      - ansible-galaxy - do not require mandatory keys in the ``galaxy.yml`` of source
        collections when listing them (https://github.com/ansible/ansible/issues/70180).
      - ansible-galaxy - fix installing collections that have dependencies in the
        metadata set to null instead of an empty dictionary (https://github.com/ansible/ansible/issues/77560).
      - ansible-galaxy - fix listing collections that contains metadata but the namespace
        or name are not strings.
      - ansible-galaxy - fix missing meta/runtime.yml in default galaxy skeleton used
        for ansible-galaxy collection init
      - ansible-galaxy - fix setting the cache for paginated responses from Galaxy
        NG/AH (https://github.com/ansible/ansible/issues/77911).
      - ansible-galaxy - handle unsupported versions of resolvelib gracefully.
      - ansible-galaxy --ignore-certs now has proper precedence over configuration
      - 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 remove containers after failing to create/run them.
        This avoids leaving behind created containers when using podman.
      - ansible-test - Correctly detect when running as the ``root`` user (UID 0)
        on the origin host. The result of the detection was incorrectly being inverted.
      - ansible-test - Delegation for commands which generate output for programmatic
        consumption no longer redirect all output to stdout. The affected commands
        and options are ``shell``, ``sanity --lint``, ``sanity --list-tests``, ``integration
        --list-targets``, ``coverage analyze``
      - ansible-test - Delegation now properly handles arguments given after ``--``
        on the command line.
      - ansible-test - Don't fail if network cannot be disconnected (https://github.com/ansible/ansible/pull/77472)
      - ansible-test - Fix bootstrapping of Python 3.9 on Ubuntu 20.04 remotes.
      - ansible-test - Fix change detection for ansible-test's own integration tests.
      - ansible-test - Fix internal validation of remote completion configuration.
      - ansible-test - Fix skipping of tests marked ``needs/python`` on the origin
        host.
      - ansible-test - Fix skipping of tests marked ``needs/root`` on the origin host.
      - ansible-test - Prevent ``--target-`` prefixed options for the ``shell`` command
        from being combined with legacy environment options.
      - ansible-test - Sanity test output with the ``--lint`` option is no longer
        mixed in with bootstrapping output.
      - ansible-test - Subprocesses are now isolated from the stdin, stdout and stderr
        of ansible-test. This avoids issues with subprocesses tampering with the file
        descriptors, such as SSH making them non-blocking. As a result of this change,
        subprocess output from unit and integration tests on stderr now go to stdout.
      - ansible-test - Subprocesses no longer have access to the TTY ansible-test
        is connected to, if any. This maintains consistent behavior between local
        testing and CI systems, which typically do not provide a TTY. Tests which
        require a TTY should use pexpect or another mechanism to create a PTY.
      - ansible-test - Temporary executables are now verified as executable after
        creation. Without this check, path injected scripts may not be found, typically
        on systems with ``/tmp`` mounted using the "noexec" option. This can manifest
        as a missing Python interpreter, or use of the wrong Python interpreter, as
        well as other error conditions.
      - 'ansible-test - Test configuration for collections is now parsed only once,
        prior to delegation. Fixes issue: https://github.com/ansible/ansible/issues/78334'
      - ansible-test - Test containers are now run with the ``--tmpfs`` option for
        ``/tmp``, ``/run`` and ``/run/lock``. This allows use of containers built
        without the ``VOLUME`` instruction. Additionally, containers with those volumes
        defined no longer create anonymous volumes for them. This avoids leaving behind
        volumes on the container host after the container is stopped and deleted.
      - ansible-test - The ``shell`` command no longer redirects all output to stdout
        when running a provided command. Any command output written to stderr will
        be mixed with the stderr output from ansible-test.
      - ansible-test - The ``shell`` command no longer requests a TTY when using delegation
        unless an interactive shell is being used. An interactive shell is the default
        behavior when no command is given to pass to the shell.
      - ansible-test - ansible-doc sanity test - Correctly determine the fully-qualified
        collection name for plugins in subdirectories, resolving https://github.com/ansible/ansible/issues/78490.
      - ansible-test - validate-modules - Documentation-only modules, used for documenting
        actions, are now allowed to have docstrings (https://github.com/ansible/ansible/issues/77972).
      - ansible-test compile sanity test - do not crash if a column could not be determined
        for an error (https://github.com/ansible/ansible/pull/77465).
      - apt - Fix module failure when a package is not installed and only_upgrade=True.
        Skip that package and check the remaining requested packages for upgrades.
        (https://github.com/ansible/ansible/issues/78762)
      - apt - don't actually update the cache in check mode with update_cache=true.
      - apt - don't mark existing packages as manually installed in check mode (https://github.com/ansible/ansible/issues/66413).
      - apt - fix package selection to include /etc/apt/preferences(.d) (https://github.com/ansible/ansible/issues/77969)
      - apt module now correctly handles virtual packages.
      - arg_spec - Fix incorrect ``no_log`` warning when a parameter alias is used
        (https://github.com/ansible/ansible/pull/77576)
      - callback plugins - do not crash when ``exception`` passed from a module is
        not a string (https://github.com/ansible/ansible/issues/75726, https://github.com/ansible/ansible/pull/77781).
      - cli now emits clearer error on no hosts selected
      - config, ensure that pulling values from configmanager are templated if possible.
      - display itself should be single source of 'verbosity' level to the engine.
      - dnf - Condense a few internal boolean returns.
      - dnf - The ``nobest`` option now also works for ``state=latest``.
      - dnf - The ``skip_broken`` option is now used in installs (https://github.com/ansible/ansible/issues/73072).
      - dnf - fix output parsing on systems with ``LANGUAGE`` set to a language other
        than English (https://github.com/ansible/ansible/issues/78193)
      - facts - fix IP address discovery for specific interface names (https://github.com/ansible/ansible/issues/77792).
      - 'facts - fix processor facts on AIX: correctly detect number of cores and
        threads, turn ``processor`` into a list (https://github.com/ansible/ansible/pull/78223).'
      - fetch_file - Ensure we only use the filename when calculating a tempfile,
        and do not incude the query string (https://github.com/ansible/ansible/issues/29680)
      - fetch_file - properly split files with multiple file extensions (https://github.com/ansible/ansible/pull/75257)
      - file - setting attributes of symbolic links or files that are hard linked
        no longer fails when the link target is unspecified (https://github.com/ansible/ansible/issues/76142).
      - file backed cache plugins now handle concurrent access by making atomic updates
        to the files.
      - git module fix docs and proper use of ssh wrapper script and GIT_SSH_COMMAND
        depending on version.
      - if a config setting prevents running ansible it should at least show it's
        "origin".
      - include module - add docs url to include deprecation message (https://github.com/ansible/ansible/issues/76684).
      - items2dict - Handle error if an item is not a dictionary or is missing the
        required keys (https://github.com/ansible/ansible/issues/70337).
      - local facts - if a local fact in the facts directory cannot be stated, store
        an error message as the fact value and emit a warning just as if just as if
        the facts execution has failed. The stat can fail e.g. on dangling symlinks.
      - lookup plugin - catch KeyError when lookup returns dictionary (https://github.com/ansible/ansible/pull/77789).
      - module_utils - Make distro.id() report newer versions of OpenSuSE (at least
        >=15) also report as ``opensuse``. They report themselves as ``opensuse-leap``.
      - module_utils.service - daemonize - Avoid modifying the list of file descriptors
        while iterating over it.
      - null_representation config entry changed to 'raw' as it must allow 'none/null'
        and empty string.
      - 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)
      - password lookup does not ignore k=v arguments anymore.
      - pause module will now report proper 'echo' vs always being true.
      - pip - fix cases where resolution of pip Python module fails when importlib.util
        has not already been imported
      - plugin loader - Sort results when fuzzy matching plugin names (https://github.com/ansible/ansible/issues/77966).
      - plugin loader will now load config data for plugin by name instead of by file
        to avoid issues with the same file being loaded under different names (fqcn
        + short name).
      - plugin loader, now when skipping a plugin due to an abstract method error
        we provide that in 'verbose' mode instead of totally obscuring the error.
        The current implementation assumed only the base classes would trigger this
        and failed to consider 'in development' plugins.
      - prevent lusermod from using group name instead of group id (https://github.com/ansible/ansible/pull/77914)
      - prevent type annotation shim failures from causing runtime failures (https://github.com/ansible/ansible/pull/77860)
      - psrp connection now handles default to inventory_hostname correctly.
      - roles, fixed issue with roles loading paths not contained in the role itself
        when using the `_from` options.
      - setup - Adds a default value to ``lvm_facts`` when lvm or lvm2 is not installed
        on linux (https://github.com/ansible/ansible/issues/17393)
      - shell plugins now give a more user friendly error when fed the wrong type
        of data.
      - template module/lookup - fix ``convert_data`` option that was effectively
        always set to True for Jinja macros (https://github.com/ansible/ansible/issues/78141)
      - unarchive - if unzip is available but zipinfo is not, use unzip -Z instead
        of zipinfo (https://github.com/ansible/ansible/issues/76959).
      - uri - properly use uri parameter use_proxy (https://github.com/ansible/ansible/issues/58632)
      - uri module - failed status when Authentication Bearer used with netrc, because
        Basic authentication was by default. Fix now allows to ignore netrc by changing
        use_netrc=False (https://github.com/ansible/ansible/issues/74397).
      - urls - Guard imports of ``urllib3`` by catching ``Exception`` instead of ``ImportError``
        to prevent exceptions in the import process of optional dependencies from
        preventing use of ``urls.py`` (https://github.com/ansible/ansible/issues/78648)
      - user - Fix error "Permission denied" in user module while generating SSH keys
        (https://github.com/ansible/ansible/issues/78017).
      - user - fix creating a local user if the user group already exists (https://github.com/ansible/ansible/pull/75042)
      - user module - Replace uses of the deprecated ``spwd`` python module with ctypes
        (https://github.com/ansible/ansible/pull/78050)
      - validate-modules - fix validating version_added for new options.
      - variablemanager, more efficient read of vars files
      - vault secrets file now executes in the correct context when it is a symlink
        (not resolved to canonical file).
      - wait_for - Read file and perform comparisons using bytes to avoid decode errors
        (https://github.com/ansible/ansible/issues/78214)
      - winrm - Ensure ``kinit`` is run with the same ``PATH`` env var as the Ansible
        process
      - winrm connection now handles default to inventory_hostname correctly.
      - yaml inventory plugin - fix the error message for non-string hostnames (https://github.com/ansible/ansible/issues/77519).
      - yum - fix traceback when ``releasever`` is specified with ``latest`` (https://github.com/ansible/ansible/issues/78058)
      deprecated_features:
      - Deprecate ability of lookup plugins to return arbitrary data. Lookup plugins
        must return lists, failing to do so will be an error in 2.18. (https://github.com/ansible/ansible/issues/77788)
      - Encryption - Deprecate use of the Python crypt module due to it's impending
        removal from Python 3.13
      - PlayContext.verbosity is deprecated and will be removed in 2.18. Use ansible.utils.display.Display().verbosity
        as the single source of truth.
      - '``DEFAULT_FACT_PATH``, ``DEFAULT_GATHER_SUBSET`` and ``DEFAULT_GATHER_TIMEOUT``
        are deprecated and will be removed in 2.18. Use ``module_defaults`` keyword
        instead.'
      - '``PlayIterator`` - deprecate ``cache_block_tasks`` and ``get_original_task``
        which are noop and unused.'
      - '``Templar`` - deprecate ``shared_loader_obj`` option which is unused. ``ansible.plugins.loader``
        is used directly instead.'
      - listify_lookup_plugin_terms, deprecate 'loader/dataloader' parameter as it
        not used.
      - vars plugins - determining whether or not to run ansible.legacy vars plugins
        with the class attribute REQUIRES_WHITELIST is deprecated, set REQUIRES_ENABLED
        instead.
      major_changes:
      - Move handler processing into new ``PlayIterator`` phase to use the configured
        strategy (https://github.com/ansible/ansible/issues/65067)
      - ansible - At startup the filesystem encoding and locale are checked to verify
        they are UTF-8. If not, the process exits with an error reporting the errant
        encoding.
      - ansible - Increase minimum Python requirement to Python 3.9 for CLI utilities
        and controller code
      - ansible-test - At startup the filesystem encoding is checked to verify it
        is UTF-8. If not, the process exits with an error reporting the errant encoding.
      - ansible-test - At startup the locale is configured as ``en_US.UTF-8``, with
        a fallback to ``C.UTF-8``. If neither encoding is available the process exits
        with an error. If the fallback is used, a warning is displayed. In previous
        versions the ``en_US.UTF-8`` locale was always requested. However, no startup
        checking was performed to verify the locale was successfully configured.
      minor_changes:
      - Add a new "INVENTORY_UNPARSED_WARNING" flag add to hide the "No inventory
        was parsed, only implicit localhost is available" warning
      - "Add an 'action_plugin' field for modules in runtime.yml plugin_routing.\n\nThis
        fixes module_defaults by supporting modules-as-redirected-actions\nwithout
        redirecting module_defaults entries to the common action.\n\n.. code: yaml\n\n
        \  plugin_routing:\n     action:\n       facts:\n         redirect: ns.coll.eos\n
        \      command:\n         redirect: ns.coll.eos\n     modules:\n       facts:\n
        \        redirect: ns.coll.eos_facts\n       command:\n         redirect:
        ns.coll.eos_command\n\nWith the runtime.yml above for ns.coll, a task such
        as\n\n.. code: yaml\n\n   - hosts: all\n     module_defaults:\n       ns.coll.eos_facts:
        {'valid_for_eos_facts': 'value'}\n       ns.coll.eos_command: {'not_valid_for_eos_facts':
        'value'}\n     tasks:\n       - ns.coll.facts:\n\nwill end up with defaults
        for eos_facts and eos_command\nsince both modules redirect to the same action.\n\nTo
        select an action plugin for a module without merging\nmodule_defaults, define
        an action_plugin field for the resolved\nmodule in the runtime.yml.\n\n..
        code: yaml\n\n   plugin_routing:\n     modules:\n       facts:\n         redirect:
        ns.coll.eos_facts\n         action_plugin: ns.coll.eos\n       command:\n
        \        redirect: ns.coll.eos_command\n         action_plugin: ns.coll.eos\n\nThe
        action_plugin field can be a redirected action plugin, as\nit is resolved
        normally.\n\nUsing the modified runtime.yml, the example task will only use\nthe
        ns.coll.eos_facts defaults.\n"
      - Add support for parsing ``-a`` module options as JSON and not just key=value
        arguments - https://github.com/ansible/ansible/issues/78112
      - Added Kylin Linux Advanced Server OS in RedHat OS Family.
      - Allow ``when`` conditionals to be used on ``flush_handlers`` (https://github.com/ansible/ansible/issues/77616)
      - Allow meta tasks to be used as handlers.
      - Display - The display class will now proxy calls to Display.display via the
        queue from forks/workers to be handled by the parent process for actual display.
        This reduces some reliance on the fork start method and improves reliability
        of displaying messages.
      - Jinja version test - Add pep440 version_type for version test. (https://github.com/ansible/ansible/issues/78288)
      - Loops - Add new ``loop_control.extended_allitems`` to allow users to disable
        tracking all loop items for each loop (https://github.com/ansible/ansible/issues/75216)
      - NetBSD - Add uptime_seconds fact
      - Provide a `utc` option for strftime to show time in UTC rather than local
        time
      - Raise a proper error when ``include_role`` or ``import_role`` is used as a
        handler.
      - Remove the ``AnsibleContext.resolve`` method as its override is not necessary.
        Furthermore the ability to override the ``resolve`` method was deprecated
        in Jinja 3.0.0 and removed in Jinja 3.1.0.
      - Utilize @classmethod and @property together to form classproperty (Python
        3.9) to access field attributes of a class
      - '``LoopControl`` is now templated through standard ``post_validate`` method
        (https://github.com/ansible/ansible/pull/75715)'
      - '``ansible-galaxy collection install`` - add an ``--offline`` option to prevent
        querying distribution servers (https://github.com/ansible/ansible/issues/77443).'
      - ansible - Add support for Python 3.11 to Python interpreter discovery.
      - ansible - At startup the stdin/stdout/stderr file handles are checked to verify
        they are using blocking IO. If not, the process exits with an error reporting
        which file handle(s) are using non-blocking IO.
      - ansible-config adds JSON and YAML output formats for list and dump actions.
      - ansible-connection now supports verbosity directly on cli
      - ansible-console added 'collections' command to match playbook keyword.
      - ansible-doc - remove some of the manual formatting, and use YAML more uniformly.
        This in particular means that ``true`` and ``false`` are used for boolean
        values, instead of ``True`` and ``False`` (https://github.com/ansible/ansible/pull/78668).
      - ansible-galaxy - Support resolvelib versions 0.6.x, 0.7.x, and 0.8.x. The
        full range of supported versions is now >= 0.5.3, < 0.9.0.
      - ansible-galaxy now supports a user defined timeout,  instead of existing hardcoded
        60s (now the default).
      - ansible-test - Add FreeBSD 13.1 remote support.
      - ansible-test - Add RHEL 9.0 remote support.
      - ansible-test - Add support for Python 3.11.
      - ansible-test - Add support for RHEL 8.6 remotes.
      - ansible-test - Add support for Ubuntu VMs using the ``--remote`` option.
      - ansible-test - Add support for exporting inventory with ``ansible-test shell
        --export {path}``.
      - ansible-test - Add support for multi-arch remotes.
      - ansible-test - Add support for provisioning Alpine 3.16 remote instances.
      - ansible-test - Add support for provisioning Fedora 36 remote instances.
      - ansible-test - Add support for provisioning Ubuntu 20.04 remote instances.
      - ansible-test - Add support for provisioning remotes which require ``doas``
        for become.
      - ansible-test - Add support for running non-interactive commands with ``ansible-test
        shell``.
      - ansible-test - Alpine remotes now use ``sudo`` for tests, using ``doas`` only
        for bootstrapping.
      - ansible-test - An improved error message is shown when the download of a pip
        bootstrap script fails. The download now uses ``urllib2`` instead of ``urllib``
        on Python 2.
      - ansible-test - Avoid using the ``mock_use_standalone_module`` setting for
        unit tests running on Python 3.8 or later.
      - ansible-test - Become support for remote instance provisioning is no longer
        tied to a fixed list of platforms.
      - ansible-test - Blocking mode is now enforced for stdin, stdout and stderr.
        If any of these are non-blocking then ansible-test will exit during startup
        with an error.
      - ansible-test - Distribution specific test containers are now multi-arch, supporting
        both x86_64 and aarch64.
      - ansible-test - Distribution specific test containers no longer contain a ``/etc/ansible/hosts``
        file.
      - ansible-test - Enable loading of ``coverage`` data files created by older
        supported ansible-test releases.
      - ansible-test - Fedora 36 has been added as a test container.
      - ansible-test - FreeBSD remotes now use ``sudo`` for tests, using ``su`` only
        for bootstrapping.
      - ansible-test - Improve consistency of output messages by using stdout or stderr
        for most output, but not both.
      - ansible-test - Remote Alpine instances now have the ``acl`` package installed.
      - ansible-test - Remote Fedora instances now have the ``acl`` package installed.
      - ansible-test - Remote FreeBSD instances now have ACLs enabled on the root
        filesystem.
      - ansible-test - Remote Ubuntu instances now have the ``acl`` package installed.
      - ansible-test - Remove Fedora 34 test container.
      - ansible-test - Remove Fedora 35 test container.
      - ansible-test - Remove FreeBSD 13.0 remote support.
      - ansible-test - Remove RHEL 8.5 remote support.
      - ansible-test - Remove Ubuntu 18.04 test container.
      - ansible-test - Remove support for Python 2.7 on provisioned FreeBSD instances.
      - ansible-test - Remove support for Python 3.8 on the controller.
      - ansible-test - Remove the ``opensuse15py2`` container.
      - ansible-test - Support multiple pinned versions of the ``coverage`` module.
        The version used now depends on the Python version in use.
      - ansible-test - Test containers have been updated to remove the ``VOLUME``
        instruction.
      - ansible-test - The Alpine 3 test container has been updated to Alpine 3.16.0.
      - ansible-test - The ``http-test-container`` container is now multi-arch, supporting
        both x86_64 and aarch64.
      - ansible-test - The ``pypi-test-container`` container is now multi-arch, supporting
        both x86_64 and aarch64.
      - ansible-test - The ``shell`` command can be used outside a collection if no
        controller delegation is required.
      - ansible-test - The openSUSE test container has been updated to openSUSE Leap
        15.4.
      - ansible-test - Ubuntu 22.04 has been added as a test container.
      - ansible-test - Update pinned sanity test requirements for all tests.
      - ansible-test - Update the ``base`` container to 3.4.0.
      - ansible-test - Update the ``default`` containers to 6.6.0.
      - apt_repository remove dependency on apt-key and use gpg + /usr/share/keyrings
        directly instead
      - blockinfile - The presence of the multiline flag (?m) in the regular expression
        for insertafter opr insertbefore controls whether the match is done line by
        line or with multiple lines (https://github.com/ansible/ansible/pull/75090).
      - calls to listify_lookup_plugin_terms in core do not pass in loader/dataloader
        anymore.
      - collections - ``ansible-galaxy collection build`` can now utilize ``MANIFEST.in``
        style directives from ``galaxy.yml`` instead of ``build_ignore`` effectively
        inverting the logic from include by default, to exclude by default. (https://github.com/ansible/ansible/pull/78422)
      - config manager, move templating into main query function in config instead
        of constants
      - config manager, remove updates to configdata as it is mostly unused
      - configuration entry INTERPRETER_PYTHON_DISTRO_MAP is now 'private' and won't
        show up in normal configuration queries and docs, since it is not 'settable'
        this avoids user confusion.
      - distribution - add distribution_minor_version for Debian Distro (https://github.com/ansible/ansible/issues/74481).
      - documentation construction now gives more information on error.
      - facts - add OSMC to Debian os_family mapping
      - get_url - permit to pass to parameter ``checksum`` an URL pointing to a file
        containing only a checksum (https://github.com/ansible/ansible/issues/54390).
      - new tests url, uri and urn will verify string as such, but they don't check
        existance of the resource
      - plugin loader - add ansible_name and ansible_aliases attributes to plugin
        objects/classes.
      - systemd is now systemd_service to better reflect the scope of the module,
        systemd is kept as an alias for backwards compatibility.
      - templating - removed internal template cache
      - uri - cleanup write_file method, remove overkill safety checks and report
        any exception, change shutilcopyfile to use module.atomic_move
      - urls - Add support to specify SSL/TLS ciphers to use during a request (https://github.com/ansible/ansible/issues/78633)
      - 'validate-modules - Allow ``type: raw`` on a module return type definition
        for values that have a dynamic type'
      - version output now includes the path to the python executable that Ansible
        is running under
      - yum_repository - do not give the ``async`` parameter a default value anymore,
        since this option is deprecated in RHEL 8. This means that ``async = 1`` won't
        be added to repository files if omitted, but it can still be set explicitly
        if needed.
      release_summary: '| Release Date: 2022-09-26

        | `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`__

        '
      removed_features:
      - PlayIterator - remove deprecated ``PlayIterator.ITERATING_*`` and ``PlayIterator.FAILED_*``
      - Remove deprecated ``ALLOW_WORLD_READABLE_TMPFILES`` configuration option (https://github.com/ansible/ansible/issues/77393)
      - Remove deprecated ``COMMAND_WARNINGS`` configuration option (https://github.com/ansible/ansible/issues/77394)
      - Remove deprecated ``DISPLAY_SKIPPED_HOSTS`` environment variable (https://github.com/ansible/ansible/issues/77396)
      - Remove deprecated ``LIBVIRT_LXC_NOSECLABEL`` environment variable (https://github.com/ansible/ansible/issues/77395)
      - Remove deprecated ``NETWORK_GROUP_MODULES`` environment variable (https://github.com/ansible/ansible/issues/77397)
      - Remove deprecated ``UnsafeProxy``
      - Remove deprecated ``plugin_filters_cfg`` config option from ``default`` section
        (https://github.com/ansible/ansible/issues/77398)
      - Remove deprecated functionality that allows loading cache plugins directly
        without using ``cache_loader``.
      - Remove deprecated functionality that allows subclassing ``DefaultCallback``
        without the corresponding ``doc_fragment``.
      - Remove deprecated powershell functions ``Load-CommandUtils`` and ``Import-PrivilegeUtil``
      - apt_key - remove deprecated ``key`` module param
      - command/shell - remove deprecated ``warn`` module param
      - get_url - remove deprecated ``sha256sum`` module param
      - import_playbook - remove deprecated functionality that allows providing additional
        parameters in free form
    codename: C'mon Everybody
    fragments:
    - 17393-fix_silently_failing_lvm_facts.yaml
    - 23161-includes-loops-rescue.yml
    - 29680-fetch-file-file-name-too-long.yml
    - 43191-72638-ansible_failed_task-fixes.yml
    - 56017-allow-lazy-eval-on-jinja2-expr.yml
    - 58632-uri-include_use_proxy.yaml
    - 61965-user-module-fails-to-change-primary-group.yml
    - 64612-fetch_file-multi-part-extension.yml
    - 65499-no_inventory_parsed.yml
    - 70180-collection-list-more-robust.yml
    - 73072-dnf-skip-broken.yml
    - 74446-network-conn-options.yaml
    - 74481_debian_minor_version.yml
    - 75042-lowercase-dash-n-with-luseradd-on-all-distros.yml
    - 75090-multiline-flag-support-for-blockinfile.yml
    - 75216-loop-control-extended-allitems.yml
    - 75364-yum-repository-async.yml
    - 75431-Add-uptime-fact-for-NetBSD.yml
    - 75715-post_validate-LoopControl.yml
    - 75740-remove-travis-file-from-role-skeletons.yml
    - 76167-update-attributes-of-files-that-are-links.yml
    - 76737-paramiko-rsa-sha2.yml
    - 76971-unarchive-remove-unnecessary-zipinfo-dependency.yml
    - 77014-ansible-galaxy-list-fix-null-metadata-namespace-name.yml
    - 77265-module_defaults-with-modules-as-redirected-actions.yaml
    - 77315-fix-meta-vv-header.yml
    - 77393-remove-allow_world_readable_tmpfiles.yml
    - 77394-remove-command_warnings.yml
    - 77395-remove-libvirt_lxc_noseclabel.yml
    - 77396-remove-display_skipped_hosts.yml
    - 77397-remove-network_group_modules.yml
    - 77398-remove-plugin_filters_cfg-default.yml
    - 77418-ansible-galaxy-init-include-meta-runtime.yml
    - 77424-fix-False-ansible-galaxy-server-config-options.yaml
    - 77465-ansible-test-compile-crash.yml
    - 77468-ansible-galaxy-remove-unnecessary-api-call.yml
    - 77472-ansible-test-network-disconnect-warning.yml
    - 77493-ansible-galaxy-find-git-executable-before-using.yaml
    - 77507-deprecate-pc-verbosity.yml
    - 77535-prevent-losing-unsafe-lookups.yml
    - 77544-fix-error-yaml-inventory-int-hostnames.yml
    - 77561-ansible-galaxy-coll-install-null-dependencies.yml
    - 77576-arg_spec-no_log-aliases.yml
    - 77599-add-url-include-deprecation.yml
    - 77630-ansible-galaxy-fix-unsupported-resolvelib-version.yml
    - 77649-support-recent-resolvelib-versions.yml
    - 77679-syntax-error-mention-filename.yml
    - 77693-actually-ignore-unreachable.yml
    - 77781-callback-crash.yml
    - 77788-deprecate-non-lists-lookups.yml
    - 77789-catch-keyerror-lookup-dict.yml
    - 77792-fix-facts-discovery-specific-interface-names.yml
    - 77898-ansible-config-dump-only-changed-all-types.yml
    - 77934-empty-loop-template-callback.yml
    - 77936-add-pyyaml-version.yml
    - 77969-apt-preferences.yml
    - 78050-replace-spwd.yml
    - 78058-yum-releasever-latest.yml
    - 78112-adhoc-args-as-json.yml
    - 78141-template-fix-convert_data.yml
    - 78156-undefined-check-in-finalize.yml
    - 78204-galaxy-role-file-detection.yml
    - 78214-wait-for-compare-bytes.yml
    - 78223_aix_fix_processor_facts.yml
    - 78295-dnf-fix-comparison-operators-docs.yml
    - 78325-ansible-galaxy-fix-caching-paginated-responses-from-v3-servers.yml
    - 78496-fix-apt-check-mode.yml
    - 78512-uri-use-netrc-true-false-argument.yml
    - 78516-galaxy-cli-exit-codes.yml
    - 78562-deprecate-vars-plugin-attr.yml
    - 78612-rescue-block-ansible_play_hosts.yml
    - 78633-urls-ciphers.yml
    - 78648-urllib3-import-exceptions.yml
    - 78668-ansible-doc-formatting.yml
    - 78678-add-a-g-install-offline.yml
    - 78700-add-plugin-name-and-aliases.yml
    - 78750-paramiko-ssh-args-compat.yml
    - 78781-fix-apt-only_upgrade-behavior.yml
    - abstract_errors_info.yml
    - add-omsc-os-family.yml
    - added_uri_tests.yml
    - adoc_moarf.yml
    - aix_chmod_255.yml
    - ansible-connection_decode.yml
    - ansible-console-renamed-arg.yml
    - ansible-galaxy-collection-init-force.yml
    - ansible-require-blocking-io.yml
    - ansible-require-utf8.yml
    - ansible-test-ansible-core-mock.yml
    - ansible-test-ansible-doc-sanity-fqcn.yml
    - ansible-test-container-tmpfs.yml
    - ansible-test-containers-no-volume.yml
    - ansible-test-content-config.yml
    - ansible-test-coverage.yml
    - ansible-test-default-containers.yml
    - ansible-test-distro-containers-hosts.yml
    - ansible-test-distro-containers.yml
    - ansible-test-drop-python-3.8-controller.yml
    - ansible-test-fedora-35.yml
    - ansible-test-filter-options.yml
    - ansible-test-generalize-become.yml
    - ansible-test-integration-targets-filter.yml
    - ansible-test-less-python-2.7.yml
    - ansible-test-locale.yml
    - ansible-test-more-remotes.yml
    - ansible-test-multi-arch-cloud-containers.yml
    - ansible-test-multi-arch-distro-containers.yml
    - ansible-test-multi-arch-remotes.yml
    - ansible-test-pip-bootstrap.yml
    - ansible-test-podman-create-retry.yml
    - ansible-test-remote-acl.yml
    - ansible-test-remote-become.yml
    - ansible-test-remote-completion-validation.yml
    - ansible-test-remotes.yml
    - ansible-test-rhel-8.6.yml
    - ansible-test-sanity-requirements.yml
    - ansible-test-self-change-classification.yml
    - ansible-test-shell-features.yml
    - ansible-test-subprocess-isolation.yml
    - ansible-test-target-filter.yml
    - ansible-test-target-options.yml
    - ansible-test-tty-output-handling.yml
    - ansible-test-ubuntu-bootstrap-fix.yml
    - ansible-test-ubuntu-remote.yml
    - ansible-test-validate-modules-docs-only-docstring.yml
    - ansible-test-verify-executables.yml
    - ansible_connection_verbosity.yml
    - apt_key-remove-deprecated-key.yml
    - apt_repository_sans_apt_key.yml
    - apt_virtual_fix.yml
    - atomic_cache_files.yml
    - better-msg-role-in-handler.yml
    - better_info_sources.yml
    - better_nohosts_error.yml
    - collection-build-manifest.yml
    - config_error_origin.yml
    - config_formats.yml
    - config_load_by_name.yml
    - config_manager_changes.yml
    - console_list_all.yml
    - deprecate-crypt-support.yml
    - deprecate-fact_path-gather_subset-gather_timeout-defaults.yml
    - display_verbosity.yml
    - dnf-fix-locale-language.yml
    - doc_errors.yml
    - doc_vac_ignore.yml
    - dont-expose-included-handlers.yml
    - ensure_config_always_templated.yml
    - fieldattributes-classproperty.yml
    - fix-change-while-iterating-module-utils-service.yml
    - fix_adoc_text.yml
    - fix_init_commented.yml
    - fix_inv_refresh.yml
    - forked-display-via-queue.yml
    - galaxy_server_timeout.yml
    - get_url-accept-file-for-checksum.yml
    - get_url-remove-deprecated-sha256sum.yml
    - git_fixes.yml
    - handle-role-dependency-type-error.yml
    - hide_distro_map.yml
    - import_playbook-remove-params.yml
    - items2dict-error-handling.yml
    - kylin_linux_advanced_server_distribution_support.yml
    - legacy_no_file_skip.yml
    - loader_in_listify.yml
    - local_fact_unreadable.yml
    - null_means_none.yml
    - opensuse_disto_id.yml
    - password_lookup_fix.yml
    - pause_echo_fix.yml
    - pep440-version-type.yml
    - permission-denied-spwd-module.yml
    - pip-lazy-import.yml
    - play_iterator-remove_deprecations.yml
    - play_iterator_iterating_handlers.yml
    - playiterator-deprecate-methods.yml
    - plugin-loader-deterministic-fuzzy-match.yml
    - powershell-deprecated-functions.yml
    - python-2.6-discovery.yml
    - python-3.11.yml
    - python39-min-controller.yml
    - python_version_path.yml
    - remove-ansiblecontext-resolve.yml
    - remove-deprecated-default-callback-without-doc.yml
    - remove-import-cache-plugin-directly.yml
    - require-fqcn-redirects.yml
    - restrict_role_files_to_role.yml
    - self_referential.yml
    - shell_env_typeerror.yml
    - strftime-in-utc.yml
    - systemd_services.yml
    - templar-correct-environment_class-template.yml
    - templar-deprecate-shared_loader_obj.yml
    - template_override.yml
    - type_shim_exception_swallow.yml
    - unsafeproxy-deprecated.yml
    - until_also_implicit.yml
    - use-before-definition.yml
    - v2.14.0-initial-commit.yaml
    - v2.14.0b1_summary.yaml
    - validate-modules-module-raw-return-type.yml
    - validate-modules-version_added.yaml
    - vault_syml_allow.yml
    - vm_more_efficient.yml
    - windows_conn_option_fix.yml
    - winrm-kinit-path.yml
    - write_file_uri_cleanup.yml
    - zap_template_cache.yml
    release_date: '2022-09-26'
  2.14.0b2:
    changes:
      breaking_changes:
      - ansible-test validate-modules - Removed the ``missing-python-doc`` error code
        in validate modules, ``missing-documentation`` is used instead for missing
        PowerShell module documentation.
      bugfixes:
      - 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
      - apt module should not traceback on invalid type given as package. issue 78663.
      - known_hosts - do not return changed status when a non-existing key is removed
        (https://github.com/ansible/ansible/issues/78598)
      - plugin loader, fix detection for existing configuration before initializing
        for a plugin
      minor_changes:
      - 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``.
      - apt_repository will use the trust repo directories in order of preference
        (more appropriate to less) as they exist on the target.
      release_summary: '| Release Date: 2022-10-03

        | `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`__

        '
    codename: C'mon Everybody
    fragments:
    - 78881-fix-known-hosts-wrong-changed-status.yaml
    - apt_notb.yml
    - apt_repo_trust_prefs.yml
    - become-loop-setting.yml
    - plugin_loader_fix.yml
    - v2.14.0b2_summary.yaml
    - validate-modules-sidecar.yml
    release_date: '2022-10-03'
  2.14.0b3:
    changes:
      bugfixes:
      - 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).
      - '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)'
      - keyword inheritance - Ensure that we do not squash keywords in validate (https://github.com/ansible/ansible/issues/79021)
      - omit on keywords was resetting to default value, ignoring inheritance.
      - service_facts - Use python re to parse service output instead of grep (https://github.com/ansible/ansible/issues/78541)
      release_summary: '| Release Date: 2022-10-10

        | `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`__

        '
    codename: C'mon Everybody
    fragments:
    - 78541-service-facts-re.yml
    - 78913-template-missing-filter-test.yml
    - 79021-dont-squash-in-validate.yml
    - 79023-fix-flush_handlers-fqcn.yml
    - fix_omit_key.yml
    - v2.14.0b3_summary.yaml
    plugins:
      test:
      - description: is the string a valid URI
        name: uri
        namespace: null
      - description: is the string a valid URL
        name: url
        namespace: null
      - description: is the string a valid URN
        name: urn
        namespace: null
    release_date: '2022-10-10'
  2.14.0rc1:
    changes:
      bugfixes:
      - 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)
      - ansible-config limit shorthand format to assigned values
      - ansible-test - Update the ``pylint`` sanity test to use version 2.15.4.
      release_summary: '| Release Date: 2022-10-17

        | `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`__

        '
    codename: C'mon Everybody
    fragments:
    - 79117-bsd-ifconfig-inet-fix.yml
    - adjust_config_list.yml
    - ansible-test-pylint-2.15.4.yml
    - v2.14.0rc1_summary.yaml
    release_date: '2022-10-13'
  2.14.0rc2:
    changes:
      bugfixes:
      - ansible-test - Add ``wheel < 0.38.0`` constraint for Python 3.6 and earlier.
      - 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.5.
      minor_changes:
      - 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.
      release_summary: '| Release Date: 2022-10-31

        | `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`__

        '
    codename: C'mon Everybody
    fragments:
    - 79187--wheel-0.38.0.yml
    - ansible-test-containers-docs-build.yml
    - ansible-test-containers-python-3.11.0.yml
    - ansible-test-pylint-2.15.5.yml
    - v2.14.0rc2_summary.yaml
    release_date: '2022-10-31'
  2.14.1:
    changes:
      bugfixes:
      - display - reduce risk of post-fork output deadlocks (https://github.com/ansible/ansible/pull/79522)
      release_summary: '| Release Date: 2022-12-06

        | `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`__

        '
    codename: C'mon Everybody
    fragments:
    - fork_safe_stdio.yml
    - v2.14.1_summary.yaml
    release_date: '2022-12-06'
  2.14.10:
    changes:
      release_summary: '| Release Date: 2023-09-11

        | `Porting Guide <https://docs.ansible.com/ansible-core/2.14/porting_guides/porting_guide_core_2.14.html>`__

        '
    codename: C'mon Everybody
    fragments:
    - 2.14.10_summary.yaml
    release_date: '2023-09-11'
  2.14.10rc1:
    changes:
      bugfixes:
      - PowerShell - Remove some code which is no longer valid for dotnet 5+
      - ansible-galaxy - Enabled the ``data`` tarfile filter during role installation
        for Python versions that support it. A probing mechanism is used to avoid
        Python versions with a broken implementation.
      - ansible-test - Always use ansible-test managed entry points for ansible-core
        CLI tools when not running from source. This fixes issues where CLI entry
        points created during install are not compatible with ansible-test.
      - tarfile - handle data filter deprecation warning message for extract and extractall
        (https://github.com/ansible/ansible/issues/80832).
      minor_changes:
      - "ansible-test \u2014 Replaced `freebsd/12.3` remote with `freebsd/12.4`. The
        former is no longer functional."
      release_summary: '| Release Date: 2023-09-05

        | `Porting Guide <https://docs.ansible.com/ansible-core/2.14/porting_guides/porting_guide_core_2.14.html>`__

        '
    codename: C'mon Everybody
    fragments:
    - 2.14.10rc1_summary.yaml
    - ansible-test-entry-points.yml
    - dotnet-preparation.yml
    - freebsd-12.3-replacement.yml
    - tarfile_extract_warn.yml
    release_date: '2023-09-05'
  2.14.11:
    changes:
      release_summary: '| Release Date: 2023-10-09

        | `Porting Guide <https://docs.ansible.com/ansible-core/2.14/porting_guides/porting_guide_core_2.14.html>`__

        '
    codename: C'mon Everybody
    fragments:
    - 2.14.11_summary.yaml
    release_date: '2023-10-09'
  2.14.11rc1:
    changes:
      bugfixes:
      - PluginLoader - fix Jinja plugin performance issues (https://github.com/ansible/ansible/issues/79652)
      - ansible-galaxy error on dependency resolution will not error itself due to
        'virtual' collections not having a name/namespace.
      - ansible-galaxy info - fix reporting no role found when lookup_role_by_name
        returns None.
      - winrm - Better handle send input failures when communicating with hosts under
        load
      minor_changes:
      - ansible-galaxy dependency resolution messages have changed the unexplained
        'virtual' collection for the specific type ('scm', 'dir', etc) that is more
        user friendly
      release_summary: '| Release Date: 2023-10-03

        | `Porting Guide <https://docs.ansible.com/ansible-core/2.14/porting_guides/porting_guide_core_2.14.html>`__

        '
      security_fixes:
      - ansible-galaxy - Prevent roles from using symlinks to overwrite files outside
        of the installation directory (CVE-2023-5115)
    codename: C'mon Everybody
    fragments:
    - 2.14.11rc1_summary.yaml
    - cve-2023-5115.yml
    - fix-ansible-galaxy-info-no-role-found.yml
    - galaxy_dep_res_msgs.yml
    - jinja_plugin_cache_cleanup.yml
    - winrm-send-input.yml
    release_date: '2023-10-03'
  2.14.12:
    changes:
      release_summary: '| Release Date: 2023-12-04

        | `Porting Guide <https://docs.ansible.com/ansible-core/2.14/porting_guides/porting_guide_core_2.14.html>`__

        '
    codename: C'mon Everybody
    fragments:
    - 2.14.12_summary.yaml
    release_date: '2023-12-04'
  2.14.12rc1:
    changes:
      breaking_changes:
      - assert - Nested templating may result in an inability for the conditional
        to be evaluated. See the porting guide for more information.
      bugfixes:
      - ansible-pull now will expand relative paths for the ``-d|--directory`` option
        is now expanded before use.
      - ansible-test - Fix parsing of cgroup entries which contain a ``:`` in the
        path (https://github.com/ansible/ansible/issues/81977).
      minor_changes:
      - ansible-test - Windows 2012 and 2012-R2 instances are now requested from Azure
        instead of AWS.
      release_summary: '| Release Date: 2023-11-27

        | `Porting Guide <https://docs.ansible.com/ansible-core/2.14/porting_guides/porting_guide_core_2.14.html>`__

        '
      security_fixes:
      - templating - Address issues where internal templating can cause unsafe variables
        to lose their unsafe designation (CVE-2023-5764)
    codename: C'mon Everybody
    fragments:
    - 2.14.12rc1_summary.yaml
    - ansible-test-cgroup-split.yml
    - ansible-test-windows-2012-and-2012-R2.yml
    - cve-2023-5764.yml
    - pull_unfrack_dest.yml
    release_date: '2023-11-27'
  2.14.13:
    changes:
      bugfixes:
      - unsafe data - Address an incompatibility when iterating or getting a single
        index from ``AnsibleUnsafeBytes``
      - unsafe data - Address an incompatibility with ``AnsibleUnsafeText`` and ``AnsibleUnsafeBytes``
        when pickling with ``protocol=0``
      minor_changes:
      - ansible-test - Add FreeBSD 13.2 remote.
      - ansible-test - Removed `freebsd/13.1` remote.
      release_summary: '| Release Date: 2023-12-11

        | `Porting Guide <https://docs.ansible.com/ansible-core/2.14/porting_guides/porting_guide_core_2.14.html>`__

        '
    codename: C'mon Everybody
    fragments:
    - 2.14.13_summary.yaml
    - ci_freebsd_new.yml
    - fbsd13_1_remove.yml
    - unsafe-fixes-2.yml
    release_date: '2023-12-11'
  2.14.14:
    changes:
      release_summary: '| Release Date: 2024-01-29

        | `Porting Guide <https://docs.ansible.com/ansible-core/2.14/porting_guides/porting_guide_core_2.14.html>`__

        '
    codename: C'mon Everybody
    fragments:
    - 2.14.14_summary.yaml
    release_date: '2024-01-29'
  2.14.14rc1:
    changes:
      bugfixes:
      - '``ansible-test sanity --test runtime-metadata`` - add ``action_plugin`` as
        a valid field for modules in the schema (https://github.com/ansible/ansible/pull/82562).'
      - ansible-galaxy role install - fix symlinks (https://github.com/ansible/ansible/issues/82702,
        https://github.com/ansible/ansible/issues/81965).
      - ansible-galaxy role install - normalize tarfile paths and symlinks using ``ansible.utils.path.unfrackpath``
        and consider them valid as long as the realpath is in the tarfile's role directory
        (https://github.com/ansible/ansible/issues/81965).
      - unsafe data - Enable directly using ``AnsibleUnsafeText`` with Python ``pathlib``
        (https://github.com/ansible/ansible/issues/82414)
      minor_changes:
      - ansible-test - Removed `freebsd/12.4` remote.
      release_summary: '| Release Date: 2024-01-22

        | `Porting Guide <https://docs.ansible.com/ansible-core/2.14/porting_guides/porting_guide_core_2.14.html>`__

        '
      security_fixes:
      - ANSIBLE_NO_LOG - Address issue where ANSIBLE_NO_LOG was ignored (CVE-2024-0690)
    codename: C'mon Everybody
    fragments:
    - 2.14.14rc1_summary.yaml
    - ansible-galaxy-role-install-symlink.yml
    - cve-2024-0690.yml
    - fix-runtime-metadata-modules-action_plugin.yml
    - freebsd_12_4_removal.yml
    - unsafe-intern.yml
    release_date: '2024-01-22'
  2.14.15:
    changes:
      bugfixes:
      - ansible-test - The ``libexpat`` package is automatically upgraded during remote
        bootstrapping to maintain compatibility with newer Python packages.
      release_summary: '| Release Date: 2024-03-25

        | `Porting Guide <https://docs.ansible.com/ansible-core/2.14/porting_guides/porting_guide_core_2.14.html>`__

        '
    codename: C'mon Everybody
    fragments:
    - 2.14.15_summary.yaml
    - ansible-test-alpine-libexpat.yml
    release_date: '2024-03-25'
  2.14.15rc1:
    changes:
      bugfixes:
      - 'Fix an issue when setting a plugin name from an unsafe source resulted in
        ``ValueError: unmarshallable object`` (https://github.com/ansible/ansible/issues/82708)'
      minor_changes:
      - ansible-test - Add a work-around for permission denied errors when using ``pytest
        >= 8`` on multi-user systems with an installed version of ``ansible-test``.
      release_summary: '| Release Date: 2024-03-18

        | `Porting Guide <https://docs.ansible.com/ansible-core/2.14/porting_guides/porting_guide_core_2.14.html>`__

        '
    codename: C'mon Everybody
    fragments:
    - 2.14.15rc1_summary.yaml
    - 82708-unsafe-plugin-name-error.yml
    - ansible-test-pytest-8.yml
    release_date: '2024-03-18'
  2.14.16:
    changes:
      release_summary: '| Release Date: 2024-04-22

        | `Porting Guide <https://docs.ansible.com/ansible-core/2.14/porting_guides/porting_guide_core_2.14.html>`__

        '
    codename: C'mon Everybody
    fragments:
    - 2.14.16_summary.yaml
    release_date: '2024-04-22'
  2.14.16rc1:
    changes:
      bugfixes:
      - ansible-test ansible-doc sanity test - do not remove underscores from plugin
        names in collections before calling ``ansible-doc`` (https://github.com/ansible/ansible/pull/82574).
      - winrm - Do not raise another exception during cleanup when a task is timed
        out - https://github.com/ansible/ansible/issues/81095
      release_summary: '| Release Date: 2024-04-16

        | `Porting Guide <https://docs.ansible.com/ansible-core/2.14/porting_guides/porting_guide_core_2.14.html>`__

        '
    codename: C'mon Everybody
    fragments:
    - 2.14.16rc1_summary.yaml
    - 82574-ansible-test-ansible-doc-underscore.yml
    - winrm-task-timeout.yml
    release_date: '2024-04-16'
  2.14.17:
    changes:
      release_summary: '| Release Date: 2024-05-20

        | `Porting Guide <https://docs.ansible.com/ansible-core/2.14/porting_guides/porting_guide_core_2.14.html>`__

        '
    codename: C'mon Everybody
    fragments:
    - 2.14.17_summary.yaml
    release_date: '2024-05-20'
  2.14.17rc1:
    changes:
      bugfixes:
      - ansible-test - Automatically enable the PyPI proxy for the ``centos7`` container
        to restore the ability to use ``pip`` in that container.
      release_summary: '| Release Date: 2024-05-13

        | `Porting Guide <https://docs.ansible.com/ansible-core/2.14/porting_guides/porting_guide_core_2.14.html>`__

        '
    codename: C'mon Everybody
    fragments:
    - 2.14.17rc1_summary.yaml
    - ansible-test-centos7-pypi-proxy.yml
    release_date: '2024-05-13'
  2.14.18:
    changes:
      release_summary: '| Release Date: 2024-11-04

        | `Porting Guide <https://docs.ansible.com/ansible-core/2.14/porting_guides/porting_guide_core_2.14.html>`__

        '
    codename: C'mon Everybody
    fragments:
    - 2.14.18_summary.yaml
    release_date: '2024-11-04'
  2.14.18rc1:
    changes:
      bugfixes:
      - user action will now require O(force) to overwrite the public part of an ssh
        key when generating ssh keys, as was already the case for the private part.
      minor_changes:
      - ansible-test - Improve container runtime probe error handling. When unexpected
        probe output is encountered, an error with more useful debugging information
        is provided.
      - ansible-test - Removed support for provisioning remote Windows 2012 and 2012-R2
        instances.
      - ansible-test - Removed the ``vyos/1.1.8`` network remote as it is no longer
        functional.
      - ansible-test - Update ``pypi-test-container`` to version 3.1.0.
      release_summary: '| Release Date: 2024-10-29

        | `Porting Guide <https://docs.ansible.com/ansible-core/2.14/porting_guides/porting_guide_core_2.14.html>`__

        '
      security_fixes:
      - include_vars action - Ensure that result masking is correctly requested when
        vault-encrypted files are read. (CVE-2024-8775)
      - task result processing - Ensure that action-sourced result masking (``_ansible_no_log=True``)
        is preserved. (CVE-2024-8775)
      - user action won't allow ssh-keygen, chown and chmod to run on existing ssh
        public key file, avoiding traversal on existing symlinks (CVE-2024-9902).
    codename: C'mon Everybody
    fragments:
    - 2.14.18rc1_summary.yaml
    - ansible-test-probe-error-handling.yml
    - ansible-test-pypi-test-container-update.yml
    - ansible-test-vyos.yml
    - ansible-test-windows-2012.yml
    - cve-2024-8775.yml
    - user_ssh_fix.yml
    release_date: '2024-10-29'
  2.14.1rc1:
    changes:
      bugfixes:
      - Fixes leftover _valid_attrs usage.
      - ansible-galaxy - make initial call to Galaxy server on-demand only when installing,
        getting info about, and listing roles.
      - copy module will no longer move 'non files' set as src when remote_src=true.
      - 'jinja2_native: preserve quotes in strings (https://github.com/ansible/ansible/issues/79083)'
      - updated error messages to include 'acl' and not just mode changes when failing
        to set required permissions on remote.
      minor_changes:
      - ansible-test - Improve consistency of executed ``pylint`` commands by making
        the plugins ordered.
      release_summary: '| Release Date: 2022-11-28

        | `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`__

        '
    codename: C'mon Everybody
    fragments:
    - 79083-jinja2_native-preserve-quotes-in-strings.yml
    - 79376-replace-valid-attrs-with-fattributes.yaml
    - ansible-galaxy-install-delay-initial-api-call.yml
    - ansible-test-pylint-command.yml
    - dont_move_non_files.yml
    - mention_acl.yml
    - v2.14.1rc1_summary.yaml
    release_date: '2022-11-28'
  2.14.2:
    changes:
      bugfixes:
      - Fix traceback when using the ``template`` module and running with ``ANSIBLE_DEBUG=1``
        (https://github.com/ansible/ansible/issues/79763)
      release_summary: '| Release Date: 2023-01-30

        | `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`__

        '
    codename: C'mon Everybody
    fragments:
    - 79763-ansible_debug_template_tb_fix.yml
    - v2.14.2_summary.yaml
    release_date: '2023-01-30'
  2.14.2rc1:
    changes:
      bugfixes:
      - Correctly count rescued tasks in play recap (https://github.com/ansible/ansible/issues/79711)
      - 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).
      - Module and role argument validation - include the valid suboption choices
        in the error when an invalid suboption is provided.
      - ansible-doc now will correctly display short descriptions on listing filters/tests
        no matter the directory sorting.
      - 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-test - Added a work-around for a traceback under Python 3.11 when
        completing certain command line options.
      - 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 - 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 - 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 - Show the exception type when reporting errors during instance
        provisioning.
      - ansible-test sanity - correctly report invalid YAML in validate-modules (https://github.com/ansible/ansible/issues/75837).
      - 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).
      - connection local now avoids traceback on invalid user being used to execuet
        ansible (valid in host, but not in container).
      - 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)
      - get_url - Ensure we are passing ciphers to all url_get calls (https://github.com/ansible/ansible/issues/79717)
      - plugin filter now works with rejectlist as documented (still falls back to
        blacklist if used).
      - uri - improve JSON content type detection
      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 - Using Docker on systems with SELinux may require setting SELinux
        to permissive mode. Podman should work with SELinux in enforcing mode.
      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:
      - 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 - 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 - 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 - 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 - More details are provided about an instance when provisioning
        fails.
      - 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 - 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 - The ``ansible-test env`` command now detects and reports the
        container ID if running in a container.
      - 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 - 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.
      release_summary: '| Release Date: 2023-01-23

        | `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`__

        '
    codename: C'mon Everybody
    fragments:
    - 75837-validate-modules-invalid-yaml.yml
    - 76578-fix-role-argspec-suboptions-error.yml
    - 79525-fix-file-touch-check-mode-status.yaml
    - 79561-fix-a-g-global-ignore-certs-cfg.yml
    - 79681-argspec-param-deprecation.yml
    - 79711-fix-play-stats-rescued.yml
    - 79717-get-url-ciphers.yml
    - 79740-aliases-warnings-deprecations-in-suboptions.yml
    - adoc_fix_list.yml
    - ansible-test-container-management.yml
    - ansible-test-fix-python-3.11-traceback.yml
    - ansible-test-pypi-proxy-fix.yml
    - better-maybe-json-uri.yml
    - local_bad_user.yml
    - rejectlist_fix.yml
    - unsorted.yml
    - v2.14.2rc1_summary.yaml
    - validate-module-ps-cmdlet.yml
    release_date: '2023-01-23'
  2.14.3:
    changes:
      release_summary: '| Release Date: 2023-02-27

        | `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`__

        '
    codename: C'mon Everybody
    fragments:
    - v2.14.3_summary.yaml
    release_date: '2023-02-27'
  2.14.3rc1:
    changes:
      bugfixes:
      - Ansible.Basic.cs - Ignore compiler warning (reported as an error) when running
        under PowerShell 7.3.x.
      - Fix conditionally notifying ``include_tasks` handlers when ``force_handlers``
        is used (https://github.com/ansible/ansible/issues/79776)
      - TaskExecutor - don't ignore templated _raw_params that k=v parser failed to
        parse (https://github.com/ansible/ansible/issues/79862)
      - ansible-galaxy - fix installing collections in git repositories/directories
        which contain a MANIFEST.json file (https://github.com/ansible/ansible/issues/79796).
      - ansible-test - Support Podman 4.4.0+ by adding the ``SYS_CHROOT`` capability
        when running containers.
      - ansible-test - fix warning message about failing to run an image to include
        the image name
      - strategy plugins now correctly identify bad registered variables, even on
        skip.
      minor_changes:
      - Make using blocks as handlers a parser error (https://github.com/ansible/ansible/issues/79968)
      - '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 - Update error handling code to use Python 3.x constructs, avoiding
        direct use of ``errno``.
      - 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).
      release_summary: '| Release Date: 2023-02-20

        | `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`__

        '
    codename: C'mon Everybody
    fragments:
    - 79776-fix-force_handlers-cond-include.yml
    - 79783-acme-test-container.yml
    - 79862-fix-varargs.yml
    - 79968-blocks-handlers-error.yml
    - ansible-galaxy-install-git-src-manifest.yml
    - ansible-test-errno.yml
    - ansible-test-fix-warning-msg.yml
    - ansible-test-podman-chroot.yml
    - ansible-test-test-plugin-error-message.yml
    - powershell-7.3-fix.yml
    - strategy_badid_fix.yml
    - v2.14.3rc1_summary.yaml
    release_date: '2023-02-20'
  2.14.4:
    changes:
      release_summary: '| Release Date: 2023-03-27

        | `Porting Guide <https://docs.ansible.com/ansible-core/2.14/porting_guides/porting_guide_core_2.14.html>`__

        '
    codename: C'mon Everybody
    fragments:
    - 2.14.4_summary.yaml
    release_date: '2023-03-27'
  2.14.4rc1:
    changes:
      breaking_changes:
      - 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.
      bugfixes:
      - Fix ``MANIFEST.in`` to exclude unwanted files in the ``packaging/`` directory.
      - Fix ``MANIFEST.in`` to include ``*.md`` files in the ``test/support/`` directory.
      - 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)
      - '``ansible_eval_concat`` - avoid redundant unsafe wrapping of templated strings
        converted to Python types'
      - ansible-galaxy role info - fix unhandled AttributeError by catching the correct
        exception.
      - ansible-test - Always indicate the Python version being used before installing
        requirements. Resolves issue https://github.com/ansible/ansible/issues/72855
      - ansible-test - Exclude ansible-core vendored Python packages from ansible-test
        payloads.
      - 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 - 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 - Support loading of vendored Python packages from ansible-core.
      - 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)
      - 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).
      minor_changes:
      - ansible-test - Moved git handling out of the validate-modules sanity test
        and into ansible-test.
      - ansible-test - Removed the ``--keep-git`` sanity test option, which was limited
        to testing ansible-core itself.
      - ansible-test - Updated the Azure Pipelines CI plugin to work with newer versions
        of git.
      release_summary: '| Release Date: 2023-03-21

        | `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`__

        '
    codename: C'mon Everybody
    fragments:
    - 2.14.4rc1_summary.yaml
    - 78624-copy-remote-src-check-mode.yml
    - 79777-fix-inheritance-roles-meta.yml
    - a-g-role-fix-catching-exception.yml
    - ansible-test-fix-pointless-comparison.yml
    - ansible-test-git-handling.yml
    - ansible-test-integration-target-prefixes.yml
    - ansible-test-payload-file-permissions.yml
    - ansible-test-pylint-home.yml
    - ansible-test-requirements-message.yml
    - ansible-test-vendoring-support.yml
    - ansible_eval_concat-remove-redundant-unsafe-wrap.yml
    - fix-manifest.yml
    release_date: '2023-03-21'
  2.14.5:
    changes:
      release_summary: '| Release Date: 2023-04-24

        | `Porting Guide <https://docs.ansible.com/ansible-core/2.14/porting_guides/porting_guide_core_2.14.html>`__

        '
    codename: C'mon Everybody
    fragments:
    - 2.14.5_summary.yaml
    release_date: '2023-04-24'
  2.14.5rc1:
    changes:
      bugfixes:
      - 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-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-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 - reduce API calls to servers by fetching signatures only for
        final candidates.
      - ansible-test - Add support for ``argcomplete`` version 3.
      - 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.
      - password lookup now correctly reads stored ident fields.
      - pep517 build backend - Use the documented ``import_module`` import from ``importlib``.
      - roles - Fix templating ``public``, ``allow_duplicates`` and ``rolespec_validate``
        (https://github.com/ansible/ansible/issues/80304).
      - 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)
      release_summary: '| Release Date: 2023-04-17

        | `Porting Guide <https://docs.ansible.com/ansible-core/2.14/porting_guides/porting_guide_core_2.14.html>`__

        '
    codename: C'mon Everybody
    fragments:
    - 2.14.5rc1_summary.yaml
    - 80280-ansible-doc-seealso-urls.yml
    - 80334-reduce-ansible-galaxy-api-calls.yml
    - 80506-syntax-check-playbook-only.yml
    - ansible-basic-tmpdir-uniqueness.yml
    - ansible-test-argcomplete-3.yml
    - fix-templating-private-role-FA.yml
    - fix_jinja_native_async.yml
    - galaxy-improve-retries.yml
    - password_lookup_file_fix.yml
    - pep517-backend-import-fix.yml
    - win-temp-cleanup.yml
    release_date: '2023-04-17'
  2.14.6:
    changes:
      release_summary: '| Release Date: 2023-05-22

        | `Porting Guide <https://docs.ansible.com/ansible-core/2.14/porting_guides/porting_guide_core_2.14.html>`__

        '
    codename: C'mon Everybody
    fragments:
    - 2.14.6_summary.yaml
    release_date: '2023-05-22'
  2.14.6rc1:
    changes:
      bugfixes:
      - Display - Defensively configure writing to stdout and stderr with the replace
        encoding error handler that will replace invalid characters (https://github.com/ansible/ansible/issues/80258)
      - Properly disable ``jinja2_native`` in the template module when jinja2 override
        is used in the template (https://github.com/ansible/ansible/issues/80605)
      - ansible-galaxy - fix installing signed collections (https://github.com/ansible/ansible/issues/80648).
      - ansible-galaxy collection verify - fix verifying signed collections when the
        keyring is not configured.
      - ansible-test - Fix handling of timeouts exceeding one day.
      - ansible-test - Fix various cases where the test timeout could expire without
        terminating the tests.
      - ansible-test - When bootstrapping remote FreeBSD instances, use the OS packaged
        ``setuptools`` instead of installing the latest version from PyPI.
      - pep517 build backend - Copy symlinks when copying the source tree. This avoids
        tracebacks in various scenarios, such as when a venv is present in the source
        tree.
      minor_changes:
      - ansible-test - Allow float values for the ``--timeout`` option to the ``env``
        command. This simplifies testing.
      - ansible-test - Refactored ``env`` command logic and timeout handling.
      - ansible-test - Use ``datetime.datetime.now`` with ``tz`` specified instead
        of ``datetime.datetime.utcnow``.
      release_summary: '| Release Date: 2023-05-15

        | `Porting Guide <https://docs.ansible.com/ansible-core/2.14/porting_guides/porting_guide_core_2.14.html>`__

        '
    codename: C'mon Everybody
    fragments:
    - 2.14.6rc1_summary.yaml
    - 80258-defensive-display-non-utf8.yml
    - 80605-template-overlay-native-jinja.yml
    - 80648-fix-ansible-galaxy-cache-signatures-bug.yml
    - ansible-test-freebsd-bootstrap-setuptools.yml
    - ansible-test-long-timeout-fix.yml
    - ansible-test-timeout-fix.yml
    - ansible-test-utcnow.yml
    - pep517-backend-traceback-fix.yml
    release_date: '2023-05-15'
  2.14.7:
    changes:
      release_summary: '| Release Date: 2023-06-20

        | `Porting Guide <https://docs.ansible.com/ansible-core/2.14/porting_guides/porting_guide_core_2.14.html>`__

        '
    codename: C'mon Everybody
    fragments:
    - 2.14.7_summary.yaml
    release_date: '2023-06-20'
  2.14.7rc1:
    changes:
      bugfixes:
      - ansible-test - Fix a traceback that occurs when attempting to test Ansible
        source using a different ansible-test. A clear error message is now given
        when this scenario occurs.
      - ansible-test local change detection - use ``git merge-base <branch> HEAD``
        instead of ``git merge-base --fork-point <branch>`` (https://github.com/ansible/ansible/pull/79734).
      - man page build - Remove the dependency on the ``docs`` directory for building
        man pages.
      - uri - fix search for JSON type to include complex strings containing '+'
      minor_changes:
      - Removed ``straight.plugin`` from the build and packaging requirements.
      release_summary: '| Release Date: 2023-06-12

        | `Porting Guide <https://docs.ansible.com/ansible-core/2.14/porting_guides/porting_guide_core_2.14.html>`__

        '
    codename: C'mon Everybody
    fragments:
    - 2.14.7rc1_summary.yaml
    - 79734-ansible-test-change-detection.yml
    - ansible-test-source-detection.yml
    - build-no-straight.yaml
    - man-page-build-docs-dependency.yml
    - update-maybe-json-uri.yml
    release_date: '2023-06-12'
  2.14.8:
    changes:
      release_summary: '| Release Date: 2023-07-18

        | `Porting Guide <https://docs.ansible.com/ansible-core/2.14/porting_guides/porting_guide_core_2.14.html>`__

        '
    codename: C'mon Everybody
    fragments:
    - 2.14.8_summary.yaml
    release_date: '2023-07-17'
  2.14.8rc1:
    changes:
      bugfixes:
      - ansible-galaxy - Fix issue installing collections containing directories with
        more than 100 characters on python versions before 3.10.6
      minor_changes:
      - Cache field attributes list on the playbook classes
      - Playbook objects - Replace deprecated stacked ``@classmethod`` and ``@property``
      - ansible-test - Use a context manager to perform cleanup at exit instead of
        using the built-in ``atexit`` module.
      release_summary: '| Release Date: 2023-07-10

        | `Porting Guide <https://docs.ansible.com/ansible-core/2.14/porting_guides/porting_guide_core_2.14.html>`__

        '
    codename: C'mon Everybody
    fragments:
    - 2.14.8rc1_summary.yaml
    - ansible-test-atexit.yml
    - cache-fa-on-pb-cls.yml
    - long-collection-paths-fix.yml
    - no-stacked-descriptors.yaml
    release_date: '2023-07-10'
  2.14.9:
    changes:
      release_summary: '| Release Date: 2023-08-14

        | `Porting Guide <https://docs.ansible.com/ansible-core/2.14/porting_guides/porting_guide_core_2.14.html>`__

        '
    codename: C'mon Everybody
    fragments:
    - 2.14.9_summary.yaml
    release_date: '2023-08-14'
  2.14.9rc1:
    changes:
      bugfixes:
      - Exclude internal options from man pages and docs.
      - Fix ``ansible-config init`` man page option indentation.
      - The ``ansible-config init`` command now has a documentation description.
      - The ``ansible-galaxy collection download`` command now has a documentation
        description.
      - The ``ansible-galaxy collection install`` command documentation is now visible
        (previously hidden by a decorator).
      - The ``ansible-galaxy collection verify`` command now has a documentation description.
      - The ``ansible-galaxy role install`` command documentation is now visible (previously
        hidden by a decorator).
      - The ``ansible-inventory`` command command now has a documentation description
        (previously used as the epilog).
      - Update module_utils.urls unit test to work with cryptography >= 41.0.0.
      - When generating man pages, use ``func`` to find the command function instead
        of looking it up by the command name.
      - ansible-test - Pre-build a PyYAML wheel before installing requirements to
        avoid a potential Cython build failure.
      - man page build - Sub commands of ``ansible-galaxy role`` and ``ansible-galaxy
        collection`` are now documented.
      minor_changes:
      - Removed ``exclude`` and ``recursive-exclude`` commands for generated files
        from the ``MANIFEST.in`` file. These excludes were unnecessary since releases
        are expected to be built with a clean worktree.
      - Removed ``exclude`` commands for sanity test files from the ``MANIFEST.in``
        file. These tests were previously excluded because they did not pass when
        run from an sdist. However, sanity tests are not expected to pass from an
        sdist, so excluding some (but not all) of the failing tests makes little sense.
      - Removed redundant ``include`` commands from the ``MANIFEST.in`` file. These
        includes either duplicated default behavior or another command.
      - The ``ansible-core`` sdist no longer contains pre-generated man pages. Instead,
        a ``packaging/cli-doc/build.py`` script is included in the sdist. This script
        can generate man pages and standalone RST documentation for ``ansible-core``
        CLI programs.
      - The ``docs`` and ``examples`` directories are no longer included in the ``ansible-core``
        sdist. These directories have been moved to the https://github.com/ansible/ansible-documentation
        repository.
      - The minimum required ``setuptools`` version is now 45.2.0, as it is the oldest
        version to support Python 3.10.
      - Use ``include`` where ``recursive-include`` is unnecessary in the ``MANIFEST.in``
        file.
      - Use ``package_data`` instead of ``include_package_data`` for ``setup.cfg``
        to avoid ``setuptools`` warnings.
      - ansible-test - Update the logic used to detect when ``ansible-test`` is running
        from source.
      release_summary: '| Release Date: 2023-08-07

        | `Porting Guide <https://docs.ansible.com/ansible-core/2.14/porting_guides/porting_guide_core_2.14.html>`__

        '
    codename: C'mon Everybody
    fragments:
    - 2.14.9rc1_summary.yaml
    - add-missing-cli-docs.yml
    - ansible-test-layout-detection.yml
    - ansible-test-minimum-setuptools.yml
    - ansible-test-pyyaml-build.yml
    - fix-setuptools-warnings.yml
    - man-page-subcommands.yml
    - manifest-in-cleanup.yml
    - missing-doc-func.yml
    - omit-man-pages-from-sdist.yml
    - remove-docs-examples.yml
    - suppressed-options.yml
    - urls-unit-test-latest-cryptography.yml
    release_date: '2023-08-07'
