summaryrefslogtreecommitdiff
path: root/changelogs/changelog.yaml
diff options
context:
space:
mode:
Diffstat (limited to 'changelogs/changelog.yaml')
-rw-r--r--changelogs/changelog.yaml2343
1 files changed, 860 insertions, 1483 deletions
diff --git a/changelogs/changelog.yaml b/changelogs/changelog.yaml
index 97eb4c13..3e241228 100644
--- a/changelogs/changelog.yaml
+++ b/changelogs/changelog.yaml
@@ -1,1600 +1,977 @@
-ancestor: 2.13.0
+ancestor: 2.15.0
releases:
- 2.14.0:
+ 2.16.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
+ - ansible-test - Fix parsing of cgroup entries which contain a ``:`` in the
+ path (https://github.com/ansible/ansible/issues/81977).
+ release_summary: '| Release Date: 2023-11-06
- | `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`__
+ | `Porting Guide <https://docs.ansible.com/ansible-core/2.16/porting_guides/porting_guide_core_2.16.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
+ codename: All My Love
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:
+ - 2.16.0_summary.yaml
+ - ansible-test-cgroup-split.yml
+ release_date: '2023-11-06'
+ 2.16.0b1:
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:
+ - Any plugin using the config system and the `cli` entry to use the `timeout`
+ from the command line, will see the value change if the use had configured
+ it in any of the lower precedence methods. If relying on this behaviour to
+ consume the global/generic timeout from the DEFAULT_TIMEOUT constant, please
+ consult the documentation on plugin configuration to add the overlaping entries.
+ - ansible-test - Test plugins that rely on containers no longer support reusing
+ running containers. The previous behavior was an undocumented, untested feature.
+ - service module will not permanently configure variables/flags for openbsd
+ when doing enable/disable operation anymore, this module was never meant to
+ do this type of work, just to manage the service state itself. A rcctl_config
+ or similar module should be created and used instead.
bugfixes:
+ - Allow for searching handler subdir for included task via include_role (https://github.com/ansible/ansible/issues/81722)
+ - AnsibleModule.run_command - Only use selectors when needed, and rely on Python
+ stdlib subprocess for the simple task of collecting stdout/stderr when prompt
+ matching is not required.
+ - Display - Defensively configure writing to stdout and stderr with a custom
+ encoding error handler that will replace invalid characters while providing
+ a deprecation warning that non-utf8 text will result in an error in a future
+ version.
+ - Exclude internal options from man pages and docs.
+ - Fix ``ansible-config init`` man page option indentation.
+ - Fix ``ast`` deprecation warnings for ``Str`` and ``value.s`` when using Python
+ 3.12.
+ - Fix exceptions caused by various inputs when performing arg splitting or parsing
+ key/value pairs. Resolves issue https://github.com/ansible/ansible/issues/46379
+ and issue https://github.com/ansible/ansible/issues/61497
+ - Fix incorrect parsing of multi-line Jinja2 blocks when performing arg splitting
+ or parsing key/value pairs.
+ - Fix post-validating looped task fields so the strategy uses the correct values
+ after task execution.
+ - Fixed `pip` module failure in case of usage quotes for `virtualenv_command`
+ option for the venv command. (https://github.com/ansible/ansible/issues/76372)
+ - From issue https://github.com/ansible/ansible/issues/80880, when notifying
+ a handler from another handler, handler notifications must be registered immediately
+ as the flush_handler call is not recursive.
+ - Import ``FILE_ATTRIBUTES`` from ``ansible.module_utils.common.file`` in ``ansible.module_utils.basic``
+ instead of defining it twice.
+ - Inventory scripts parser not treat exception when getting hostsvar (https://github.com/ansible/ansible/issues/81103)
+ - On Python 3 use datetime methods ``fromtimestamp`` and ``now`` with UTC timezone
+ instead of ``utcfromtimestamp`` and ``utcnow``, which are deprecated in Python
+ 3.12.
+ - PluginLoader - fix Jinja plugin performance issues (https://github.com/ansible/ansible/issues/79652)
- PowerShell - Remove some code which is no longer valid for dotnet 5+
+ - Prevent running same handler multiple times when included via ``include_role``
+ (https://github.com/ansible/ansible/issues/73643)
+ - Prompting - add a short sleep between polling for user input to reduce CPU
+ consumption (https://github.com/ansible/ansible/issues/81516).
+ - Properly disable ``jinja2_native`` in the template module when jinja2 override
+ is used in the template (https://github.com/ansible/ansible/issues/80605)
+ - Remove unreachable parser error for removed ``static`` parameter of ``include_role``
+ - Replace uses of ``configparser.ConfigParser.readfp()`` which was removed in
+ Python 3.12 with ``configparser.ConfigParser.read_file()`` (https://github.com/ansible/ansible/issues/81656)
+ - Set filters ``intersect``, ``difference``, ``symmetric_difference`` and ``union``
+ now always return a ``list``, never a ``set``. Previously, a ``set`` would
+ be returned if the inputs were a hashable type such as ``str``, instead of
+ a collection, such as a ``list`` or ``tuple``.
+ - Set filters ``intersect``, ``difference``, ``symmetric_difference`` and ``union``
+ now use set operations when the given items are hashable. Previously, list
+ operations were performed unless the inputs were a hashable type such as ``str``,
+ instead of a collection, such as a ``list`` or ``tuple``.
+ - Switch result queue from a ``multiprocessing.queues.Queue` to ``multiprocessing.queues.SimpleQueue``,
+ primarily to allow properly handling pickling errors, to prevent an infinite
+ hang waiting for task results
+ - 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).
+ - The ``hostname`` module now also updates both current and permanent hostname
+ on OpenBSD. Before it only updated the permanent hostname (https://github.com/ansible/ansible/issues/80520).
+ - 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.
+ - '``StrategyBase._process_pending_results`` - create a ``Templar`` on demand
+ for templating ``changed_when``/``failed_when``.'
+ - '``ansible-galaxy`` now considers all collection paths when identifying which
+ collection requirements are already installed. Use the ``COLLECTIONS_PATHS``
+ and ``COLLECTIONS_SCAN_SYS_PATHS`` config options to modify these. Previously
+ only the install path was considered when resolving the candidates. The install
+ path will remain the only one potentially modified. (https://github.com/ansible/ansible/issues/79767,
+ https://github.com/ansible/ansible/issues/81163)'
+ - '``ansible.module_utils.service`` - ensure binary data transmission in ``daemonize()``'
+ - '``ansible.module_utils.service`` - fix inter-process communication in ``daemonize()``'
+ - '``pkg_mgr`` - fix the default dnf version detection'
+ - ansiballz - Prevent issue where the time on the control host could change
+ part way through building the ansiballz file, potentially causing a pre-1980
+ date to be used during ansiballz unpacking leading to a zip file error (https://github.com/ansible/ansible/issues/80089)
+ - ansible terminal color settings were incorrectly limited to 16 options via
+ 'choices', removing so all 256 can be accessed.
+ - ansible-console - fix filtering by collection names when a collection search
+ path was set (https://github.com/ansible/ansible/pull/81450).
- 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-galaxy - Fix issue installing collections containing directories with
+ more than 100 characters on python versions before 3.10.6
+ - ansible-galaxy - Fix variable type error when installing subdir collections
+ (https://github.com/ansible/ansible/issues/80943)
+ - ansible-galaxy - fix installing collections from directories that have a trailing
+ path separator (https://github.com/ansible/ansible/issues/77803).
+ - ansible-galaxy - fix installing signed collections (https://github.com/ansible/ansible/issues/80648).
+ - ansible-galaxy - reduce API calls to servers by fetching signatures only for
+ final candidates.
+ - ansible-galaxy - started allowing the use of pre-releases for collections
+ that do not have any stable versions published. (https://github.com/ansible/ansible/pull/81606)
+ - ansible-galaxy - started allowing the use of pre-releases for dependencies
+ on any level of the dependency tree that specifically demand exact pre-release
+ versions of collections and not version ranges. (https://github.com/ansible/ansible/pull/81606)
+ - ansible-galaxy collection verify - fix verifying signed collections when the
+ keyring is not configured.
+ - ansible-test - Add support for ``argcomplete`` version 3.
+ - ansible-test - All containers created by ansible-test now include the current
+ test session ID in their name. This avoids conflicts between concurrent ansible-test
+ invocations using the same container host.
- 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.
+ - 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 - Fix handling of timeouts exceeding one day.
+ - ansible-test - Fix several possible tracebacks when using the ``-e`` option
+ with sanity tests.
+ - ansible-test - Fix various cases where the test timeout could expire without
+ terminating the tests.
+ - ansible-test - Pre-build a PyYAML wheel before installing requirements to
+ avoid a potential Cython build failure.
+ - ansible-test - Remove redundant warning about missing programs before attempting
+ to execute them.
+ - ansible-test - The ``import`` sanity test now checks the collection loader
+ for remote-only Python support when testing ansible-core.
+ - ansible-test - Unit tests now report warnings generated during test runs.
+ Previously only warnings generated during test collection were reported.
+ - ansible-test - Update ``pylint`` to 2.17.2 to resolve several possible false
+ positives.
+ - ansible-test - Update ``pylint`` to 2.17.3 to resolve several possible false
+ positives.
+ - ansible-test - Use ``raise ... from ...`` when raising exceptions from within
+ an exception handler.
+ - ansible-test - When bootstrapping remote FreeBSD instances, use the OS packaged
+ ``setuptools`` instead of installing the latest version from PyPI.
+ - 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).
+ - ansible-vault - fail when the destination file location is not writable before
+ performing encryption (https://github.com/ansible/ansible/issues/81455).
+ - apt - ignore fail_on_autoremove and allow_downgrade parameters when using
+ aptitude (https://github.com/ansible/ansible/issues/77868).
+ - blockinfile - avoid crash with Python 3 if creating the directory fails when
+ ``create=true`` (https://github.com/ansible/ansible/pull/81662).
+ - connection timeouts defined in ansible.cfg will now be properly used, the
+ --timeout cli option was obscuring them by always being set.
+ - copy - print correct destination filename when using `content` and `--diff`
+ (https://github.com/ansible/ansible/issues/79749).
+ - copy unit tests - Fixing "dir all perms" documentation and formatting for
+ easier reading.
+ - core will now also look at the connection plugin to force 'local' interpreter
+ for networking path compatibility as just ansible_network_os could be misleading.
+ - deb822_repository - use http-agent for receiving content (https://github.com/ansible/ansible/issues/80809).
+ - debconf - idempotency in questions with type 'password' (https://github.com/ansible/ansible/issues/47676).
+ - distribution facts - fix Source Mage family mapping
+ - dnf - fix a failure when a package from URI was specified and ``update_only``
+ was set (https://github.com/ansible/ansible/issues/81376).
+ - dnf5 - Update dnf5 module to handle API change for setting the download directory
+ (https://github.com/ansible/ansible/issues/80887)
+ - dnf5 - Use ``transaction.check_gpg_signatures`` API call to check package
+ signatures AND possibly to recover from when keys are missing.
+ - dnf5 - fix module and package names in the message following failed module
+ respawn attempt
+ - dnf5 - use the logs API to determine transaction problems
+ - dpkg_selections - check if the package exists before performing the selection
+ operation (https://github.com/ansible/ansible/issues/81404).
+ - encrypt - deprecate passlib_or_crypt API (https://github.com/ansible/ansible/issues/55839).
+ - fetch - Handle unreachable errors properly (https://github.com/ansible/ansible/issues/27816)
+ - file modules - Make symbolic modes with X use the computed permission, not
+ original file (https://github.com/ansible/ansible/issues/80128)
+ - file modules - fix validating invalid symbolic modes.
+ - first found lookup has been updated to use the normalized argument parsing
+ (pythonic) matching the documented examples.
+ - first found lookup, fixed an issue with subsequent items clobbering information
+ from previous ones.
+ - first_found lookup now gets 'untemplated' loop entries and handles templating
+ itself as task_executor was removing even 'templatable' entries and breaking
+ functionality. https://github.com/ansible/ansible/issues/70772
+ - galaxy - check if the target for symlink exists (https://github.com/ansible/ansible/pull/81586).
+ - galaxy - cross check the collection type and collection source (https://github.com/ansible/ansible/issues/79463).
+ - gather_facts parallel option was doing the reverse of what was stated, now
+ it does run modules in parallel when True and serially when False.
+ - handlers - fix ``v2_playbook_on_notify`` callback not being called when notifying
+ handlers
+ - handlers - the ``listen`` keyword can affect only one handler with the same
+ name, the last one defined as it is a case with the ``notify`` keyword (https://github.com/ansible/ansible/issues/81013)
+ - include_role - expose variables from parent roles to role's handlers (https://github.com/ansible/ansible/issues/80459)
+ - inventory_ini - handle SyntaxWarning while parsing ini file in inventory (https://github.com/ansible/ansible/issues/81457).
+ - iptables - remove default rule creation when creating iptables chain to be
+ more similar to the command line utility (https://github.com/ansible/ansible/issues/80256).
+ - lib/ansible/utils/encrypt.py - remove unused private ``_LOCK`` (https://github.com/ansible/ansible/issues/81613)
+ - lookup/url.py - Fix incorrect var/env/ini entry for `force_basic_auth`
+ - man page build - Remove the dependency on the ``docs`` directory for building
+ man pages.
+ - man page build - Sub commands of ``ansible-galaxy role`` and ``ansible-galaxy
+ collection`` are now documented.
+ - module responses - Ensure that module responses are utf-8 adhereing to JSON
+ RFC and expectations of the core code.
+ - module/role argument spec - validate the type for options that are None when
+ the option is required or has a non-None default (https://github.com/ansible/ansible/issues/79656).
+ - modules/user.py - Add check for valid directory when creating new user homedir
+ (allows /dev/null as skeleton) (https://github.com/ansible/ansible/issues/75063)
+ - paramiko_ssh, psrp, and ssh connection plugins - ensure that all values for
+ options that should be strings are actually converted to strings (https://github.com/ansible/ansible/pull/81029).
+ - password_hash - fix salt format for ``crypt`` (only used if ``passlib`` is
+ not installed) for the ``bcrypt`` algorithm.
+ - 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.
+ - pep517 build backend - Use the documented ``import_module`` import from ``importlib``.
+ - pip module - Update module to prefer use of the python ``packaging`` and ``importlib.metadata``
+ modules due to ``pkg_resources`` being deprecated (https://github.com/ansible/ansible/issues/80488)
+ - pkg_mgr.py - Fix `ansible_pkg_mgr` incorrect in TencentOS Server Linux
+ - pkg_mgr.py - Fix `ansible_pkg_mgr` is unknown in Kylin Linux (https://github.com/ansible/ansible/issues/81332)
+ - powershell modules - Only set an rc of 1 if the PowerShell pipeline signaled
+ an error occurred AND there are error records present. Previously it would
+ do so only if the error signal was present without checking the error count.
+ - replace - handle exception when bad escape character is provided in replace
+ (https://github.com/ansible/ansible/issues/79364).
+ - role deduplication - don't deduplicate before a role has had a task run for
+ that particular host (https://github.com/ansible/ansible/issues/81486).
+ - service module, does not permanently configure flags flags on Openbsd when
+ enabling/disabling a service.
+ - service module, enable/disable is not a exclusive action in checkmode anymore.
+ - setup gather_timeout - Fix timeout in get_mounts_facts for linux.
+ - setup module (fact gathering) will now try to be smarter about different versions
+ of facter emitting error when --puppet flag is used w/o puppet.
+ - 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)
- tarfile - handle data filter deprecation warning message for extract and extractall
(https://github.com/ansible/ansible/issues/80832).
+ - template - Fix for formatting issues when a template path contains valid jinja/strftime
+ pattern (especially line break one) and using the template path in ansible_managed
+ (https://github.com/ansible/ansible/pull/79129)
+ - templating - In the template action and lookup, use local jinja2 environment
+ overlay overrides instead of mutating the templars environment
+ - templating - prevent setting arbitrary attributes on Jinja2 environments via
+ Jinja2 overrides in templates
+ - templating escape and single var optimization now use correct delimiters when
+ custom ones are provided either via task or template header.
+ - unarchive - fix unarchiving sources that are copied to the remote node using
+ a relative temporory directory path (https://github.com/ansible/ansible/issues/80710).
+ - uri - fix search for JSON type to include complex strings containing '+'
+ - urls.py - fixed cert_file and key_file parameters when running on Python 3.12
+ - https://github.com/ansible/ansible/issues/80490
+ - user - set expiration value correctly when unable to retrieve the current
+ value from the system (https://github.com/ansible/ansible/issues/71916)
+ - validate-modules sanity test - replace semantic markup parsing and validating
+ code with the code from `antsibull-docs-parser 0.2.0 <https://github.com/ansible-community/antsibull-docs-parser/releases/tag/0.2.0>`__
+ (https://github.com/ansible/ansible/pull/80406).
+ - vars_prompt - internally convert the ``unsafe`` value to ``bool``
+ - vault and unvault filters now properly take ``vault_id`` parameter.
+ - win_fetch - Add support for using file with wildcards in file name. (https://github.com/ansible/ansible/issues/73128)
+ deprecated_features:
+ - Deprecated ini config option ``collections_paths``, use the singular form
+ ``collections_path`` instead
+ - Deprecated the env var ``ANSIBLE_COLLECTIONS_PATHS``, use the singular form
+ ``ANSIBLE_COLLECTIONS_PATH`` instead
+ - Support for Windows Server 2012 and 2012 R2 has been removed as the support
+ end of life from Microsoft is October 10th 2023. These versions of Windows
+ will no longer be tested in this Ansible release and it cannot be guaranteed
+ that they will continue to work going forward.
+ - '``STRING_CONVERSION_ACTION`` config option is deprecated as it is no longer
+ used in the Ansible Core code base.'
+ - the 'smart' option for setting a connection plugin is being removed as its
+ main purpose (choosing between ssh and paramiko) is now irrelevant.
+ - vault and unfault filters - the undocumented ``vaultid`` parameter is deprecated
+ and will be removed in ansible-core 2.20. Use ``vault_id`` instead.
+ - yum_repository - deprecated parameter 'keepcache' (https://github.com/ansible/ansible/issues/78693).
+ known_issues:
+ - ansible-galaxy - dies in the middle of installing a role when that role contains
+ Java inner classes (files with $ in the file name). This is by design, to
+ exclude temporary or backup files. (https://github.com/ansible/ansible/pull/81553).
+ - ansible-test - The ``pep8`` sanity test is unable to detect f-string spacing
+ issues (E201, E202) on Python 3.10 and 3.11. They are correctly detected under
+ Python 3.12. See (https://github.com/PyCQA/pycodestyle/issues/1190).
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>`__
+ - Add Python type hints to the Display class (https://github.com/ansible/ansible/issues/80841)
+ - Add ``GALAXY_COLLECTIONS_PATH_WARNING`` option to disable the warning given
+ by ``ansible-galaxy collection install`` when installing a collection to a
+ path that isn't in the configured collection paths.
+ - Add ``python3.12`` to the default ``INTERPRETER_PYTHON_FALLBACK`` list.
+ - Add ``utcfromtimestamp`` and ``utcnow`` to ``ansible.module_utils.compat.datetime``
+ to return fixed offset datetime objects.
+ - Add a general ``GALAXY_SERVER_TIMEOUT`` config option for distribution servers
+ (https://github.com/ansible/ansible/issues/79833).
+ - Added Python type annotation to connection plugins
+ - CLI argument parsing - Automatically prepend to the help of CLI arguments
+ that support being specified multiple times. (https://github.com/ansible/ansible/issues/22396)
+ - DEFAULT_TRANSPORT now defaults to 'ssh', the old 'smart' option is being deprecated
+ as versions of OpenSSH without control persist are basically not present anymore.
+ - Documentation for set filters ``intersect``, ``difference``, ``symmetric_difference``
+ and ``union`` now states that the returned list items are in arbitrary order.
+ - Record ``removal_date`` in runtime metadata as a string instead of a date.
+ - Remove the ``CleansingNodeVisitor`` class and its usage due to the templating
+ changes that made it superfluous. Also simplify the ``Conditional`` class.
+ - 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 66.1.0, as it is the oldest
+ version to support Python 3.12.
+ - Update ``ansible_service_mgr`` fact to include init system for SMGL OS family
+ - Use ``ansible.module_utils.common.text.converters`` instead of ``ansible.module_utils._text``.
+ - Use ``importlib.resources.abc.TraversableResources`` instead of deprecated
+ ``importlib.abc.TraversableResources`` where available (https:/github.com/ansible/ansible/pull/81082).
+ - 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.
+ - Utilize gpg check provided internally by the ``transaction.run`` method as
+ oppose to calling it manually.
+ - '``Templar`` - do not add the ``dict`` constructor to ``globals`` as all required
+ Jinja2 versions already do so'
+ - ansible-doc - allow to filter listing of collections and metadata dump by
+ more than one collection (https://github.com/ansible/ansible/pull/81450).
+ - ansible-galaxy - Add a plural option to improve ignoring multiple signature
+ error status codes when installing or verifying collections. A space-separated
+ list of error codes can follow --ignore-signature-status-codes in addition
+ to specifying --ignore-signature-status-code multiple times (for example,
+ ``--ignore-signature-status-codes NO_PUBKEY UNEXPECTED``).
+ - ansible-galaxy - Remove internal configuration argument ``v3`` (https://github.com/ansible/ansible/pull/80721)
+ - ansible-galaxy - add note to the collection dependency resolver error message
+ about pre-releases if ``--pre`` was not provided (https://github.com/ansible/ansible/issues/80048).
+ - ansible-galaxy - used to crash out with a "Errno 20 Not a directory" error
+ when extracting files from a role when hitting a file with an illegal name
+ (https://github.com/ansible/ansible/pull/81553). Now it gives a warning identifying
+ the culprit file and the rule violation (e.g., ``my$class.jar`` has a ``$``
+ in the name) before crashing out, giving the user a chance to remove the invalid
+ file and try again. (https://github.com/ansible/ansible/pull/81555).
+ - ansible-test - Add Alpine 3.18 to remotes
+ - ansible-test - Add Fedora 38 container.
+ - ansible-test - Add Fedora 38 remote.
+ - ansible-test - Add FreeBSD 13.2 remote.
+ - ansible-test - Add new pylint checker for new ``# deprecated:`` comments within
+ code to trigger errors when time to remove code that has no user facing deprecation
+ message. Only supported in ansible-core, not collections.
+ - ansible-test - Add support for RHEL 8.8 remotes.
+ - ansible-test - Add support for RHEL 9.2 remotes.
+ - ansible-test - Add support for testing with Python 3.12.
+ - ansible-test - Allow float values for the ``--timeout`` option to the ``env``
+ command. This simplifies testing.
+ - ansible-test - Enable ``thread`` code coverage in addition to the existing
+ ``multiprocessing`` coverage.
+ - ansible-test - RHEL 8.8 provisioning can now be used with the ``--python 3.11``
+ option.
+ - ansible-test - RHEL 9.2 provisioning can now be used with the ``--python 3.11``
+ option.
+ - ansible-test - Refactored ``env`` command logic and timeout handling.
+ - ansible-test - Remove Fedora 37 remote support.
+ - ansible-test - Remove Fedora 37 test container.
+ - ansible-test - Remove Python 3.8 and 3.9 from RHEL 8.8.
+ - ansible-test - Remove obsolete embedded script for configuring WinRM on Windows
+ remotes.
+ - ansible-test - Removed Ubuntu 20.04 LTS image from the `--remote` option.
+ - ansible-test - Removed `freebsd/12.4` remote.
+ - ansible-test - Removed `freebsd/13.1` remote.
+ - 'ansible-test - Removed test remotes: rhel/8.7, rhel/9.1'
+ - ansible-test - Removed the deprecated ``--docker-no-pull`` option.
+ - ansible-test - Removed the deprecated ``--no-pip-check`` option.
+ - ansible-test - Removed the deprecated ``foreman`` test plugin.
+ - ansible-test - Removed the deprecated ``govcsim`` support from the ``vcenter``
+ test plugin.
+ - ansible-test - Replace the ``pytest-forked`` pytest plugin with a custom plugin.
+ - ansible-test - The ``no-get-exception`` sanity test is now limited to plugins
+ in collections. Previously any Python file in a collection was checked for
+ ``get_exception`` usage.
+ - ansible-test - The ``replace-urlopen`` sanity test is now limited to plugins
+ in collections. Previously any Python file in a collection was checked for
+ ``urlopen`` usage.
+ - ansible-test - The ``use-compat-six`` sanity test is now limited to plugins
+ in collections. Previously any Python file in a collection was checked for
+ ``six`` usage.
+ - ansible-test - The openSUSE test container has been updated to openSUSE Leap
+ 15.5.
+ - ansible-test - Update pip to ``23.1.2`` and setuptools to ``67.7.2``.
+ - ansible-test - Update the ``default`` containers.
+ - ansible-test - Update the ``nios-test-container`` to version 2.0.0, which
+ supports API version 2.9.
+ - ansible-test - Update the logic used to detect when ``ansible-test`` is running
+ from source.
+ - ansible-test - Updated the CloudStack test container to version 1.6.1.
+ - ansible-test - Updated the distro test containers to version 6.3.0 to include
+ coverage 7.3.2 for Python 3.8+. The alpine3 container is now based on 3.18
+ instead of 3.17 and includes Python 3.11 instead of Python 3.10.
+ - ansible-test - Use ``datetime.datetime.now`` with ``tz`` specified instead
+ of ``datetime.datetime.utcnow``.
+ - ansible-test - Use a context manager to perform cleanup at exit instead of
+ using the built-in ``atexit`` module.
+ - ansible-test - remove Alpine 3.17 from remotes
+ - "ansible-test \u2014 Python 3.8\u20133.12 will use ``coverage`` v7.3.2."
+ - "ansible-test \u2014 ``coverage`` v6.5.0 is to be used only under Python 3.7."
+ - 'ansible-vault create: Now raises an error when opening the editor without
+ tty. The flag --skip-tty-check restores previous behaviour.'
+ - ansible_user_module - tweaked macos user defaults to reflect expected defaults
+ (https://github.com/ansible/ansible/issues/44316)
+ - apt - return calculated diff while running apt clean operation.
+ - blockinfile - add append_newline and prepend_newline options (https://github.com/ansible/ansible/issues/80835).
+ - cli - Added short option '-J' for asking for vault password (https://github.com/ansible/ansible/issues/80523).
+ - command - Add option ``expand_argument_vars`` to disable argument expansion
+ and use literal values - https://github.com/ansible/ansible/issues/54162
+ - config lookup new option show_origin to also return the origin of a configuration
+ value.
+ - display methods for warning and deprecation are now proxied to main process
+ when issued from a fork. This allows for the deduplication of warnings and
+ deprecations to work globally.
+ - dnf5 - enable environment groups installation testing in CI as its support
+ was added.
+ - dnf5 - enable now implemented ``cacheonly`` functionality
+ - executor now skips persistent connection when it detects an action that does
+ not require a connection.
+ - find module - Add ability to filter based on modes
+ - gather_facts now will use gather_timeout setting to limit parallel execution
+ of modules that do not themselves use gather_timeout.
+ - group - remove extraneous warning shown when user does not exist (https://github.com/ansible/ansible/issues/77049).
+ - include_vars - os.walk now follows symbolic links when traversing directories
+ (https://github.com/ansible/ansible/pull/80460)
+ - module compression is now sourced directly via config, bypassing play_context
+ possibly stale values.
+ - reboot - show last error message in verbose logs (https://github.com/ansible/ansible/issues/81574).
+ - service_facts now returns more info for rcctl managed systesm (OpenBSD).
+ - tasks - the ``retries`` keyword can be specified without ``until`` in which
+ case the task is retried until it succeeds but at most ``retries`` times (https://github.com/ansible/ansible/issues/20802)
+ - user - add new option ``password_expire_warn`` (supported on Linux only) to
+ set the number of days of warning before a password change is required (https://github.com/ansible/ansible/issues/79882).
+ - yum_repository - Align module documentation with parameters
+ release_summary: '| Release Date: 2023-09-26
+
+ | `Porting Guide <https://docs.ansible.com/ansible-core/2.16/porting_guides/porting_guide_core_2.16.html>`__
'
- codename: C'mon Everybody
+ removed_features:
+ - ActionBase - remove deprecated ``_remote_checksum`` method
+ - PlayIterator - remove deprecated ``cache_block_tasks`` and ``get_original_task``
+ methods
+ - Remove deprecated ``FileLock`` class
+ - Removed Python 3.9 as a supported version on the controller. Python 3.10 or
+ newer is required.
+ - Removed ``include`` which has been deprecated in Ansible 2.12. Use ``include_tasks``
+ or ``import_tasks`` instead.
+ - '``Templar`` - remove deprecated ``shared_loader_obj`` parameter of ``__init__``'
+ - '``fetch_url`` - remove auto disabling ``decompress`` when gzip is not available'
+ - '``get_action_args_with_defaults`` - remove deprecated ``redirected_names``
+ method parameter'
+ - ansible-test - Removed support for the remote Windows targets 2012 and 2012-R2
+ - inventory_cache - remove deprecated ``default.fact_caching_prefix`` ini configuration
+ option, use ``defaults.fact_caching_prefix`` instead.
+ - module_utils/basic.py - Removed Python 3.5 as a supported remote version.
+ Python 2.7 or Python 3.6+ is now required.
+ - stat - removed unused `get_md5` parameter.
+ codename: All My Love
fragments:
- - 2.14.10rc1_summary.yaml
+ - 2.16.0b1_summary.yaml
+ - 20802-until-default.yml
+ - 22396-indicate-which-args-are-multi.yml
+ - 27816-fetch-unreachable.yml
+ - 50603-tty-check.yaml
+ - 71916-user-expires-int.yml
+ - 73643-handlers-prevent-multiple-runs.yml
+ - 74723-support-wildcard-win_fetch.yml
+ - 75063-allow-dev-nul-as-skeleton-for-new-homedir.yml
+ - 76372-fix-pip-virtualenv-command-parsing.yml
+ - 78487-galaxy-collections-path-warnings.yml
+ - 79129-ansible-managed-filename-format.yaml
+ - 79364_replace.yml
+ - 79677-fix-argspec-type-check.yml
+ - 79734-ansible-test-change-detection.yml
+ - 79844-fix-timeout-mounts-linux.yml
+ - 79999-ansible-user-tweak-macos-defaults.yaml
+ - 80089-prevent-module-build-date-issue.yml
+ - 80128-symbolic-modes-X-use-computed.yml
+ - 80257-iptables-chain-creation-does-not-populate-a-rule.yml
+ - 80258-defensive-display-non-utf8.yml
+ - 80334-reduce-ansible-galaxy-api-calls.yml
+ - 80406-validate-modules-semantic-markup.yml
+ - 80449-fix-symbolic-mode-error-msg.yml
+ - 80459-handlers-nested-includes-vars.yml
+ - 80460-add-symbolic-links-with-dir.yml
+ - 80476-fix-loop-task-post-validation.yml
+ - 80488-pip-pkg-resources.yml
+ - 80506-syntax-check-playbook-only.yml
+ - 80520-fix-current-hostname-openbsd.yml
+ - 80523_-_adding_short_option_for_--ask-vault-pass.yml
+ - 80605-template-overlay-native-jinja.yml
+ - 80648-fix-ansible-galaxy-cache-signatures-bug.yml
+ - 80721-ansible-galaxy.yml
+ - 80738-abs-unarachive-src.yml
+ - 80841-display-type-annotation.yml
+ - 80880-register-handlers-immediately-if-iterating-handlers.yml
+ - 80887-dnf5-api-change.yml
+ - 80943-ansible-galaxy-collection-subdir-install.yml
+ - 80968-replace-deprecated-ast-attr.yml
+ - 80985-fix-smgl-family-mapping.yml
+ - 81005-use-overlay-overrides.yml
+ - 81013-handlers-listen-last-defined-only.yml
+ - 81029-connection-types.yml
+ - 81064-daemonize-fixes.yml
+ - 81082-deprecated-importlib-abc.yml
+ - 81083-add-blockinfile-append-and-prepend-new-line-options.yml
+ - 81104-inventory-script-plugin-raise-execution-error.yml
+ - 81319-cloudstack-test-container-bump-version.yml
+ - 81332-fix-pkg-mgr-in-kylin.yml
+ - 81450-list-filters.yml
+ - 81494-remove-duplicated-file-attribute-constant.yml
+ - 81555-add-warning-for-illegal-filenames-in-roles.yaml
+ - 81584-daemonize-follow-up-fixes.yml
+ - 81606-ansible-galaxy-collection-pre-releases.yml
+ - 81613-remove-unusued-private-lock.yml
+ - 81656-cf_readfp-deprecated.yml
+ - 81662-blockinfile-exc.yml
+ - 81722-handler-subdir-include_tasks.yml
+ - CleansingNodeVisitor-removal.yml
+ - a-g-col-install-directory-with-trailing-sep.yml
+ - a-g-col-prevent-reinstalling-satisfied-req.yml
+ - a_test_rmv_alpine_317.yml
+ - add-missing-cli-docs.yml
+ - ag-ignore-multiple-signature-statuses.yml
+ - ansible-galaxy-server-timeout.yml
+ - ansible-runtime-metadata-removal-date.yml
+ - ansible-test-added-fedora-38.yml
+ - ansible-test-argcomplete-3.yml
+ - ansible-test-atexit.yml
+ - ansible-test-coverage-update.yml
+ - ansible-test-default-containers.yml
+ - ansible-test-deprecated-cleanup.yml
+ - ansible-test-distro-containers.yml
- ansible-test-entry-points.yml
+ - ansible-test-explain-traceback.yml
+ - ansible-test-fedora-37.yml
+ - ansible-test-freebsd-bootstrap-setuptools.yml
+ - ansible-test-import-sanity-fix.yml
+ - ansible-test-layout-detection.yml
+ - ansible-test-long-timeout-fix.yml
+ - ansible-test-minimum-setuptools.yml
+ - ansible-test-nios-container.yml
+ - ansible-test-pylint-update.yml
+ - ansible-test-pytest-forked.yml
+ - ansible-test-python-3.12.yml
+ - ansible-test-pyyaml-build.yml
+ - ansible-test-remove-old-rhel-remotes.yml
+ - ansible-test-remove-ubuntu-2004.yml
+ - ansible-test-rhel-9.2-python-3.11.yml
+ - ansible-test-rhel-9.2.yml
+ - ansible-test-sanity-scope.yml
+ - ansible-test-source-detection.yml
+ - ansible-test-thread-coverage.yml
+ - ansible-test-timeout-fix.yml
+ - ansible-test-unique-container-names.yml
+ - ansible-test-use-raise-from.yml
+ - ansible-test-utcnow.yml
+ - ansible-test-winrm-config.yml
+ - ansible-vault.yml
+ - ansible_test_alpine_3.18.yml
+ - apt_fail_on_autoremove.yml
+ - aptclean_diff.yml
+ - basestrategy-lazy-templar.yml
+ - ci_freebsd_new.yml
+ - collections_paths-deprecation.yml
+ - colors.yml
+ - command-expand-args.yml
+ - config_origins_option.yml
+ - connection-type-annotation.yml
+ - copy_diff.yml
+ - deb822_open_url.yml
+ - debconf.yml
+ - deprecated_string_conversion_action.yml
+ - display_proxy.yml
+ - dnf-update-only-latest.yml
+ - dnf5-cacheonly.yml
+ - dnf5-fix-interpreter-fail-msg.yml
+ - dnf5-gpg-check-api.yml
+ - dnf5-gpg-check-builtin.yml
+ - dnf5-logs-api.yml
+ - dnf5-test-env-groups.yml
- dotnet-preparation.yml
- - freebsd-12.3-replacement.yml
+ - dpkg_selections.yml
+ - fbsd13_1_remove.yml
+ - fetch_url-remove-auto-disable-decompress.yml
+ - find-mode.yml
+ - first_found_fixes.yml
+ - first_found_template_fix.yml
+ - fix-display-prompt-cpu-consumption.yml
+ - fix-handlers-callback.yml
+ - fix-pkg-mgr-in-TencentOS.yml
+ - fix-setuptools-warnings.yml
+ - fix-url-lookup-plugin-docs.yml
+ - forced_local+fix+.yml
+ - freebsd_12_4_removal.yml
+ - galaxy_check_type.yml
+ - galaxy_symlink.yml
+ - gather_facts_fix_parallel.yml
+ - get_action_args_with_defaults-remove-deprecated-arg.yml
+ - group_warning.yml
+ - inventory_cache-remove-deprecated-default-section.yml
+ - inventory_ini.yml
+ - jinja_plugin_cache_cleanup.yml
+ - long-collection-paths-fix.yml
+ - man-page-build-docs-dependency.yml
+ - man-page-subcommands.yml
+ - manifest-in-cleanup.yml
+ - mc_from_config.yml
+ - missing-doc-func.yml
+ - no-arbitrary-j2-override.yml
+ - omit-man-pages-from-sdist.yml
+ - parsing-splitter-fixes.yml
+ - passlib_or_crypt.yml
+ - password_hash-fix-crypt-salt-bcrypt.yml
+ - pep517-backend-import-fix.yml
+ - pep517-backend-traceback-fix.yml
+ - pep8-known-issue.yml
+ - persist_skip.yml
+ - pkg_mgr-default-dnf.yml
+ - powershell-module-error-handling.yml
+ - pre-release-hint-for-dep-resolution-error.yml
+ - pylint-deprecated-comment-checker.yml
+ - reboot.yml
+ - remove-deprecated-actionbase-_remote_checksum.yml
+ - remove-deprecated-datetime-methods.yml
+ - remove-deprecated-filelock-class.yml
+ - remove-docs-examples.yml
+ - remove-include.yml
+ - remove-play_iterator-deprecated-methods.yml
+ - remove-python3.5.yml
+ - remove-python3.9-controller-support.yml
+ - remove-templar-shared_loader_obj-arg.yml
+ - remove-unreachable-include_role-static-err.yml
+ - remove_md5.yml
+ - role-deduplication-condition.yml
+ - run-command-selectors-prompt-only.yml
+ - server2012-deprecation.yml
+ - service_facts_rcctl.yml
+ - service_facts_simpleinit_msb.yml
+ - service_fix_obsd.yml
+ - set-filters.yml
+ - setup_facter_fix.yml
+ - simple-result-queue.yml
+ - smart_connection_bye.yml
+ - suppressed-options.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:
+ - templar-globals-dict.yml
+ - templating_fixes.yml
+ - text-converters.yml
+ - timeout_config_fix.yml
+ - update-maybe-json-uri.yml
+ - urls-client-cert-py12.yml
+ - urls-unit-test-latest-cryptography.yml
+ - user-add-password-exp-warning.yml
+ - v2.16.0-initial-commit.yaml
+ - vault_unvault_id_fix.yml
+ - yum-repository-docs-fixes.yml
+ - yum_repository_keepcache.yml
+ release_date: '2023-09-26'
+ 2.16.0b2:
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.
+ - '``import_role`` reverts to previous behavior of exporting vars at compile
+ time.'
- ansible-galaxy info - fix reporting no role found when lookup_role_by_name
returns None.
+ - uri/urls - Add compat function to handle the ability to parse the filename
+ from a Content-Disposition header (https://github.com/ansible/ansible/issues/81806)
- 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
+ - ansible-test - When invoking ``sleep`` in containers during container setup,
+ the ``env`` command is used to avoid invoking the shell builtin, if present.
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>`__
+ | `Porting Guide <https://docs.ansible.com/ansible-core/2.16/porting_guides/porting_guide_core_2.16.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
+ codename: All My Love
fragments:
- - 2.14.11rc1_summary.yaml
+ - 2.16.0b2_summary.yaml
+ - 81806-py2-content-disposition.yml
+ - ansible-test-container-sleep.yml
- cve-2023-5115.yml
- fix-ansible-galaxy-info-no-role-found.yml
- - galaxy_dep_res_msgs.yml
- - jinja_plugin_cache_cleanup.yml
+ - import_role_goes_public.yml
- winrm-send-input.yml
release_date: '2023-10-03'
- 2.14.12:
+ 2.16.0rc1:
+ changes:
+ bugfixes:
+ - Cache host_group_vars after instantiating it once and limit the amount of
+ repetitive work it needs to do every time it runs.
+ - Call PluginLoader.all() once for vars plugins, and load vars plugins that
+ run automatically or are enabled specifically by name subsequently.
+ - Fix ``run_once`` being incorrectly interpreted on handlers (https://github.com/ansible/ansible/issues/81666)
+ - Properly template tags in parent blocks (https://github.com/ansible/ansible/issues/81053)
+ - ansible-galaxy - Provide a better error message when using a requirements
+ file with an invalid format - https://github.com/ansible/ansible/issues/81901
+ - ansible-inventory - index available_hosts for major performance boost when
+ dumping large inventories
+ - ansible-test - Add a ``pylint`` plugin to work around a known issue on Python
+ 3.12.
+ - ansible-test - Include missing ``pylint`` requirements for Python 3.10.
+ - ansible-test - Update ``pylint`` to version 3.0.1.
+ deprecated_features:
+ - Old style vars plugins which use the entrypoints `get_host_vars` or `get_group_vars`
+ are deprecated. The plugin should be updated to inherit from `BaseVarsPlugin`
+ and define a `get_vars` method as the entrypoint.
+ minor_changes:
+ - ansible-test - Make Python 3.12 the default version used in the ``base`` and
+ ``default`` containers.
+ release_summary: '| Release Date: 2023-10-16
+
+ | `Porting Guide <https://docs.ansible.com/ansible-core/2.16/porting_guides/porting_guide_core_2.16.html>`__
+
+ '
+ codename: All My Love
+ fragments:
+ - 2.16.0rc1_summary.yaml
+ - 79945-host_group_vars-improvements.yml
+ - 81053-templated-tags-inheritance.yml
+ - 81666-handlers-run_once.yml
+ - 81901-galaxy-requirements-format.yml
+ - ansible-test-pylint3-update.yml
+ - ansible-test-python-3.12-compat.yml
+ - ansible-test-python-default.yml
+ - inv_available_hosts_to_frozenset.yml
+ release_date: '2023-10-16'
+ 2.16.1:
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>`__
+ | `Porting Guide <https://docs.ansible.com/ansible-core/2.16/porting_guides/porting_guide_core_2.16.html>`__
'
- codename: C'mon Everybody
+ codename: All My Love
fragments:
- - 2.14.12_summary.yaml
+ - 2.16.1_summary.yaml
release_date: '2023-12-04'
- 2.14.12rc1:
+ 2.16.1rc1:
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:
+ - Fix issue where an ``include_tasks`` handler in a role was not able to locate
+ a file in ``tasks/`` when ``tasks_from`` was used as a role entry point and
+ ``main.yml`` was not present (https://github.com/ansible/ansible/issues/82241)
+ - Plugin loader does not dedupe nor cache filter/test plugins by file basename,
+ but full path name.
+ - Restoring the ability of filters/tests can have same file base name but different
+ tests/filters defined inside.
- 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.
+ - ansible-pull will now correctly handle become and connection password file
+ options for ansible-playbook.
+ - flush_handlers - properly handle a handler failure in a nested block when
+ ``force_handlers`` is set (http://github.com/ansible/ansible/issues/81532)
+ - module no_log will no longer affect top level booleans, for example ``no_log_module_parameter='a'``
+ will no longer hide ``changed=False`` as a 'no log value' (matches 'a').
+ - role params now have higher precedence than host facts again, matching documentation,
+ this had unintentionally changed in 2.15.
+ - wait_for should not handle 'non mmapable files' again.
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>`__
+ | `Porting Guide <https://docs.ansible.com/ansible-core/2.16/porting_guides/porting_guide_core_2.16.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
+ codename: All My Love
fragments:
- - 2.14.12rc1_summary.yaml
- - ansible-test-cgroup-split.yml
- - ansible-test-windows-2012-and-2012-R2.yml
+ - 2.16.1rc1_summary.yaml
+ - 81532-fix-nested-flush_handlers.yml
+ - 82241-handler-include-tasks-from.yml
- cve-2023-5764.yml
+ - j2_load_fix.yml
+ - no_log_booly.yml
+ - pull_file_secrets.yml
- pull_unfrack_dest.yml
+ - restore_role_param_precedence.yml
+ - wait_for_mmap.yml
release_date: '2023-11-27'
- 2.14.13:
+ 2.16.2:
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>`__
+ | `Porting Guide <https://docs.ansible.com/ansible-core/2.16/porting_guides/porting_guide_core_2.16.html>`__
'
- codename: C'mon Everybody
+ codename: All My Love
fragments:
- - 2.14.13_summary.yaml
- - ci_freebsd_new.yml
- - fbsd13_1_remove.yml
+ - 2.16.2_summary.yaml
- unsafe-fixes-2.yml
release_date: '2023-12-11'
- 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:
+ 2.16.3:
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
+ 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>`__
+ | `Porting Guide <https://docs.ansible.com/ansible-core/2.16/porting_guides/porting_guide_core_2.16.html>`__
'
- codename: C'mon Everybody
+ codename: All My Love
fragments:
- - 2.14.4_summary.yaml
- release_date: '2023-03-27'
- 2.14.4rc1:
+ - 2.16.3_summary.yaml
+ release_date: '2024-01-29'
+ 2.16.3rc1:
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>`__
+ - Run all handlers with the same ``listen`` topic, even when notified from another
+ handler (https://github.com/ansible/ansible/issues/82363).
+ - '``ansible-galaxy role import`` - fix using the ``role_name`` in a standalone
+ role''s ``galaxy_info`` metadata by disabling automatic removal of the ``ansible-role-``
+ prefix. This matches the behavior of the Galaxy UI which also no longer implicitly
+ removes the ``ansible-role-`` prefix. Use the ``--role-name`` option or add
+ a ``role_name`` to the ``galaxy_info`` dictionary in the role''s ``meta/main.yml``
+ to use an alternate role name.'
+ - '``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-config init will now dedupe ini entries from plugins.
+ - ansible-galaxy role import - exit with 1 when the import fails (https://github.com/ansible/ansible/issues/82175).
+ - 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).
+ - delegate_to when set to an empty or undefined variable will now give a proper
+ error.
+ - dwim functions for lookups should be better at detectging role context even
+ in abscense of tasks/main.
+ - roles, code cleanup and performance optimization of dependencies, now cached, and
+ ``public`` setting is now determined once, at role instantiation.
+ - roles, the ``static`` property is now correctly set, this will fix issues
+ with ``public`` and ``DEFAULT_PRIVATE_ROLE_VARS`` controls on exporting vars.
+ - unsafe data - Enable directly using ``AnsibleUnsafeText`` with Python ``pathlib``
+ (https://github.com/ansible/ansible/issues/82414)
+ release_summary: '| Release Date: 2024-01-22
+
+ | `Porting Guide <https://docs.ansible.com/ansible-core/2.16/porting_guides/porting_guide_core_2.16.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
+ security_fixes:
+ - ANSIBLE_NO_LOG - Address issue where ANSIBLE_NO_LOG was ignored (CVE-2024-0690)
+ codename: All My Love
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:
+ - 2.16.3rc1_summary.yaml
+ - 82175-fix-ansible-galaxy-role-import-rc.yml
+ - 82363-multiple-handlers-with-recursive-notification.yml
+ - ansible-galaxy-role-install-symlink.yml
+ - cve-2024-0690.yml
+ - dedupe_config_init.yml
+ - delegate_to_invalid.yml
+ - dwim_is_role_fix.yml
+ - fix-default-ansible-galaxy-role-import-name.yml
+ - fix-runtime-metadata-modules-action_plugin.yml
+ - role_fixes.yml
+ - unsafe-intern.yml
+ release_date: '2024-01-22'
+ 2.16.4:
changes:
- release_summary: '| Release Date: 2023-06-20
+ release_summary: '| Release Date: 2024-02-26
- | `Porting Guide <https://docs.ansible.com/ansible-core/2.14/porting_guides/porting_guide_core_2.14.html>`__
+ | `Porting Guide <https://docs.ansible.com/ansible-core/2.16/porting_guides/porting_guide_core_2.16.html>`__
'
- codename: C'mon Everybody
+ codename: All My Love
fragments:
- - 2.14.7_summary.yaml
- release_date: '2023-06-20'
- 2.14.7rc1:
+ - 2.16.4_summary.yaml
+ release_date: '2024-02-26'
+ 2.16.4rc1:
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
+ - Fix loading vars_plugins in roles (https://github.com/ansible/ansible/issues/82239).
+ - expect - fix argument spec error using timeout=null (https://github.com/ansible/ansible/issues/80982).
+ - include_vars - fix calculating ``depth`` relative to the root and ensure all
+ files are included (https://github.com/ansible/ansible/issues/80987).
+ - templating - ensure syntax errors originating from a template being compiled
+ into Python code object result in a failure (https://github.com/ansible/ansible/issues/82606)
+ release_summary: '| Release Date: 2024-02-19
- | `Porting Guide <https://docs.ansible.com/ansible-core/2.14/porting_guides/porting_guide_core_2.14.html>`__
+ | `Porting Guide <https://docs.ansible.com/ansible-core/2.16/porting_guides/porting_guide_core_2.16.html>`__
'
- codename: C'mon Everybody
+ codename: All My Love
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:
+ - 2.16.4rc1_summary.yaml
+ - 80995-include-all-var-files.yml
+ - 82606-template-python-syntax-error.yml
+ - fix-expect-indefinite-timeout.yml
+ - fix-vars-plugins-in-roles.yml
+ release_date: '2024-02-19'
+ 2.16.5:
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
+ - 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>`__
+ | `Porting Guide <https://docs.ansible.com/ansible-core/2.16/porting_guides/porting_guide_core_2.16.html>`__
'
- codename: C'mon Everybody
+ codename: All My Love
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:
+ - 2.16.5_summary.yaml
+ - ansible-test-alpine-libexpat.yml
+ release_date: '2024-03-25'
+ 2.16.5rc1:
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.
+ - 'Fix an issue when setting a plugin name from an unsafe source resulted in
+ ``ValueError: unmarshallable object`` (https://github.com/ansible/ansible/issues/82708)'
+ - Harden python templates for respawn and ansiballz around str literal quoting
+ - template - Fix error when templating an unsafe string which corresponds to
+ an invalid type in Python (https://github.com/ansible/ansible/issues/82600).
+ - winrm - does not hang when attempting to get process output when stdin write
+ failed
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
+ - 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>`__
+ | `Porting Guide <https://docs.ansible.com/ansible-core/2.16/porting_guides/porting_guide_core_2.16.html>`__
'
- codename: C'mon Everybody
+ codename: All My Love
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'
+ - 2.16.5rc1_summary.yaml
+ - 82675-fix-unsafe-templating-leading-to-type-error.yml
+ - 82708-unsafe-plugin-name-error.yml
+ - ansible-test-pytest-8.yml
+ - py-tmpl-hardening.yml
+ - winrm-timeout.yml
+ release_date: '2024-03-18'