diff options
Diffstat (limited to 'changelogs/changelog.yaml')
-rw-r--r-- | changelogs/changelog.yaml | 3990 |
1 files changed, 1734 insertions, 2256 deletions
diff --git a/changelogs/changelog.yaml b/changelogs/changelog.yaml index bafe846b..89a5331e 100644 --- a/changelogs/changelog.yaml +++ b/changelogs/changelog.yaml @@ -1,1585 +1,213 @@ -ancestor: 2.9.0 +ancestor: 2.10.0 releases: - 2.10.0: + 2.11.0: changes: bugfixes: - - Address compat with rpmfluff-0.6 for integration tests - release_summary: '| Release Date: 2020-08-13 - - | `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`__ - - ' - codename: When the Levee Breaks - fragments: - - rpmfluff-compat-fixes.yml - - v2.10.0_summary.yaml - release_date: '2020-08-13' - 2.10.0b1: - changes: - bugfixes: - - ActionBase - Add new ``cleanup`` method that is explicitly run by the ``TaskExecutor`` - to ensure that the shell plugins ``tmpdir`` is always removed. This change - means that individual action plugins need not be responsible for removing - the temporary directory, which ensures that we don't have code paths that - accidentally leave behind the temporary directory. - - Add example setting for ``collections_paths`` parameter to ``examples/ansible.cfg`` - - Add missing gcp modules to gcp module defaults group - - Added support for Flatcar Container Linux in distribution and hostname modules. - (https://github.com/ansible/ansible/pull/69627) - - Added support for OSMC distro in hostname module (https://github.com/ansible/ansible/issues/66189). - - Allow tasks to notify a fqcn handler name (https://github.com/ansible/ansible/issues/68181) - - An invalid value is hard to track down if you don't know where it came from, - return field name instead. - - Ansible.Basic - Fix issue when setting a ``no_log`` parameter to an empty - string - https://github.com/ansible/ansible/issues/62613 - - 'Ansible.ModuleUtils.WebRequest - actually set no proxy when ``use_proxy: - no`` is set on a Windows module - https://github.com/ansible/ansible/issues/68528' - - AnsibleDumper - Add a representer for AnsibleUnsafeBytes (https://github.com/ansible/ansible/issues/62562). - - 'AnsibleModule.run_command() - set ``close_fds`` to ``False`` on Python 2 - if ``pass_fds`` are passed to ``run_command()``. Since ``subprocess.Popen()`` - on Python 2 does not have the ``pass_fds`` option, there is no way to exclude - a specific list of file descriptors from being closed. - - ' - - Avoid bare select() for running commands to avoid too large file descriptor - numbers failing tasks - - Avoid running subfunctions that are passed to show_vars function when it will - be a noop. - - By passing the module_tmpdir as a parameter in the write_ssh_wrapper function - instead of initalizing module_tmpdir via get_module_path() - - CLI - the `ANSIBLE_PLAYBOOK_DIR` envvar or `playbook_dir` config can now substitute - for the --playbook-dir arg on CLIs that support it (https://github.com/ansible/ansible/issues/59464) - - Check NoneType for raw_params before proceeding in include_vars (https://github.com/ansible/ansible/issues/64939). - - Collections - Allow a collection role to call a stand alone role, without - needing to explicitly add ``ansible.legacy`` to the collection search order - within the collection role. (https://github.com/ansible/ansible/issues/69101) - - Correctly process raw_params in add_hosts. - - Create an ``import_module`` compat util, for use across the codebase, to allow - collection loading to work properly on Python26 - - DUPLICATE_YAML_DICT_KEY - Fix error output when configuration option DUPLICATE_YAML_DICT_KEY - is set to error (https://github.com/ansible/ansible/issues/65366) - - Do not keep empty blocks in PlayIterator after skipping tasks with tags. - - Ensure DataLoader temp files are removed at appropriate times and that we - observe the LOCAL_TMP setting. - - Ensure that ``--version`` works with non-ascii ansible project paths (https://github.com/ansible/ansible/issues/66617) - - Ensure that keywords defined as booleans are correctly interpreting their - input, before patch any random string would be interpreted as False - - Ensure we don't allow ansible_facts subkey of ansible_facts to override top - level, also fix 'deprefixing' to prevent key transforms. - - Fact Delegation - Add ability to indicate which facts must always be delegated. - Primarily for ``discovered_interpreter_python`` right now, but extensible - later. (https://github.com/ansible/ansible/issues/61002) - - 'Fix a bug when a host was not removed from a play after ``meta: end_host`` - and as a result the host was still present in ``ansible_play_hosts`` and ``ansible_play_batch`` - variables.' - - Fix an issue with the ``fileglob`` plugin where passing a subdirectory of - non-existent directory would cause it to fail - https://github.com/ansible/ansible/issues/69450 - - Fix case sensitivity for ``lookup()`` (https://github.com/ansible/ansible/issues/66464) - - Fix collection install error that happened if a dependency specified dependencies - to be null (https://github.com/ansible/ansible/issues/67574). - - Fix https://github.com/ansible/galaxy-dev/issues/96 Add support for automation-hub - authentication to ansible-galaxy - - Fix incorrect "Could not match supplied host pattern" warning (https://github.com/ansible/ansible/issues/66764) - - Fix issue git module cannot use custom `key_file` or `ssh_opts` as non-root - user on system with noexec `/tmp` (https://github.com/ansible/ansible/issues/30064). - - Fix issue git module ignores remote_tmp (https://github.com/ansible/ansible/issues/33947). - - Fix issue where the collection loader tracebacks if ``collections_paths = - ./`` is set in the config - - Fix issue with callbacks ``set_options`` method that was not called with collections - - Fix label lookup in the default callback for includes (https://github.com/ansible/ansible/issues/65904) - - Fix regression when ``ansible_failed_task`` and ``ansible_failed_result`` - are not defined in the rescue block (https://github.com/ansible/ansible/issues/64789) - - Fix string parsing of inline vault strings for plugin config variable sources - - Fix traceback when printing ``HostVars`` on native Jinja2 (https://github.com/ansible/ansible/issues/65365) - - Fixed a bug with the copy action plugin where mode=preserve was being passed - on symlink files and causing a traceback (https://github.com/ansible/ansible/issues/68471). - - Fixed the equality check for IncludedFiles to ensure they are not accidently - merged when process_include_results runs. - - Fixes in network action plugins load from collections using module prefix - (https://github.com/ansible/ansible/issues/65071) - - Force collection names to be static so that a warning is generated because - templating currently does not work (see https://github.com/ansible/ansible/issues/68704). - - Handle empty extra vars in ansible cli (https://github.com/ansible/ansible/issues/61497). - - Handle empty roles and empty collections in requirements.yml in ansible-galaxy - install command (https://github.com/ansible/ansible/issues/68186). - - Handle exception encountered while parsing the argument description in module - when invoked via ansible-doc command (https://github.com/ansible/ansible/issues/60587). - - Handle exception when /etc/shadow file is missing or not found, while operating - user operation in user module (https://github.com/ansible/ansible/issues/63490). - - HostVarsVars - Template the __repr__ value (https://github.com/ansible/ansible/issues/64128). - - Make netconf plugin configurable to set ncclient device handler name in netconf - plugin (https://github.com/ansible/ansible/pull/65718) - - Make sure if a collection is supplied as a string that we transform it into - a list. - - Misc typo fixes in various documentation pages. - - Module arguments in suboptions which were marked as deprecated with ``removed_in_version`` - did not result in a warning. - - On HTTP status code 304, return status_code - - Plugin Metadata is supposed to have default values. When the metadata was - missing entirely, we were properly setting the defaults. Fixed the metadata - parsing so that the defaults are also set when we were missing just a few - fields. - - Prevent a race condition when running handlers using a combination of the - free strategy and include_role. - - Prevent rewriting nested Block's data in filter_tagged_tasks - - Prevent templating unused variables for {% include %} (https://github.com/ansible/ansible/issues/68699) - - Properly handle unicode in ``safe_eval``. (https://github.com/ansible/ansible/issues/66943) - - Remove a temp directory created by wait_for_connection action plugin (https://github.com/ansible/ansible/issues/62407). - - Remove the unnecessary warning about aptitude not being installed (https://github.com/ansible/ansible/issues/56832). - - Remove unused Python imports in ``ansible-inventory``. - - Role Installation - Ensure that a role containing files with non-ascii characters - can be installed (https://github.com/ansible/ansible/issues/69133) - - RoleRequirement - include stderr in the error message if a scm command fails - (https://github.com/ansible/ansible/issues/41336) - - Skipping of become for ``network_cli`` connections now works when ``network_cli`` - is sourced from a collection. - - Strictly check string datatype for 'tasks_from', 'vars_from', 'defaults_from', - and 'handlers_from' in include_role (https://github.com/ansible/ansible/issues/68515). - - Strip no log values from module response keys (https://github.com/ansible/ansible/issues/68400) - - TaskQueueManager - Explicitly set the mutliprocessing start method to ``fork`` - to avoid issues with the default on macOS now being ``spawn``. - - Templating - Ansible was caching results of Jinja2 expressions in some cases - where these expressions could have dynamic results, like password generation - (https://github.com/ansible/ansible/issues/34144). - - The ansible-galaxy publish command was using an incorrect URL for v3 servers. - The configuration for v3 servers includes part of the path fragment that was - added in the new test. - - Update ActionBase._low_level_execute_command to honor executable (https://github.com/ansible/ansible/issues/68054) - - Update the warning message for ``CONDITIONAL_BARE_VARS`` to list the original - conditional not the value of the original conditional (https://github.com/ansible/ansible/issues/67735) - - Use ``sys.exit`` instead of ``exit`` in ``ansible-inventory``. - - Use fqcr from command module invocation using shell module. Fixes https://github.com/ansible/ansible/issues/69788 - - Use hostnamectl command to get current hostname for host while using systemd - strategy (https://github.com/ansible/ansible/issues/59438). - - Using --start-at-task would fail when it attempted to skip over tasks with - no name. - - Validate include args in handlers. - - Vault - Make the single vaulted value ``AnsibleVaultEncryptedUnicode`` class - work more like a string by replicating the behavior of ``collections.UserString`` - from Python. These changes don't allow it to be considered a string, but most - common python string actions will now work as expected. (https://github.com/ansible/ansible/pull/67823) - - '``AnsibleUnsafe``/``AnsibleContext``/``Templar`` - Do not treat ``AnsibleUndefined`` - as being "unsafe" (https://github.com/ansible/ansible/issues/65198)' - - account for empty strings in when splitting the host pattern (https://github.com/ansible/ansible/issues/61964) - - add parameter name to warning message when values are converted to strings - (https://github.com/ansible/ansible/pull/57145) - - add_host action now correctly shows idempotency/changed status - - added 'unimplemented' prefix to file based caching - - added new option for default callback to compat variable to avoid old 3rd - party plugins from erroring out. - - adhoc CLI - when playbook-dir is specified and inside a collection, use default - collection logic to resolve modules/actions - - allow external collections to be created in the 'ansible' collection namespace - (https://github.com/ansible/ansible/issues/59988) - - also strip spaces around config values in pathlist as we do in list types - - ansiballz - remove '' and '.' from sys.path to fix a permissions issue on - OpenBSD with pipelining (#69320) - - ansible command now correctly sends v2_playbook_on_start to callbacks - - ansible-connection persists even after playbook run is completed (https://github.com/ansible/ansible/pull/61591) - - ansible-doc - Allow and give precedence to `removed_at_date` for deprecated - modules. - - ansible-doc now properly handles removed modules/plugins - - ansible-galaxy - Default collection install path to first path in COLLECTIONS_PATHS - (https://github.com/ansible/ansible/pull/62870) - - ansible-galaxy - Display proper error when invalid token is used for Galaxy - servers - - ansible-galaxy - Ensure we preserve the new URL when appending ``/api`` for - the case where the GET succeeds on galaxy.ansible.com - - ansible-galaxy - Expand the ``User-Agent`` to include more information and - add it to more calls to Galaxy endpoints. - - ansible-galaxy - Fix ``collection install`` when installing from a URL or - a file - https://github.com/ansible/ansible/issues/65109 - - ansible-galaxy - Fix ``multipart/form-data`` body to include extra CRLF (https://github.com/ansible/ansible/pull/67942) - - ansible-galaxy - Fix issue when compared installed dependencies with a collection - having no ``MANIFEST.json`` or an empty version string in the json - - ansible-galaxy - Fix pagination issue when retrieving role versions for install - - https://github.com/ansible/ansible/issues/64355 - - ansible-galaxy - Fix up pagination searcher for collection versions on Automation - Hub - - ansible-galaxy - Fix url building to not truncate the URL (https://github.com/ansible/ansible/issues/61624) - - ansible-galaxy - Handle the different task resource urls in API responses - from publishing collection artifacts to galaxy servers using v2 and v3 APIs. - - ansible-galaxy - Preserve symlinks when building and installing a collection - - ansible-galaxy - Remove uneeded verbose messages when accessing local token - file - - ansible-galaxy - Return the HTTP code reason if no error msg was returned - by the server - https://github.com/ansible/ansible/issues/64850 - - ansible-galaxy - Send SHA256 hashes when publishing a collection - - ansible-galaxy - Set ``User-Agent`` to Ansible version when interacting with - Galaxy or Automation Hub - - ansible-galaxy - Treat the ``GALAXY_SERVER_LIST`` config entry that is defined - but with no values as an empty list - - ansible-galaxy - Utilize ``Templar`` for templating skeleton files, so that - they have access to Ansible filters/tests/lookups (https://github.com/ansible/ansible/issues/69104) - - 'ansible-galaxy - fix a bug where listing a specific role if it was not in - the first path failed to find the role - - ' - - ansible-galaxy - fix regression that prenented roles from being listed - - 'ansible-galaxy - hide warning during collection installation if other installed - collections do not contain a ``MANIFEST.json`` (https://github.com/ansible/ansible/issues/67490) - - ' - - ansible-galaxy - properly list roles when the role name also happens to be - in the role path (https://github.com/ansible/ansible/issues/67365) - - ansible-galaxy - properly show the role description when running offline (https://github.com/ansible/ansible/issues/60167) - - ansible-galaxy cli - fixed ``--version`` argument - - ansible-galaxy collection - Preserve executable bit on build and preserve - mode on install from what tar member is set to - https://github.com/ansible/ansible/issues/68415 - - ansible-galaxy role - Fix issue where ``--server`` was not being used for - certain ``ansible-galaxy role`` actions - https://github.com/ansible/ansible/issues/61609 - - ansible-galaxy- On giving an invalid subcommand to ansible-galaxy, the help - would be shown only for role subcommand (collection subcommand help is not - shown). With this change, the entire help for ansible-galaxy (same as ansible-galaxy - --help) is displayed along with the help for role subcommand. (https://github.com/ansible/ansible/issues/69009) - - ansible-inventory - Fix long standing bug not loading vars plugins for group - vars relative to the playbook dir when the '--playbook-dir' and '--export' - flags are used together. - - ansible-inventory - Fix regression loading vars plugins. (https://github.com/ansible/ansible/issues/65064) - - ansible-inventory - Properly hide arguments that should not be shown (https://github.com/ansible/ansible/issues/61604) - - ansible-inventory - Restore functionality to allow ``--graph`` to be limited - by a host pattern - - ansible-test - Code cleanup. - - ansible-test - Disabled the ``duplicate-code`` and ``cyclic-import`` checks - for the ``pylint`` sanity test due to inconsistent results. - - ansible-test - Do not warn on missing PowerShell or C# util that are in other - collections - - ansible-test - Fix PowerShell module util analysis to properly detect the - names of a util when running in a collection - - ansible-test - Fix regression introduced in https://github.com/ansible/ansible/pull/67063 - which caused module_utils analysis to fail on Python 2.x. - - ansible-test - Fix traceback in validate-modules test when argument_spec is - None. - - ansible-test - Make sure import sanity test virtual environments also remove - ``pkg-resources`` if it is not removed by uninstalling ``setuptools``. - - ansible-test - Remove out-of-date constraint on installing paramiko versions - 2.5.0 or later in tests. - - ansible-test - The ``import`` sanity test now correctly blocks access to python - modules, not just packages, in the ``ansible`` package. - - ansible-test - The ``import`` sanity test now correctly provides an empty - ``ansible`` package. - - ansible-test - The shebang sanity test now correctly identifies modules in - subdirectories in collections. - - ansible-test - Updated Python constraints for installing ``coverage`` to resolve - issues on multiple Python versions when using the ``--coverage`` option. - - ansible-test - Updated requirements to limit ``boto3`` and ``botocore`` versions - on Python 2.6 to supported versions. - - ansible-test - Use ``sys.exit`` instead of ``exit``. - - ansible-test - Use ``virtualenv`` versions before 20 on provisioned macOS - instances to remain compatible with an older pip install. - - ansible-test - avoid use of deprecated junit_xml method - - ansible-test - bump version of ACME test container. The new version includes - updated dependencies. - - ansible-test - during module validation, handle add_file_common_args only - for top-level arguments. - - ansible-test - during module validation, improve alias handling. - - ansible-test - for local change detection, allow to specify branch to compare - to with ``--base-branch`` for all types of tests (https://github.com/ansible/ansible/pull/69508). - - ansible-test - improve ``deprecate()`` call checker. - - ansible-test can now install argparse with ``--requirements`` or delegation - when the pip version in use is older than version 7.1 - - ansible-test change detection - Run only sanity tests on ``docs/`` and ``changelogs/`` - in collections, to avoid triggering full CI runs of integration and unit tests - when files in these directories change. - - ansible-test coverage - Fix the ``--all`` argument when generating coverage - reports - https://github.com/ansible/ansible/issues/62096 - - ansible-test import sanity test now consistently reports errors against the - file being tested. - - ansible-test import sanity test now consistently reports warnings as errors. - - ansible-test import sanity test now properly handles relative imports. - - ansible-test import sanity test now properly invokes Ansible modules as scripts. - - ansible-test is now able to find its ``egg-info`` directory when it contains - the Ansible version number - - ansible-test no longer errors reporting coverage when no Python coverage exists. - This fixes issues reporting on PowerShell only coverage from collections. - - ansible-test no longer fails when downloading test results for a collection - without a ``tests`` directory when using the ``--docker`` option. - - ansible-test no longer optimizes setting ``PATH`` by prepending the directory - containing the selected Python interpreter when it is named ``python``. This - avoids unintentionally making other programs available on ``PATH``, including - an already installed version of Ansible. - - ansible-test no longer tracebacks during change analysis due to processing - an empty python file - - ansible-test no longer tries to install ``coverage`` 5.0+ since those versions - are unsupported - - ansible-test no longer tries to install ``setuptools`` 45+ on Python 2.x since - those versions are unsupported - - ansible-test now correctly collects code coverage on the last task in a play. - This should resolve issues with missing code coverage, empty coverage files - and corrupted coverage files resulting from early worker termination. - - ansible-test now correctly enumerates submodules when a collection resides - below the repository root - - ansible-test now correctly excludes the test results temporary directory when - copying files from the remote test system to the local system - - ansible-test now correctly includes inventory files ignored by git when running - tests with the ``--docker`` option - - ansible-test now correctly installs the requirements specified by the collection's - unit and integration tests instead of the requirements specified for Ansible's - own unit and integration tests - - ansible-test now correctly recognizes imports in collections when using the - ``--changed`` option. - - ansible-test now correctly rewrites coverage paths for PowerShell files when - testing collections - - ansible-test now creates its integration test temporary directory within the - collection so ansible-playbook can properly detect the default collection - - ansible-test now enables color ``ls`` on a remote host only if the host supports - the feature - - ansible-test now ignores empty ``*.py`` files when analyzing module_utils - imports for change detection - - ansible-test now ignores version control within subdirectories of collections. - Previously this condition was an error. - - ansible-test now ignores warnings when comparing pip versions before and after - integration tests run - - ansible-test now installs sanity test requirements specific to each test instead - of installing requirements for all sanity tests - - ansible-test now installs the correct version of ``cryptography`` with ``--requirements`` - or delegation when setuptools is older than version 18.5 - - ansible-test now limits Jinja2 installs to version 2.10 and earlier on Python - 2.6 - - ansible-test now limits ``pathspec`` to versions prior to 0.6.0 on Python - 2.6 to avoid installation errors - - ansible-test now limits installation of ``hcloud`` to Python 2.7 and 3.5 - - 3.8 since other versions are unsupported - - ansible-test now limits the version of ``setuptools`` on Python 2.6 to versions - older than 37 - - ansible-test now loads the collection loader plugin early enough for ansible_collections - imports to work in unit test conftest.py modules - - ansible-test now preserves existing SSH authorized keys when provisioning - a remote host - - ansible-test now properly activates the vcenter plugin for vcenter tests when - docker is available - - ansible-test now properly activates virtual environments created using the - --venv option - - ansible-test now properly creates a virtual environment using ``venv`` when - running in a ``virtualenv`` created virtual environment - - ansible-test now properly excludes the ``tests/output/`` directory from code - coverage - - ansible-test now properly handles creation of Python execv wrappers when the - selected interpreter is a script - - ansible-test now properly handles enumeration of git submodules. Enumeration - is now done with ``git submodule status --recursive`` without specifying ``.`` - for the path, since that could cause the command to fail. Instead, relative - paths outside the current directory are filtered out of the results. Errors - from ``git`` commands will now once again be reported as errors instead of - warnings. - - ansible-test now properly handles warnings for removed modules/plugins - - ansible-test now properly ignores the ``tests/output//`` directory when not - using git - - ansible-test now properly installs requirements for multiple Python versions - when running sanity tests - - ansible-test now properly recognizes modules and module_utils in collections - when using the ``blacklist`` plugin for the ``pylint`` sanity test - - ansible-test now properly registers its own code in a virtual environment - when running from an install - - ansible-test now properly reports import errors for collections when running - the import sanity test - - ansible-test now properly searches for ``pythonX.Y`` instead of ``python`` - when looking for the real python that created a ``virtualenv`` - - ansible-test now properly sets PYTHONPATH for tests when running from an Ansible - installation - - ansible-test now properly sets ``ANSIBLE_PLAYBOOK_DIR`` for integration tests - so unqualified collection references work for adhoc ``ansible`` usage - - ansible-test now properly uses a fresh copy of environment variables for each - command invocation to avoid mixing vars between commands - - ansible-test now shows sanity test doc links when installed (previously the - links were only visible when running from source) - - ansible-test now shows the correct source path instead of ``%s`` for collection - role based test targets when the ``-v`` option is used - - ansible-test now supports submodules using older ``git`` versions which require - querying status from the top level directory of the repo. - - ansible-test now updates SSH keys it generates with newer versions of ssh-keygen - to function with Paramiko - - ansible-test now upgrades ``pip`` with `--requirements`` or delegation as - needed when the pip version in use is older than version 7.1 - - ansible-test now uses GNU tar format instead of the Python default when creating - payloads for remote systems - - ansible-test now uses ``pycodestyle`` frozen at version 2.6.0 for consistent - test results. - - ansible-test now uses modules from the ``ansible.windows`` collection for - setup and teardown of ``windows-integration`` tests and code coverage - - ansible-test once again properly collects code coverage for ``ansible-connection`` - - ansible-test validate-modules - Fix arg spec collector for PowerShell to find - utils in both a collection and base. - - ansible-test validate-modules sanity test code ``missing-module-utils-import-c#-requirements`` - is now ``missing-module-utils-import-csharp-requirements`` (fixes ignore bug). - - ansible-test validate-modules sanity test code ``multiple-c#-utils-per-requires`` - is now ``multiple-csharp-utils-per-requires`` (fixes ignore bug). - - ansible-test validate-modules sanity test now checks for AnsibleModule initialization - instead of module_utils imports, which did not work in many cases. - - ansible-test validate-modules sanity test now properly handles collections - imports using the Ansible collection loader. - - ansible-test validate-modules sanity test now properly handles relative imports. - - ansible-test validate-modules sanity test now properly handles sys.exit in - modules. - - ansible-test validate-modules sanity test now properly invokes Ansible modules - as scripts. - - ansible-test windows coverage - Ensure coverage reports are UTF-8 encoded - without a BOM - - ansible-test windows coverage - Output temp files as UTF-8 with BOM to standardise - against non coverage runs - - ansible-vault - Fix ``encrypt_string`` output in a tty when using ``--sdtin-name`` - option (https://github.com/ansible/ansible/issues/65121) - - ansible-vault create - Fix exception on no arguments given - - apt - Fixed the issue the cache being updated while auto-installing its dependencies - even when ``update_cache`` is set to false. - - assemble module - fix documentation - the remote_src property specified a - default value of no but it's actually yes. - - avoid fatal traceback when a bad FQCN for a callback is supplied in the whitelist - (#69401). - - become - Fix various plugins that still used play_context to get the become - password instead of through the plugin - https://github.com/ansible/ansible/issues/62367 - - 'blockinfile - fix regression that results in incorrect block in file when - the block to be inserted does not end in a line separator (https://github.com/ansible/ansible/pull/69734) - - ' - - blockinfile - preserve line endings on update (https://github.com/ansible/ansible/issues/64966) - - clean_facts - use correct variable to avoid unnecessary handling of ``AttributeError`` - - code - removes some Python compatibility code for dealing with socket timeouts - in ``wait_for`` - - collection loader - ensure Jinja function cache is fully-populated before - lookup - - collection loader - fixed relative imports on Python 2.7, ensure pluginloader - caches use full name to prevent names from being clobbered (https://github.com/ansible/ansible/pull/60317) - - collection_loader - sort Windows modules below other plugin types so the correct - builtin plugin inside a role is selected (https://github.com/ansible/ansible/issues/65298) - - collections - Handle errors better for filters and tests in collections, where - a non-existent collection is specified, or importing the plugin results in - an exception (https://github.com/ansible/ansible/issues/66721) - - combine filter - ``[dict1, [dict2]] | combine`` now raise an error; previously - ``combine`` had an undocumented behaviour where it was flattening the list - before combining it (https://github.com/ansible/ansible/pull/57894#discussion_r339517518). - - config - encoding failures on config values should be non-fatal (https://github.com/ansible/ansible/issues/63310) - - copy - Fix copy modes when using remote_src=yes and src is a directory with - trailing slash. - - copy - Fixed copy module not working in case that remote_src is enabled and - dest ends in a / (https://github.com/ansible/ansible/pull/47238) - - copy - recursive copy with ``remote_src=yes`` now recurses beyond first level. - (Fixes https://github.com/ansible/ansible/issues/58284) - - core - remove unneeded Python version checks. - - core - replace a compatibility import of pycompat24.literal_eval with ast.literal_eval. - - core filters - fix ``extract()`` filter when key does not exist in container - (https://github.com/ansible/ansible/issues/64957) - - cron and cronvar - use get_bin_path utility to locate the default crontab - executable instead of the hardcoded /usr/bin/crontab. (https://github.com/ansible/ansible/pull/59765) - - cron cronvar - only run ``get_bin_path()`` once - - cronvar - use correct binary name (https://github.com/ansible/ansible/issues/63274) - - deal with cases in which just a file is pased and not a path with directories, - now fileglob correctly searches in 'files/' subdirs. - - debug - fixed an issue introduced in Ansible 2.4 where a loop of debug tasks - would lose the "changed" status on each item. - - discovery will NOT update incorrect host anymore when in delegate_to task. - - display - Improve method of removing extra new line after warnings so it does - not break Tower/Runner (https://github.com/ansible/ansible/pull/68517) - - display - remove extra new line after warnings (https://github.com/ansible/ansible/pull/65199) - - display - remove leading space when displaying WARNING messages - - display logging - Fix issue where 3rd party modules will print tracebacks - when attempting to log information when ``ANSIBLE_LOG_PATH`` is set - https://github.com/ansible/ansible/issues/65249 - - display logging - Fixed up the logging formatter to use the proper prefixes - for ``u=user`` and ``p=process`` - - display logging - Re-added the ``name`` attribute to the log formatter so - that the source of the log can be seen - - 'dnf - Fix idempotence of `state: installed` (https://github.com/ansible/ansible/issues/64963)' - - dnf - Unified error messages when trying to install a nonexistent package - with newer dnf (4.2.18) vs older dnf (4.2.9) - - dnf - Unified error messages when trying to remove a wildcard name that is - not currently installed, with newer dnf (4.2.18) vs older dnf (4.2.9) - - dnf - enable logging using setup_loggers() API in dnf-4.2.17-6 or later - - dnf - remove custom ``fetch_rpm_from_url`` method in favor of more general - ``ansible.module_utils.urls.fetch_file``. - - dnf module - Ensure the modules exit_json['msg'] response is always string, - not sometimes a tuple. - - ensure we pass on interpreter discovery values to delegated host. - - env lookup plugin - Fix handling of environment variables values containing - utf-8 characters. (https://github.com/ansible/ansible/issues/65298) - - fact gathering - Display warnings and deprecation messages that are created - during the fact gathering phase - - facts - fix detection of virtualization type when dmi product name is KVM - Server - - facts - introduce fact "ansible_processor_nproc" which reflects the number - of vcpus available to processes (falls back to the number of vcpus available - to the scheduler) - - file - Removed unreachable code in module - - file - change ``_diff_peek`` in argument spec to be the correct type, which - is ``bool`` (https://github.com/ansible/ansible/issues/59433) - - 'file - return ``''state'': ''absent''`` when a file does not exist (https://github.com/ansible/ansible/issues/66171)' - - find - clarify description of ``contains`` (https://github.com/ansible/ansible/issues/61983) - - fix issue in which symlinked collection cannot be listed, though the docs/plugins - can be loaded if referenced directly. - - fix wrong command line length calculation in ``ansible-console`` when long - command inputted - - 'for those running uids for invalid users (containers), fallback to uid=<uid> - when logging fixes #68007' - - free strategy - Include failed hosts when filtering notified hosts for handlers. - The strategy base should determine whether or not to run handlers on those - hosts depending on whether forcing handlers is enabled (https://github.com/ansible/ansible/issues/65254). - - galaxy - Fix an AttributeError on ansible-galaxy install with an empty requirements.yml - (https://github.com/ansible/ansible/issues/66725). - - get_url - Don't treat no checksum as a checksum match (https://github.com/ansible/ansible/issues/61978) - - get_url pass incorrect If-Modified-Since header (https://github.com/ansible/ansible/issues/67417) - - git - when force=True, apply --force flag to git fetches as well - - 'group - The group module was not correctly detecting whether a local group - is existing or not with local set to yes if the same group exists in a non - local group repository e.g. LDAP. (https://github.com/ansible/ansible/issues/58619) - - ' - - group_by now should correctly refect changed status. - - hostname - Fixed an issue where the hostname on the cloudlinux 6 server could - not be set. - - hostname - make module work on Manjaro Linux (https://github.com/ansible/ansible/issues/61382) - - hurd - Address FIXMEs. Extract functionality and exit early. - - include_vars - fix stack trace when passing ``dirs`` in an ad-hoc command - (https://github.com/ansible/ansible/issues/62633) - - interpreter discovery will now use correct vars (from delegated host) when - in delegate_to task. - - junit callback - avoid use of deprecated junit_xml method - - lineinfile - add example of using alternative backrefs syntax (https://github.com/ansible/ansible/issues/42794) - - lineinfile - don't attempt mkdirs when path doesn't contain directory path - - lineinfile - fix bug that caused multiple line insertions (https://github.com/ansible/ansible/issues/58923). - - lineinfile - properly handle inserting a line when backrefs are enabled and - the line already exists in the file (https://github.com/ansible/ansible/issues/63756) - - lineinfile - use ``module.tmpdir`` to allow configuration of the remote temp - directory (https://github.com/ansible/ansible/issues/68218) - - lineinfile - use correct index value when inserting a line at the end of a - file (https://github.com/ansible/ansible/issues/63684) - - loops - Do not indiscriminately mark loop items as unsafe, only apply unsafe - to ``with_`` style loops. The items from ``loop`` should not be explicitly - wrapped in unsafe. The underlying templating mechanism should dictate this. - (https://github.com/ansible/ansible/issues/64379) - - make ``no_log=False`` on a module option silence the ``no_log`` warning (https://github.com/ansible/ansible/issues/49465 - https://github.com/ansible/ansible/issues/64656) - - match docs for ssh and ensure pipelining is configurable per connection plugin. - - module executor - Address issue where changes to Ansiballz module code, change - the behavior of module execution as it pertains to ``__file__`` and ``sys.modules`` - (https://github.com/ansible/ansible/issues/64664) - - module_defaults - support candidate action names for relocated content - - module_defaults - support short group names for content relocated to collections - - now correclty merge and not just overwrite facts when gathering using multiple - modules. - - objects - Remove FIXME comment because no fix is needed. - - optimize 'smart' detection from being run over and over and preferably do - it at config time. - - package_facts - fix value of ``vital`` attribute which is returned when ``pkg`` - manager is used - - package_facts - use module warnings rather than a custom implementation for - reporting warnings - - packaging_yum - replace legacy file handling with a file manager. - - paramiko - catch and handle exception to prevent stack trace when running - in FIPS mode - - paramiko_ssh - Removed redundant conditional statement in ``_parse_proxy_command`` - that always evaluated to True. - - paramiko_ssh - improve authentication error message so it is less confusing - - paramiko_ssh - optimized file handling by using a context manager. - - pip - The virtualenv_command option can now include arguments without requiring - the full path to the binary. (https://github.com/ansible/ansible/issues/52275) - - 'pip - check_mode with ``state: present`` now returns the correct state for - pre-release versioned packages' - - plugins - Allow ensure_type to decrypt the value for string types (and implicit - string types) when value is an inline vault. - - psexec - Fix issue where the Kerberos package was not detected as being available. - - psexec - Fix issue where the ``interactive`` option was not being passed down - to the library. - - reboot, win_reboot - add ``boot_time_command`` parameter to override the default - command used to determine whether or not a system was rebooted (https://github.com/ansible/ansible/issues/58868) - - remove update/restore of vars from play_context as it is now redundant. - - replace use of deprecated functions from ``ansible.module_utils.basic``. - - 'roles - Ensure that ``allow_duplicates: true`` enables to run single role - multiple times (https://github.com/ansible/ansible/issues/64902)' - - runas - Fix the ``runas`` ``become_pass`` variable fallback from ``ansible_runas_runas`` - to ``ansible_runas_pass`` - - service_facts - Now correctly parses systemd list-unit-files for systemd >=245 - - setup - properly detect yum package manager for IBM i. - - setup - service_mgr - detect systemd even if it isn't running, such as during - a container build - - shell cmd - Properly escape double quotes in the command argument - - synchronize - allow data to be passed between two managed nodes when using - the docker connection plugin (https://github.com/ansible/ansible/pull/65698) - - synchronize - fix password authentication on Python 2 (https://github.com/ansible/ansible/issues/56629) - - sysctl - Remove FIXME comments to avoid confusion - - systemd - don't require systemd to be running to enable/disable or mask/unmask - units - - systemd - the module should fail in check_mode when service not found on host - (https://github.com/ansible/ansible/pull/68136). - - sysvinit - Add missing parameter ``module`` in call to ``daemonize()``. - - template lookup - ensure changes to the templar in the lookup, do not affect - the templar context outside of the lookup (https://github.com/ansible/ansible/issues/60106) - - template lookup - fix regression when templating hostvars (https://github.com/ansible/ansible/issues/63940) - - the default parsing will now show existing JSON errors and not just YAML (last - attempted), also we avoid YAML parsing when we know we only want JSON issue - - 'throttle: the linear strategy didn''t always stuck with the throttle limit' - - unarchive - Remove incorrect and unused function arguments. - - unsafe_proxy - Ensure that data within a tuple is marked as unsafe (https://github.com/ansible/ansible/issues/65722) - - 'update ``user`` module to support silencing ``no_log`` warnings in the future - (see: https://github.com/ansible/ansible/pull/64733)' - - uri - Don't return the body even if it failed (https://github.com/ansible/ansible/issues/21003) - - user - allow 13 asterisk characters in password field without warning - - user - fix comprasion on macOS so module does not improperly report a change - (https://github.com/ansible/ansible/issues/62969) - - user - fix stack trace on AIX when attempting to parse shadow file that does - not exist (https://github.com/ansible/ansible/issues/62510) - - user - on systems using busybox, honor the ``on_changed`` parameter to prevent - unnecessary password changing (https://github.com/ansible/ansible/issues/65711) - - user - update docs to reflect proper way to remove account from all groups - - validate-modules - Fix hang when inspecting module with a delegate args spec - type - - virtual facts - detect generic container environment based on non-empty "container" - env var - - wait_for_connection - with pipelining enabled, interpreter discovery would - fail if the first connection attempt was not successful - - win_exec_wrapper - Be more defensive when it comes to getting unhandled exceptions - - win_package - Handle quoted and unquoted strings in the registry ``UninstallString`` - value - https://github.com/ansible/ansible/issues/40973 - - 'win_uri win_get_url - Fix the behaviour of ``follow_redirects: safe`` to - actual redirect on ``GET`` and ``HEAD`` requests - https://github.com/ansible/ansible/issues/65556' - - windows environment - Support env vars that contain the unicode variant of - single quotes - https://github.com/ansible-collections/ansible.windows/issues/45 - - yum - fix bug that caused ``enablerepo`` to not be honored when used with - disablerepo all wildcard/glob (https://github.com/ansible/ansible/issues/66549) - - yum - fixed the handling of releasever parameter - - yum - performance bugfix, the YumBase object was being instantiated multiple - times unnecessarily, which lead to considerable overhead when operating against - large sets of packages. - - yum - yum tasks can no longer end up running non-yum modules - - yum/dnf - check type of elements in a name - deprecated_features: - - Using the DefaultCallback without the correspodning doc_fragment or copying - the documentation. - - hash_behaviour - Deprecate ``hash_behaviour`` for future removal. - - script inventory plugin - The 'cache' option is deprecated and will be removed - in 2.12. Its use has been removed from the plugin since it has never had any - effect. + - ansible-test - ensure the correct unit test target is given when the ``__init__.py`` + file is modified inside the connection plugins directory major_changes: - - Both ansible-doc and ansible-console's help command will error for modules - and plugins whose return documentation cannot be parsed as YAML. All modules - and plugins passing ``ansible-test sanity --test yamllint`` will not be affected - by this. - - Collections may declare a list of supported/tested Ansible versions for the - collection. A warning is issued if a collection does not support the Ansible - version that loads it (can also be configured as silent or a fatal error). - Collections that do not declare supported Ansible versions do not issue a - warning/error. - - Plugin routing allows collections to declare deprecation, redirection targets, - and removals for all plugin types. - - Plugins that import module_utils and other ansible namespaces that have moved - to collections should continue to work unmodified. - - Routing data built into Ansible 2.10 ensures that 2.9 content should work - unmodified on 2.10. Formerly included modules and plugins that were moved - to collections are still accessible by their original unqualified names, so - long as their destination collections are installed. - - When deprecations are done in code, they to specify a ``collection_name`` - so that deprecation warnings can mention which collection - or ansible-base - - is deprecating a feature. This affects all ``Display.deprecated()`` or ``AnsibleModule.deprecate()`` - or ``Ansible.Basic.Deprecate()`` calls, and ``removed_in_version``/``removed_at_date`` - or ``deprecated_aliases`` in module argument specs. - - ansible-test now uses a different ``default`` test container for Ansible Collections + - ansible-test - Tests run with the ``centos6`` and ``default`` test containers + now use a PyPI proxy container to access PyPI when Python 2.6 is used. This + allows tests running under Python 2.6 to continue functioning even though + PyPI is discontinuing support for non-SNI capable clients. minor_changes: - - '''Edit on GitHub'' link for plugin, cli documentation fixed to navigate to - correct plugin, cli source.' - - Add 'auth_url' field to galaxy server config stanzas in ansible.cfg The url - should point to the token_endpoint of a Keycloak server. - - Add --ask-vault-password and --vault-pass-file options to ansible cli commands - - Add ``--pre`` flag to ``ansible-galaxy collection install`` to allow pulling - in the most recent pre-release version of a collection (https://github.com/ansible/ansible/issues/64905) - - Add a global toggle to control when vars plugins are executed (per task by - default for backward compatibility or after importing inventory). - - Add a new config parameter, WIN_ASYNC_STARTUP_TIMEOUT, which allows configuration - of the named pipe connection timeout under Windows when launching async tasks. - - Add a per-plugin stage option to override the global toggle to control the - execution of individual vars plugins (per task, after inventory, or both). - - Add an additional check for importing journal from systemd-python module (https://github.com/ansible/ansible/issues/60595). - - Add new magic variable ``ansible_collection`` that contains the collection - name - - Add new magic variable ``ansible_role_name`` that contains the FQCN of the - role - - Added PopOS as a part of Debian OS distribution family (https://github.com/ansible/ansible/issues/69286). - - Added hostname support for PopOS in hostname module. - - Added openEuler OS in RedHat OS Family. - - Added the ability to set ``DEFAULT_NO_TARGET_SYSLOG`` through the ``ansible_no_target_syslog`` - variable on a task - - Ansible CLI fails with warning if extra_vars parameter is used with filename - without @ sign (https://github.com/ansible/ansible/issues/51857). - - Ansible modules created with ``add_file_common_args=True`` added a number - of undocumented arguments which were mostly there to ease implementing certain - action plugins. The undocumented arguments ``src``, ``follow``, ``force``, - ``content``, ``backup``, ``remote_src``, ``regexp``, ``delimiter``, and ``directory_mode`` - are now no longer added. Modules relying on these options to be added need - to specify them by themselves. Also, action plugins relying on these extra - elements in ``FILE_COMMON_ARGUMENTS`` need to be adjusted. - - Ansible now allows deprecation by date instead of deprecation by version. - This is possible for plugins and modules (``meta/runtime.yml`` and ``deprecated.removed_at_date`` - in ``DOCUMENTATION``, instead of ``deprecated.removed_in``), for plugin options - (``deprecated.date`` instead of ``deprecated.version`` in ``DOCUMENTATION``), - for module options (``removed_at_date`` instead of ``removed_in_version`` - in argument spec), and for module option aliases (``deprecated_aliases.date`` - instead of ``deprecated_aliases.version`` in argument spec). - - Ansible should fail with error when non-existing limit file is provided in - command line. - - Ansible.Basic - Added the ability to specify multiple fragments to load in - a generic way for modules that use a module_util with fragment options - - Ansible.Basic.cs - Added support for ``deprecated_aliases`` to deprecated - aliases in a standard way - - Ansible.ModuleUtils.WebRequest - Move username and password aliases out of - util to avoid option name collision - - Change order of arguments in ansible cli to use --ask-vault-password and --vault-password-file - by default - - CollectionRequirement - Add a metadata property to update and retrieve the - _metadata attribute. - - Enable Ansible Collections loader to discover and import collections from - ``site-packages`` dir and ``PYTHONPATH``-added locations. - - Enable testing the AIX platform as a remote OS in ansible-test - - Flatten the directory hierarchy of modules - - Ignore plesk-release file while parsing distribution release (https://github.com/ansible/ansible/issues/64101). - - Openstack inventory script is migrated to ansible-openstack-collection, adjusted - the link in documentation accordingly. - - Openstack inventory script is moved to openstack.cloud from community.general. - - PowerShell Add-Type - Add an easier way to reference extra types when compiling - C# code on PowerShell Core - - PowerShell Add-Type - Added the ``X86`` and ``AMD64`` preprocessor symbols - for conditional compiling - - Prevent losing useful error information by including both the loop and the - conditional error messages (https://github.com/ansible/ansible/issues/66529) - - Provides additional information about collection namespace name restrictions - (https://github.com/ansible/ansible/issues/65151). - - Raise error when no task file is provided to import_tasks (https://github.com/ansible/ansible/issues/54095). - - Refactor test_distribution_version testcases. - - Remove the deprecation message for the ``TRANSFORM_INVALID_GROUP_CHARS`` setting. - (https://github.com/ansible/ansible/issues/61889) - - Removed extras_require support from setup.py (and [azure] extra). Requirements - will float with the collections, so it's not appropriate for ansible-base - to host requirements for them any longer. - - Simplify dict2items filter example in loop documentation (https://github.com/ansible/ansible/issues/65505). - - Templating - Add globals to the jinja2 environment at ``Templar`` instantiation, - instead of customizing the template object. Only customize the template object, - to disable lookups. (https://github.com/ansible/ansible/pull/69278) - - Templating - Add support to auto unroll generators produced by jinja2 filters, - to prevent the need of explicit use of ``|list`` (https://github.com/ansible/ansible/pull/68014) - - The results queue and counter for results are now split for standard / handler - results. This allows the governing strategy to be truly independent from the - handler strategy, which basically follows the linear methodology. - - Update required library message with correct grammer in basic.py. - - Updated inventory script location for EC2, Openstack, and Cobbler after collection - (https://github.com/ansible/ansible/issues/68897). - - Updated inventory script location for infoblox, ec2 and other after collection - migration (https://github.com/ansible/ansible/issues/69139). - - Updates ``ansible_role_names``, ``ansible_play_role_names``, and ``ansible_dependent_role_names`` - to include the FQCN - - Use OrderedDict by default when importing mappings from YAML. - - Windows - Add a check for the minimum PowerShell version so we can create - a friendly error message on older hosts - - Windows - add deprecation notice in the Windows setup module when running - on Server 2008, 2008 R2, and Windows 7 - - '`AnsibleModule.fail_json()` has always required that a message be passed - in which informs the end user why the module failed. In the past this message - had to be passed as the `msg` keyword argument but it can now be passed as - the first positional argument instead.' - - '``AnsibleModule.load_file_common_arguments`` now allows to simply override - ``path``.' - - add mechanism for storing warnings and deprecations globally and not attached - to an ``AnsibleModule`` object (https://github.com/ansible/ansible/pull/58993) - - added more ways to configure new uri options in 2.10. - - ansible-doc - improve suboptions formatting (https://github.com/ansible/ansible/pull/69795). - - ansible-doc - now indicates if an option is added by a doc fragment from another - collection by prepending the collection name, or ``ansible.builtin`` for ansible-base, - to the version number. - - ansible-doc - return values will be properly formatted (https://github.com/ansible/ansible/pull/69796). - - ansible-galaxy - Add ``download`` option for ``ansible-galaxy collection`` - to download collections and their dependencies for an offline install - - ansible-galaxy - Add a `verify` subcommand to `ansible-galaxy collection`. - The collection found on the galaxy server is downloaded to a tempfile to compare - the checksums of the files listed in the MANIFEST.json and the FILES.json - with the contents of the installed collection. - - ansible-galaxy - Added the ability to display the progress wheel through the - C.GALAXY_DISPLAY_PROGRESS config option. Also this now defaults to displaying - the progress wheel if stdout has a tty. - - ansible-galaxy - Added the ability to ignore further files and folders using - a pattern with the ``build_ignore`` key in a collection's ``galaxy.yml`` (https://github.com/ansible/ansible/issues/59228). - - ansible-galaxy - Allow installing collections from git repositories. - - ansible-galaxy - Always ignore the ``tests/output`` directory when building - a collection as it is used by ``ansible-test`` for test output (https://github.com/ansible/ansible/issues/59228). - - ansible-galaxy - Display message if both collections and roles are specified - in a requirements file but can't be installed together. - - ansible-galaxy - Install both collections and roles with ``ansible-galaxy - install -r requirements.yml`` in certain scenarios. - - ansible-galaxy - Requirement entries for collections now support a 'type' - key to indicate whether the collection is a galaxy artifact, file, url, or - git repo. - - ansible-galaxy - add ``--token`` argument which is the same as ``--api-key`` - (https://github.com/ansible/ansible/issues/65955) - - ansible-galaxy - add ``collection list`` command for listing installed collections - (https://github.com/ansible/ansible/pull/65022) - - ansible-galaxy - add ``validate_collection_path()`` utility function () - - ansible-galaxy - add collections path argument - - ansible-galaxy - allow role to define dependency requirements that will be - only installed by defining them in ``meta/requirements.yml`` (https://github.com/ansible/proposals/issues/57) - - ansible-test - --docker flag now has an associated --docker-terminate flag - which controls if and when the docker container is removed following tests - - ansible-test - Add a test to prevent ``state=get`` - - ansible-test - Add a test to prevent ``state=list`` and ``state=info`` - - ansible-test - Add a verbosity option for displaying warnings. - - ansible-test - Add support for Python 3.9. - - ansible-test - Added CI provider support for Azure Pipelines. - - ansible-test - Added a ``ansible-test coverage analyze targets filter`` command - to filter aggregated coverage reports by path and/or target name. - - ansible-test - Added a ``ansible-test coverage analyze targets`` command to - analyze integration test code coverage by test target. - - ansible-test - Added support for Ansible Core CI request signing for Shippable. - - ansible-test - Added support for testing on Fedora 32. - - ansible-test - General code cleanup. - - ansible-test - Now includes testing support for RHEL 8.2 - - ansible-test - Refactor code to consolidate filesystem access and improve - handling of encoding. - - ansible-test - Refactored CI related logic into a basic provider abstraction. - - ansible-test - Remove obsolete support for provisioning remote vCenter instances. - The supporting services are no longer available. - - ansible-test - Support writing compact JSON files instead of formatting and - indenting the output. - - ansible-test - Update Ubuntu 18.04 test container to version 1.13 which includes - ``venv`` - - ansible-test - Update ``default-test-container`` to version 1.11, which includes - Python 3.9.0a4. - - ansible-test - Updated the default test containers to include Python 3.9.0b3. - - ansible-test - Upgrade OpenSUSE containers to use Leap 15.1. - - ansible-test - Upgrade distro test containers from 1.16.0 to 1.17.0 - - ansible-test - Upgrade from ansible-base-test-container 1.1 to 2.2 - - ansible-test - Upgrade from default-test-container 2.1 to 2.2 - - ansible-test - ``mutually_exclusive``, ``required_if``, ``required_by``, ``required_together`` - and ``required_one_of`` in modules are now validated. - - ansible-test - ``validate-modules`` now also accepts an ISO 8601 formatted - date as ``deprecated.removed_at_date``, instead of requiring a version number - in ``deprecated.removed_in``. - - ansible-test - ``validate-modules`` now makes sure that module documentation - deprecation removal version and/or date matches with removal version and/or - date in meta/runtime.yml. - - ansible-test - ``validate-modules`` now validates all version numbers in documentation - and argument spec. Version numbers for collections are checked for being valid - semantic versioning version number strings. - - ansible-test - add ``validate-modules`` tests for ``removed_in_version`` and - ``deprecated_aliases`` (https://github.com/ansible/ansible/pull/66920/). - - ansible-test - add check for ``print()`` calls in modules and module_utils. - - ansible-test - added a ``--no-pip-check`` option - - ansible-test - added a ``--venv-system-site-packages`` option for use with - the ``--venv`` option - - ansible-test - added new ``changelog`` test, which runs if a `antsibull-changelog - <https://pypi.org/project/antsibull-changelog/>`_ configuration or files in - ``changelogs/fragments/`` are found (https://github.com/ansible/ansible/pull/69313). - - ansible-test - allow delegation config to specify equivalents to the ``--no-pip-check``, - ``--disable-httptester`` and `--no-temp-unicode`` options - - ansible-test - allow sanity tests to check for optional errors by specifying - ``--enable-optional-errors`` (https://github.com/ansible/ansible/pull/66920/). - - ansible-test - also run the ``ansible-doc`` sanity test with ``--json`` to - ensure that the documentation does not contain something that cannot be exported - as JSON (https://github.com/ansible/ansible/issues/69238). - - ansible-test - enable deprecated version testing for modules and ``module.deprecate()`` - calls (https://github.com/ansible/ansible/pull/66920/). - - ansible-test - extend alias validation. - - ansible-test - fixed ``units`` command with ``--docker`` to (mostly) work - under podman - - ansible-test - improve module validation so that ``default``, ``sample`` and - ``example`` contain JSON values and not arbitrary YAML values, like ``datetime`` - objects or dictionaries with non-string keys. - - ansible-test - module validation will now consider arguments added by ``add_file_common_arguments=True`` - correctly. - - ansible-test - switch from testing RHEL 8.0 and RHEL 8.1 Beta to RHEL 8.1 - - ansible-test - the argument spec of modules is now validated by a YAML schema. - - ansible-test - the module validation code now checks whether ``elements`` - documentation for options matches the argument_spec. - - ansible-test - the module validation code now checks whether ``elements`` - is defined when ``type=list`` - - ansible-test - the module validation code now checks whether ``requirement`` - for options is documented correctly. - - ansible-test add pyparsing constraint for Python 2.x to avoid compatibility - issues with the upcoming pyparsing 3 release - - ansible-test defaults to redacting sensitive values (disable with the ``--no-redact`` - option) - - ansible-test has been updated to use ``default-test-container:1.13`` which - includes fewer Python requirements now that most modules and tests have been - migrated to collections. - - ansible-test no longer detects ``git`` submodule directories as files. - - ansible-test no longer provides a ``--tox`` option. Use the ``--venv`` option - instead. This only affects testing the Ansible source. The feature was never - available for Ansible Collections or when running from an Ansible install. - - ansible-test no longer tries to install sanity test dependencies on unsupported - Python versions - - ansible-test now checks for the minimum and maximum supported versions when - importing ``coverage`` - - ansible-test now filters out unnecessary warnings and messages from pip when - installing its own requirements - - ansible-test now has a ``--list-files`` option to list files using the ``env`` - command. - - ansible-test now includes the ``pylint`` plugin ``mccabe`` in optional sanity - tests enabled with ``--enable-optional-errors`` - - ansible-test now places the ansible source and collections content in separate - directories when using the ``--docker`` or ``--remote`` options. - - ansible-test now provides a more helpful error when loading coverage files - created by ``coverage`` version 5 or later - - ansible-test now supports provisioning of network resources when testing network - collections - - ansible-test now supports skip aliases in the format ``skip/{arch}/{platform}`` - and ``skip/{arch}/{platform}/{version}`` where ``arch`` can be ``power``. - These aliases are only effective for the ``--remote`` option. - - ansible-test now supports skip aliases in the format ``skip/{platform}/{version}`` - for the ``--remote`` option. This is preferred over the older ``skip/{platform}{version}`` - format which included no ``/`` between the platform and version. - - ansible-test now supports testing against RHEL 7.8 when using the ``--remote`` - option. - - ansible-test now supports the ``--remote power/centos/7`` platform option. - - ansible-test now validates the schema of ansible_builtin_runtime.yml and a - collections meta/runtime.yml file. - - ansible-test provides clearer error messages when failing to detect the provider - to use with the ``--remote`` option. - - ansible-test provisioning of network devices for ``network-integration`` has - been updated to use collections. - - ansible_native_concat() - use ``to_text`` function rather than Jinja2's ``text_type`` - which has been removed in Jinja2 master branch. - - apt - Implemented an exponential backoff behaviour when retrying to update - the cache with new params ``update_cache_retry_max_delay`` and ``update_cache_retries`` - to control the behavior. - - apt_repository - Implemented an exponential backoff behaviour when retrying - to update the apt cache with new params ``update_cache_retry_max_delay`` and - ``update_cache_retries`` to control the behavior. - - blockinfile - Update module documentation to clarify insertbefore/insertafter - usage. - - callbacks - Allow modules to return `None` as before/after entries for diff. - This should make it easier for modules to report the "not existing" state - of the entity they touched. - - combine filter - now accept a ``list_merge`` argument which modifies its behaviour - when the hashes to merge contain arrays/lists. - - config - accept singular version of ``collections_path`` ini setting and ``ANSIBLE_COLLECTIONS_PATH`` - environment variable setting - - core filters - Adding ``path_join`` filter to the core filters list - - distro - Update bundled version of distro from 1.4.0 to 1.5.0 - - dnf - Properly handle idempotent transactions with package name wildcard globs - (https://github.com/ansible/ansible/issues/62809) - - dnf - Properly handle module AppStreams that don't define stream (https://github.com/ansible/ansible/issues/63683) - - dnf param to pass allowerasing - - downstream packagers may install packages under ansible._vendor, which will - be added to head of sys.path at ansible package load - - file - specifying ``src`` without ``state`` is now an error - - get_bin_path() - change the interface to always raise ``ValueError`` if the - command is not found (https://github.com/ansible/ansible/pull/56813) - - get_url - Remove deprecated string format support for the headers option (https://github.com/ansible/ansible/issues/61891) - - git - added an ``archive_prefix`` option to set a prefix to add to each file - path in archive - - host_group_vars plugin - Require whitelisting and whitelist by default. - - new magic variable - ``ansible_config_file`` - full path of used Ansible config - file - - package_facts.py - Add support for Pacman package manager. - - plugin loader - Add MODULE_IGNORE_EXTS config option to skip over certain - extensions when looking for script and binary modules. - - powershell (shell plugin) - Fix `join_path` to support UNC paths (https://github.com/ansible/ansible/issues/66341) - - regexp_replace filter - add multiline support for regex_replace filter (https://github.com/ansible/ansible/issues/61985) - - 'rename ``_find_existing_collections()`` to ``find_existing_collections()`` - to reflect its use across multiple files - - ' - - reorganized code for the ``ansible-test coverage`` command for easier maintenance - and feature additions - - service_facts - Added undocumented 'indirect' and 'static' as service status - (https://github.com/ansible/ansible/issues/69752). - - ssh - connection plugin now supports a new variable ``sshpass_prompt`` which - gets passed to ``sshpass`` allowing the user to set a custom substring to - search for a password prompt (requires sshpass 1.06+) - - systemd - default scope is now explicitly "system" - - tests - Add new ``truthy`` and ``falsy`` jinja2 tests to evaluate the truthiness - or falsiness of a value - - to_nice_json filter - Removed now-useless exception handler - - to_uuid - add a named parameter to let the user optionally set a custom namespace - - update ansible-test default-test-container from version 1.13 to 1.14, which - includes an update from Python 3.9.0a6 to Python 3.9.0b1 - - update ansible-test default-test-container from version 1.9.1 to 1.9.2 - - update ansible-test default-test-container from version 1.9.2 to 1.9.3 - - update ansible-test default-test-container from version 1.9.3 to 1.10.1 - - update ansible-test images to 1.16.0, which includes system updates and pins - CentOS versions - - uri/galaxy - Add new ``prepare_multipart`` helper function for creating a - ``multipart/form-data`` body (https://github.com/ansible/ansible/pull/69376) - - url_lookup_plugin - add parameters to match what is available in ``module_utils/urls.py`` - - user - allow groups, append parameters with local - - 'user - usage of ``append: True`` without setting a list of groups. This is - currently a no-op with a warning, and will change to an error in 2.14. (https://github.com/ansible/ansible/pull/65795)' - - validate-modules checks for deprecated in collections against meta/runtime.yml - - validation - Sort missing parameters in exception message thrown by check_required_arguments - - vars plugins - Support vars plugins in collections by adding the ability to - whitelist plugins. - - vars_prompt - throw error when encountering unsupported key - - win_package - Added proxy support for retrieving packages from a URL - https://github.com/ansible/ansible/issues/43818 - - win_package - Added support for ``.appx``, ``.msix``, ``.appxbundle``, and - ``.msixbundle`` package - https://github.com/ansible/ansible/issues/50765 - - win_package - Added support for ``.msp`` packages - https://github.com/ansible/ansible/issues/22789 - - win_package - Added support for specifying the HTTP method when getting files - from a URL - https://github.com/ansible/ansible/issues/35377 - - win_package - Read uninstall strings from the ``QuietUninstallString`` if - present to better support argumentless uninstalls of registry based packages. - - win_package - Scan packages in the current user's registry hive - https://github.com/ansible/ansible/issues/45950 - - windows collections - Support relative module util imports in PowerShell modules - and module_utils - release_summary: '| Release Date: 2020-06-17 + - ansible-test - Update distribution test containers from version 2.0.1 to 2.0.2. + - ansible-test - Update the Ansible Core and Ansible Collection default test + containers to 3.2.0 and 3.2.2 respectively. + release_summary: '| Release Date: 2021-04-26 | `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`__ ' - removed_features: - - core - remove support for ``check_invalid_arguments`` in ``AnsibleModule``, - ``AzureModule`` and ``UTMModule``. - security_fixes: - - '**security issue** - Convert CLI provided passwords to text initially, to - prevent unsafe context being lost when converting from bytes->text during - post processing of PlayContext. This prevents CLI provided passwords from - being incorrectly templated (CVE-2019-14856) - - ' - - '**security issue** - Redact cloud plugin secrets in ansible-test when running - integration tests using cloud plugins. Only present in 2.9.0b1. - - ' - - '**security issue** - TaskExecutor - Ensure we don''t erase unsafe context - in TaskExecutor.run on bytes. Only present in 2.9.0beta1 (https://github.com/ansible/ansible/issues/62237) - - ' - - '**security issue** - The ``subversion`` module provided the password via - the svn command line option ``--password`` and can be retrieved from the host''s - /proc/<pid>/cmdline file. Update the module to use the secure ``--password-from-stdin`` - option instead, and add a warning in the module and in the documentation if - svn version is too old to support it. (CVE-2020-1739) - - ' - - '**security issue** - Update ``AnsibleUnsafeText`` and ``AnsibleUnsafeBytes`` - to maintain unsafe context by overriding ``.encode`` and ``.decode``. This - prevents future issues with ``to_text``, ``to_bytes``, or ``to_native`` removing - the unsafe wrapper when converting between string types (CVE-2019-14856) - - ' - - '**security issue** - properly hide parameters marked with ``no_log`` in suboptions - when invalid parameters are passed to the module (CVE-2019-14858)' - - '**security issue** win_unzip - normalize paths in archive to ensure extracted - files do not escape from the target directory (CVE-2020-1737) - - ' - - '**security_issue** - create temporary vault file with strict permissions - when editing and prevent race condition (CVE-2020-1740)' - - Ensure we get an error when creating a remote tmp if it already exists. CVE-2020-1733 - - In fetch action, avoid using slurp return to set up dest, also ensure no dir - traversal CVE-2020-1735. - - ansible-galaxy - Error when install finds a tar with a file that will be extracted - outside the collection install directory - CVE-2020-10691 - codename: When the Levee Breaks + codename: Hey Hey, What Can I Do fragments: - - 21003-uri-return-content.yml - - 34722-ssh-sshpass-prompt-variable.yml - - 47050-copy_ensure-_original_basename-is-set.yaml - - 51489-apt-not-honor-update-cache.yml - - 54095-import_tasks-fix_no_task.yml - - 56629-synchronize-password-auth.yaml - - 56832-remove-aptitude-warning.yml - - 57266-apt_repository-update-cache-retrying.yml - - 57779-module_defaults_groups_catchup_gcp.yml - - 57894-combine-filter-rework.yml - - 58323-copy-deep-recursive-with-remote_src.yaml - - 59060-validate-modules-aliases.yml - - 59438-hostname-use-hostnamectl.yml - - 59464-playbook-dir-envvar.yml - - 59765-cron-cronvar-use-get-bin-path.yaml - - 59772-fix_ansible_issue_58619.yaml - - 60106-templar-contextmanager.yml - - 60527-apt_exponential_backoff_cache_update_retry.yml - - 60587-doc_parsing.yml - - 60595-systemd_import.yml - - 61078-vars-plugin-whitelist-and-execution-settings.yaml - - 61604-ansible-inventory-hide-args.yaml - - 61624-fix-galaxy-url-building.yml - - 61659-load_file_common_arguments-override-path.yml - - 61889-change-transform_invalid_group_chars-default.yml - - 61891-get_url-remove-deprecated-string-headers.yml - - 61978-get-url-no-checksum.yml - - 62096-test-coverage-all.yml - - 62134-user-allow-groups-and-append-with-local.yml - - 62237-keep-unsafe-context.yml - - 62407-wait_for_connection.yml - - 62582-allow_diff_before_after_to_be_None.yml - - 62598-AnsibleDumper-representer.yaml - - 62713-add-path_join-filter.yaml - - 62766-package_facts-pkg-manager-fix-vital-value.yml - - 62809-dnf-wildcard-absent-failure.yml - - 62870-collection-install-default-path.yml - - 63194-lineinfile_insertafter_duplicate.yaml - - 63551-yum-single-YumBase-instantiation.yaml - - 63628-ansible-galaxy-fix-version.yml - - 63683-dnf-handle-empty-appstream-stream.yml - - 63782-add-ansible-ask-vault-password-and-vault-password-file-options.yaml - - 63919-lineinfile-create-no-dir-path.yml - - 63940-template-lookup-hostvars-regression.yml - - 63988-removes-python_compat_fallback.yml - - 63990-replace-deprecated-basic-functions.yml - - 64057-Add_named_parameter_to_the_to_uuid_filter.yaml - - 64076-urls-timeout-parameter.yml - - 64088-ast-literal.yml - - 64151-remove-unsed-inventory-script-option.yaml - - 64282-hostvarsvars-templating.yaml - - 64379-no-loop-unsafe.yml - - 64424-ansible-test-acme-container.yml - - 64664-fix-sys-modules-file.yml - - 64733-make-no_log-false-override-no_log-warnings.yml - - 64751-fix-wrong-promt-len-calc-in-ansible-console.yaml - - 64789-regression-rescue-vars-not-defined.yml - - 64810-hostname-add-manjaro-linux-distribution.yml - - 64892-add-parameters-to-url_lookup_plugin.yaml - - 64902-fix-allow-duplicates-in-single-role.yml - - 64905-semver.yml - - 64906-always-delegate-fact-prefixes.yml - - 64959-extract-filter-when-key-does-not-exist.yml - - 64963-dnf_idempotence.yml - - 65001-allow_configuring_async_startup_timeout.yml - - 65051-regex-replace-multiline.yaml - - 65058-fix-fd-out-of-range-in-select.yml - - 65073-fix-inventory-cli-loading-vars-plugins.yaml - - 65122-fix-encrypt_string-stdin-name-ouput-tty.yml - - 65198-ansibleundefined-is-not-unsafe.yml - - 65219-sanity-tests-print.yml - - 65302-dnf-msg-return.yml - - 65307-get_url-return-status-code-on-http-304.yaml - - 65365-fix-tb-printing-hostvars.yml - - 65376.yaml - - 65422-fix-throttle-with-linear-strategy.yml - - 65437-ansible-test-module-validation-required.yml - - 65541-fix-utf8-issue-env-lookup.yml - - 65576-fix-free-strategy-handler-filtering.yaml - - 65618-ansible-galaxy-collection-verify.yaml - - 65624-paramiko-ctx-man.yml - - 65698-synchronize-docker-controller-managed.yml - - 65722-unsafe-tuples.yml - - 65795-warn-if-user-has-set-append-but-not-set-groups.yaml - - 65904-fix-loop-label.yml - - 66006-RoleRequirement-include-stderr-error-msg.yaml - - 66067-git-archive_prefix-option.yaml - - 66085-ansible_config_file.yml - - 66128-fix-callback-set-options.yml - - 66189-hostname-osmc.yml - - 66219-update-user-module-for-64733.yml - - 66370-galaxy-add-metadata-property.yaml - - 66385-ansible-test-module-validation-elements.yml - - 66386-ansible-test-module-validation-list-elements.yml - - 66389-file-common-arguments.yml - - 66461-blockinfile_preserve_line_endings.yaml - - 66464-lookup-case-sensitivity-fix.yml - - 66529-display-both-loop-and-cond-errors.yml - - 66549-enablerepo-not-honored-when-used-with-disablerepo-all.yml - - 66569-introduce-fact-ansible_processor_nproc.yml - - 66596-package_facts-add-pacman-support.yaml - - 66604-powershell-unc-paths.yml - - 66617-version-unicode-fix.yml - - 66721-better-jinja2-collection-error-handling.yml - - 66726-galaxy-fix-attribute-error.yml - - 66762-fix-git-module-ignores-remote_tmp.yml - - 66764-host-pattern-warning.yml - - 66780-facts-detect-kvm-server.yml - - 66786-fix-duplicate-yaml-key-error.yaml - - 66898-sanity-state-list.yaml - - 66911-fix-cloudlinux6-hostname.yaml - - 66918-removed_in_version-fix.yml - - 66920-ansible-test-removed_in_version-deprecated_aliases.yml - - 66921-sanity-state-get.yaml - - 66943-handle-unicode-in-safe_eval.yml - - 66961-ansible-test-required-mutually.yml - - 67006-systemd-scope-default.yaml - - 67050-yum-releasever.yaml - - 67093-site-packages-pythonpath-collections-loader.yml - - 67243-file_common_arguments-defaults-sanity.yml - - 67365-role-list-role-name-in-path.yml - - 67407-pip-virtualenv_command-args.yml - - 67417-get_url-incorrect-if-modified-since.yaml - - 67429-jinja2-caching.yml - - 67492-fix-decrypting-str-types-for-plugins.yaml - - 67574-null_collection_dependency_list.yml - - 67735-warning-cleanup.yml - - 67771-validation-error.yml - - 67823-vault-unicode-string.yml - - 67942-fix-galaxy-multipart.yml - - 67972-git-fetch-force.yml - - 68014-auto-unroll-jinja2-generators.yml - - 68136-systemd_should_fail_in_check_mode_when_service_not_found.yml - - 68181-fqcn-handler-notification.yml - - 68186_collection_index_err.yml - - 68211-systemd-list-unit-files-parsing.yml - - 68247-file-unreachable-code.yaml - - 68288-galaxy-requirements-install-only.yml - - 68310-low_level_execute_command-honor-executable.yml - - 68400-strip-no-log-values-from-keys.yml - - 68471-copy-with-preserve.yaml - - 68482-remove-function-update-calls.yaml - - 68515_include_role_vars_from.yml - - 68518-to_nice_json-cleanup.yaml - - 68550-ansible-test-docs-changelogs.yml - - 68569-start-at-fix.yaml - - 68592-pip-check_mode-prereleases.yml - - 68667-dont-crash-ansible-vault-create-when-no-arguments.yaml - - 68699-prevent-templating-all-vars-when-copying-context.yml - - 68723-force-static-collections.yaml - - 69029-module-ignore-exts.yml - - 69054-collection-as-str.yaml - - 69101-collection-role-to-standalone-role.yml - - 69104-galaxy-cli-templar.yml - - 69133-role-install-non-ascii.yml - - 69139_inventory_doc_fix.yml - - 69154-install-collection-from-git-repo.yml - - 69160-add-missing-parameter.yaml - - 69164-remove-redundant-conditional.yaml - - 69175-address-fixmes-sysctl.yaml - - 69226-hurd-extract-functionality.yaml - - 69278-early-customize-jinja2.yml - - 69286_pop_os_distribution.yml - - 69286_popos_hostname.yml - - 69287-ansible-test-validate-default-sample-example.yml - - 69288-ansible-test-ansible-doc-json.yml - - 69313-sanity-antsibull-changelog.yml - - 69320-sys-path-cwd.yml - - 69357_optimize_inventory_graph_wo_vars.yml - - 69396-blockinfile-docs.yaml - - 69451-fix-fileglob-nonexistent-subdirs.yaml - - 69457-free-strategy-handler-race.yml - - 69458-updated-galaxy-cli-help.yaml - - 69465-remove-fixme-comment.yaml - - 69484-add-path-to-yum-for-ibmi.yml - - 69508-ansible-test-local-changes-detection.yml - - 69516_flatcar_distribution.yml - - 69521-free-strategy-include-fix.yml - - 69752_service_facts.yml - - 69788_fqcr_command_shell.yml - - 69795-ansible-doc-suboptions.yml - - 69796-ansible-doc-return-values.yml - - 69845-doc-assemble-remote_src.yaml - - 69881-add_host-show-changed.yml - - 69919-module_defaults-groups-collections.yml - - 69993-copy-remote-src-perms.yml - - action-plugin-always-cleanup.yml - - add-global-warnings-container.yaml - - add-type-typename.yaml - - add_hosts_fix.yml - - add_prefix_to_cache.yml - - adhoc_default_collection.yml - - af_clean.yml - - allow-fail-json-msg-to-be-positional.yaml - - allow_ansible_ns.yml - - ansible-adhoc-cb-playbook_start.yaml - - ansible-basic-util-fragment.yaml - - ansible-connection_persist_issue.yaml - - ansible-doc-remove_at_date.yaml - - ansible-doc-removed-traceback.yml - - ansible-doc-version_added-collection.yml - - ansible-galaxy-agent.yaml - - ansible-galaxy-cli-add-token-alias.yaml - - ansible-galaxy-collections.yaml - - ansible-galaxy-handle-import-task-url-changes.yml - - ansible-galaxy-ignore.yaml - - ansible-galaxy-install-manifest-warning.yaml - - ansible-galaxy-install.yaml - - ansible-galaxy-progress.yaml - - ansible-galaxy-role-list-specific-fix.yml - - ansible-galaxy-role-server.yaml - - ansible-galaxy-support-for-automation-hub.yml - - ansible-inventory-code-cleanup.yml - - ansible-test-ansible-doc.yml - - ansible-test-ast-parse-bytes.yml - - ansible-test-boto-constraints.yml - - ansible-test-change-detection-empty-python.yml - - ansible-test-change-detection-fix.yml - - ansible-test-ci-support-azure.yml - - ansible-test-ci-support-shippable-auth.yml - - ansible-test-ci-support.yml - - ansible-test-cloud-secrets.yml - - ansible-test-code-cleanup.yml - - ansible-test-collections-ansible-adhoc.yml - - ansible-test-collections-coverage-noise.yml - - ansible-test-collections-import-sanity-test.yml - - ansible-test-collections-requirements.yml - - ansible-test-color-ls.yml - - ansible-test-constraints-virtualenv.yml - - ansible-test-container-update.yml - - ansible-test-coverage-analyze-targets-filter.yml - - ansible-test-coverage-analyze-targets.yml - - ansible-test-coverage-ansible-connection.yml - - ansible-test-coverage-constraint.yml - - ansible-test-coverage-constraints.yml - - ansible-test-coverage-incomplete.yml - - ansible-test-coverage-reorg.yml - - ansible-test-coverage-version-check.yml - - ansible-test-default-containers-update.yml - - ansible-test-default-test-container-1.10.1.yml - - ansible-test-default-test-container-1.13.yml - - ansible-test-default-test-container-1.14.yml - - ansible-test-default-test-container-1.9.2.yml - - ansible-test-default-test-container-1.9.3.yml - - ansible-test-delegation-inventory.yml - - ansible-test-delegation-options.yml - - ansible-test-delegation-paths.yml - - ansible-test-delegation-tmp-dir.yml - - ansible-test-distro-container-venv.yml - - ansible-test-doc-links.yml - - ansible-test-docker-context.yml - - ansible-test-docker-terminate.yml - - ansible-test-egg-info-version.yml - - ansible-test-empty-coverage.yml - - ansible-test-enable-aix-os-testing.yml - - ansible-test-env-alteration.yml - - ansible-test-env-list-files.yml - - ansible-test-execv-wrapper-shebang.yml - - ansible-test-fix-import-sanity-test.yml - - ansible-test-fix-python-path.yml - - ansible-test-git-submodule-top-level.yml - - ansible-test-git-submodule.yml - - ansible-test-hcloud-constraint.yml - - ansible-test-ignore-pip-warnings.yml - - ansible-test-ignore-tests-output.yml - - ansible-test-integration-temp-dir.yml - - ansible-test-jinja2-python-2.6.yml - - ansible-test-nested-source-control.yml - - ansible-test-network-collections.yml - - ansible-test-network-testing.yml - - ansible-test-no-pip-check.yml - - ansible-test-obsolete-vcenter-proivisioning.yml - - ansible-test-opensuse-15.1.yml - - ansible-test-paramiko-constraint.yml - - ansible-test-path-to-python.yml - - ansible-test-pathspec-constraint.yml - - ansible-test-pip-filtering.yml - - ansible-test-podman-units.yml - - ansible-test-powershell-coverage-paths.yml - - ansible-test-preserve-remote-authorized-keys.yml - - ansible-test-pycodestyle-freeze.yml - - ansible-test-pylint-plugin-paths.yml - - ansible-test-pyparsing-constraint.yml - - ansible-test-pytest-mccabe.yml - - ansible-test-pytest-plugin-loading.yml - - ansible-test-python-3.9.yaml - - ansible-test-python-import-analysis.yml - - ansible-test-redact.yml - - ansible-test-refactor.yml - - ansible-test-remote-power.yml - - ansible-test-remote-tar-format.yml - - ansible-test-remove-tox-option.yml - - ansible-test-requirements-install.yml - - ansible-test-rhel-7.8.yml - - ansible-test-rhel-8.1-testing.yml - - ansible-test-rhel-82.yml - - ansible-test-sanity-constraints.yml - - ansible-test-sanity-import-fixes.yml - - ansible-test-sanity-pylint-config-fix.yml - - ansible-test-sanity-requirements.yml - - ansible-test-sanity-separate-requirements.yml - - ansible-test-setuptools-constraint.yml - - ansible-test-shebang-sanity.yml - - ansible-test-ssh-keygen-fix.yml - - ansible-test-submodule-dir-as-file.yml - - ansible-test-submodules.yml - - ansible-test-test-no-tests.yml - - ansible-test-test-source-message.yml - - ansible-test-update-images-1.16.0.yml - - ansible-test-validate-modules-deprecated-removed_at.yml - - ansible-test-validate-modules-fixes.yml - - ansible-test-validate-runtime-file.yml - - ansible-test-vcenter-plugin.yml - - ansible-test-venv-activation.yml - - ansible-test-venv-pkg-resources.yaml - - ansible-test-venv-pythonpath.yml - - ansible-test-venv-system-site-packages.yml - - ansible-test-version-validation.yml - - ansible-test-virtualenv-python-search.yml - - ansible-test-virtualenv-venv.yml - - ansible-test-windows-integration.yml - - ansible_basic_no_log_empty_string.yaml - - ansible_native_concat-use-to_text-rather-than-text_type.yml - - ansile-galaxy-preserve-api-append.yml - - become-pass-precedence.yaml - - blockinfile-line-ending-fix.yaml - - change-get_bin_path-always-raise-exception.yaml - - clean_facts-use-correct-variable-for-startswith.yaml - - collection-install-mode.yaml - - collection-install-url.yaml - - collection-prefix-basedir.yaml - - collection_error_fix.yml - - collection_jinja_cache_fix.yml - - collection_loader-sort-plugins.yaml - - collection_loader_import_fixes.yml - - collection_routing.yml - - config-manager-vault-str.yaml - - config_encoding_resilience.yml - - configurable_pipelining.yml - - cron-only-get-bin-path-once.yaml - - cronvar-correct-binary-name.yaml - - debug_loop_changed.yaml - - deprecate-by-date.yml - - deprecate-hash-behaviour.yml - - deprecate_default_call_fragmentless.yml - - deprecation-collection-name.yml - - detect-generic-container.yml - - dict2items.yml - - discovery_delegation_fix.yml - - display-warning-remove-erroneous-space.yaml - - distribution_release.yml - - distribution_test_refactor.yml - - distro-update-version.yml - - dnf-4-2-18.yml - - dnf-allowerasing.yaml - - dnf_setup_loggers.yml - - dont-template-cli-passwords.yml - - dont_hide_json_error.yml - - downstream_vendoring.yml - - end_host-remove_host_from_play.yml - - ensure_discovery_delegate.yml - - examples_add_collections_paths_to_config_file.yml - - extra-vars.yml - - extra_vars_with_at_sign.yml - - f32.yml - - fallback_uid.yml - - fetch_no_slurp.yml - - file-change-src-without-state-to-error.yaml - - file-fix-diff-peek-arg-spec.yaml - - file-return-state-when-file-does-not-exist.yaml - - fileglob_fixes.yml - - find-contains-docs.yaml - - fips-paramiko-import-error.yaml - - fix-ansible-galaxy-server.yml - - fix-metadata-defaults.yml - - fix_doc_symlinks.yml - - flatten-modules.yml - - galaxy-add-path-validation-utility-function.yaml - - galaxy-cli-add-collection-path-parser-arg.yaml - - galaxy-collection-install-version.yaml - - galaxy-collection-rename-private-function.yaml - - galaxy-collections-add-list.yml - - galaxy-collections.yaml - - galaxy-download.yaml - - galaxy-error-reason.yaml - - galaxy-install-tar-path-traversal.yaml - - galaxy-role-list-fix.yml - - galaxy-role-version.yaml - - galaxy-server-list.yaml - - galaxy-symlinks.yaml - - gather_facts-warnings.yaml - - gf_fix.yml - - group_by_changed.yml - - include_vars-ad-hoc-stack-trace-fix.yaml - - include_vars_fix_none.yml - - inventory_doc_fix.yml - - junit-compat.yml - - limit-file-exception.yml - - lineinfile-backrefs-match-object-type.yaml - - lineinfile-backrefs-syntax-example.yaml - - lineinfile-use-correct-index-value.yaml - - lineinfile-use-module-tempdir.yaml - - logging-traceback.yaml - - misc_typo_fix.yml - - module-validation-argument_spec-schema.yml - - multipart.yml - - netconf_plugin_device_handler.yml - - network-cli-become-collections.yml - - network_action_plugin_load.yml - - no-log-sub-options-invalid-parameter.yaml - - no_fatal_bad_cb.yml - - no_target_syslog-var.yaml - - only_be_smart_once.yml - - openbsd-disabled-account-no-warning-for-passwd.yaml - - openeuler_distribution_support.yml - - openstack_botmeta.yml - - openstack_inventory_migrated.yml - - package-facts-use-module-warnings.yaml - - paramiko_ssh-improve-error-message.yaml - - pathlist_strip.yml - - play_bools_strict.yml - - plugin_doc_link_fix.yml - - prevent-rewriting-nested-block-data-in-filter_tagged_tasks.yml - - ps-argspec-type.yaml - - ps_web_request-aliases.yaml - - ps_wrapper-deprecated_aliases.yaml - - psexec-kerb-and-interactive.yaml - - purge-empty-block.yml - - pwsh-minimum.yaml - - py26-collection-loader.yml - - python38-macos.yaml - - reboot-add-last-boot-time-parameter.yaml - - remote_mkdir_fix.yml - - remove-2.9-deprecations.yml - - remove_pc_vars_round.yml - - removed_extras_require.yml - - required_lib_message.yml - - server2008-dep.yaml - - service-mgr-systemd-offline.yml - - show_field_instead_of_value.yml - - singular-collection-path.yml - - split-host-pattern-empty-strings.yaml - - string-conversion-warning-add-parameter-name.yaml - - subversion_password.yaml - - systemd-offline.yml - - test-ps-utils.yaml - - truthiness-tests.yaml - - unarchive-code-cleanup.yml - - uri_options.yml - - user-aix-shadow-unbound-local.yaml - - user-alpine-on-changed-fix.yaml - - user-docs-group-fix.yaml - - user-fix-value-comparison-on-macos.yaml - - user_missing_etc_shadow.yml - - v2.10.0-initial-commit.yaml - - v2.10.0b1_summary.yaml - - valdate-modules-ps-arg-util.yaml - - validate-include-args-in-handlers.yml - - validate-modules-argument-spec.yml - - validate-modules-deprecated-collections.yml - - vars_prompt_error_on_unsupported_key.yaml - - vault_tmp_file.yml - - vault_tmp_race_fix.yml - - wait_for_connection-interpreter-discovery-retry.yaml - - warnings-remove-extra-newline-better.yaml - - warnings-remove-extra-newline.yaml - - win-coverage-out-encoding.yaml - - win-unzip-check-extraction-path.yml - - win-web-request-no_proxy.yaml - - win_collection_relative.yaml - - win_env_var.yaml - - win_exec-error.yaml - - win_get_url-redirection.yaml - - win_package-revamp.yaml - - windows-coverage-encoding.yaml - - yaml_orderd_mappings.yml - - yum-dnf-elements-type-in-name-list.yml - - yum_backend_validation.yml - plugins: - lookup: - - description: read vaulted file(s) contents - name: unvault - namespace: null - release_date: '2020-06-17' - 2.10.0rc1: + - ansible-test-connection-units-init.yml + - ansible-test-default-containers-3.2.yml + - ansible-test-distro-containers-2.0.2.yml + - ansible-test-pypi-test-container.yml + - v2.11.0_summary.yaml + release_date: '2021-04-26' + 2.11.0b1: changes: + breaking_changes: + - Made SCM collections be reinstalled regardless of ``--force`` being present. + - NetBSD virtualization facts (specifically ``ansible_virtualization_type``) + now returns a more accurate value by checking the value of the ``machdep.hypervisor`` + ``sysctl`` key. This change is breaking because in some cases previously, + we would erroneously report ``xen`` even when the target is not running on + Xen. This prevents that behavior in most cases. (https://github.com/ansible/ansible/issues/69352) + - "Replaced the in-tree dependency resolver with an external implementation + that pip >= 20.3 uses now by default \u2014 ``resolvelib``. (https://github.com/ansible/ansible/issues/71784)" + - The ``meta`` module now supports tags for user-defined tasks. Internal ``meta`` + tasks continue to always run. (https://github.com/ansible/ansible/issues/64558) + - ansible-galaxy login command has been removed (see https://github.com/ansible/ansible/issues/71560) bugfixes: + - ANSIBLE_COLLECTIONS_PATHS - remove deprecation so that users of Ansible 2.9 + and 2.10+ can use the same var when specifying a collection path without a + warning. + - Added unsafe_writes test. + - Address compat with rpmfluff-0.6 for integration tests - 'Address the deprecation of the use of stdlib distutils in packaging. It''s a short-term hotfix for the problem (https://github.com/ansible/ansible/issues/70456, https://github.com/pypa/setuptools/issues/2230, https://github.com/pypa/setuptools/commit/bd110264) ' + - Adjust various hard-coded action names to also include their ``ansible.builtin.`` + and ``ansible.legacy.`` prefixed version (https://github.com/ansible/ansible/issues/71817, + https://github.com/ansible/ansible/issues/71818, https://github.com/ansible/ansible/pull/71824). - Allow TypeErrors on Undefined variables in filters to be handled or deferred when processing for loops. + - Allow `~` to be present in file names in galaxy roles (https://github.com/ansible/ansible/issues/72966) + - Always mention the name of the deprecated or tombstoned plugin in routing + deprecation/tombstone messages (https://github.com/ansible/ansible/pull/73059). - Ansible output now uses stdout to determine column width instead of stdin + - AnsibleModule - added arg ``ignore_invalid_cwd`` to ``AnsibleModule.run_command()``, + to control its behaviour when ``cwd`` is invalid. (https://github.com/ansible/ansible/pull/72390) + - Apply ``_wrap_native_text`` only for builtin filters specified in STRING_TYPE_FILTERS. + - Be smarter about collection paths ending with ansible_collections, emulating + a-galaxy behaviour. Issue 72628 + - CLI - Restore git information in version output when running from source + - Collection callbacks were ignoring options and rules for stdout and adhoc + cases. + - Collections - Ensure ``action_loader.get`` is called with ``collection_list`` + to properly find collections when ``collections:`` search is specified (https://github.com/ansible/ansible/issues/72170) + - Command module now returns stdout & stderr if executable is missing or an + unknown error occurs + - ConfigManager - Normalize ConfigParser between Python2 and Python3 to for + handling comments (https://github.com/ansible/ansible/issues/73709) + - Continue execution when 'flatten' filter when it hits a None/null value as + part of the list. + - Correct the inventory source error parse handling, specifically make the config + INVENTORY_ANY_UNPARSED_IS_FAILED work as expected. + - Display - Use wcswidth to calculate printable width of a text string (https://github.com/ansible/ansible/issues/63105) + - Enabled unsafe_writes for get_url which was ignoring the paramter. + - Ensure Ansible's unique filter preserves order (https://github.com/ansible/ansible/issues/63417) + - Ensure if a traceback halts ``strategy.run`` that we still attempt to clean + up (https://github.com/ansible/ansible/issues/23958) + - Ensure password passed in by -k is used on delegated hosts that do not have + ansible_password set + - Ensure the correct options are used when ssh executables are used that don't + match ssh executable names. + - Facts collection - get serial number of NVMe device without sg_inq (https://github.com/ansible/ansible/issues/66663). + - 'Fix --list-tasks format `role_name : task_name` when task name contains the + role name. (https://github.com/ansible/ansible/issues/72505)' + - Fix ``RecursionError`` when templating large vars structures (https://github.com/ansible/ansible/issues/71920) - 'Fix ``delegate_facts: true`` when ``ansible_python_interpreter`` is not set. (https://github.com/ansible/ansible/issues/70168)' + - Fix an exit code for a non-failing playbook (https://github.com/ansible/ansible/issues/71306) + - Fix ansible-galaxy collection list to show collections in site-packages (https://github.com/ansible/ansible/issues/70147) + - Fix bytestring vs string comparison in module_utils.basic.is_special_selinux_path() + so that special-cased filesystems which don't support SELinux context attributes + still allow files to be manipulated on them. (https://github.com/ansible/ansible/issues/70244) + - Fix execution of the meta tasks 'clear_facts', 'clear_host_errors', 'end_play', + 'end_host', and 'reset_connection' when the CLI flag '--flush-cache' is provided. + - Fix fileglob bug where it could return different results for different order + of parameters (https://github.com/ansible/ansible/issues/72873). + - Fix incorrect msg in the results dict in loops + - Fix incorrect re-run of roles with tags (https://github.com/ansible/ansible/issues/69848) + - Fix incorrect variable scoping when using ``import with context`` in Jinja2 + templates. (https://github.com/ansible/ansible/issues/72615) + - Fix jsonfile cache plugin option '_uri' to be a type path instead of a string. + (https://github.com/ansible/ansible/issues/38002) + - 'Fix notifying handlers via `role_name : handler_name` when handler name contains + the role name. (https://github.com/ansible/ansible/issues/70582)' + - Fix parsing of values when using empty string as a key (https://github.com/ansible/ansible/issues/57132) + - Fix statistics reporting when rescue block contains another block (issue https://github.com/ansible/ansible/issues/61253). + - Fix to previous deprecation change (#70504) which caused command warning deprecation + to show in all cases, even when not specified by the user. + - Fixed TypeError instancemethod expecting at least 2 arguments for apt_repository(issue + https://github.com/ansible/ansible/issues/69308, PR https://github.com/ansible/ansible/pull/69463) + - Fixed issue when `netstat` is either missing or doesn't have execution permissions + leading to incorrect command being executed. + - Fixes ``ansible-galaxy role info`` to support multiple roles on the command + line (https://github.com/ansible/ansible/pull/70148) + - Fixes ansible-test traceback when plugin author is not a string or a list + of strings (https://github.com/ansible/ansible/pull/70507) + - Handle more varnames that can create conflicts, expand a function in general, + handle jinja2 globals in particular (https://github.com/ansible/ansible/issues/41955). + - INTERPRETER_PYTHON_DISTRO_MAP - prefer ``/usr/libexec/platform-python`` on + ``oraclelinux 8`` when other pythons are present. + - Improve Ansible config deprecations to show the source of the deprecation + (ansible-core). Also remove space before a comma in config deprecations (https://github.com/ansible/ansible/pull/72697). + - Improved/fixed regular expressions in ``validate-modules/validate_modules/schema.py`` + and ``utils/collection_loader/_collection_finder.py`` (https://github.com/ansible/ansible/pull/73577). + - Includes - Explicitly get the include task, and not assume it is the parent + (https://github.com/ansible/ansible/issues/65710) + - InventoryManager - Fix unhandled exception when given limit file was actually + a directory. + - InventoryManager - Fix unhandled exception when inventory directory was empty + or contained empty subdirectories (https://github.com/ansible/ansible/issues/73658). - JSON Encoder - Ensure we treat single vault encrypted values as strings (https://github.com/ansible/ansible/issues/70784) + - Lookup user by UID in password database if login name is not found (https://github.com/ansible/ansible/issues/17029) + - Pass expression in angle-bracket notation as filename argument to a ``compile()`` + built-in function, so that Python debuggers do not try to parse it as filename. + - Pass the connection's timeout to connection plugins instead of the task's + timeout. + - Provide more information in AnsibleUndefinedVariable (https://github.com/ansible/ansible/issues/55152) - Python module_utils finder - refactor logic to eliminate many corner cases, remove recursion, fix base module_utils redirections + - Remove an embedded function from RoleMixin and add tests for it (https://github.com/ansible/ansible/pull/72754). + - Remove the warning displayed when validating the arg spec of a role with dependencies + and add it to the documentation. + - Restore the ability for changed_when/failed_when to function with group_by + (#70844). + - Restored unsafe_writes functionality which was being skipped. + - Restructured pipelining settings to be at the connection plugins leaving base + config as global and for backwards compatiblity. - SSH plugin - Improve error message when ssh client is not found on the host - - TaskExecutor - Handle unexpected errors as failed while post validating loops - (https://github.com/ansible/ansible/issues/70050). - - Template connection variables before using them (https://github.com/ansible/ansible/issues/70598). + - Skip invalid collection names when listing in ansible-doc instead of throwing + exception. Issue#72257 + - Skip literal_eval for string filters results in native jinja. (https://github.com/ansible/ansible/issues/70831) + - Stop adding the connection variables to the output results + - Suppress warning when user directory used in --playbook-dir option with ansible-inventory + command (https://github.com/ansible/ansible/issues/65262). + - TOML inventory - Ensure we register dump functions for ``AnsibleUnsafe`` to + support dumping unsafe values. Note that the TOML format has no functionality + to mark that the data is unsafe for re-consumption. (https://github.com/ansible/ansible/issues/71307) - Terminal plugins - add "\e[m" to the list of ANSI sequences stripped from device output + - The ``docker`` and ``k8s`` action groups / module default groups now also + support the moved modules in `community.docker <https://galaxy.ansible.com/community/docker>`_, + `community.kubevirt <https://github.com/ansible-collections/community.kubevirt>`_, + `community.okd <https://galaxy.ansible.com/community/okd>`_, and `kubernetes.core + <https://galaxy.ansible.com/kubernetes/core>`_ (https://github.com/ansible/ansible/pull/72428). + - The ``flush()`` method of ``CachePluginAdjudicator`` now calls the plugin's + ``flush()`` method instead of iterating over the keys that the adjudicator + knows about and deleting those from the cache. (https://github.com/ansible/ansible/issues/68770) - The `ansible_become` value was not being treated as a boolean value when set in an INI format inventory file (fixes bug https://github.com/ansible/ansible/issues/70476). - The machine-readable changelog ``changelogs/changelog.yaml`` is now contained in the release. + - Updated docs and added warning on max_fail_percentage and free strategy usage. + fixes issue 16666. + - VariableManager - Add the 'vars' key before getting delegated variables (https://github.com/ansible/ansible/issues/71092). - Vault - Allow single vault encrypted values to be used directly as module parameters. (https://github.com/ansible/ansible/issues/68275) + - account for bug in Python 2.6 that occurs during interpreter shutdown to avoid + stack trace - action plugins - change all action/module delegations to use FQ names while allowing overrides (https://github.com/ansible/ansible/issues/69788) - - add constraints file for ``anisble_runner`` test since an update to ``psutil`` + - add AlmaLinux to fact gathering (https://github.com/ansible/ansible/pull/73458) + - add constraints file for ``ansible_runner`` test since an update to ``psutil`` is now causing test failures - add magic/connection vars updates from delegated host info. + - add support for alpine linux 'apk' package manager in package_facts + - allow become method 'su' to work on 'local' connection by allocating a fake + tty. + - ansible-console - Ctrl+C (in a task) abort current task, and put you back + on prompt (this behavior doesn't change) (ditto) + - ansible-console - Ctrl+C (on prompt) used to exit the shell, unlike most shells, + it should just reset the current line (ie. abort it and spawn a new prompt) + (https://github.com/ansible/ansible/issues/68529) + - ansible-console - Ctrl+D (on prompt) now exit the shell, this is the expected + behavior in a shell (cf bash, sh, zsh, ipython, ...) (ditto) + - ansible-console - add more documentation, specifically on various commands[1] + (https://github.com/ansible/ansible/issues/72195) + - ansible-console - fixes few strings' typos + - ansible-console - remove useless and poorly formatted comment section (replaced + with [1]) + - ansible-doc - account for an empty ``meta/main.yml`` file when displaying + role information (https://github.com/ansible/ansible/pull/73590) - ansible-doc - collection name for plugin top-level deprecation was not inserted when deprecating by version (https://github.com/ansible/ansible/pull/70344). - ansible-doc - improve error message in text formatter when ``description`` @@ -1587,31 +215,241 @@ releases: - ansible-doc - improve man page formatting to avoid problems when YAML anchors are used (https://github.com/ansible/ansible/pull/70045). - ansible-doc - include the collection name in the text output (https://github.com/ansible/ansible/pull/70401). + - ansible-doc - plugin option deprecations now also get ``collection_name`` + added (https://github.com/ansible/ansible/pull/71735). + - ansible-doc - properly show plugin name when ``name:`` is used instead of + ``<plugin_type>:`` (https://github.com/ansible/ansible/pull/71966). + - ansible-galaxy - Cache the responses for available collection versions after + getting all pages. (https://github.com/ansible/ansible/issues/73071) + - ansible-galaxy - Instead of assuming the first defined server is galaxy, filter + based on the servers that support the v1 API, and return the first of those + (https://github.com/ansible/ansible/issues/65440) + - ansible-galaxy - Use ``sys.exit`` instead of ``exit`` when reporting an error + for the removed login command. + - ansible-galaxy - correct ``collections-path`` command line argument (https://github.com/ansible/ansible/issues/73127) + - ansible-galaxy - fixed galaxy role init command (https://github.com/ansible/ansible/issues/71977). + - ansible-galaxy collection download - fix downloading tar.gz files and collections + in git repositories (https://github.com/ansible/ansible/issues/70429) + - ansible-galaxy collection install - fix fallback mechanism if the AH server + did not have the collection requested - https://github.com/ansible/ansible/issues/70940 + - ansible-galaxy download - fix bug when downloading a collection in a SCM subdirectory + - ansible-test - Add ``pytest < 6.0.0`` constraint for managed installations + on Python 3.x to avoid issues with relative imports. + - ansible-test - Always connect additional Docker containers to the network + used by the current container (if any). + - ansible-test - Always map ``/var/run/docker.sock`` into test containers created + by the ``--docker`` option if the docker host is not ``localhost``. + - ansible-test - Attempt to detect the Docker hostname instead of assuming ``localhost``. + - ansible-test - Avoid using ``/tmp`` to resolve occasional failures starting + tests with the ``--docker`` option. + - ansible-test - Change classification using ``--changed`` now consistently + handles common configuration files for supported CI providers. + - ansible-test - Change detection now properly resolves relative imports instead + of treating them as absolute imports. + - ansible-test - Correctly detect changes in a GitHub pull request when running + on Azure Pipelines. + - ansible-test - Correctly detect running in a Docker container on Azure Pipelines. - ansible-test - Do not try to validate PowerShell modules ``setup.ps1``, ``slurp.ps1``, and ``async_status.ps1`` + - ansible-test - Prefer container IP at ``.NetworkSettings.Networks.{NetworkName}.IPAddress`` + over ``.NetworkSettings.IPAddress``. + - ansible-test - Running tests using an installed version of ``ansible-test`` + against one Python version from another no longer fails due to a missing ``egg-info`` + directory. This could occur when testing plugins which import ``pkg_resources``. + - ansible-test - Running tests using an installed version of ``ansible-test`` + no longer generates an error attempting to create an ``egg-info`` directory + when an existing one is not found in the expected location. This could occur + if the existing ``egg-info`` directory included a Python version specifier + in the name. + - ansible-test - Skip installing requirements if they are already installed. + - ansible-test - Symbolic links are no longer used to inject ``python`` into + the environment, since they do not work reliably in all cases. Instead, the + existing Python based exec wrapper is always used. + - ansible-test - Temporarily limit ``cryptography`` to versions before 3.4 to + enable tests to function. + - ansible-test - The ``--raw`` option for ``ansible-test shell --remote`` now + uses ``sh`` for the shell instead of ``bash``, which may not be present. + - ansible-test - The ``--remote`` option has been updated for Python 2.7 to + work around breaking changes in the newly released ``get-pip.py`` bootstrapper. + - ansible-test - The ``--remote`` option has been updated to use a versioned + ``get-pip.py`` bootstrapper to avoid issues with future releases. - ansible-test - The ``ansible-doc`` sanity test now works for ``netconf`` plugins. + - ansible-test - The ``changelog`` sanity test has been updated to ensure ``rstcheck`` + does not load the ``sphinx`` module. + - ansible-test - The ``cs`` and ``openshift`` test plugins now search for containers + on the current network instead of assuming the ``bridge`` network. + - ansible-test - The ``resource_prefix`` variable provided to tests running + on Azure Pipelines is now converted to lowercase to match other CI providers. + - ansible-test - Unified SSH key management for all instances created with the + ``--remote`` or ``--docker`` options. + - ansible-test - Using the ``--remote`` option on Azure Pipelines now works + from a job running in a container. + - ansible-test - ``cryptography`` is now limited to versions prior to 3.2 only + when an incompatible OpenSSL version (earlier than 1.1.0) is detected + - 'ansible-test - add constraint for ``cffi`` to prevent failure on systems + with older versions of ``gcc`` (https://foss.heptapod.net/pypy/cffi/-/issues/480) + + ' + - ansible-test - convert target paths to unicode on Python 2 to avoid ``UnicodeDecodeError`` + (https://github.com/ansible/ansible/issues/68398, https://github.com/ansible/ansible/pull/72623). + - ansible-test - improve classification of changes to ``.gitignore``, ``COPYING``, + ``LICENSE``, ``Makefile``, and all files ending with one of ``.in`, ``.md`, + ``.rst``, ``.toml``, ``.txt`` in the collection root directory (https://github.com/ansible/ansible/pull/72353). - ansible-test - integration and unit test change detection now works for filter, lookup and test plugins - ansible-test now always uses the ``--python`` option for ``virtualenv`` to select the correct interpreter when creating environments with the ``--venv`` option + - ansible-test sanity changelog test - bump dependency on antsibull-changelog + to 0.9.0 so that `fragments that add new plugins or objects <https://github.com/ansible-community/antsibull-changelog/blob/main/docs/changelogs.rst#adding-new-roles-playbooks-test-and-filter-plugins>`_ + will not fail validation (https://github.com/ansible/ansible/pull/73428). + - ansible-test units - fixed collection location code to work under pytest >= + 6.0.0 + - ansible-test validate-modules - ``version_added`` on module level was not + validated for modules in collections (https://github.com/ansible/ansible/pull/70869). + - ansible-test validate-modules - return correct error codes ``option-invalid-version-added`` + resp. ``return-invalid-version-added`` instead of the wrong error ``deprecation-either-date-or-version`` + when an invalid value of ``version_added`` is specified for an option or a + return value (https://github.com/ansible/ansible/pull/70869). + - ansible-test validate-modules - when a module uses ``add_file_common_args=True`` + and does not use a keyword argument for ``argument_spec`` in ``AnsibleModule()``, + the common file arguments were not considered added during validation (https://github.com/ansible/ansible/pull/72334). + - ansible_pkg_mgr fact - now correctly returns ``atomic_container`` when run + on "RHEL for Edge" images and Fedora/RHEL/CentOS Atomic Host (https://github.com/ansible/ansible/issues/73084). - api - time.clock is removed in Python 3.8, add backward compatible code (https://github.com/ansible/ansible/issues/70649). + - apt - add ``fail_on_autoremove`` param to apt module to avoid unintended package + removals (https://github.com/ansible/ansible/issues/63231) - apt - include exception message from apt python library in error output + - apt_key - Specifying ``file`` as mutually exclusive with ``data``, ``keyserver``, + ``url`` (https://github.com/ansible/ansible/pull/70492). + - apt_repository - fixes ``mode`` doc to remove ineffective default (https://github.com/ansible/ansible/pull/70319). - assemble - fix decrypt argument in the module (https://github.com/ansible/ansible/issues/65450). + - async - Fix Python 3 interpreter parsing from module by comparing with bytes + (https://github.com/ansible/ansible/issues/70690) + - async_wrapper - Fix race condition when ``~/.ansible_async`` folder tries + to be created by multiple async tasks at the same time - https://github.com/ansible/ansible/issues/59306 + - avoid possible errors accessing os.environ by not assuming existance of variables. + - basic - handle exceptions for default selectors in Python 2.7 (https://github.com/ansible/ansible/issues/71704). - basic - use PollSelector implementation when DefaultSelector fails (https://github.com/ansible/ansible/issues/70238). + - bcrypt hashing - Ensure we repair the salt, to avoid warnings (https://github.com/ansible/ansible/issues/36129) + - 'blockinfile - properly insert a block at the end of a file that does not + have a trailing newline character (https://github.com/ansible/ansible/issues/72055) + + ' + - blockinfile now returns name of backup file when this option is used. + - clarified changed status to reflect existing rule that had never been written + down. + - collection loader - fix bogus code coverage entries for synthetic packages - collection metadata - ensure collection loader uses libyaml/CSafeLoader to parse collection metadata if available + - cron - cron file should not be empty after adding var (https://github.com/ansible/ansible/pull/71207) - cron - encode and decode crontab files in UTF-8 explicitly to allow non-ascii chars in cron filepath and job (https://github.com/ansible/ansible/issues/69492) + - default callback - Ensure that the ``host_pinned`` strategy is not treated + as lockstep (https://github.com/ansible/ansible/issues/73364) + - delegate_to - Ensure that calculating ``delegate_to`` vars with a loop uses + the correct context to correctly evaluate the loop (https://github.com/ansible/ansible/issues/37132) + - display correct error information when an error exists in the last line of + the file (https://github.com/ansible/ansible/issues/16456) + - distribution - add support for Pardus Linux distribution (https://github.com/ansible/ansible/issues/71636). + - distribution facts - Allow ``distribution_major_version`` and ``distribution_version`` + to work for RC and PRERELEASE versions of FreeBSD (and derived distributions) + (https://github.com/ansible/ansible/issues/72331). + - dnf - fix filtering to avoid dependncy conflicts (https://github.com/ansible/ansible/issues/72316) + - 'dnf - it is now possible to specify both ``security: true`` and ``bugfix: + true`` to install updates of both types. Previously, only security would get + installed if both were true. (https://github.com/ansible/ansible/issues/70854)' + - ensure 'local' connection always has the correct default user for actions + to consume. - ensure delegated vars can resolve hostvars object and access vars from hostvars[inventory_hostname]. + - ensure find_mount_point consistently returns text. + - ensure we don't clobber role vars data when getting an empty file + - expect - Operate pexpect with bytes to avoid potential encoding issues (https://github.com/ansible/ansible/issues/29351) - facts - account for Slackware OS with ``+`` in the name (https://github.com/ansible/ansible/issues/38760) + - facts - fix distribution fact for SLES4SAP (https://github.com/ansible/ansible/pull/71559). + - facts - fix incorrect UTC timestamp in ``iso8601_micro`` and ``iso8601`` + - facts - properly report virtualization facts for Linux guests running on bhyve + (https://github.com/ansible/ansible/issues/73167) + - file - prevent link src from being rewritten when src is not specified explicitly + (https://github.com/ansible/ansible/issues/65448) + - file - the module should warn in check_mode when path an owner/group don't + exist (https://github.com/ansible/ansible/issues/67307). + - find module - Don't treat empty excludes as a match (https://github.com/ansible/ansible/issues/70640) + - find module - Stop traversing directories past the requested depth. (https://github.com/ansible/ansible/issues/73627) - fix issue with inventory_hostname and delegated host vars mixing on connection settings. + - fortimanager httpapi plugin - fix redirect to point to the ``fortinet.fortimanager`` + collection (https://github.com/ansible/ansible/pull/71073). + - galaxy - handle plus sign in user token appearing in role url (https://github.com/ansible/ansible/issues/45475). + - get_sysctl now handles multiline values and does not die silently anymore. + - get_url - skip checksum during ``--check`` (https://github.com/ansible/ansible/issues/61369). + - git - Only pass ``--raw`` flag to git verify commands (verify-tag, verify-commit) + when ``gpg_whitelist`` is in use. Otherwise don't pass it so that non-whitelist + GPG validation still works on older Git versions. (https://github.com/ansible/ansible/issues/64469) + - gluster modules - fix redirect to point to the ``gluster.gluster`` collection + (https://github.com/ansible/ansible/pull/71240). + - hostname - Fixed an issue where the hostname on the alinux could not be set. + - hostname - add Almalinux support (https://github.com/ansible/ansible/pull/73619) + - hostname - add macOS support (https://github.com/ansible/ansible/pull/54439) - if the ``type`` for a module parameter in the argument spec is callable, do not pass ``kwargs`` to avoid errors (https://github.com/ansible/ansible/issues/70017) + - import_playbook - change warning about extra parameters to deprecation (https://github.com/ansible/ansible/issues/72745) + - improve deprecation message when using bare variable (https://github.com/ansible/ansible/pull/70687) + - inventory - pass the vars dictionary to combine_vars instead of an individual + key's value (https://github.com/ansible/ansible/issues/72975). + - inventory plugins - Let plugins define the sanitization method for the constructed + ``groups`` feature. + - inventory_hostnames - Use ``InventoryManager`` instead of trying to replicate + its behavior (https://github.com/ansible/ansible/issues/17268) + - is_string/vault - Ensure the is_string helper properly identifies AnsibleVaultEncryptedUnicode + as a string (https://github.com/ansible/ansible/pull/71609) + - lineinfile - fix not subscriptable error in exception handling around file + creation + - linux network facts - get the correct value for broadcast address (https://github.com/ansible/ansible/issues/64384) + - native jinja2 types - properly handle Undefined in nested data. + - package - use list of built in package managers from facts rather than creating + a new list + - paramiko connection plugin - Ensure we only reset the connection when one + has been previously established (https://github.com/ansible/ansible/issues/65812) + - password hashing - Ensure we validate salts against allowed characters and + length when using ``crypt`` (https://github.com/ansible/ansible/issues/71107) + - password lookup - Try to automatically generate salts using known salt sizes + (https://github.com/ansible/ansible/issues/53750) + - 'pause - Fix indefinite hang when using a pause task on a background process + (https://github.com/ansible/ansible/issues/32142) + + ' + - pause - catch additional error on setting up curses (https://github.com/ansible/ansible/pull/73588). + - pause - do not warn when running in the background if a timeout is provided + (https://github.com/ansible/ansible/issues/73042) - pause - handle exception when there is no stdout (https://github.com/ansible/ansible/pull/47851) - - playbooks - detect and propagate failures in ``always`` blocks after ``rescue`` - (https://github.com/ansible/ansible/issues/70000) + - powershell - fix escaping of strings that broken modules like fetch when dealing + with special chars - https://github.com/ansible/ansible/issues/62781 + - powershell - fix the CLIXML parser when it contains nested CLIXML objects + - https://github.com/ansible/ansible/issues/69550 + - powershell - remove getting the PowerShell version from the env var ``POWERSHELL_VERSION``. + This feature never worked properly and can cause conflicts with other libraries + that use this var + - psrp - Fix hang when copying an empty file to the remote target + - psrp - Use native PSRP mechanism when copying files to support custom endpoints + - quote filter - normalize how ``None`` is handled, to match Python3 behavior + (https://github.com/ansible/ansible/issues/32174) + - reboot - Add support for the runit init system, used on Void Linux, that does + not support the normal Linux syntax. + - remove contradictory recomendation from template docs. https://github.com/ansible/ansible/issues/63484 + - remove redundant remote_user setting in play_context for local as plugin already + does it, also removes fork/thread issue from use of pwd library. + - reset logging level to INFO due to CVE-2019-14846. + - runas - create a new token when running as ``SYSTEM`` to ensure it has the + full privileges assigned to that account + - service - Fix for the BSD rcconf code using a Python 2 specific string replace + function + - 'set_mode_if_different - handle symlink if it is inside a directory with sticky + bit set (https://github.com/ansible/ansible/pull/45198) + + ' + - several fixes to make apt_key better at identifying needs for change and also + to avoid changes in check_mode. - shell - fix quoting of mkdir command in creation of remote_tmp in order to allow spaces and other special characters (https://github.com/ansible/ansible/issues/69577). - splunk httpapi plugin - switch from splunk.enterprise_security to splunk.es @@ -1620,899 +458,1539 @@ releases: to ensure ``ANSBILE_SSH_ARGS`` are applied properly (https://github.com/ansible/ansible/issues/70437) ' + - stat - handle colons in filename while parsing the mimetype output (https://github.com/ansible/ansible/issues/70256). + - strftime filter - Input epoch is allowed to be a float (https://github.com/ansible/ansible/issues/71257) + - 'systemd - account for templated unit files using ``@`` when searching for + the unit file (https://github.com/ansible/ansible/pull/72347#issuecomment-730626228) + + ' + - systemd - fixed chroot usage on new versions of systemd, that broke because + of upstream changes in systemctl output + - 'systemd - follow up fix to https://github.com/ansible/ansible/issues/72338 + to use ``list-unit-files`` rather than ``list-units`` in order to show all + units files on the system. + + ' + - systemd - made the systemd module work correctly when the SYSTEMD_OFFLINE + environment variable is set + - 'systemd - preserve the full unit name when using a templated service and + ``systemd`` failed to parse dbus due to a known bug in ``systemd`` (https://github.com/ansible/ansible/pull/72985) + + ' + - 'systemd - work around bug with ``systemd`` 245 and 5.8 kernel that does not + correctly report service state (https://github.com/ansible/ansible/issues/71528) + + ' + - 'task parsing - strip spaces from action name when using ``action: foo bar=baz`` + form. (https://github.com/ansible/ansible/issues/62136)' + - templating - fix error message for ``x in y`` when y is undefined (https://github.com/ansible/ansible/issues/70984) + - the unvault lookup plugin returned a byte string. Now returns a real string. + - to_text(stdout) before json.loads in psrp.Connection.put_file in case stdout + is bytes + - unarchive - ``zip`` unarchive no longer errors on RHEL/CentOS 6 and old Fedora + when attempting to use a numeric gid (https://github.com/ansible/ansible/issues/71903). + - unarchive - check ``fut_gid`` against ``run_gid`` in addition to supplemental + groups (https://github.com/ansible/ansible/issues/49284) + - undeprecate hash_merge setting and add more docs clarifying its use and why + not to use it. + - uri - ``status_code`` elements are type ``int`` + - url lookup - make sure that options supplied in ansible.cfg are actually used + (https://github.com/ansible/ansible/pull/71736). + - url lookup - set default user agent to ``ansible-httpget`` (https://github.com/ansible/ansible/pull/72324) + - urls - Close filedescriptor of certificate chain tempfile to prevent stale + filedescriptor leakage (https://github.com/ansible/ansible/pull/71825). + - 'user - AnsibleModule.run_command returns a tuple of return code, stdout and + stderr. The module main function of the user module expects user.create_user + to return a tuple of return code, stdout and stderr. Fix the locations where + stdout and stderr got reversed. + + ' + - 'user - Local users with an expiry date cannot be created as the ``luseradd`` + / ``lusermod`` commands do not support the ``-e`` option. Set the expiry time + in this case via ``lchage`` after the user was created / modified. (https://github.com/ansible/ansible/issues/71942) + + ' + - 'user - do the right thing when ``password_lock=True`` and ``password`` are + used together (https://github.com/ansible/ansible/issues/72992) + + ' - user - don't create home directory and missing parents when create_home == false (https://github.com/ansible/ansible/pull/70600). + - validate-modules - do not raise an ``AttributeError`` if a value is assigned + to a module attribute in a try/except block. + - vault - Support reading raw binary data from stdin under python3 + - virtual facts - kubevirt is now identified as "KubeVirt" and with a "guest" + role instead of "kvm" and "host" role (https://github.com/ansible/ansible/issues/72001). + - wait_for - catch and ignore errors when getting active connections with psutil + (https://github.com/ansible/ansible/issues/72322) - win setup - Fix redirection path for the windows setup module - windows async - use full path when calling PowerShell to reduce reliance on environment vars being correct - https://github.com/ansible/ansible/issues/70655 - winrm - preserve winrm forensic data on put_file failures + - yamllint - do not raise an ``AttributeError`` if a value is assigned to a + module attribute at the top of the module. + deprecated_features: + - Starting in 2.14, shell and command modules will no longer have the option + to warn and suggest modules in lieu of commands. The ``warn`` parameter to + these modules is now deprecated and defaults to ``False``. Similarly, the + ``COMMAND_WARNINGS`` configuration option is also deprecated and defaults + to ``False``. These will be removed and their presence will become an error + in 2.14. + - apt_key - the parameter ``key`` does not have any effect, has been deprecated + and will be removed in ansible-core version 2.14 (https://github.com/ansible/ansible/pull/70319). + - psrp - Set the minimum version of ``pypsrp`` to ``0.4.0``. + known_issues: + - ansible-test - The ``pylint`` sanity test no longer correctly detects "bad" + variable names for non-constants. See https://github.com/PyCQA/pylint/issues/3701 + for additional details. + major_changes: + - A collection can be reinstalled with new version requirements without using + the ``--force`` flag. The collection's dependencies will also be updated if + necessary with the new requirements. Use ``--upgrade`` to force transitive + dependency updates. + - 'Declared ``resolvelib >= 0.5.3, < 0.6.0`` a direct dependency of + + ansible-core. Refs: + + - https://github.com/sarugaku/resolvelib + + - https://pypi.org/p/resolvelib + + - https://pradyunsg.me/blog/2020/03/27/pip-resolver-testing + + ' + - It became possible to install Ansible Collections from local folders and namespaces + folder similar to SCM structure with multiple collections. + - It became possible to upgrade Ansible collections from Galaxy servers using + the ``--upgrade`` option with ``ansible-galaxy collection install``. + - Support for role argument specification validation at role execution time. + When a role contains an argument spec, an implicit validation task is inserted + at the start of role execution. + - add ``ArgumentSpecValidator`` class for validating parameters against an argument + spec outside of ``AnsibleModule`` (https://github.com/ansible/ansible/pull/73335) minor_changes: + - Add ``--format`` CLI option to ``ansible-galaxy collection list`` which allows + for ``human`` (default), ``yaml``, or ``json``. (https://github.com/ansible/ansible/pull/73474) - Add an example for using var in with_sequence (https://github.com/ansible/ansible/issues/68836). + - Add new rolespec_validate option to the import/include_role modules do allow + disabling of the implicit role arg validation task on a per-role basis. + - Add option to pass extra vars to ansible-inventory + - Add path of collection location in Ansible CLI version info. - Add standard Python 2/3 compatibility boilerplate to setup script, module_utils and docs_fragments which were missing them. - - 'Command module: Removed suggestions to use modules which have moved to collections - and out of ansible-base' + - Add support for `argument_specs` data in role metadata. + - Add support for datetime.date object type in module result (https://github.com/ansible/ansible/issues/70583). + - Add which conditional is being evaluated at each step when debugging. + - Add yum/dnf version comparison documentation for package install + - Added NO_COLOR environment var to ansible color configuration, allowing it + to integrate with existing convention. + - Added name of aliases in user error (https://github.com/ansible/ansible/issues/58752). + - Added support for GSSAPI/Kerberos authentication with ``urls.py`` that is + used by ``uri`` and ``get_url``. + - Added support for specify custom credentials for GSSAPI authentication. + - Allow an attribute to be passed to the min and max filters with Jinja 2.10+ + - Allow for the skipped filter to be used on a registered looped task results. + (https://github.com/ansible/ansible/issues/16949) + - Allow inventory plugins access to extra vars by default + - Allow unsafe_writes to be set on target via env var, for those targets that + need a blanket setting. + - Also added extra vars cli option to console CLI. + - AnsiballZ - Improve performance of ``ModuleDepFinder`` by using faster lookups + and reducing the object types that are walked while looking for ``import`` + statements. (https://github.com/ansible/ansible/pull/70475) + - CLI - Specify jinja version in ``--version`` output + - CLI - Specify whether PyYAML includes libyaml support in version output + - CLI version displays clarified as core version + - 'Collection routing: Cisco NSO content from community.network migrated to + cisco.nso (https://github.com/ansible/ansible/pull/73046).' + - 'Collection routing: DellEMC content from community.general migrated to dellemc.openmanage + (https://github.com/ansible/ansible/pull/73046).' + - 'Collection routing: FortiOS content from community.network migrated to community.fortios + (https://github.com/ansible/ansible/pull/73046).' + - 'Collection routing: Google content from community.general migrated to community.google + (https://github.com/ansible/ansible/pull/73046).' + - 'Collection routing: Hashi Vault content from community.general migrated to + community.hashi_vault (https://github.com/ansible/ansible/pull/73046).' + - 'Collection routing: Hetzner Robot content from community.general migrated + to community.hrobot (https://github.com/ansible/ansible/pull/73046).' + - 'Collection routing: KubeVirt content from community.general migrated to community.kubevirt + (https://github.com/ansible/ansible/pull/73046).' + - 'Collection routing: OC content from community.general migrated to community.okd + (https://github.com/ansible/ansible/pull/73046).' + - 'Collection routing: PostgreSQL content from community.general migrated to + community.postgresql (https://github.com/ansible/ansible/pull/73046).' + - 'Collection routing: RouterOS content from community.network migrated to community.routeros + (https://github.com/ansible/ansible/pull/73046).' + - 'Collection routing: docker content from community.general migrated to community.docker + (https://github.com/ansible/ansible/pull/73046).' + - Controller - Add warning for Ansible 2.11 when running a Python version older + than Python 3.8 to inform users that 2.12 will only support Python 3.8 and + newer on the controller. Starting with Ansible 2.11, the project will only + be packaged for Python 3.8 and newer. + - Discourage the use of 'hexdigits' in password lookup, as it distorts expected + entropy. + - Enable extra vars for inventory plugin options + - Errors - Ensure that errors passed with ``orig_exc`` include the context of + that exception (https://github.com/ansible/ansible/issues/68605) + - Filters - Add new ``split`` filter for splitting strings + - Fixed ansible-doc to not substitute for words followed by parenthesis. For + instance, ``IBM(International Business Machines)`` will no longer be substituted + with a link to a non-existent module. https://github.com/ansible/ansible/pull/71070 + - Force the template module to use non-native Jinja2 (https://github.com/ansible/ansible/issues/46169) + - Internal config entries will not be documented, to mark an entry as internal + it must start with `_`. + - Interpreter Discovery - Add Python 3.8 and Python 3.9 to the fallback list + - Minor code cleanup in plugin loader. + - Module API - libselinux-python is no longer required for basic module API + selinux operations (affects core modules assemble, blockinfile, copy, cron, + file, get_url, lineinfile, setup, replace, unarchive, uri, user, yum_repository) + - Module API - new module_respawn API allows modules that need to run under + a specific Python interpreter to respawn in place under that interpreter + - Module iptables multiport destination support added (https://github.com/ansible/ansible/pull/72928) + - Module iptables set/ipset support added (https://github.com/ansible/ansible/pull/72984) + - New 'timeout' feature added to adhoc and console CLIs, corresponding to the + recent 'timeout' task keyword. + - New virtualization facts, ``virtualization_tech_guest`` and ``virtualization_tech_host`` + now allow for conveying when a system is a host or guest of multiple virtualization + technologies. + - Now 'choices' keyword in config definitions also restricts valid values for + the entry. + - Refactored ``ansible-galaxy collection [download|install|list|verify]`` CLI + subcommands with the public interface kept intact. + - Restructured _fixup_perms2() in ansible.plugins.action to make it more linear + - Shadow prompt input to ansible-vault encrypt-string unless the ``--show-input`` + flag is set + - Switch to hashlib.sha256() for ansible-test to allow for FIPs mode. + - TOML inventory plugin is no longer in preview status + - Templar - reduce the complexity of ``Templar._lookup`` (https://github.com/ansible/ansible/pull/73277) + - The ``csvfile`` lookup plugin now uses ``parse_kv()`` internally. As a result, + multi-word search keys can now be passed. + - The ``csvfile`` lookup plugin's documentation has been fixed; it erroneously + said that the delimiter could be ``t`` which was never true. We now accept + ``\t``, however, and the error in the documentation has been fixed to note + that. + - The constructed inventory plugin has new option to force using vars plugins + on previouslly processed inventory sources. + - The find module is now more specific about the reasons it skips candidate + files. + - The logging functionality in module_utils.basic now returns a nicer error + when it falls back to syslog but ends up getting a TypeError thrown back. + - The new dependency resolver prefers ``MANIFEST.json`` over ``galaxy.yml`` + if it exists in the target directory. - The plugin loader now keeps track of the collection where a plugin was resolved - to, in particular whether the plugin was loaded from ansible-base's internal + to, in particular whether the plugin was loaded from ansible-core's internal paths (``ansible.builtin``) or from user-supplied paths (no collection name). + - Toggle allowing usage of extra_vars in compose + - When connecting as an unprivileged user, and becoming an unprivileged user, + we now fall back to also trying ``chmod +a`` which works on macOS and makes + use of ACLs. + - allow tree callback plugin to be configurable, for use with playbooks. + - ansible-doc - In Windows setup steps, ``ExecutionPolicy`` should be restored + to default value ``RemoteSigned`` (https://github.com/ansible/ansible/pull/72993). + - ansible-doc - provide ``has_action`` field in JSON output for modules. That + information is currently only available in the text view (https://github.com/ansible/ansible/pull/72359). + - ansible-doc has new option to show keyword documentation. + - ansible-doc will now format, ``L()``, ``R()``, and ``HORIZONTALLINE`` in plugin + docs just as the website docs do. https://github.com/ansible/ansible/pull/71070 - ansible-galaxy - Add installation successful message + - ansible-galaxy - Added caching mechanisms when retrieving collection info + to speed up installs and downloads - ansible-galaxy - Change the output verbosity level of the download message from 3 to 0 (https://github.com/ansible/ansible/issues/70010) + - ansible-galaxy - Ensure ``get_collection_versions`` returns an empty list + when a collection does not exist for consistency across API versions. + - 'ansible-galaxy - find any collection dependencies in the globally configured + Galaxy servers and not just the server the parent collection is from. + + ' + - ansible-test - A warning is no longer emitted when a ``pip*`` or ``python*`` + binary is found without a matching couterpart. + - ansible-test - Add ``macos/10.15`` as a supported value for the ``--remote`` + option. + - ansible-test - Add a ``--docker-network`` option to choose the network for + running containers when using the ``--docker`` option. + - ansible-test - Add support for running tests on Fedora 33 (https://github.com/ansible/ansible/pull/72861). + - ansible-test - Added Ubuntu 20.04 LTS image to the default completion list + - ansible-test - Added a ``--export`` option to the ``ansible-test coverage + combine`` command to facilitate multi-stage aggregation of coverage in CI + pipelines. + - ansible-test - Added the ``-remote rhel/7.9`` option to run tests on RHEL + 7.9 + - ansible-test - Allow custom ``--remote-stage`` options for development and + testing. + - ansible-test - CentOS 8 container is now 8.2.2004 (https://github.com/ansible/distro-test-containers/pull/45). + - ansible-test - Changed the internal name of the custom plugin used to identify + use of unwanted imports and functions. + - ansible-test - Cleaned up code to resolve warnings and errors reported by + PyCharm. + - ansible-test - Code cleanup in the ``import`` sanity test. + - ansible-test - Code cleanup in the internal logic for code coverage collection + of PowerShell modules. + - ansible-test - Collections can now specify pip constraints for unit and integration + test requirements using ``tests/unit/constraints.txt`` and ``tests/integration/constraints.txt`` + respectively. + - ansible-test - Containers used with the ``--remote`` option have been updated + to version 1.29.0 to include the latest Ansible requirements. + - ansible-test - Files used to track remote instances no longer have a region + suffix. + - ansible-test - Fix ``ansible-test coverage`` reporting sub-commands (``report``, + ``html``, ``xml``) on Python 2.6. + - ansible-test - Fix container hostname/IP discovery for the ``acme`` test plugin. + - ansible-test - FreeBSD 11.4 and 12.2 provisioning can now be used with the + ``--python 3.8`` option. + - ansible-test - FreeBSD instances provisioned with ``--remote`` now make ``libyaml`` + available for use with PyYAML installation. + - ansible-test - Generation of an ``egg-info`` directory, if needed, is now + done after installing test dependencies and before running tests. When running + from an installed version of ``ansible-test`` a temporary directory is used + to avoid permissions issues. Previously it was done before installing test + dependencies and adjacent to the installed directory. + - ansible-test - Implemented CloudStack test container selection by ENV variable + `ANSIBLE_CLOUDSTACK_CONTAINER` with a default to `quay.io/ansible/cloudstack-test-container:1.4.0`. + - ansible-test - Improved handling of minimum Python version requirements for + sanity tests. Supported versions are now included in warning messages displayed + when tests are skipped. + - ansible-test - More sanity test requirements have been pinned to specific + versions to provide consistent test results. + - ansible-test - Most sanity test specific ``pip`` constraints are now used + only when running sanity tests. This should reduce conflicts with ``pip`` + requirements and constraints when testing collections. + - ansible-test - Most sanity tests are now skipped on Python 3.5 and earlier + with a warning. Previously this was done for Python 2.7 and earlier. + - ansible-test - Now supports freebsd/11.4 remote (https://github.com/ansible/ansible/issues/48782). + - ansible-test - Now supports freebsd/12.2 remote (https://github.com/ansible/ansible/issues/72366). + - ansible-test - OpenSuse container now uses Leap 15.2 (https://github.com/ansible/distro-test-containers/pull/48). + - ansible-test - Pin the ``virtualenv`` version used for ``--remote`` pip installs + to the latest version supported by Python 2.x, which is version 16.7.10. - ansible-test - Provisioning of RHEL instances now includes installation of pinned versions of ``packaging`` and ``pyparsing`` to match the downstream vendored versions. + - ansible-test - RHEL 8.2+ provisioning can now be used with the ``--python + 3.8`` option, taking advantage of the Python 3.8 AppStream. + - ansible-test - Raise the number of bytes scanned by ansible-test to determine + if a file is binary to 4096. + - ansible-test - Refactor code for installing ``cryptography`` to allow re-use + in the future. + - ansible-test - Refactor code to remove unused logic for obsolete support of + multiple provisioning endpoints. + - ansible-test - Remove ``pytest < 6.0.0`` constraint for managed installations + on Python 3.x now that pytest 6 is supported. + - ansible-test - Remove em dash from the Pytest configuration file in order + to be readable on systems where preferred encoding is ASCII. (https://github.com/ansible/ansible/issues/71739) + - 'ansible-test - Remove outdated ``--docker`` completion entries: fedora30, + fedora31, ubuntu1604' + - 'ansible-test - Remove outdated ``--remote`` completion entries: freebsd/11.1, + freebsd/12.1, osx/10.11, macos/10.15, rhel/7.6, rhel/7.8, rhel/8.1, rhel/8.2' + - 'ansible-test - Remove outdated ``--windows`` completion entries: 2008, 2008-R2' + - ansible-test - Remove the discontinued ``us-east-2`` choice from the ``--remote-aws-region`` + option. + - 'ansible-test - Remove unused ``--remote`` completion entry: power/centos/7' + - ansible-test - Removed ``pip`` constraints related to integration tests that + have been moved to collections. This should reduce conflicts with ``pip`` + requirements and constraints when testing collections. + - ansible-test - Removed the obsolete ``--remote-aws-region`` provisioning option. + - ansible-test - Removed the obsolete ``tower`` test plugin for testing Tower + modules. + - ansible-test - Removed unused provisioning code and cleaned up remote provider + management logic. + - ansible-test - Rename internal functions to match associated constant names + that were previously updated. + - ansible-test - Reorganize internal ``pylint`` configuration files for easier + comparison and maintenance. - ansible-test - Report the correct line number in the ``yamllint`` sanity test when reporting ``libyaml`` parse errors in module documentation. + - ansible-test - Request remote resources by provider name for all provider + types. + - ansible-test - Show a warning when the obsolete ``--remote-aws-region`` option + is used. + - ansible-test - Silence ``pip`` warnings about Python 3.5 being EOL when installing + requirements. + - ansible-test - Support custom remote endpoints with the ``--remote-endpoint`` + option. + - ansible-test - The ``--remote`` option no longer pre-installs the ``virtualenv`` + module on Python 3.x instances. The Python built-in ``venv`` module should + be used instead. + - ansible-test - The ``default`` container for both collections and core have + been updated to versions 2.11.0 and 1.9.0 respectively. + - ansible-test - The ``pylint`` sanity test is now skipped with a warning on + Python 3.9 due to unresolved upstream regressions. + - ansible-test - The ``pylint`` sanity test is now supported on Python 3.8. + - ansible-test - The ``rstcheck`` sanity test is no longer used for collections, + but continues to be used for ansible-core. + - ansible-test - Ubuntu containers as well as ``default-test-container`` and + ``ansible-base-test-container`` are now slightly smaller due to apt cleanup + (https://github.com/ansible/distro-test-containers/pull/46). + - ansible-test - Update ``pylint`` and its dependencies to the latest available + versions to support Python 3.9. + - ansible-test - Update built-in service endpoints for the ``--remote`` option. + - ansible-test - Updated the default test containers to version 3.1.0. + - ansible-test - Upgrade ansible-runner version used in compatibility tests, + remove some tasks that were only needed with older versions, and skip in python2 + because ansible-runner is soon dropping it. + - ansible-test - Use new endpoint for Parallels based instances with the ``--remote`` + option. + - ansible-test - ``default-test-container`` and ``ansible-base-test-container`` + now use Python 3.9.0 instead of 3.9.0rc1. + - ansible-test - add https endpoint for ansible-test + - ansible-test - add macOS 11.1 as a remote target (https://github.com/ansible/ansible/pull/72622) + - ansible-test - add the collection plugin directories ``plugin_utils`` and + ``sub_plugins`` to list of plugin types. This ensures such plugins are tested + for the ``import`` sanity test (https://github.com/ansible/ansible/pull/73599). + - ansible-test - centos6 end of life - container image updated to point to vault + base repository (https://github.com/ansible/distro-test-containers/pull/54) + - ansible-test - centos6 image now has multiple fallback yum repositories for + CentOS Vault. + - ansible-test - default container now uses default-test-container 2.7.0 and + ansible-base-test-container 1.6.0. This brings in Python 3.9.0rc1 for testing. + - ansible-test - now makes a better attempt to support podman when calling ``docker + images`` and asking for JSON format. + - ansible-test - python-cryptography is now bounded at <3.2, as 3.2 drops support + for OpenSSL 1.0.2 upon which some of our CI infrastructure still depends. + - ansible-test - remote macOS instances no longer install ``virtualenv`` during + provisioning + - ansible-test - the ACME test container was updated, it now supports external + account creation and has a basic OCSP responder (https://github.com/ansible/ansible/pull/71097, + https://github.com/ansible/acme-test-container/releases/tag/2.0.0). + - ansible-test - the ``import`` sanity test now also tries to import all non-module + and non-module_utils Python files in ``lib/ansible/`` resp. ``plugins/`` (https://github.com/ansible/ansible/pull/72497). + - ansible-test - virtualenv helper scripts now prefer ``venv`` on Python 3 over + ``virtualenv`` + - ansible-test Now supports RHEL 8.3 + - ansible-test pylint - ensure that removal collection version numbers conform + to the semantic versioning specification at https://semver.org/ (https://github.com/ansible/ansible/pull/71679). + - ansible-test pylint sanity test - stop ignoring ``used-before-assignment`` + errors (https://github.com/ansible/ansible/pull/73639). + - ansible-test runtime-metadata - compare deprecation and tombstone versions + to the current version to ensure that they are correct (https://github.com/ansible/ansible/pull/72625). + - ansible-test runtime-metadata - ensure that removal collection version numbers + conform to the semantic versioning specification at https://semver.org/ (https://github.com/ansible/ansible/pull/71679). + - ansible-test runtime-metadata - ensure that the tombstone removal date is + not in the future (https://github.com/ansible/ansible/pull/72625). + - ansible-test runtime-metadata - validate removal version numbers, and check + removal dates more strictly (https://github.com/ansible/ansible/pull/71679). + - ansible-test validate-modules - ensure that removal collection version numbers + and version_added collection version numbers conform to the semantic versioning + specification at https://semver.org/ (https://github.com/ansible/ansible/pull/71679). + - ansible-test validate-modules - no longer assume that ``default`` for ``type=bool`` + options is ``false``, as the default is ``none`` and for some modules, ``none`` + and ``false`` mean different things (https://github.com/ansible/ansible/issues/69561). + - ansible-test validate-modules - validate removal version numbers (https://github.com/ansible/ansible/pull/71679). + - ansible.utils.encrypt now returns `AnsibleError` instead of crypt.crypt's + `OSError` on Python 3.9 + - apt - module now works under any supported Python interpreter + - apt_repository - module now works under any supported Python interpreter + - callback plugins - ``meta`` tasks now get sent to ``v2_playbook_on_task_start``. + Explicit tasks are always sent. Plugins can opt in to receiving implicit ones. + - callbacks - Add feature allowing forks to send callback events (https://github.com/ansible/ansible/issues/14681) - conditionals - change the default of CONDITIONAL_BARE_VARS to False (https://github.com/ansible/ansible/issues/70682). + - 'config - more types are now automatically coerced to string when ``type: + str`` is used and the value is parsed as a different type' + - constructed - Add a toggle to allow the separator to be omitted if no prefix + has been provided. + - constructed inventory plugin - Sanitize group names created from the ``groups`` + option silently. + - create ``get_type_validator`` standalone function and move that functionality + out of ``AnsibleModule`` (https://github.com/ansible/ansible/pull/72667) + - create ``get_unsupported_parameters`` validation function (https://github.com/ansible/ansible/pull/72447/files) - debconf - add a note about no_log=True since module might expose sensitive information to logs (https://github.com/ansible/ansible/issues/32386). + - default callback - add ``show_task_path_on_failure`` option to display file + and line number of tasks only on failed tasks when running at normal verbosity + level (https://github.com/ansible/ansible/issues/64625) + - default callback - task name is now shown for ``include_tasks`` when using + the ``free`` strategy (https://github.com/ansible/ansible/issues/71277). + - default callback - task name is now shown for ``include_tasks`` when using + the ``linear`` strategy with ``ANSIBLE_DISPLAY_SKIPPED_HOSTS=0``. + - default_callback - moving 'check_mode_markers' documentation in default_callback + doc_fragment (https://github.com/ansible-collections/community.general/issues/565). + - distribution - add support for DragonFly distribution (https://github.com/ansible/ansible/issues/43739). + - distribution - added distribution fact and hostname support for Parrot OS + (https://github.com/ansible/ansible/pull/69158). + - distribution - handle NetBSD OS Family (https://github.com/ansible/ansible/issues/43739). + - distribution facts - ``distribution_release`` is now ``"Stream"`` on CentOS + Stream (https://github.com/ansible/ansible/issues/73027). + - dnf - Add nobest option (https://github.com/ansible/ansible/issues/69983) + - 'dnf - When ``state: absent``, package names are now matched similarly to + how the ``dnf`` CLI matches them (https://github.com/ansible/ansible/issues/72809).' + - dnf - module now works under any supported Python interpreter + - dnf - now shows specific package changes (installations/removals) under ``results`` + in check_mode. (https://github.com/ansible/ansible/issues/66132) + - facts - ``/dev/kvm`` is now consulted in Linux virtualization facts, and the + host is considered a KVM host if this file exists and none of the pre-existing + checks matched. + - facts - add new fact ``date_time['tz_dst']``, which returns the daylight saving + timezone (https://github.com/ansible/ansible/issues/69004). + - facts - add uptime to openbsd + - find module - Now has a ``read_whole_file`` boolean parameter which allows + for reading the whole file and doing an ``re.search()`` regex evaluation on + it when searching using the ``contains`` option. This allows (for example) + for ensuring the very end of the file matches a pattern. + - galaxy - add documentation about galaxy parameters in examples/ansible.cfg + (https://github.com/ansible/ansible/issues/68402). + - galaxy - handle token as dict while loading from yaml file (https://github.com/ansible/ansible/issues/70887). + - get_url - allow checksum urls to point to file:// resources, moving scheme + test to function + - get_url - handle same SHA sum for checksum file (https://github.com/ansible/ansible/issues/71420). + - git - add ``single_branch`` parameter (https://github.com/ansible/ansible/pull/28465) + - hash filter - fail when unsupported hash type is passed as an argument (https://github.com/ansible/ansible/issues/70258) + - inventory cache - do not show a warning when the cache file does not (yet) + exist. + - iptables - add a note about ipv6-icmp in protocol parameter (https://github.com/ansible/ansible/issues/70905). + - iptables - fixed get_chain_policy API (https://github.com/ansible/ansible/issues/68612). + - iptables - reorder comment postition to be at the end (https://github.com/ansible/ansible/issues/71444). + - lineinfile - add search_string parameter for non-regexp searching (https://github.com/ansible/ansible/issues/70470) + - linux facts - Add additional check to ensure 'container' virtual fact gets + added to guest_tech when appropriate (https://github.com/ansible/ansible/pull/71385) + - meta - now include a ``skip_reason`` when skipped (https://github.com/ansible/ansible/pull/71355). + - module_utils - ``get_file_attributes()`` now takes an optional ``include_version`` + boolean parameter. When ``True`` (default), the file's version/generation + number is included in the result (but requires ``lsattr -v`` to work on the + target platform). + - now !unsafe works on all types of data, not just strings, even recursively + for mappings and sequences. + - package_facts - module support for apt and rpm now works under any supported + Python interpreter - pipe lookup - update docs for Popen with shell=True usages (https://github.com/ansible/ansible/issues/70159). - release_summary: '| Release Date: 2020-07-23 + - plugin examples - Allow non-YAML examples, so that examples for plugins like + the INI and TOML inventory plugins can be directly represented (https://github.com/ansible/ansible/pull/71184) + - plugin option validation - now the option type ``dict``/``dictionary`` is + also validated by the config manager (https://github.com/ansible/ansible/pull/71928). + - 'reboot - add ``reboot_command`` parameter to allow specifying the command + used to reboot the system (https://github.com/ansible/ansible/issues/51359) + + ' + - remove ``excommunicate`` debug command from AnsiballZ + - selinux - return selinux_getpolicytype facts correctly. + - service_facts - return service state information on AIX. + - setup - allow list of filters (https://github.com/ansible/ansible/pull/68551). + - setup.py - Declare that Python 3.9 is now supported (https://github.com/ansible/ansible/pull/72861). + - setup.py - Skip doing conflict checks for ``sdist`` and ``egg_info`` commands + (https://github.com/ansible/ansible/pull/71310) + - subelements - clarify the lookup plugin documentation for parameter handling + (https://github.com/ansible/ansible/issues/38182). + - subversion - ``validate_certs`` option, which, when true, will avoid passing + ``--trust-server-cert`` to ``svn`` commands (https://github.com/ansible/ansible/issues/22599). + - unarchive - Add support for .tar.zst (zstd compression) (https://github.com/ansible/ansible/pull/73265). + - unarchive - add ``RETURN`` documentation (https://github.com/ansible/ansible/issues/67445). + - 'unarchive - add ``include`` parameter to allow extracting specific files + from an archive (https://github.com/ansible/ansible/pull/40522) + + ' + - update sphinx to 2.1.2 and rstcheck to 3.3.1 for building documentation. + - uri - add ``ca_path`` argument to allow specification of a CA certificate + (https://github.com/ansible/ansible/pull/71979). + - user - add new parameters ``password_expire_max`` and ``password_expire_min`` + for controlling password expiration (https://github.com/ansible/ansible/issues/68775) + - varnames lookup plugin - Fixed grammar error in exception message when the + plugin is given a non-string term. + - vault - Provide better error for single value encrypted values to indicate + the file, line, and column of the errant vault (https://github.com/ansible/ansible/issues/72276) + - version test - Add semantic version functionality + - virtual facts - containerd cgroup is now recognized as container tech (https://github.com/ansible/ansible/issues/66304). + - virtualization facts - Detect ``vdsmd`` in addition to ``vdsm`` when trying + to detect RHEV hosts. (https://github.com/ansible/ansible/issues/66147) + - winrm - Added ``ansible_winrm_kinit_args`` that can be used to control the + args that are sent to the ``kinit`` call for Kerberos authentication. + - yum - module now works under any supported Python interpreter + - yum_repository - added boolean option module_hotfixes which allows to enable + functionality for dnf. + release_summary: '| Release Date: 2021-03-02 | `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`__ ' + removed_features: + - Removed `SharedPluginLoaderObj` class from ansible.plugins.strategy. It was + deprecated in favor of using the standard plugin loader. + - Removed `_get_item()` alias from callback plugin base class which had been + deprecated in favor of `_get_item_label()`. + - The "user" parameter was previously deprecated and is now removed in favor + of "scope" + - The deprecated ``ansible.constants.BECOME_METHODS`` has been removed. + - The deprecated ``ansible.constants.get_config()`` has been removed. + - The deprecated ``ansible.constants.mk_boolean()`` has been removed. + - '`with_*` loops are no longer optimized for modules whose `name` parameters + can take lists (mostly package managers). Use `name` instead of looping over + individual names with `with_items` and friends.' security_fixes: - - '**security issue** atomic_move - change default permissions when creating - temporary files so they are not world readable (https://github.com/ansible/ansible/issues/67794) - (CVE-2020-1736) + - '**security issue** - Mask default and fallback values for ``no_log`` module + options (CVE-2021-20228)' + - '**security issue** - copy - Redact the value of the no_log ''content'' parameter + in the result''s invocation.module_args in check mode. Previously when used + with check mode and with ''-vvv'', the module would not censor the content + if a change would be made to the destination path. (CVE-2020-14332) ' - Sanitize no_log values from any response keys that might be returned from the uri module (CVE-2020-14330). - codename: When the Levee Breaks + - dnf - Previously, regardless of the ``disable_gpg_check`` option, packages + were not GPG validated. They are now. (CVE-2020-14365) + codename: Hey Hey, What Can I Do fragments: + - 14681-allow-callbacks-from-forks.yml + - 16456-correct-YAML-error-message-when-file-load-failed.yml + - 16949-global-skipped-result-flag-looped-tasks.yml + - 17029-prevent-user-fact-lookup-failure-is-logname-is-set.yml + - 17268-inventory-hostnames.yml + - 22599_svn_validate_certs.yml + - 23958-cleanup.yml + - 29351-expect-bytes.yml + - 32143-pause-background-hangs.yml + - 32174-normalize-None-quote.yml + - 322214-hostname-macos-support.yml - 32386_debconf_password.yml + - 37132-delegate-to-loop-context.yml + - 38182_subelements.yml - 38760-slackware-os-dist.yml - - 67794-atomic_move-default-perms.yml + - 40522-unarchive-add-include.yml + - 43739_dragonflybsd_disto.yml + - 45475_galaxy.yml + - 46169-non-native-template-module.yml + - 50909-min-max-attrs.yml + - 52229-vault-python3-binary-stdin.yml + - 55152-add-more-info-to-AnsibleUndefinedVariable.yml + - 565_default_callback.yml + - 58752_argument_aliases.yml + - 60882-keyed_groups-leading-separator-toggle.yaml + - 61234-yum-dnf-version-comp-doc.yml + - 61369_get_url.yml + - 62136_strip_spaces_from_action_names.yml + - 63105-wcswidth.yml + - 63378_find_module_regex_whole_file.yml + - 63417-unique-filter-preserve-order.yml + - 64469_git_no_raw.yml + - 64625-show-file-path-on-task-failure-callback-option.yml + - 65262_ansible_inventory.yml + - 65710-find-include-parent.yml + - 65812-paramiko-attribute-error.yml + - 66132_dnf_show_pkgs_in_check_mode.yml + - 66147_rhev_vdsm_vdsmd.yml + - 66304-facts_containerd.yml + - 67508-meta-task-tags.yaml - 68275-vault-module-args.yml + - 68402_galaxy.yml + - 68551_allow_list_of_filters_for_the_setup_module.yml + - 68605-ansible-error-orig-exc-context.yml + - 68612_iptables.yml + - 68770_cache_adjudicator_flush.yml + - 69352-netbsd-virtual-facts.yml + - 69463-fix-apt_repository-typeerror- instancemethod.yaml + - 69531_user_password_expire.yml - 69578-shell-remote_tmp-quoting.yaml - - 70000-playbook-detect-failure-in-always.yml + - 69640-file_should_warn_when_path_and_owner_or_group_dont_exist.yml + - 69848-fix-rerunning-tagged-roles.yml - 70017-avoid-params-to-callable-checkers.yml + - 70042-dnf-repository-hotfixes.yml - 70045-ansible-doc-yaml-anchors.yml - 70046-ansible-doc-description-crash.yml + - 70056-add-a-param-to-apt-module-to-avoid-unintended-uninstalls.yml - 70099-make-apt-errors-more-transparent.yaml - 70122-improve-error-message-ssh-client-is-not-found.yml + - 70148-galaxy-role-info.yaml - 70168-fix-delegate_facts-without-interpreter-set.yml - 70238_selector.yml - - 70240-fix-fatal-post_validate-error.yml + - 70244-selinux-special-fs.yml + - 70256_stat_colon_split.yml + - 70258-hash-filter-fail-unsupported-type.yml - 70261_pipe_lookup.yml + - 70284-facts-get-nvme-serial-from-file.yml + - 70318-dnf-add-nobest-option.yml + - 70319-reduce-ignored-module-sanity-tests.yml - 70344-plugin-deprecation-collection-name.yml + - 70375-galaxy-server.yml - 70426-allow-non-ascii-chars-in-cron.yml - 70437-ssh-args.yml + - 70449-facts-add-dst-timezone.yml - 70465-assemble-fix-decrypt-argument.yaml + - 70475-modify-module.yaml - 70484-bool-ansible-become.yaml + - 70492-replace-filename-with-file-in-apt_key.yml + - 70507-validate-null-author.yaml + - 70524-fix-download-collections.yaml - 70525-setuptools-disutils-reorder.yml + - 70583_datetime_date_in_module_result.yml + - 70587-package_facts-apk.yml - 70600-user-module-dont-create-home-when-create_home-is-false.yml + - 70640-find-empty-excludes.yml - 70649_time_clock.yml - - 70657-template-connection-vars.yaml - 70683-terminal-ansi-re.yaml + - 70687-improve-deprecation-message-bare-variable.yaml + - 70690-async-interpreter.yml + - 70704-void-linux-reboot.yml - 70762-sanitize-uri-keys.yml - 70784-vault-is-string.yml + - 70831-skip-literal_eval-string-filter-native-jinja.yml + - 70854-dnf-mutually-exclusive-filters.yml + - 70869-ansible-test-validate-modules-version-added.yml + - 70887_galaxy_token.yml + - 70905_iptables_ipv6.yml + - 70922-fix-block-in-rescue.yml + - 70984-templating-ansibleundefined-in-operator.yml + - 71007_callback_on_meta.yml + - 71073-fortimanager-httpapi-redirect.yml + - 71097-ansible-test-acme-container.yml + - 71107-encryption.yml + - 71184-allow-non-yaml-examples.yml + - 71197-systemctl-ignore-message.yaml + - 71205_get_url_allow_checksum_file_url.yml + - 71214-add-vars-variable-for-delegated-vars.yaml + - 71240-gluster-modules-redirect.yml + - 71257-strftime-float.yml + - 71277-include_tasks-show-name-with-free-strategy.yml + - 71279-skip-conflict-check.yml + - 71306-fix-exit-code-no-failure.yml + - 71307-toml-dumps-unsafe.yml + - 71355_execute_meta_skip_reason.yml + - 71385-enhance-container-reporting-linux-vfacts.yml + - 71420_get_url.yml + - 71496-iptables-reorder-comment-position.yml + - 71528-systemd-capbpf-workaround.yml + - 71528-systemd-improve-unit-searching.yml + - 71528-systemd-list-unit-files.yml + - 71559-fix-distribution-fact-sles4sap.yaml + - 71609-is_string-vault.yml + - 71636_distro.yml + - 71679-ansible-test.yml + - 71704_selector.yml + - 71722-fix-default-connection-timeout.yaml + - 71735-deprecation-tagging.yml + - 71739-remove-em-dash-from-pytest-config.yml + - 71824-action-fqcns.yml + - 71825-close-file-descriptor-after-building-cert-chaing.yml + - 71903-unarchive-gid-cast.yml + - 71905_bump-cloudstack-test-container.yml + - 71920-fix-templating-recursion-error.yml + - 71921-raise-bytes-for-binary-test.yml + - 71928-ensure_type-dict.yml + - 71966-ansible-doc-plugin-name.yml + - 71977-ansible-galaxy-role-init.yml + - 71979_ca_path_for_uri.yaml + - 72025-fact-add-uptime-to-openbsd.yml + - 72055-blockinfile-fix-insert-after-line-no-linesep.yml + - 72073-service_facts-aix-src.yml + - 72170-action-loader-collection-list.yml + - 72197-upgrade-test-ansible-runner.yml + - 72276-provide-better-vault-error.yml + - 72315-fact-caching-relative-to-config.yml + - 72316-dnf-filtering.yml + - 72322-wait-for-handle-errors.yml + - 72331-truenas-rc-major-version.yml + - 72411-fips-mode-ansible-test.yml + - 72428-action-groups-docker-k8s.yml + - 72497-ansible-test-import-plugins.yml + - 72511-always-prepend-role-to-task-name.yml + - 72516-fix-aix-network-facts.yml + - 72545_fix_facts_value_empty_key.yml + - 72546-unarchive-returndoc.yml + - 72591-ansible-galaxy-collection-resolvelib.yaml + - 72615-jinja-import-context-fix.yml + - 72623-ansible-test-unicode-paths.yml + - 72697-improve-config-deprecations.yml + - 72699-validate-modules-default-for-bools.yml + - 72745-import_playbook-deprecation-extra-params.yml + - 72754-extract-emb-func.yaml + - 72809-dnf-remove-NV.yml + - 72873-fix-fileglob-ordering.yml + - 72894-add-alinux-hostname-module-support.yml + - 72928_adding_multiport_support.yml + - 72966-allow-tilde-inside-galaxy-roles.yml + - 72979-fix-inventory-merge-hash-replace.yaml + - 72984_adding_set_support.yml + - 72992-user-account-lock-always-changes.yml + - 72993-ansible-doc-has_action.yml + - 73004-let-command-always-return-stdout-and-stderr.yml + - 73027-differentiate-centos-stream.yml + - 73059-improve-deprecation-texts.yml + - 73084-rhel-for-edge-pkg_mgr-fact-fix.yml + - 73120-rolemetadata-argspecs.yml + - 73152-role-arg-spec.yaml + - 73167-bhyve-facts.yml + - 73176_sphinx_rstcheck_versions.yml + - 73263-shadow-encrypt-string.yml + - 73277-reduce-lookup-complexity.yml + - 73335-argument-spec_validator.yml + - 73336-ansible-galaxy_collection_install_upgrade.yaml + - 73364-default-callback-host-pinned-not-lockstep.yml + - 73428-changelog-linting-bump-version.yml + - 73429-inventory-sanitization-constructed-features.yml + - 73456-let-vault-lookup-output-string.yml + - 73463_self_signed_https_endpoint_for_ansible-test.yml + - 73474-galaxy-list-format-options.yml + - 73498-INTERPRETER_PYTHON_DISTRO_MAP-Treat-oracle-same-as-rhel-centos.yml + - 73557-ansible-galaxy-cache-paginated-response.yml + - 73577-regex-fix.yml + - 73589-rolespec-validate.yml + - 73599-ansible-test-new-plugin-dirs.yml + - 73619-hostname-almalinux-support.yml + - 73639-ansible-test-pylint-ignores.yml + - 73653-rolespec-rm-warning.yml + - 73658-inventorymanager-throws-on-empty-inventory-dir.yml + - 73665-fixes-ansible-console.yml + - 73700-let-file-module-not-change-link-to-absolute-on-touch.yml + - 73709-normalize-configparser.yml + - 73718-find-dir-depth-traversal.yml + - add_keywords_to_ansible_doc.yml + - added_existing_nocolor.yml + - allow_restricted_config_values.yml + - ansiballz-remove-excommunicate.yaml + - ansible-base-update-containers.yml - ansible-boilerplate.yml - ansible-doc-collection-name.yml + - ansible-doc-formats.yml + - ansible-doc-has_action.yml + - ansible-doc-role-empty-meta-main.yml - ansible-galaxy-stdout.yml + - ansible-galaxy-version-response.yml + - ansible-test-acme-test-plugin.yml + - ansible-test-azp-agent-temp-dir.yml + - ansible-test-azp-change-detection.yml + - ansible-test-azp-resource-prefix.yml + - ansible-test-centos6-eol.yml + - ansible-test-centos6-vault-mirrors.yml + - ansible-test-change-classification.yml + - ansible-test-changelog-lint-update.yml + - ansible-test-cleanup-pylint-config.yml + - ansible-test-cleanup.yml + - ansible-test-code-cleanup.yml + - ansible-test-code-naming.yml + - ansible-test-collection-classification.yml + - ansible-test-collection-constraints.yml + - ansible-test-constraints-cryptography-old-openssl.yml + - ansible-test-constraints-cryptography.yml + - ansible-test-container-ip-lookup.yml + - ansible-test-coverage-code-cleanup.yml + - ansible-test-coverage-combine-export.yml + - ansible-test-coverage-py26.yml + - ansible-test-cryptography-refactor.yml + - ansible-test-default-3.1.0.yml + - ansible-test-default-container-update.yml + - ansible-test-docker-default-network.yml + - ansible-test-docker-detection-fix.yml + - ansible-test-docker-not-localhost.yml + - ansible-test-docker-socket.yml + - ansible-test-egg-info-handling.yml + - ansible-test-endpoint-update.yml + - ansible-test-fedora33.yml + - ansible-test-freebsd-python-3.8.yml + - ansible-test-freebsd-pyyaml-libyaml.yml + - ansible-test-freebsd11-4.yml + - ansible-test-freebsd12-2.yml + - ansible-test-macos-10.15.yml + - ansible-test-more-code-cleanup.yml + - ansible-test-network-container-search.yml + - ansible-test-parallels-endpoint.yml + - ansible-test-pip-bootstrap-s3.yml + - ansible-test-pip-bootstrap.yml + - ansible-test-platforms.yml - ansible-test-plugin-classification.yml + - ansible-test-podman-json-format.yml + - ansible-test-pylint-plugin-name.yml + - ansible-test-pylint-python-3.8-3.9.yml + - ansible-test-pylint-upgrade.yml + - ansible-test-pytest-cap-revert.yml + - ansible-test-pytest-cap.yml + - ansible-test-python-exec-wrapper.yml + - ansible-test-python-pip-warnings.yml + - ansible-test-relative-import-analysis.yml + - ansible-test-remote-aws-region.yml + - ansible-test-remote-shell-raw.yml + - ansible-test-rhel-python-3.8.yml - ansible-test-rhel-requirements.yml + - ansible-test-rstcheck-core-only.yml + - ansible-test-runtime-dates-versions.yml - ansible-test-sanity-ansible-doc.yml + - ansible-test-sanity-importer-cleanup.yml - ansible-test-sanity-yamllint-lineno.yml + - ansible-test-ssh-key-management.yml + - ansible-test-tower-plugin.yml + - ansible-test-ubuntu2004.yml + - ansible-test-update-current-distro-containers.yml + - ansible-test-updates.yml + - ansible-test-validate-modules-file-common-args.yml + - ansible-test-venv-virtualenv-fallback.yml - ansible-test-virtualenv-fix.yml + - ansible-test-virtualenv-install.yml + - ansible_runtime_meta.yml + - ansible_test_yamllint_avoid_attribute_exception.yaml + - apt_key_fixes.yml + - arg_spec-check_arguments-handle_aliases.yml + - arg_spec-get_type_validator.yml + - async-race-condition.yml + - better_os_environ_access.yml - better_winrm_putfile_error.yml + - blockinfile_fix_no_backup_return.yml + - bsd_rcconf_string_replace.yaml + - cffi-constraint.yml + - changed_clarified.yml + - changed_when_group_by.yml - changelog-yaml.yml + - ci-add-macos-11.yml + - colleciton_flex_ac_dir_paths.yml + - collection-ad-hoc.yml + - collection-list-site-packages.yaml - collection_meta_use_libyaml.yml - - command-module-warnings.yml + - collections_cb_fix.yml + - command-warnings-deprecation-2.yml + - command-warnings-deprecation.yml + - constants-deprecation.yml + - constructed_vars_plugins.yml + - controller-python-warning.yml + - copy-sanitize-check-mode-invocation-args.yaml + - core_version.yml + - crypt-oserror.yml + - cryptography-fix.yml + - csvfile-parse_kv.yml + - date-time-facts-fix-utctime.yml + - default-test-container160.yml - delegate_has_hostvars.yml + - delegation_password.yml + - deprecation-callback-get_item.yml + - deprecation-strategy-SharedPluginLoaderObj.yml + - deprecation-systemd-user.yml + - deprecation-taskexecutor-squash.yml + - dev-kvm.yml - display-stdout-column-width.yml + - distribution_support_netbsd.yml + - distribution_support_parrot.yml + - dnf_gpg.yml + - enable_su_on_local.yaml + - ensure_local_user_correctness.yml + - facts_fixes.yml + - find_explicit.yml + - fix-cron-file-regression.yaml + - fix-incorrect-msg-in-loops-results.yml + - fix_ansible_issue_71942.yaml + - fix_bogus_coverage.yml + - fix_expression_as_filename_in_compile.yaml + - fix_inventory_source_parse_error_handling.yml + - fix_lp_flat.yml + - fix_meta_tasks_with_flush_cache.yml + - fix_mount_point.yml + - fix_reversed_return_value_order_72088.yaml + - fix_role_var_loading.yml + - fix_ssh_executable_options.yml + - fixup_perms2-cleanup.yml - fq_action_module_resolution.yml + - galaxy-cache.yml + - galaxy-collection-fallback.yml + - galaxy-collection-list-correct-arg-name.yml + - galaxy-download-scm.yaml + - galaxy-servers.yml + - galaxy-sys-exit.yml + - galaxy_collections_paths-remove-dep.yml + - galaxy_login_bye.yml + - get_file_attributes-without-lsattr-version.yml + - git-add-single_branch.yml + - give_compose_extra_vars.yml - handle_undefined_in_type_errors_filters.yml + - inventory-cache-file-missing-warning.yaml + - keep_log_at_info.yml + - kubevirt-virt-fact.yml + - lineinfile-add-search_string-parameter-for-non-regexp-searching.yaml + - lineinfile_exc_fix.yml + - linux-network-facts-broadcast-address.yaml + - macos-chmod-acl.yml + - max_fail_free.yml + - moar_reserved_vars.yml + - module_respawn.yml - module_utils_finder_refactor.yml + - more-types-to-string-config.yml + - multivirt.yml + - native-jinja2-types-properly-handle-nested-undefined.yml + - no_log-fallback.yml + - package-use-manager-from-facts.yaml + - passwd_lookup_hexdigits.yml - pause-catch-error-when-no-std-exists.yml + - pause-do-not-warn-background-with-seconds.yml + - pause-import.yml + - pipelinig_to_plugins.yml + - play_context_remove_redundant_pwd.yml + - plugin-loader-cleanup.yml - plugin-loader-collection-name.yml + - powershell-fix-quoting.yaml + - powershell-nested-clixml.yml + - powershell-version-env.yml + - ps-sanity-requirements.yml + - psrp-copy-empty-file.yml + - psrp-copy.yaml + - psrp-json-loads-bytes.yml + - py26-multiprocess-queue-bug.yml + - py38-py39-fallback.yml + - pytest-collections-fix.yml + - reboot-add-boot-command-parameter.yaml + - remove_contradiction.yml + - rhel-7.9.yml + - rpmfluff-compat-fixes.yml + - run-command-cwd.yml + - runas-become-system-privileges.yml - runtime-splunk-redirect.yml + - selinux_getpolicytype_compat.yml + - set_fact-connection_vars.yml + - set_mode_if_different-symlink-sticky-dir.yml + - setup-py-declare-py39.yml + - skip_invalid_coll_name_when_listing.yml + - split-filter.yml + - support_almalinux.yml + - syslog-prettier-error.yml + - systemd-preserve-full-unit-name.yml - test-ansible-runner-pin-psutil.yml + - test_rhel83.yml + - timeout_moar_clis.yml + - toml-no-preview.yml + - tree_config.yml + - unarchive-check-future-gid-against-run-gid.yml + - unarchive-support-zst.yml + - undo_hashmerge_depr.yml + - unsafe_for_all.yml + - unsafe_writes_env.yml + - unsafe_writes_fix.yml - update-conditionals-bare-vars-default.yml - - v2.10.0rc1_summary.yaml + - uri-status-code-int.yml + - url-lookup-add-httpagent.yml + - url-lookup-ini.yml + - urls-gssapi.yml + - v2.11.0-initial-commit.yaml + - v2.11.0b1_summary.yaml - validate-modules-ps-doc-blacklist.yaml + - validate-modules_found_try_except_import_fails_module_attribute.yaml + - vanquish-rare-container-bootstrap-failure.yml + - varnames-error-grammar.yml + - version-jinja.yml + - version-libyaml-git.yml + - version-test-semver.yml + - which_when_false.yml - win_async_full_path.yml - win_setup-redirection.yaml + - winrm_kinit_args.yaml - with_seq_example.yml - release_date: '2020-07-23' - 2.10.0rc2: - changes: - bugfixes: - - Stop adding the connection variables to the output results - release_summary: '| Release Date: 2020-07-23 - - | `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`__ - - ' - codename: When the Levee Breaks - fragments: - - set_fact-connection_vars.yml - - v2.10.0rc2_summary.yaml - release_date: '2020-07-23' - 2.10.0rc3: + - wrap_native_text-non-collections-only.yml + modules: + - description: Validate role argument specs. + name: validate_argument_spec + namespace: '' + release_date: '2021-03-02' + 2.11.0b2: changes: bugfixes: - - reset logging level to INFO due to CVE-2019-14846. - release_summary: '| Release Date: 2020-07-24 + - A handler defined within a role will now search handlers subdir for included + tasks (issue https://github.com/ansible/ansible/issues/71222). + - ALLOW_WORLD_READABLE_TMP, switched to 'moved' message as 'deprecation' is + misleading since config settings still work w/o needing change. + - Automatically remove async cache files for polled async tasks that have completed + (issue https://github.com/ansible/ansible/issues/73206). + - Deal with failures when sorting JSON and you have incompatible key types. + - Setup virtualization_facts - add RHV and oVirt type. This change will fully + work for VMs in clusters at cluster level 4.4 or newer (https://github.com/ansible/ansible/pull/72876). + - '[set_fact] Corrected and expanded documentation as well as now raise errors + that were previously ignored.' + - ansible-test - ensure unit test paths for connection and inventory plugins + are correctly identified for collections (https://github.com/ansible/ansible/issues/73876). + - connection/ssh, ensure parameters come from correct source get_option, so + functionality matches docs. + - connection/ssh, fix reset to use same parameters to check if socket exists + as actually used, was hardcoded to default string construction previouslly. + - j2 plugin loader clarified comments, made note with better fqcn detection. + - notify keyword is not ignored anymore on import_tasks, also able to apply + to blocks now. + - restrict module valid JSON parsed output to objects as lists are not valid + responses. + - setup, don't give up on all local facts gathering if one script file fails. + - su become plugin, ensure correct type for localization option. + minor_changes: + - ansible-test - The generated ``resource_prefix`` variable now meets the host + name syntax requirements specified in RFC 1123 and RFC 952. The value used + for local tests now places the random number before the hostname component, + rather than after. If the resulting value is too long, it will be truncated. + - ansible-test validate-modules - option names that seem to indicate they contain + secret information that should be marked ``no_log=True`` are now flagged in + the validate-modules sanity test. False positives can be marked by explicitly + setting ``no_log=False`` for these options in the argument spec. Please note + that many false positives are expected; the assumption is that it is by far + better to have false positives than false negatives (https://github.com/ansible/ansible/pull/73508). + - distribution - add facts about Amazon Linux Distribution facts (https://github.com/ansible/ansible/issues/73742). + - module payload builder - module_utils imports in any nested block (eg, ``try``, + ``if``) are treated as optional during module payload builds; this allows + modules to implement runtime fallback behavior for module_utils that do not + exist in older versions of Ansible. + release_summary: '| Release Date: 2021-03-15 | `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`__ ' - codename: When the Levee Breaks + codename: Hey Hey, What Can I Do fragments: - - keep_log_at_info.yml - - v2.10.0rc3_summary.yaml - release_date: '2020-07-24' - 2.10.0rc4: + - 72876-setup-facts-add-redhat-vendor.yml + - 73508-validate-modules-no_log.yml + - 73742_amazon_distribution.yml + - 73760-async-cleanup.yml + - 73809-search-handler-subdir.yml + - 73876-ansible_test-units.yml + - allow_world_readable_move.yml + - ansible-test-resource-prefix.yml + - fix_import_notify.yml + - fix_json_module_parsing.yml + - fix_set_fact.yml + - inv_json_sort_types_fix.yml + - j2ploader_minor.yml + - local_facts_continue.yml + - optional_module_utils.yml + - ssh_connection_fixes.yml + - su_fix.yml + - v2.11.0b2_summary.yaml + release_date: '2021-03-15' + 2.11.0b3: changes: bugfixes: - - 'Fix warning for default permission change when no mode is specified. Follow - up to https://github.com/ansible/ansible/issues/67794. (CVE-2020-1736) - - ' - - Fixes ansible-test traceback when plugin author is not a string or a list - of strings (https://github.com/ansible/ansible/pull/70507) - - Restore the ability for changed_when/failed_when to function with group_by - (#70844). - - ansible-galaxy collection download - fix downloading tar.gz files and collections - in git repositories (https://github.com/ansible/ansible/issues/70429) - - ansible-galaxy collection install - fix fallback mechanism if the AH server - did not have the collection requested - https://github.com/ansible/ansible/issues/70940 - - ansible-test - Add ``pytest < 6.0.0`` constraint for managed installations - on Python 3.x to avoid issues with relative imports. - - ansible-test - Change detection now properly resolves relative imports instead - of treating them as absolute imports. - - ansible-test validate-modules - ``version_added`` on module level was not - validated for modules in collections (https://github.com/ansible/ansible/pull/70869). - - ansible-test validate-modules - return correct error codes ``option-invalid-version-added`` - resp. ``return-invalid-version-added`` instead of the wrong error ``deprecation-either-date-or-version`` - when an invalid value of ``version_added`` is specified for an option or a - return value (https://github.com/ansible/ansible/pull/70869). - - facts - fix incorrect UTC timestamp in ``iso8601_micro`` and ``iso8601`` - - lineinfile - fix not subscriptable error in exception handling around file - creation - - reboot - Add support for the runit init system, used on Void Linux, that does - not support the normal Linux syntax. + - Fix adding unrelated candidate names to the plugin loader redirect list. + - Strategy - When building the task in the Strategy from the Worker, ensure + it is properly marked as finalized and squashed. Addresses an issue with ``ansible_failed_task``. + (https://github.com/ansible/ansible/issues/57399) + - ansible-pull - Run all playbooks that when multiple are supplied via the command + line (https://github.com/ansible/ansible/issues/72708) + - find module, fix default pattern when use_regex is true. + major_changes: + - AnsibleModule - use ``ArgumentSpecValidator`` class for validating argument + spec and remove private methods related to argument spec validation. Any modules + using private methods should now use the ``ArgumentSpecValidator`` class or + the appropriate validation function. minor_changes: - - default_callback - moving 'check_mode_markers' documentation in default_callback - doc_fragment (https://github.com/ansible-collections/community.general/issues/565). - release_summary: '| Release Date: 2020-07-30 - - | `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`__ - - ' - codename: When the Levee Breaks - fragments: - - 565_default_callback.yml - - 67794-default-permissions-warning-fix.yml - - 70507-validate-null-author.yaml - - 70524-fix-download-collections.yaml - - 70704-void-linux-reboot.yml - - 70869-ansible-test-validate-modules-version-added.yml - - ansible-test-pytest-cap.yml - - ansible-test-relative-import-analysis.yml - - changed_when_group_by.yml - - date-time-facts-fix-utctime.yml - - galaxy-collection-fallback.yml - - lineinfile_exc_fix.yml - - v2.10.0rc4_summary.yaml - release_date: '2020-07-30' - 2.10.1: - changes: - release_summary: '| Release Date: 2020-09-14 + - Callbacks - Migrate more places in the ``TaskExecutor`` to sending callbacks + directly over the queue, instead of sending them as ``TaskResult`` and short + circuiting in the Strategy to send the callback. This enables closer to real + time callbacks of retries and loop results (https://github.com/ansible/ansible/issues/73899) + - setup - fix distribution facts for Older Amazon Linux with ``/etc/os-release`` + (https://github.com/ansible/ansible/issues/73946). + release_summary: '| Release Date: 2021-03-19 | `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`__ ' - codename: When the Levee Breaks + codename: Hey Hey, What Can I Do fragments: - - v2.10.1_summary.yaml - release_date: '2020-09-14' - 2.10.1rc1: + - 57399-finalize-task-in-strategy.yml + - 72708_ansible_pull_multiple_playbooks.yml + - 73863-fix-plugin-redirect-list.yaml + - 73899-more-te-callbacks.yml + - 73946_amazon_linux.yml + - fix_find_default.yml + - use-validator-in-ansiblemodule.yml + - v2.11.0b3_summary.yaml + release_date: '2021-03-19' + 2.11.0b4: changes: bugfixes: - - ANSIBLE_COLLECTIONS_PATHS - remove deprecation so that users of Ansible 2.9 - and 2.10+ can use the same var when specifying a collection path without a - warning. - - Confirmed commit fails with TypeError in IOS XR netconf plugin (https://github.com/ansible-collections/cisco.iosxr/issues/74) - - Ensure password passed in by -k is used on delegated hosts that do not have - ansible_password set - - Fix an exit code for a non-failing playbook (https://github.com/ansible/ansible/issues/71306) - - Fix execution of the meta tasks 'clear_facts', 'clear_host_errors', 'end_play', - 'end_host', and 'reset_connection' when the CLI flag '--flush-cache' is provided. - - Fix statistics reporting when rescue block contains another block (issue https://github.com/ansible/ansible/issues/61253). - - Fixed Ansible reporting validate not supported by netconf server when enabled - in netconf - (https://github.com/ansible-collections/ansible.netcommon/issues/119). - - Skip literal_eval for string filters results in native jinja. (https://github.com/ansible/ansible/issues/70831) - - Strategy - Ensure we only process expected types from the results queue and - produce warnings for any object we receive from the queue that doesn't match - our expectations. (https://github.com/ansible/ansible/issues/70023) - - TOML inventory - Ensure we register dump functions for ``AnsibleUnsafe`` to - support dumping unsafe values. Note that the TOML format has no functionality - to mark that the data is unsafe for re-consumption. (https://github.com/ansible/ansible/issues/71307) - - ansible-galaxy download - fix bug when downloading a collection in a SCM subdirectory - - ansible-test units - fixed collection location code to work under pytest >= - 6.0.0 - - avoid clobbering existing facts inside loop when task also returns ansible_facts. - - cron - cron file should not be empty after adding var (https://github.com/ansible/ansible/pull/71207) - - fortimanager httpapi plugin - fix redirect to point to the ``fortinet.fortimanager`` - collection (https://github.com/ansible/ansible/pull/71073). - - gluster modules - fix redirect to point to the ``gluster.gluster`` collection - (https://github.com/ansible/ansible/pull/71240). - - linux network facts - get the correct value for broadcast address (https://github.com/ansible/ansible/issues/64384) - - native jinja2 types - properly handle Undefined in nested data. - - powershell - fix escaping of strings that broken modules like fetch when dealing - with special chars - https://github.com/ansible/ansible/issues/62781 - - powershell - fix the CLIXML parser when it contains nested CLIXML objects - - https://github.com/ansible/ansible/issues/69550 - - psrp - Use native PSRP mechanism when copying files to support custom endpoints - - strftime filter - Input epoch is allowed to be a float (https://github.com/ansible/ansible/issues/71257) - - systemd - fixed chroot usage on new versions of systemd, that broke because - of upstream changes in systemctl output - - systemd - made the systemd module work correctly when the SYSTEMD_OFFLINE - environment variable is set - - templating - fix error message for ``x in y`` when y is undefined (https://github.com/ansible/ansible/issues/70984) - - unarchive - check ``fut_gid`` against ``run_gid`` in addition to supplemental - groups (https://github.com/ansible/ansible/issues/49284) + - Correctly set template_path and template_fullpath for usage in template lookup + and action plugins. + - Try to avoid kernel 'blocking' state on reading files while fact gathering. + - apt - fix policy_rc_d parameter throwing an exception when restoring original + file (https://github.com/ansible/ansible/issues/66211) + - argument spec validation - fix behavior of ``apply_defaults=True`` when an + empty dictionary is specified for such an option (https://github.com/ansible/ansible/pull/74029). + - pause - do not accept enter to continue when a timeout is set (https://github.com/ansible/ansible/issues/73948) + - setup module, fix error handling on bad subset given + - wait_for module, move missing socket into function to get proper comparrison + in time. minor_changes: - - Fixed ansible-doc to not substitute for words followed by parenthesis. For - instance, ``IBM(International Business Machines)`` will no longer be substituted - with a link to a non-existent module. https://github.com/ansible/ansible/pull/71070 - - Updated network integration auth timeout to 90 secs. - - ansible-doc will now format, ``L()``, ``R()``, and ``HORIZONTALLINE`` in plugin - docs just as the website docs do. https://github.com/ansible/ansible/pull/71070 - - ansible-test - Remove ``pytest < 6.0.0`` constraint for managed installations - on Python 3.x now that pytest 6 is supported. - - ansible-test - the ACME test container was updated, it now supports external - account creation and has a basic OCSP responder (https://github.com/ansible/ansible/pull/71097, - https://github.com/ansible/acme-test-container/releases/tag/2.0.0). - - galaxy - add documentation about galaxy parameters in examples/ansible.cfg - (https://github.com/ansible/ansible/issues/68402). - - iptables - add a note about ipv6-icmp in protocol parameter (https://github.com/ansible/ansible/issues/70905). - - setup.py - Skip doing conflict checks for ``sdist`` and ``egg_info`` commands - (https://github.com/ansible/ansible/pull/71310) - - subelements - clarify the lookup plugin documentation for parameter handling - (https://github.com/ansible/ansible/issues/38182). - release_summary: '| Release Date: 2020-08-31 - - | `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`__ - - ' - security_fixes: - - '**security issue** - copy - Redact the value of the no_log ''content'' parameter - in the result''s invocation.module_args in check mode. Previously when used - with check mode and with ''-vvv'', the module would not censor the content - if a change would be made to the destination path. (CVE-2020-14332) - - ' - - dnf - Previously, regardless of the ``disable_gpg_check`` option, packages - were not GPG validated. They are now. (CVE-2020-14365) - codename: When the Levee Breaks - fragments: - - 38182_subelements.yml - - 68402_galaxy.yml - - 70023-results-type-filtering.yml - - 70831-skip-literal_eval-string-filter-native-jinja.yml - - 70905_iptables_ipv6.yml - - 70922-fix-block-in-rescue.yml - - 70984-templating-ansibleundefined-in-operator.yml - - 71073-fortimanager-httpapi-redirect.yml - - 71097-ansible-test-acme-container.yml - - 71195-netconf_config_validate_issue.yaml - - 71197-systemctl-ignore-message.yaml - - 71238-update-auth-timeout.yml - - 71240-gluster-modules-redirect.yml - - 71257-strftime-float.yml - - 71279-skip-conflict-check.yml - - 71306-fix-exit-code-no-failure.yml - - 71307-toml-dumps-unsafe.yml - - ansible-doc-formats.yml - - ansible-test-pytest-cap-revert.yml - - copy-sanitize-check-mode-invocation-args.yaml - - delegation_password.yml - - dnf_gpg.yml - - fix-cron-file-regression.yaml - - fix_meta_tasks_with_flush_cache.yml - - galaxy-download-scm.yaml - - galaxy_collections_paths-remove-dep.yml - - iosxr_netconf_config_commit_fix.yaml - - linux-network-facts-broadcast-address.yaml - - native-jinja2-types-properly-handle-nested-undefined.yml - - no_fact_loop_loss.yml - - powershell-fix-quoting.yaml - - powershell-nested-clixml.yml - - psrp-copy.yaml - - pytest-collections-fix.yml - - unarchive-check-future-gid-against-run-gid.yml - - v2.10.1rc1_summary.yaml - release_date: '2020-08-31' - 2.10.1rc2: - changes: - release_summary: '| Release Date: 2020-09-01 + - ansible-galaxy CLI - ``collection verify`` command now exits with a non-zero + exit code on verification failure + - ansible-galaxy CLI - ``collection verify`` command now supports a ``--offline`` + option for local-only verification + release_summary: '| Release Date: 2021-03-29 | `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`__ ' - security_fixes: - - The fix for CVE-2020-1736 has been reverted. Users are encouraged to specify - a ``mode`` parameter in their file-based tasks when the files being manipulated - contain sensitive data. - codename: When the Levee Breaks + codename: Hey Hey, What Can I Do fragments: - - cve-2020-1736-revert.yml - - v2.10.1rc2_summary.yaml - release_date: '2020-09-01' - 2.10.1rc3: + - 73840_apt-policy-rc-d.yml + - 73948-pause-no-enter-with-timeout.yml + - 74029-argspec-apply_defaults.yml + - fix_setup_bad_subset.yml + - galaxy_verify_exitcode.yml + - galaxy_verify_local.yml + - less_blocks_on_facts.yml + - template_temp_vars_fix.yml + - v2.11.0b4_summary.yaml + - wait_for_fix.yml + release_date: '2021-03-29' + 2.11.0rc1: changes: + bugfixes: + - OpenBSD module_utils - update sysctl variable name + - WorkerProcess - Implement workaround for stdout deadlock in multiprocessing + shutdown to avoid process hangs. + - ansible-test - Add a ``six < 1.14.0`` constraint for Python 2.6. + - ansible-test - The ``--export`` option for ``ansible-test coverage`` is now + limited to the ``combine`` command. It was previously available for reporting + commands on which it had no effect. + - ansible-test - The ``ansible-test coverage combine`` option ``--export`` now + exports relative paths. This avoids loss of coverage data when aggregating + across systems with different absolute paths. Paths will be converted back + to absolute when generating reports. + - debug action, prevent setting facts when displaying ansible_facts. minor_changes: - - ansible-test - Add ``macos/10.15`` as a supported value for the ``--remote`` - option. - - ansible-test - Allow custom ``--remote-stage`` options for development and - testing. - - ansible-test - Fix ``ansible-test coverage`` reporting sub-commands (``report``, - ``html``, ``xml``) on Python 2.6. - - ansible-test - Remove the discontinued ``us-east-2`` choice from the ``--remote-aws-region`` - option. - - ansible-test - Request remote resources by provider name for all provider - types. - - ansible-test - Show a warning when the obsolete ``--remote-aws-region`` option - is used. - - ansible-test - Support custom remote endpoints with the ``--remote-endpoint`` - option. - - ansible-test - Update built-in service endpoints for the ``--remote`` option. - - ansible-test - Use new endpoint for Parallels based instances with the ``--remote`` - option. - - ansible-test - default container now uses default-test-container 2.7.0 and - ansible-base-test-container 1.6.0. This brings in Python 3.9.0rc1 for testing. - release_summary: '| Release Date: 2020-09-07 - - | `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`__ - - ' - codename: When the Levee Breaks - fragments: - - ansible-test-coverage-py26.yml - - ansible-test-endpoint-update.yml - - ansible-test-macos-10.15.yml - - ansible-test-parallels-endpoint.yml - - default-test-container160.yml - - v2.10.1rc3_summary.yaml - release_date: '2020-09-07' - 2.10.2: - changes: - release_summary: '| Release Date: 2020-10-05 + - ansible-test - Add constraint for ``decorator`` for Python versions prior + to 3.5. + - service_facts - return service state information on OpenBSD. + release_summary: '| Release Date: 2021-04-05 | `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`__ ' - codename: When the Levee Breaks + codename: Hey Hey, What Can I Do fragments: - - v2.10.2_summary.yaml - release_date: '2020-10-05' - 2.10.2rc1: + - ansible-test-decorator-constraint.yml + - ansible-test-fix-coverage-export.yml + - ansible-test-six.yml + - debug_dont_set_facts.yml + - openbsd-service.yml + - openbsd-sysutil.yml + - v2.11.0rc1_summary.yaml + - workerprocess-stdout-deadlock.yml + release_date: '2021-04-05' + 2.11.0rc2: changes: bugfixes: - - Pass the connection's timeout to connection plugins instead of the task's - timeout. - - Provide more information in AnsibleUndefinedVariable (https://github.com/ansible/ansible/issues/55152) - - ansible-doc - properly show plugin name when ``name:`` is used instead of - ``<plugin_type>:`` (https://github.com/ansible/ansible/pull/71966). - - ansible-test - Change classification using ``--changed`` now consistently - handles common configuration files for supported CI providers. - - ansible-test - The ``resource_prefix`` variable provided to tests running - on Azure Pipelines is now converted to lowercase to match other CI providers. - - collection loader - fix bogus code coverage entries for synthetic packages - - psrp - Fix hang when copying an empty file to the remote target - - runas - create a new token when running as ``SYSTEM`` to ensure it has the - full privileges assigned to that account - minor_changes: - - ansible-test - Raise the number of bytes scanned by ansible-test to determine - if a file is binary to 4096. - release_summary: '| Release Date: 2020-09-28 + - WorkerProcess - Python 3.5 fix for workaround for stdout deadlock in multiprocessing + shutdown to avoid process hangs. (https://github.com/ansible/ansible/issues/74149) + release_summary: '| Release Date: 2021-04-06 | `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`__ ' - codename: When the Levee Breaks + codename: Hey Hey, What Can I Do fragments: - - 55152-add-more-info-to-AnsibleUndefinedVariable.yml - - 71722-fix-default-connection-timeout.yaml - - 71921-raise-bytes-for-binary-test.yml - - 71966-ansible-doc-plugin-name.yml - - ansible-test-azp-resource-prefix.yml - - ansible-test-change-classification.yml - - fix_bogus_coverage.yml - - psrp-copy-empty-file.yml - - runas-become-system-privileges.yml - - v2.10.2rc1_summary.yaml - release_date: '2020-09-28' - 2.10.3: + - fix-for-workerprocess-stdout-deadlock-fix.yml + - v2.11.0rc2_summary.yaml + release_date: '2021-04-06' + 2.11.1: changes: - release_summary: '| Release Date: 2020-11-02 + release_summary: '| Release Date: 2021-05-24 | `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`__ ' - codename: When the Levee Breaks + codename: Hey Hey, What Can I Do fragments: - - v2.10.3_summary.yaml - release_date: '2020-11-02' - 2.10.3rc1: + - v2.11.1_summary.yaml + release_date: '2021-05-24' + 2.11.1rc1: changes: - breaking_changes: - - ansible-galaxy login command has been removed (see https://github.com/ansible/ansible/issues/71560) bugfixes: - - Collection callbacks were ignoring options and rules for stdout and adhoc - cases. - - Collections - Ensure ``action_loader.get`` is called with ``collection_list`` - to properly find collections when ``collections:`` search is specified (https://github.com/ansible/ansible/issues/72170) - - Fix ``RecursionError`` when templating large vars structures (https://github.com/ansible/ansible/issues/71920) - - ansible-doc - plugin option deprecations now also get ``collection_name`` - added (https://github.com/ansible/ansible/pull/71735). - - ansible-test - Always connect additional Docker containers to the network - used by the current container (if any). - - ansible-test - Always map ``/var/run/docker.sock`` into test containers created - by the ``--docker`` option if the docker host is not ``localhost``. - - ansible-test - Attempt to detect the Docker hostname instead of assuming ``localhost``. - - ansible-test - Correctly detect running in a Docker container on Azure Pipelines. - - ansible-test - Prefer container IP at ``.NetworkSettings.Networks.{NetworkName}.IPAddress`` - over ``.NetworkSettings.IPAddress``. - - ansible-test - The ``cs`` and ``openshift`` test plugins now search for containers - on the current network instead of assuming the ``bridge`` network. - - ansible-test - Using the ``--remote`` option on Azure Pipelines now works - from a job running in a container. - - async_wrapper - Fix race condition when ``~/.ansible_async`` folder tries - to be created by multiple async tasks at the same time - https://github.com/ansible/ansible/issues/59306 - - 'dnf - it is now possible to specify both ``security: true`` and ``bugfix: - true`` to install updates of both types. Previously, only security would get - installed if both were true. (https://github.com/ansible/ansible/issues/70854)' - - facts - fix distribution fact for SLES4SAP (https://github.com/ansible/ansible/pull/71559). - - is_string/vault - Ensure the is_string helper properly identifies AnsibleVaultEncryptedUnicode - as a string (https://github.com/ansible/ansible/pull/71609) - - powershell - remove getting the PowerShell version from the env var ``POWERSHELL_VERSION``. - This feature never worked properly and can cause conflicts with other libraries - that use this var - - url lookup - make sure that options supplied in ansible.cfg are actually used - (https://github.com/ansible/ansible/pull/71736). - - 'user - AnsibleModule.run_command returns a tuple of return code, stdout and - stderr. The module main function of the user module expects user.create_user - to return a tuple of return code, stdout and stderr. Fix the locations where - stdout and stderr got reversed. - - ' - - 'user - Local users with an expiry date cannot be created as the ``luseradd`` - / ``lusermod`` commands do not support the ``-e`` option. Set the expiry time - in this case via ``lchage`` after the user was created / modified. (https://github.com/ansible/ansible/issues/71942) - - ' + - Add RockyLinux to fact gathering (https://github.com/ansible/ansible/pull/74530). + - Improve resilience of ``ansible-galaxy collection`` by increasing the page + size to make fewer requests overall and retrying queries with a jittered exponential + backoff when rate limiting HTTP codes (520 and 429) occur. (https://github.com/ansible/ansible/issues/74191) + - Prevent ``ansible_failed_task`` from further templating (https://github.com/ansible/ansible/issues/74036) + - Remove 'default' from ssh plugin as we want to rely on default from ssh itself + or ssh/config. + - The error message about the failure to import a ``gpg`` key by the ``apt_key`` + module was incorrect (https://github.com/ansible/ansible/issues/74423). + - ansible-test - Avoid publishing the port used by the ``pypi-test-container`` + since it is only accessed by other containers. This avoids issues when trying + to run tests in parallel on a single host. + - ansible-test - Fix docker container IP address detection. The ``bridge`` network + is no longer assumed to be the default. + - ansible-test - Use documented API to retrieve build information from Azure + Pipelines. + - ansible.builtin.cron - Keep non-empty crontabs, when removing cron jobs (https://github.com/ansible/ansible/pull/74497). + - ansible.utils.encrypt now handles missing or unusable 'crypt' library. + - ansible_test - add constraint for ``MarkupSafe`` (https://github.com/ansible/ansible/pull/74666) + - apt_key - Binary GnuPG keys downloaded via URLs were corrupted so GnuPG could + not import them (https://github.com/ansible/ansible/issues/74424). + - become - fix a regression on Solaris where chmod can return 5 which we interpret + as auth failure and stop trying become tmpdir permission fallbacks + - become - work around setfacl not existing on modern Solaris (and possibly + failing on some filesystems even when it does exist) + - callback default, now uses task delegate_to instead of delegate vars to display + delegate to host + - callbacks, restores missing delegate_vars + - correct doc links for become on warnings over world readable settings. + - correctly use world readable setting since old constant is not 'settable' + anymore. + - facts - detect homebrew installed at /opt/homebrew/bin/brew + - filter plugins - patch new versions of Jinja2 to prevent warnings/errors on + renamed filter decorators (https://github.com/ansible/ansible/issues/74667) + - get_url - Fixed checksum validation for binary files (leading asterisk) in + checksum files (https://github.com/ansible/ansible/pull/74502). + - hostname - Add Rocky Linux support + - ini lookup - handle errors for duplicate keys and missing sections (https://github.com/ansible/ansible/issues/74601) + - interpreter discovery - Debian 8 and lower will avoid unsupported Python3 + version in interpreter discovery + - pause - ensure control characters are always set to an appropriate value (https://github.com/ansible/ansible/issues/73264) + - playbook loaded from collection subdir now does not ignore subdirs. + - plugin config now allows list type options to have multiple valid choices + (#74225). + - replace - better handling of file operation exceptions (https://github.com/ansible/ansible/pull/74686). + - roles - allow for role arg specs in new meta file (https://github.com/ansible/ansible/issues/74525). + - service - compare version without LooseVersion API (https://github.com/ansible/ansible/issues/74488). minor_changes: - - ansible-test - Add a ``--docker-network`` option to choose the network for - running containers when using the ``--docker`` option. - - ansible-test - Collections can now specify pip constraints for unit and integration - test requirements using ``tests/unit/constraints.txt`` and ``tests/integration/constraints.txt`` - respectively. - - ansible-test - python-cryptography is now bounded at <3.2, as 3.2 drops support - for OpenSSL 1.0.2 upon which some of our CI infrastructure still depends. - - dnf - now shows specific package changes (installations/removals) under ``results`` - in check_mode. (https://github.com/ansible/ansible/issues/66132) - release_summary: '| Release Date: 2020-10-26 + - ansible adhoc, clarified the help to some options, also added some comments + to code. + - command - update the user warning message to point out command name (https://github.com/ansible/ansible/pull/74475). + release_summary: '| Release Date: 2021-05-17 | `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`__ ' - codename: When the Levee Breaks + codename: Hey Hey, What Can I Do fragments: - - 66132_dnf_show_pkgs_in_check_mode.yml - - 70854-dnf-mutually-exclusive-filters.yml - - 71559-fix-distribution-fact-sles4sap.yaml - - 71609-is_string-vault.yml - - 71735-deprecation-tagging.yml - - 71920-fix-templating-recursion-error.yml - - 72170-action-loader-collection-list.yml - - ansible-test-azp-agent-temp-dir.yml - - ansible-test-collection-constraints.yml - - ansible-test-constraints-cryptography-old-openssl.yml - - ansible-test-container-ip-lookup.yml - - ansible-test-docker-default-network.yml - - ansible-test-docker-detection-fix.yml - - ansible-test-docker-not-localhost.yml - - ansible-test-docker-socket.yml - - ansible-test-network-container-search.yml - - async-race-condition.yml - - collections_cb_fix.yml - - fix_ansible_issue_71942.yaml - - fix_reversed_return_value_order_72088.yaml - - galaxy_login_bye.yml - - powershell-version-env.yml - - url-lookup-ini.yml - - v2.10.3rc1_summary.yaml - release_date: '2020-10-26' - 2.10.4: + - 73264-pause-emacs.yml + - 73887.mac-m1-homebrew.yaml + - 74036-unsafe-ansible_failed_task.yml + - 74240-ansible-galaxy-increase-pagesize-and-handle-throttling.yml + - 74474-apt_key-gpg-binary-import.yaml + - 74476-apt_key-gpg-inline-data.yaml + - 74488_solaris_looseversion.yml + - 74497-keep-non-empty-crontabs.yml + - 74502-get_url-filx-checksum-binary.yml + - 74582-role-argspec-new-file.yml + - 74601-ini-lookup-handle-errors.yml + - 74686-replace-handle-file-exc.yml + - adhoc_help_clarify.yml + - allow_lists_of_config_choices.yml + - ansible-test-azp-build-api.yml + - ansible-test-docker-network-detect.yml + - ansible-test-markupsafe-constraint.yml + - ansible-test-pypi-container-no-publish.yml + - cmd_wording.yml + - coll_pb_subdir_fixes.yml + - crypt_missing.yml + - debian8_discovery.yml + - jinja2_decorator_renames.yml + - macos-solaris-regression.yml + - missing_delegate_vars.yml + - solaris-setfacl-chmod-fallback.yml + - ssh_port_default_fix.yml + - support_rocky_linux_hostname.yml + - support_rockylinux.yml + - v2.11.1rc1_summary.yaml + - world_readable_fixes.yml + release_date: '2021-05-17' + 2.11.2: changes: - bugfixes: - - ansible-test - ``cryptography`` is now limited to versions prior to 3.2 only - when an incompatible OpenSSL version (earlier than 1.1.0) is detected - release_summary: '| Release Date: 2020-12-14 + release_summary: '| Release Date: 2021-06-22 | `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`__ ' - codename: When the Levee Breaks + codename: Hey Hey, What Can I Do fragments: - - ansible-test-constraints-cryptography.yml - - v2.10.4_summary.yaml - release_date: '2020-12-14' - 2.10.4rc1: + - v2.11.2_summary.yaml + release_date: '2021-06-22' + 2.11.2rc1: changes: bugfixes: - - Adjust various hard-coded action names to also include their ``ansible.builtin.`` - and ``ansible.legacy.`` prefixed version (https://github.com/ansible/ansible/issues/71817, - https://github.com/ansible/ansible/issues/71818, https://github.com/ansible/ansible/pull/71824). - - AnsibleModule - added arg ``ignore_invalid_cwd`` to ``AnsibleModule.run_command()``, - to control its behaviour when ``cwd`` is invalid. (https://github.com/ansible/ansible/pull/72390) - - Fixed issue when `netstat` is either missing or doesn't have execution permissions - leading to incorrect command being executed. - - Improve Ansible config deprecations to show the source of the deprecation - (ansible-base). Also remove space before a comma in config deprecations (https://github.com/ansible/ansible/pull/72697). - - Skip invalid collection names when listing in ansible-doc instead of throwing - exception. Issue#72257 - - The ``docker`` and ``k8s`` action groups / module default groups now also - support the moved modules in `community.docker <https://galaxy.ansible.com/community/docker>`_, - `community.kubevirt <https://github.com/ansible-collections/community.kubevirt>`_, - `community.okd <https://galaxy.ansible.com/community/okd>`_, and `kubernetes.core - <https://galaxy.ansible.com/kubernetes/core>`_ (https://github.com/ansible/ansible/pull/72428). - - account for bug in Python 2.6 that occurs during interpreter shutdown to avoid - stack trace - - ansible-test - Correctly detect changes in a GitHub pull request when running - on Azure Pipelines. - - ansible-test - Skip installing requirements if they are already installed. - - 'ansible-test - add constraint for ``cffi`` to prevent failure on systems - with older versions of ``gcc`` (https://foss.heptapod.net/pypy/cffi/-/issues/480) - - ' - - ansible-test - convert target paths to unicode on Python 2 to avoid ``UnicodeDecodeError`` - (https://github.com/ansible/ansible/issues/68398, https://github.com/ansible/ansible/pull/72623). - - ansible-test - improve classification of changes to ``.gitignore``, ``COPYING``, - ``LICENSE``, ``Makefile``, and all files ending with one of ``.in`, ``.md`, - ``.rst``, ``.toml``, ``.txt`` in the collection root directory (https://github.com/ansible/ansible/pull/72353). - - ansible-test validate-modules - when a module uses ``add_file_common_args=True`` - and does not use a keyword argument for ``argument_spec`` in ``AnsibleModule()``, - the common file arguments were not considered added during validation (https://github.com/ansible/ansible/pull/72334). - - basic.AnsibleModule - AnsibleModule.run_command silently ignores a non-existent - directory in the ``cwd`` argument (https://github.com/ansible/ansible/pull/72390). - - 'blockinfile - properly insert a block at the end of a file that does not - have a trailing newline character (https://github.com/ansible/ansible/issues/72055) - - ' - - dnf - fix filtering to avoid dependncy conflicts (https://github.com/ansible/ansible/issues/72316) - - ensure 'local' connection always has the correct default user for actions - to consume. - - 'pause - Fix indefinite hang when using a pause task on a background process - (https://github.com/ansible/ansible/issues/32142) - - ' - - remove redundant remote_user setting in play_context for local as plugin already - does it, also removes fork/thread issue from use of pwd library. - - 'set_mode_if_different - handle symlink if it is inside a directory with sticky - bit set (https://github.com/ansible/ansible/pull/45198) - - ' - - 'systemd - account for templated unit files using ``@`` when searching for - the unit file (https://github.com/ansible/ansible/pull/72347#issuecomment-730626228) - - ' - - 'systemd - follow up fix to https://github.com/ansible/ansible/issues/72338 - to use ``list-unit-files`` rather than ``list-units`` in order to show all - units files on the system. - - ' - - 'systemd - work around bug with ``systemd`` 245 and 5.8 kernel that does not - correctly report service state (https://github.com/ansible/ansible/issues/71528) - - ' - - wait_for - catch and ignore errors when getting active connections with psutil - (https://github.com/ansible/ansible/issues/72322) - minor_changes: - - ansible-doc - provide ``has_action`` field in JSON output for modules. That - information is currently only available in the text view (https://github.com/ansible/ansible/pull/72359). - - 'ansible-galaxy - find any collection dependencies in the globally configured - Galaxy servers and not just the server the parent collection is from. - - ' - - ansible-test - Added a ``--export`` option to the ``ansible-test coverage - combine`` command to facilitate multi-stage aggregation of coverage in CI - pipelines. - - ansible-test - Added the ``-remote rhel/7.9`` option to run tests on RHEL - 7.9 - - ansible-test - CentOS 8 container is now 8.2.2004 (https://github.com/ansible/distro-test-containers/pull/45). - - ansible-test - Fix container hostname/IP discovery for the ``acme`` test plugin. - - ansible-test - OpenSuse container now uses Leap 15.2 (https://github.com/ansible/distro-test-containers/pull/48). - - ansible-test - Ubuntu containers as well as ``default-test-container`` and - ``ansible-base-test-container`` are now slightly smaller due to apt cleanup - (https://github.com/ansible/distro-test-containers/pull/46). - - ansible-test - ``default-test-container`` and ``ansible-base-test-container`` - now use Python 3.9.0 instead of 3.9.0rc1. - - ansible-test - centos6 end of life - container image updated to point to vault - base repository (https://github.com/ansible/distro-test-containers/pull/54) - - ansible-test validate-modules - no longer assume that ``default`` for ``type=bool`` - options is ``false``, as the default is ``none`` and for some modules, ``none`` - and ``false`` mean different things (https://github.com/ansible/ansible/issues/69561). - - iptables - reorder comment postition to be at the end (https://github.com/ansible/ansible/issues/71444). - release_summary: '| Release Date: 2020-12-07 + - AnsibleModule.set_mode_if_different - don't check file existence when check_mode + is activated (https://github.com/ansible/ansible/issues/61185). + - Apply ``display_failed_stderr`` callback option on loop item results. (https://github.com/ansible/ansible/issues/74864) + - Avoid task executor from ending early as vars can come from delegated to host. + - ansible-pull - update documentation for ``--directory`` option to clarify + path must be absolute. + - config, ensure 'quoted' lists from ini or env do not take the quotes literally + as part of the list item. + - gather_facts, package, service - fix using module_defaults for the modules + in addition to the action plugins. (https://github.com/ansible/ansible/issues/72918) + - psrp - Always cleanup the last run pipeline if a second pipeline is invoked + to avoid violating any resource limits. + - psrp - Fix error when resetting a connection that was initialised but not + connected - (https://github.com/ansible/ansible/issues/74092). + - psrp - Try to clean up any server-side resources when resetting a connection. + - roles - make sure argspec validation task is tagged with ``always`` (https://github.com/ansible/ansible/pull/74994). + - slurp - Fix error messages for unreadable files and directories (https://github.com/ansible/ansible/issues/67340). + - slurp - handle error when ``path`` is a directory and not a file (https://github.com/ansible/ansible/pull/74930). + - ssh connection - fix interaction between transfer settings options. + - subversion - fix stack trace when getting information about the repository + (https://github.com/ansible/ansible/issues/36498) + - version test - improve error message when an empty version is provided + release_summary: '| Release Date: 2021-06-14 | `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`__ ' - codename: When the Levee Breaks + security_fixes: + - templating engine fix for not preserving usnafe status when trying to preserve + newlines. CVE-2021-3583 + codename: Hey Hey, What Can I Do fragments: - - 32143-pause-background-hangs.yml - - 71496-iptables-reorder-comment-position.yml - - 71528-systemd-capbpf-workaround.yml - - 71528-systemd-improve-unit-searching.yml - - 71528-systemd-list-unit-files.yml - - 71824-action-fqcns.yml - - 72055-blockinfile-fix-insert-after-line-no-linesep.yml - - 72316-dnf-filtering.yml - - 72322-wait-for-handle-errors.yml - - 72390-return-error-if-cwd-directory-does-not-exist.yml - - 72428-action-groups-docker-k8s.yml - - 72516-fix-aix-network-facts.yml - - 72623-ansible-test-unicode-paths.yml - - 72697-improve-config-deprecations.yml - - 72699-validate-modules-default-for-bools.yml - - ansible-base-update-containers.yml - - ansible-doc-has_action.yml - - ansible-test-acme-test-plugin.yml - - ansible-test-azp-change-detection.yml - - ansible-test-centos6-eol.yml - - ansible-test-collection-classification.yml - - ansible-test-coverage-combine-export.yml - - ansible-test-validate-modules-file-common-args.yml - - cffi-constraint.yml - - ensure_local_user_correctness.yml - - galaxy-servers.yml - - play_context_remove_redundant_pwd.yml - - ps-sanity-requirements.yml - - py26-multiprocess-queue-bug.yml - - rhel-7.9.yml - - run-command-cwd.yml - - set_mode_if_different-symlink-sticky-dir.yml - - skip_invalid_coll_name_when_listing.yml - - v2.10.4rc1_summary.yaml - release_date: '2020-12-07' - 2.10.5: + - 36498-subversion-fix-info-parsing.yml + - 61185-basic.py-fix-check_mode.yaml + - 67340-slurp_error_message.yml + - 73864-action-plugin-module-defaults.yml + - 74864-display_failed_stderr-per-item.yml + - ansible-pull-doc-update.yml + - config_lists_unquote.yml + - delegate_te_fix.yml + - fix_scp_ssh_settings.yml + - fix_unsafe_newline.yml + - psrp-cleanup.yml + - psrp-reset.yml + - role_argspec_tagged_always.yml + - slurp-handle-error-with-dir.yml + - v2.11.2rc1_summary.yaml + - version_compare-error-on-empty.yml + release_date: '2021-06-14' + 2.11.3: changes: - release_summary: '| Release Date: 2021-01-18 + release_summary: '| Release Date: 2021-07-19 | `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`__ ' - codename: When the Levee Breaks + codename: Hey Hey, What Can I Do fragments: - - v2.10.5_summary.yaml - release_date: '2021-01-18' - 2.10.5rc1: + - v2.11.3_summary.yaml + release_date: '2021-07-19' + 2.11.3rc1: changes: bugfixes: - - Apply ``_wrap_native_text`` only for builtin filters specified in STRING_TYPE_FILTERS. - - Documentation change to the apt module to reference lock files (https://github.com/ansible/ansible/issues/73079). - - 'Fix --list-tasks format `role_name : task_name` when task name contains the - role name. (https://github.com/ansible/ansible/issues/72505)' - - Fix ansible-galaxy collection list to show collections in site-packages (https://github.com/ansible/ansible/issues/70147) - - Fix bytestring vs string comparison in module_utils.basic.is_special_selinux_path() - so that special-cased filesystems which don't support SELinux context attributes - still allow files to be manipulated on them. (https://github.com/ansible/ansible/issues/70244) - - 'Fix notifying handlers via `role_name : handler_name` when handler name contains - the role name. (https://github.com/ansible/ansible/issues/70582)' - - async - Fix Python 3 interpreter parsing from module by comparing with bytes - (https://github.com/ansible/ansible/issues/70690) - - inventory - pass the vars dictionary to combine_vars instead of an individual - key's value (https://github.com/ansible/ansible/issues/72975). - - paramiko connection plugin - Ensure we only reset the connection when one - has been previously established (https://github.com/ansible/ansible/issues/65812) - - 'systemd - preserve the full unit name when using a templated service and - ``systemd`` failed to parse dbus due to a known bug in ``systemd`` (https://github.com/ansible/ansible/pull/72985) - - ' - - 'user - do the right thing when ``password_lock=True`` and ``password`` are - used together (https://github.com/ansible/ansible/issues/72992) - - ' + - Add unicode support to ``ansible-inventory`` CLI (https://github.com/ansible/ansible/issues/57378) + - Ensure we get full path for extra vars into cliargs to avoid realpath issues + after initial load. + - ansible-doc - in text output, do not show empty ``version_added_collection`` + values (https://github.com/ansible/ansible/pull/74999). + - ansible-test - restrict ``packaging`` to ``< 21.0`` for Python ``< 3.6`` (https://github.com/ansible/ansible/pull/75186). + - command - remove unreachable code path when trying to convert the value for + ``chdir`` to bytes (https://github.com/ansible/ansible/pull/75036) + - module_common - handle exception when multiple workers try to create the cache + directory + - roles - make sure argspec validation task templates suboptions (https://github.com/ansible/ansible/issues/75070). + - slurp - improve the logic in the error handling and remove ``os.stat()`` call + (https://github.com/ansible/ansible/pull/75038) + - ssh_connection - rename ``retries`` to ``reconnection_retries`` to avoid conflicts + with task vars (https://github.com/ansible/ansible/issues/75142). + - ssh_connection - set the default for ``reconnection_retries`` back to ``0`` + (https://github.com/ansible/ansible/issues/75142). + - task_executor/ssh_connection - use the ``retries`` value from ``ssh_connection`` + settings, not the default from the ``Task`` field attributes (https://github.com/ansible/ansible/issues/75142). minor_changes: - - ansible-test - Changed the internal name of the custom plugin used to identify - use of unwanted imports and functions. - - ansible-test - The ``pylint`` sanity test is now skipped with a warning on - Python 3.9 due to unresolved upstream regressions. - - ansible-test - The ``pylint`` sanity test is now supported on Python 3.8. - - ansible-test - add macOS 11.1 as a remote target (https://github.com/ansible/ansible/pull/72622) - - ansible-test - remote macOS instances no longer install ``virtualenv`` during - provisioning - - ansible-test - virtualenv helper scripts now prefer ``venv`` on Python 3 over - ``virtualenv`` if the ``ANSIBLE_TEST_PREFER_VENV`` environment variable is - set - release_summary: '| Release Date: 2021-01-11 + - ansible-test - aws creates and exposes a new tiny_prefix variable to provide + a shorter prefix for the AWS tests. + release_summary: '| Release Date: 2021-07-13 | `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`__ ' - codename: When the Levee Breaks + codename: Hey Hey, What Can I Do fragments: - - 65812-paramiko-attribute-error.yml - - 70244-selinux-special-fs.yml - - 70690-async-interpreter.yml - - 72511-always-prepend-role-to-task-name.yml - - 72979-fix-inventory-merge-hash-replace.yaml - - 72992-user-account-lock-always-changes.yml - - 73079-update-documentation-around-apt-lock.yml - - ansible-test-pylint-plugin-name.yml - - ansible-test-pylint-python-3.8-3.9.yml - - ansible-test-venv-virtualenv-fallback.yml - - ci-add-macos-11.yml - - collection-list-site-packages.yaml - - systemd-preserve-full-unit-name.yml - - v2.10.5rc1_summary.yaml - - wrap_native_text-non-collections-only.yml - release_date: '2021-01-11' - 2.10.6: + - 57378-inventory-cli-unicode.yml + - 74999-ansible-doc-version_added_collection.yml + - 75073-role-argspec-suboption-variables.yaml + - 75142-ssh-retries-collision.yml + - 75186-ansible-test-packaging-constraint.yml + - aws_tiny_prefix.yaml + - command-remove-unreachable-code.yml + - concurrency-cache-dir-collision.yml + - extra_vars_unfrack.yml + - slurp-improve-error-handling-readability.yml + - v2.11.3rc1_summary.yaml + release_date: '2021-07-13' + 2.11.4: changes: - release_summary: '| Release Date: 2021-02-17 + release_summary: '| Release Date: 2021-08-16 | `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`__ ' - codename: When the Levee Breaks + codename: Hey Hey, What Can I Do fragments: - - v2.10.6_summary.yaml - release_date: '2021-02-17' - 2.10.6rc1: + - v2.11.4_summary.yaml + release_date: '2021-08-16' + 2.11.4rc1: changes: bugfixes: - - Added unsafe_writes test. - - Always mention the name of the deprecated or tombstoned plugin in routing - deprecation/tombstone messages (https://github.com/ansible/ansible/pull/73059). - - Correct the inventory source error parse handling, specifically make the config - INVENTORY_ANY_UNPARSED_IS_FAILED work as expected. - - Enabled unsafe_writes for get_url which was ignoring the paramter. - - Fix incorrect variable scoping when using ``import with context`` in Jinja2 - templates. (https://github.com/ansible/ansible/issues/72615) - - Restored unsafe_writes functionality which was being skipped. - - allow become method 'su' to work on 'local' connection by allocating a fake - tty. - - ansble-test - only require a collection name in deprecation warnings when - necessary (https://github.com/ansible/ansible/pull/72987) - - ansible-test - Temporarily limit ``cryptography`` to versions before 3.4 to - enable tests to function. - - ansible-test - The ``--remote`` option has been updated for Python 2.7 to - work around breaking changes in the newly released ``get-pip.py`` bootstrapper. - - ansible-test - The ``--remote`` option has been updated to use a versioned - ``get-pip.py`` bootstrapper to avoid issues with future releases. - - ansible-test sanity changelog test - bump dependency on antsibull-changelog - to 0.9.0 so that `fragments that add new plugins or objects <https://github.com/ansible-community/antsibull-changelog/blob/main/docs/changelogs.rst#adding-new-roles-playbooks-test-and-filter-plugins>`_ - will not fail validation (https://github.com/ansible/ansible/pull/73428). - - display correct error information when an error exists in the last line of - the file (https://github.com/ansible/ansible/issues/16456) - - facts - properly report virtualization facts for Linux guests running on bhyve - (https://github.com/ansible/ansible/issues/73167) - - git - Only pass ``--raw`` flag to git verify commands (verify-tag, verify-commit) - when ``gpg_whitelist`` is in use. Otherwise don't pass it so that non-whitelist - GPG validation still works on older Git versions. (https://github.com/ansible/ansible/issues/64469) - - import_playbook - change warning about extra parameters to deprecation (https://github.com/ansible/ansible/issues/72745) - - pause - do not warn when running in the background if a timeout is provided - (https://github.com/ansible/ansible/issues/73042) - - psrp connection plugin - ``to_text(stdout)`` before ``json.loads`` in psrp.Connection.put_file - in case ``stdout`` is bytes. - - validate-modules - do not raise an ``AttributeError`` if a value is assigned - to a module attribute in a try/except block. - minor_changes: - - ansible-test - Added Ubuntu 20.04 LTS image to the default completion list - - inventory cache - do not show a warning when the cache file does not (yet) - exist. - release_summary: '| Release Date: 2021-02-08 + - Fix ``when`` evaluation on Native Jinja and Python 3.10. + - Jinja2 globals should be accessible even when importing a template without + the context (https://github.com/ansible/ansible/issues/75371) + - ansible-test - add packaging python module to ``ansible-doc`` sanity test + requirements. + - ansible-test validate-modules - correctly validate positional parameters to + ``AnsibleModules`` (https://github.com/ansible/ansible/pull/75332). + - cli defaults for ssh args set to None as '' was bypassing normal default. + - dnf module - Use all components of a package name to determine if it's installed + (https://github.com/ansible/ansible/issues/75311). + - do not trigger interpreter discovery in the forced_local module path as they + should use the ansible playbook python unless otherwise configured. + - find action, correctly convert path to text when warning about skiping. + - remote tmpdir permissions - fix type error in macOS chmod ACL fallback (https://github.com/ansible/ansible/pull/74613). + - template - ensure Jinja2 overrides from template header are used (https://github.com/ansible/ansible/issues/75275) + - unarchive - move failure for missing binary to ``can_handle_archive()`` rather + than ``__init__()`` + release_summary: '| Release Date: 2021-08-10 | `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`__ ' - security_fixes: - - '**security issue** - Mask default and fallback values for ``no_log`` module - options (CVE-2021-20228)' - codename: When the Levee Breaks + codename: Hey Hey, What Can I Do fragments: - - 16456-correct-YAML-error-message-when-file-load-failed.yml - - 64469_git_no_raw.yml - - 72615-jinja-import-context-fix.yml - - 72745-import_playbook-deprecation-extra-params.yml - - 73059-improve-deprecation-texts.yml - - 73167-bhyve-facts.yml - - 73428-changelog-linting-bump-version.yml - - ansible-test-pip-bootstrap-s3.yml - - ansible-test-pip-bootstrap.yml - - ansible-test-sanity-deprecation-collection-name.yml - - ansible-test-ubuntu2004.yml - - cryptography-fix.yml - - enable_su_on_local.yaml - - fix_inventory_source_parse_error_handling.yml - - inventory-cache-file-missing-warning.yaml - - no_log-fallback.yml - - pause-do-not-warn-background-with-seconds.yml - - psrp-json-loads-bytes.yml - - unsafe_writes_fix.yml - - v2.10.6rc1_summary.yaml - - validate-modules_found_try_except_import_fails_module_attribute.yaml - release_date: '2021-02-08' - 2.10.7: + - 74613-actionfixup_perms2_macos_remote_paths_ensure_list.yml + - 75275-ensure-jinja2-header-overrides-used.yml + - 75332-ansible-test-validate-modules-AnsibleModule-args.yml + - 75356-add-requirement-to-ansible-test.yml + - 75371-import_template_globals.yml + - find_error_fix.yml + - fix-dnf-filtering-for-installed-package-name.yml + - fix_cli_ssh_defaults.yml + - skip_local_discovery.yml + - unarchive-fix-bin-checking.yml + - v2.11.4rc1_summary.yaml + - when-eval-native-py310.yml + release_date: '2021-08-10' + 2.11.5: changes: - release_summary: '| Release Date: 2021-03-15 + release_summary: '| Release Date: 2021-09-13 | `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`__ ' - codename: When the Levee Breaks + codename: Hey Hey, What Can I Do fragments: - - v2.10.7_summary.yaml - release_date: '2021-03-15' - 2.10.7rc1: + - v2.11.5_summary.yaml + release_date: '2021-09-13' + 2.11.5rc1: changes: bugfixes: - - ConfigManager - Normalize ConfigParser between Python2 and Python3 to for - handling comments (https://github.com/ansible/ansible/issues/73709) - - InventoryManager - Fix unhandled exception when given limit file was actually - a directory. - - InventoryManager - Fix unhandled exception when inventory directory was empty - or contained empty subdirectories (https://github.com/ansible/ansible/issues/73658). - - add AlmaLinux to fact gathering (https://github.com/ansible/ansible/pull/73458) - - ansible-galaxy - fixed galaxy role init command (https://github.com/ansible/ansible/issues/71977). - - ansible-inventory CLI - Deal with failures when sorting JSON and you have - incompatible key types (https://github.com/ansible/ansible/issues/68950). - - ansible-test - Running tests using an installed version of ``ansible-test`` - against one Python version from another no longer fails due to a missing ``egg-info`` - directory. This could occur when testing plugins which import ``pkg_resources``. - - ansible-test - Running tests using an installed version of ``ansible-test`` - no longer generates an error attempting to create an ``egg-info`` directory - when an existing one is not found in the expected location. This could occur - if the existing ``egg-info`` directory included a Python version specifier - in the name. - - default callback - Ensure that the ``host_pinned`` strategy is not treated - as lockstep (https://github.com/ansible/ansible/issues/73364) - - ensure find_mount_point consistently returns text. - - ensure we don't clobber role vars data when getting an empty file - - find module - Stop traversing directories past the requested depth. (https://github.com/ansible/ansible/issues/73627) - - hostname - add Almalinux support (https://github.com/ansible/ansible/pull/73619) - - runtime routing - redirect ``firewalld`` to ``ansible.posix.firewalld`` FQCN - (https://github.com/ansible/ansible/issues/73689). - - the unvault lookup plugin returned a byte string. Now returns a real string. - - yamllint - do not raise an ``AttributeError`` if a value is assigned to a - module attribute at the top of the module. - minor_changes: - - ansible-test - Generation of an ``egg-info`` directory, if needed, is now - done after installing test dependencies and before running tests. When running - from an installed version of ``ansible-test`` a temporary directory is used - to avoid permissions issues. Previously it was done before installing test - dependencies and adjacent to the installed directory. - - ansible-test - now makes a better attempt to support podman when calling ``docker - images`` and asking for JSON format. - release_summary: '| Release Date: 2021-03-08 + - Fix templating task action with host-specific vars (https://github.com/ansible/ansible/issues/75568) + - Since ansible/2.11 doc site was removed, the current relative messages point + to a 404 url, this fixes it by chainging the target to ansible-core/2.11 + - ansible-galaxy - Fix a bug with build_ignore when installing collections from + source (https://github.com/ansible/ansible/issues/75528). + - ansible-galaxy - Improve error message from dependency resolution when a candidate + has inconsistent requirements (https://github.com/ansible/ansible/issues/75139). + - ansible-playbook, more robust handling of --list-hosts and undefined vars + in hosts keyword. + - command module, clarify order of remove/creates checks. + - command module, correctly handles chdir to symlinks. + - command module, move to standarized messages in 'msg' vs abusing 'stdout'. + - command module, now all options work in ad-hoc execution. + - command module, now always returns what we documented as 'returns always'. + - get_bin_path, clarify with quotes what the missing required executable is. + - make previous versions compatible we new attributres w/o implementing them. + - paramiko_ssh - mark connection as connected when ``_connect()`` is called + (https://github.com/ansible/ansible/issues/74081) + - setup module should now not truncate hpux interface names. + - validate_argument_spec, correct variable precedence and merge method and add + missing examples + - variable manager, avoid sourcing delegated variables when no inventory hostname + is present. This affects scenarios like syntax check and imports. + release_summary: '| Release Date: 2021-09-08 | `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`__ ' - codename: When the Levee Breaks + codename: Hey Hey, What Can I Do fragments: - - 71977-ansible-galaxy-role-init.yml - - 73364-default-callback-host-pinned-not-lockstep.yml - - 73456-let-vault-lookup-output-string.yml - - 73619-hostname-almalinux-support.yml - - 73658-inventorymanager-throws-on-empty-inventory-dir.yml - - 73689-move-firewalld-to-ansible-posix.yaml - - 73709-normalize-configparser.yml - - 73718-find-dir-depth-traversal.yml - - ansible-test-egg-info-handling.yml - - ansible-test-podman-json-format.yml - - ansible_test_yamllint_avoid_attribute_exception.yaml - - fix_mount_point.yml - - fix_role_var_loading.yml - - inv_json_sort_types_fix.yml - - support_almalinux.yml - - v2.10.7rc1_summary.yaml - release_date: '2021-03-08' + - 74081-paramiko-mark-connected.yml + - 75235-ansible-galaxy-inconsistent-candidate-error.yml + - 75547-fix-installing-collections-from-source.yaml + - 75568-fix-templating-task-action-host-specific-vars.yml + - attributes_compat.yml + - clarify_missing_exe.yml + - command_deliver_promisses.yml + - fix_host_list.yml + - fix_relative_msg_urls.yml + - fix_syntax_check.yml + - hpux_iface_facts_length.yml + - v2.11.5rc1_summary.yaml + - vas_fixes.yml + release_date: '2021-09-08' |