1ancestor: 2.10.0
2releases:
3  2.11.0:
4    changes:
5      bugfixes:
6      - ansible-test - ensure the correct unit test target is given when the ``__init__.py``
7        file is modified inside the connection plugins directory
8      major_changes:
9      - ansible-test - Tests run with the ``centos6`` and ``default`` test containers
10        now use a PyPI proxy container to access PyPI when Python 2.6 is used. This
11        allows tests running under Python 2.6 to continue functioning even though
12        PyPI is discontinuing support for non-SNI capable clients.
13      minor_changes:
14      - ansible-test - Update distribution test containers from version 2.0.1 to 2.0.2.
15      - ansible-test - Update the Ansible Core and Ansible Collection default test
16        containers to 3.2.0 and 3.2.2 respectively.
17      release_summary: '| Release Date: 2021-04-26
18
19        | `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`__
20
21        '
22    codename: Hey Hey, What Can I Do
23    fragments:
24    - ansible-test-connection-units-init.yml
25    - ansible-test-default-containers-3.2.yml
26    - ansible-test-distro-containers-2.0.2.yml
27    - ansible-test-pypi-test-container.yml
28    - v2.11.0_summary.yaml
29    release_date: '2021-04-26'
30  2.11.0b1:
31    changes:
32      breaking_changes:
33      - Made SCM collections be reinstalled regardless of ``--force`` being present.
34      - NetBSD virtualization facts (specifically ``ansible_virtualization_type``)
35        now returns a more accurate value by checking the value of the ``machdep.hypervisor``
36        ``sysctl`` key. This change is breaking because in some cases previously,
37        we would erroneously report ``xen`` even when the target is not running on
38        Xen. This prevents that behavior in most cases. (https://github.com/ansible/ansible/issues/69352)
39      - "Replaced the in-tree dependency resolver with an external implementation
40        that pip >= 20.3 uses now by default \u2014 ``resolvelib``. (https://github.com/ansible/ansible/issues/71784)"
41      - The ``meta`` module now supports tags for user-defined tasks. Internal ``meta``
42        tasks continue to always run. (https://github.com/ansible/ansible/issues/64558)
43      - ansible-galaxy login command has been removed (see https://github.com/ansible/ansible/issues/71560)
44      bugfixes:
45      - ANSIBLE_COLLECTIONS_PATHS - remove deprecation so that users of Ansible 2.9
46        and 2.10+ can use the same var when specifying a collection path without a
47        warning.
48      - Added unsafe_writes test.
49      - Address compat with rpmfluff-0.6 for integration tests
50      - 'Address the deprecation of the use of stdlib distutils in packaging. It''s
51        a short-term hotfix for the problem (https://github.com/ansible/ansible/issues/70456,
52        https://github.com/pypa/setuptools/issues/2230, https://github.com/pypa/setuptools/commit/bd110264)
53
54        '
55      - Adjust various hard-coded action names to also include their ``ansible.builtin.``
56        and ``ansible.legacy.`` prefixed version (https://github.com/ansible/ansible/issues/71817,
57        https://github.com/ansible/ansible/issues/71818, https://github.com/ansible/ansible/pull/71824).
58      - Allow TypeErrors on Undefined variables in filters to be handled or deferred
59        when processing for loops.
60      - Allow `~` to be present in file names in galaxy roles (https://github.com/ansible/ansible/issues/72966)
61      - Always mention the name of the deprecated or tombstoned plugin in routing
62        deprecation/tombstone messages (https://github.com/ansible/ansible/pull/73059).
63      - Ansible output now uses stdout to determine column width instead of stdin
64      - AnsibleModule - added arg ``ignore_invalid_cwd`` to ``AnsibleModule.run_command()``,
65        to control its behaviour when ``cwd`` is invalid. (https://github.com/ansible/ansible/pull/72390)
66      - Apply ``_wrap_native_text`` only for builtin filters specified in STRING_TYPE_FILTERS.
67      - Be smarter about collection paths ending with ansible_collections, emulating
68        a-galaxy behaviour. Issue 72628
69      - CLI - Restore git information in version output when running from source
70      - Collection callbacks were ignoring options and rules for stdout and adhoc
71        cases.
72      - Collections - Ensure ``action_loader.get`` is called with ``collection_list``
73        to properly find collections when ``collections:`` search is specified (https://github.com/ansible/ansible/issues/72170)
74      - Command module now returns stdout & stderr if executable is missing or an
75        unknown error occurs
76      - ConfigManager - Normalize ConfigParser between Python2 and Python3 to for
77        handling comments (https://github.com/ansible/ansible/issues/73709)
78      - Continue execution when  'flatten' filter when it hits a None/null value as
79        part of the list.
80      - Correct the inventory source error parse handling, specifically make the config
81        INVENTORY_ANY_UNPARSED_IS_FAILED work as expected.
82      - Display - Use wcswidth to calculate printable width of a text string (https://github.com/ansible/ansible/issues/63105)
83      - Enabled unsafe_writes for get_url which was ignoring the paramter.
84      - Ensure Ansible's unique filter preserves order (https://github.com/ansible/ansible/issues/63417)
85      - Ensure if a traceback halts ``strategy.run`` that we still attempt to clean
86        up (https://github.com/ansible/ansible/issues/23958)
87      - Ensure password passed in by -k is used on delegated hosts that do not have
88        ansible_password set
89      - Ensure the correct options are used when ssh executables are used that don't
90        match ssh executable names.
91      - Facts collection - get serial number of NVMe device without sg_inq (https://github.com/ansible/ansible/issues/66663).
92      - 'Fix --list-tasks format `role_name : task_name` when task name contains the
93        role name. (https://github.com/ansible/ansible/issues/72505)'
94      - Fix ``RecursionError`` when templating large vars structures (https://github.com/ansible/ansible/issues/71920)
95      - 'Fix ``delegate_facts: true`` when ``ansible_python_interpreter`` is not set.
96        (https://github.com/ansible/ansible/issues/70168)'
97      - Fix an exit code for a non-failing playbook (https://github.com/ansible/ansible/issues/71306)
98      - Fix ansible-galaxy collection list to show collections in site-packages (https://github.com/ansible/ansible/issues/70147)
99      - Fix bytestring vs string comparison in module_utils.basic.is_special_selinux_path()
100        so that special-cased filesystems which don't support SELinux context attributes
101        still allow files to be manipulated on them. (https://github.com/ansible/ansible/issues/70244)
102      - Fix execution of the meta tasks 'clear_facts', 'clear_host_errors', 'end_play',
103        'end_host', and 'reset_connection' when the CLI flag '--flush-cache' is provided.
104      - Fix fileglob bug where it could return different results for different order
105        of parameters (https://github.com/ansible/ansible/issues/72873).
106      - Fix incorrect msg in the results dict in loops
107      - Fix incorrect re-run of roles with tags (https://github.com/ansible/ansible/issues/69848)
108      - Fix incorrect variable scoping when using ``import with context`` in Jinja2
109        templates. (https://github.com/ansible/ansible/issues/72615)
110      - Fix jsonfile cache plugin option '_uri' to be a type path instead of a string.
111        (https://github.com/ansible/ansible/issues/38002)
112      - 'Fix notifying handlers via `role_name : handler_name` when handler name contains
113        the role name. (https://github.com/ansible/ansible/issues/70582)'
114      - Fix parsing of values when using empty string as a key (https://github.com/ansible/ansible/issues/57132)
115      - Fix statistics reporting when rescue block contains another block (issue https://github.com/ansible/ansible/issues/61253).
116      - Fix to previous deprecation change (#70504) which caused command warning deprecation
117        to show in all cases, even when not specified by the user.
118      - Fixed TypeError instancemethod expecting at least 2 arguments for apt_repository(issue
119        https://github.com/ansible/ansible/issues/69308, PR https://github.com/ansible/ansible/pull/69463)
120      - Fixed issue when `netstat` is either missing or doesn't have execution permissions
121        leading to incorrect command being executed.
122      - Fixes ``ansible-galaxy role info`` to support multiple roles on the command
123        line (https://github.com/ansible/ansible/pull/70148)
124      - Fixes ansible-test traceback when plugin author is not a string or a list
125        of strings (https://github.com/ansible/ansible/pull/70507)
126      - Handle more varnames that can create conflicts, expand a function in general,
127        handle jinja2 globals in particular (https://github.com/ansible/ansible/issues/41955).
128      - INTERPRETER_PYTHON_DISTRO_MAP - prefer ``/usr/libexec/platform-python`` on
129        ``oraclelinux 8`` when other pythons are present.
130      - Improve Ansible config deprecations to show the source of the deprecation
131        (ansible-core). Also remove space before a comma in config deprecations (https://github.com/ansible/ansible/pull/72697).
132      - Improved/fixed regular expressions in ``validate-modules/validate_modules/schema.py``
133        and ``utils/collection_loader/_collection_finder.py`` (https://github.com/ansible/ansible/pull/73577).
134      - Includes - Explicitly get the include task, and not assume it is the parent
135        (https://github.com/ansible/ansible/issues/65710)
136      - InventoryManager - Fix unhandled exception when given limit file was actually
137        a directory.
138      - InventoryManager - Fix unhandled exception when inventory directory was empty
139        or contained empty subdirectories (https://github.com/ansible/ansible/issues/73658).
140      - JSON Encoder - Ensure we treat single vault encrypted values as strings (https://github.com/ansible/ansible/issues/70784)
141      - Lookup user by UID in password database if login name is not found (https://github.com/ansible/ansible/issues/17029)
142      - Pass expression in angle-bracket notation as filename argument to a ``compile()``
143        built-in function, so that Python debuggers do not try to parse it as filename.
144      - Pass the connection's timeout to connection plugins instead of the task's
145        timeout.
146      - Provide more information in AnsibleUndefinedVariable (https://github.com/ansible/ansible/issues/55152)
147      - Python module_utils finder - refactor logic to eliminate many corner cases,
148        remove recursion, fix base module_utils redirections
149      - Remove an embedded function from RoleMixin and add tests for it (https://github.com/ansible/ansible/pull/72754).
150      - Remove the warning displayed when validating the arg spec of a role with dependencies
151        and add it to the documentation.
152      - Restore the ability for changed_when/failed_when to function with group_by
153        (#70844).
154      - Restored unsafe_writes functionality which was being skipped.
155      - Restructured pipelining settings to be at the connection plugins leaving base
156        config as global and for backwards compatiblity.
157      - SSH plugin - Improve error message when ssh client is not found on the host
158      - Skip invalid collection names when listing in ansible-doc instead of throwing
159        exception. Issue#72257
160      - Skip literal_eval for string filters results in native jinja. (https://github.com/ansible/ansible/issues/70831)
161      - Stop adding the connection variables to the output results
162      - Suppress warning when user directory used in --playbook-dir option with ansible-inventory
163        command (https://github.com/ansible/ansible/issues/65262).
164      - TOML inventory - Ensure we register dump functions for ``AnsibleUnsafe`` to
165        support dumping unsafe values. Note that the TOML format has no functionality
166        to mark that the data is unsafe for re-consumption. (https://github.com/ansible/ansible/issues/71307)
167      - Terminal plugins - add "\e[m" to the list of ANSI sequences stripped from
168        device output
169      - The ``docker`` and ``k8s`` action groups / module default groups now also
170        support the moved modules in `community.docker <https://galaxy.ansible.com/community/docker>`_,
171        `community.kubevirt <https://github.com/ansible-collections/community.kubevirt>`_,
172        `community.okd <https://galaxy.ansible.com/community/okd>`_, and `kubernetes.core
173        <https://galaxy.ansible.com/kubernetes/core>`_ (https://github.com/ansible/ansible/pull/72428).
174      - The ``flush()`` method of ``CachePluginAdjudicator`` now calls the plugin's
175        ``flush()`` method instead of iterating over the keys that the adjudicator
176        knows about and deleting those from the cache. (https://github.com/ansible/ansible/issues/68770)
177      - The `ansible_become` value was not being treated as a boolean value when set
178        in an INI format inventory file (fixes bug https://github.com/ansible/ansible/issues/70476).
179      - The machine-readable changelog ``changelogs/changelog.yaml`` is now contained
180        in the release.
181      - Updated docs and added warning on max_fail_percentage and free strategy usage.
182        fixes issue 16666.
183      - VariableManager - Add the 'vars' key before getting delegated variables (https://github.com/ansible/ansible/issues/71092).
184      - Vault - Allow single vault encrypted values to be used directly as module
185        parameters. (https://github.com/ansible/ansible/issues/68275)
186      - account for bug in Python 2.6 that occurs during interpreter shutdown to avoid
187        stack trace
188      - action plugins - change all action/module delegations to use FQ names while
189        allowing overrides (https://github.com/ansible/ansible/issues/69788)
190      - add AlmaLinux to fact gathering (https://github.com/ansible/ansible/pull/73458)
191      - add constraints file for ``ansible_runner`` test since an update to ``psutil``
192        is now causing test failures
193      - add magic/connection vars updates from delegated host info.
194      - add support for alpine linux 'apk' package manager in package_facts
195      - allow become method 'su' to work on 'local' connection by allocating a fake
196        tty.
197      - ansible-console - Ctrl+C (in a task) abort current task, and put you back
198        on prompt (this behavior doesn't change) (ditto)
199      - ansible-console - Ctrl+C (on prompt) used to exit the shell, unlike most shells,
200        it should just reset the current line (ie. abort it and spawn a new prompt)
201        (https://github.com/ansible/ansible/issues/68529)
202      - ansible-console - Ctrl+D (on prompt) now exit the shell, this is the expected
203        behavior in a shell (cf bash, sh, zsh, ipython, ...) (ditto)
204      - ansible-console - add more documentation, specifically on various commands[1]
205        (https://github.com/ansible/ansible/issues/72195)
206      - ansible-console - fixes few strings' typos
207      - ansible-console - remove useless and poorly formatted comment section (replaced
208        with [1])
209      - ansible-doc - account for an empty ``meta/main.yml`` file when displaying
210        role information (https://github.com/ansible/ansible/pull/73590)
211      - ansible-doc - collection name for plugin top-level deprecation was not inserted
212        when deprecating by version (https://github.com/ansible/ansible/pull/70344).
213      - ansible-doc - improve error message in text formatter when ``description``
214        is missing for a (sub-)option or a return value or its ``contains`` (https://github.com/ansible/ansible/pull/70046).
215      - ansible-doc - improve man page formatting to avoid problems when YAML anchors
216        are used (https://github.com/ansible/ansible/pull/70045).
217      - ansible-doc - include the collection name in the text output (https://github.com/ansible/ansible/pull/70401).
218      - ansible-doc - plugin option deprecations now also get ``collection_name``
219        added (https://github.com/ansible/ansible/pull/71735).
220      - ansible-doc - properly show plugin name when ``name:`` is used instead of
221        ``<plugin_type>:`` (https://github.com/ansible/ansible/pull/71966).
222      - ansible-galaxy - Cache the responses for available collection versions after
223        getting all pages. (https://github.com/ansible/ansible/issues/73071)
224      - ansible-galaxy - Instead of assuming the first defined server is galaxy, filter
225        based on the servers that support the v1 API, and return the first of those
226        (https://github.com/ansible/ansible/issues/65440)
227      - ansible-galaxy - Use ``sys.exit`` instead of ``exit`` when reporting an error
228        for the removed login command.
229      - ansible-galaxy - correct ``collections-path`` command line argument (https://github.com/ansible/ansible/issues/73127)
230      - ansible-galaxy - fixed galaxy role init command (https://github.com/ansible/ansible/issues/71977).
231      - ansible-galaxy collection download - fix downloading tar.gz files and collections
232        in git repositories (https://github.com/ansible/ansible/issues/70429)
233      - ansible-galaxy collection install - fix fallback mechanism if the AH server
234        did not have the collection requested - https://github.com/ansible/ansible/issues/70940
235      - ansible-galaxy download - fix bug when downloading a collection in a SCM subdirectory
236      - ansible-test - Add ``pytest < 6.0.0`` constraint for managed installations
237        on Python 3.x to avoid issues with relative imports.
238      - ansible-test - Always connect additional Docker containers to the network
239        used by the current container (if any).
240      - ansible-test - Always map ``/var/run/docker.sock`` into test containers created
241        by the ``--docker`` option if the docker host is not ``localhost``.
242      - ansible-test - Attempt to detect the Docker hostname instead of assuming ``localhost``.
243      - ansible-test - Avoid using ``/tmp`` to resolve occasional failures starting
244        tests with the ``--docker`` option.
245      - ansible-test - Change classification using ``--changed`` now consistently
246        handles common configuration files for supported CI providers.
247      - ansible-test - Change detection now properly resolves relative imports instead
248        of treating them as absolute imports.
249      - ansible-test - Correctly detect changes in a GitHub pull request when running
250        on Azure Pipelines.
251      - ansible-test - Correctly detect running in a Docker container on Azure Pipelines.
252      - ansible-test - Do not try to validate PowerShell modules ``setup.ps1``, ``slurp.ps1``,
253        and ``async_status.ps1``
254      - ansible-test - Prefer container IP at ``.NetworkSettings.Networks.{NetworkName}.IPAddress``
255        over ``.NetworkSettings.IPAddress``.
256      - ansible-test - Running tests using an installed version of ``ansible-test``
257        against one Python version from another no longer fails due to a missing ``egg-info``
258        directory. This could occur when testing plugins which import ``pkg_resources``.
259      - ansible-test - Running tests using an installed version of ``ansible-test``
260        no longer generates an error attempting to create an ``egg-info`` directory
261        when an existing one is not found in the expected location. This could occur
262        if the existing ``egg-info`` directory included a Python version specifier
263        in the name.
264      - ansible-test - Skip installing requirements if they are already installed.
265      - ansible-test - Symbolic links are no longer used to inject ``python`` into
266        the environment, since they do not work reliably in all cases. Instead, the
267        existing Python based exec wrapper is always used.
268      - ansible-test - Temporarily limit ``cryptography`` to versions before 3.4 to
269        enable tests to function.
270      - ansible-test - The ``--raw`` option for ``ansible-test shell --remote`` now
271        uses ``sh`` for the shell instead of ``bash``, which may not be present.
272      - ansible-test - The ``--remote`` option has been updated for Python 2.7 to
273        work around breaking changes in the newly released ``get-pip.py`` bootstrapper.
274      - ansible-test - The ``--remote`` option has been updated to use a versioned
275        ``get-pip.py`` bootstrapper to avoid issues with future releases.
276      - ansible-test - The ``ansible-doc`` sanity test now works for ``netconf`` plugins.
277      - ansible-test - The ``changelog`` sanity test has been updated to ensure ``rstcheck``
278        does not load the ``sphinx`` module.
279      - ansible-test - The ``cs`` and ``openshift`` test plugins now search for containers
280        on the current network instead of assuming the ``bridge`` network.
281      - ansible-test - The ``resource_prefix`` variable provided to tests running
282        on Azure Pipelines is now converted to lowercase to match other CI providers.
283      - ansible-test - Unified SSH key management for all instances created with the
284        ``--remote`` or ``--docker`` options.
285      - ansible-test - Using the ``--remote`` option on Azure Pipelines now works
286        from a job running in a container.
287      - ansible-test - ``cryptography`` is now limited to versions prior to 3.2 only
288        when an incompatible OpenSSL version (earlier than 1.1.0) is detected
289      - 'ansible-test - add constraint for ``cffi`` to prevent failure on systems
290        with older versions of ``gcc`` (https://foss.heptapod.net/pypy/cffi/-/issues/480)
291
292        '
293      - ansible-test - convert target paths to unicode on Python 2 to avoid ``UnicodeDecodeError``
294        (https://github.com/ansible/ansible/issues/68398, https://github.com/ansible/ansible/pull/72623).
295      - ansible-test - improve classification of changes to ``.gitignore``, ``COPYING``,
296        ``LICENSE``, ``Makefile``, and all files ending with one of ``.in`, ``.md`,
297        ``.rst``, ``.toml``, ``.txt`` in the collection root directory (https://github.com/ansible/ansible/pull/72353).
298      - ansible-test - integration and unit test change detection now works for filter,
299        lookup and test plugins
300      - ansible-test now always uses the ``--python`` option for ``virtualenv`` to
301        select the correct interpreter when creating environments with the ``--venv``
302        option
303      - ansible-test sanity changelog test - bump dependency on antsibull-changelog
304        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>`_
305        will not fail validation (https://github.com/ansible/ansible/pull/73428).
306      - ansible-test units - fixed collection location code to work under pytest >=
307        6.0.0
308      - ansible-test validate-modules - ``version_added`` on module level was not
309        validated for modules in collections (https://github.com/ansible/ansible/pull/70869).
310      - ansible-test validate-modules - return correct error codes ``option-invalid-version-added``
311        resp. ``return-invalid-version-added`` instead of the wrong error ``deprecation-either-date-or-version``
312        when an invalid value of ``version_added`` is specified for an option or a
313        return value (https://github.com/ansible/ansible/pull/70869).
314      - ansible-test validate-modules - when a module uses ``add_file_common_args=True``
315        and does not use a keyword argument for ``argument_spec`` in ``AnsibleModule()``,
316        the common file arguments were not considered added during validation (https://github.com/ansible/ansible/pull/72334).
317      - ansible_pkg_mgr fact - now correctly returns ``atomic_container`` when run
318        on "RHEL for Edge" images and Fedora/RHEL/CentOS Atomic Host (https://github.com/ansible/ansible/issues/73084).
319      - api - time.clock is removed in Python 3.8, add backward compatible code (https://github.com/ansible/ansible/issues/70649).
320      - apt - add ``fail_on_autoremove`` param to apt module to avoid unintended package
321        removals (https://github.com/ansible/ansible/issues/63231)
322      - apt - include exception message from apt python library in error output
323      - apt_key - Specifying ``file`` as mutually exclusive with ``data``, ``keyserver``,
324        ``url`` (https://github.com/ansible/ansible/pull/70492).
325      - apt_repository - fixes ``mode`` doc to remove ineffective default (https://github.com/ansible/ansible/pull/70319).
326      - assemble - fix decrypt argument in the module (https://github.com/ansible/ansible/issues/65450).
327      - async - Fix Python 3 interpreter parsing from module by comparing with bytes
328        (https://github.com/ansible/ansible/issues/70690)
329      - async_wrapper - Fix race condition when ``~/.ansible_async`` folder tries
330        to be created by multiple async tasks at the same time - https://github.com/ansible/ansible/issues/59306
331      - avoid possible errors accessing os.environ by not assuming existance of variables.
332      - basic - handle exceptions for default selectors in Python 2.7 (https://github.com/ansible/ansible/issues/71704).
333      - basic - use PollSelector implementation when DefaultSelector fails (https://github.com/ansible/ansible/issues/70238).
334      - bcrypt hashing - Ensure we repair the salt, to avoid warnings (https://github.com/ansible/ansible/issues/36129)
335      - 'blockinfile - properly insert a block at the end of a file that does not
336        have a trailing newline character (https://github.com/ansible/ansible/issues/72055)
337
338        '
339      - blockinfile now returns name of backup file when this option is used.
340      - clarified changed status to reflect existing rule that had never been written
341        down.
342      - collection loader - fix bogus code coverage entries for synthetic packages
343      - collection metadata - ensure collection loader uses libyaml/CSafeLoader to
344        parse collection metadata if available
345      - cron - cron file should not be empty after adding var (https://github.com/ansible/ansible/pull/71207)
346      - cron - encode and decode crontab files in UTF-8 explicitly to allow non-ascii
347        chars in cron filepath and job (https://github.com/ansible/ansible/issues/69492)
348      - default callback - Ensure that the ``host_pinned`` strategy is not treated
349        as lockstep (https://github.com/ansible/ansible/issues/73364)
350      - delegate_to - Ensure that calculating ``delegate_to`` vars with a loop uses
351        the correct context to correctly evaluate the loop (https://github.com/ansible/ansible/issues/37132)
352      - display correct error information when an error exists in the last line of
353        the file (https://github.com/ansible/ansible/issues/16456)
354      - distribution - add support for Pardus Linux distribution (https://github.com/ansible/ansible/issues/71636).
355      - distribution facts - Allow ``distribution_major_version`` and ``distribution_version``
356        to work for RC and PRERELEASE versions of FreeBSD (and derived distributions)
357        (https://github.com/ansible/ansible/issues/72331).
358      - dnf - fix filtering to avoid dependncy conflicts (https://github.com/ansible/ansible/issues/72316)
359      - 'dnf - it is now possible to specify both ``security: true`` and ``bugfix:
360        true`` to install updates of both types. Previously, only security would get
361        installed if both were true. (https://github.com/ansible/ansible/issues/70854)'
362      - ensure 'local' connection always has the correct default user for actions
363        to consume.
364      - ensure delegated vars can resolve hostvars object and access vars from hostvars[inventory_hostname].
365      - ensure find_mount_point consistently returns text.
366      - ensure we don't clobber role vars data when getting an empty file
367      - expect - Operate pexpect with bytes to avoid potential encoding issues (https://github.com/ansible/ansible/issues/29351)
368      - facts - account for Slackware OS with ``+`` in the name (https://github.com/ansible/ansible/issues/38760)
369      - facts - fix distribution fact for SLES4SAP (https://github.com/ansible/ansible/pull/71559).
370      - facts - fix incorrect UTC timestamp in ``iso8601_micro`` and ``iso8601``
371      - facts - properly report virtualization facts for Linux guests running on bhyve
372        (https://github.com/ansible/ansible/issues/73167)
373      - file - prevent link src from being rewritten when src is not specified explicitly
374        (https://github.com/ansible/ansible/issues/65448)
375      - file - the module should warn in check_mode when path an owner/group don't
376        exist (https://github.com/ansible/ansible/issues/67307).
377      - find module - Don't treat empty excludes as a match (https://github.com/ansible/ansible/issues/70640)
378      - find module - Stop traversing directories past the requested depth. (https://github.com/ansible/ansible/issues/73627)
379      - fix issue with inventory_hostname and delegated host vars mixing on connection
380        settings.
381      - fortimanager httpapi plugin - fix redirect to point to the ``fortinet.fortimanager``
382        collection (https://github.com/ansible/ansible/pull/71073).
383      - galaxy - handle plus sign in user token appearing in role url (https://github.com/ansible/ansible/issues/45475).
384      - get_sysctl now handles multiline values and does not die silently anymore.
385      - get_url - skip checksum during ``--check`` (https://github.com/ansible/ansible/issues/61369).
386      - git - Only pass ``--raw`` flag to git verify commands (verify-tag, verify-commit)
387        when ``gpg_whitelist`` is in use. Otherwise don't pass it so that non-whitelist
388        GPG validation still works on older Git versions. (https://github.com/ansible/ansible/issues/64469)
389      - gluster modules - fix redirect to point to the ``gluster.gluster`` collection
390        (https://github.com/ansible/ansible/pull/71240).
391      - hostname - Fixed an issue where the hostname on the alinux could not be set.
392      - hostname - add Almalinux support (https://github.com/ansible/ansible/pull/73619)
393      - hostname - add macOS support (https://github.com/ansible/ansible/pull/54439)
394      - if the ``type`` for a module parameter in the argument spec is callable, do
395        not pass ``kwargs`` to avoid errors (https://github.com/ansible/ansible/issues/70017)
396      - import_playbook - change warning about extra parameters to deprecation (https://github.com/ansible/ansible/issues/72745)
397      - improve deprecation message when using bare variable (https://github.com/ansible/ansible/pull/70687)
398      - inventory - pass the vars dictionary to combine_vars instead of an individual
399        key's value (https://github.com/ansible/ansible/issues/72975).
400      - inventory plugins - Let plugins define the sanitization method for the constructed
401        ``groups`` feature.
402      - inventory_hostnames - Use ``InventoryManager`` instead of trying to replicate
403        its behavior (https://github.com/ansible/ansible/issues/17268)
404      - is_string/vault - Ensure the is_string helper properly identifies AnsibleVaultEncryptedUnicode
405        as a string (https://github.com/ansible/ansible/pull/71609)
406      - lineinfile - fix not subscriptable error in exception handling around file
407        creation
408      - linux network facts - get the correct value for broadcast address (https://github.com/ansible/ansible/issues/64384)
409      - native jinja2 types - properly handle Undefined in nested data.
410      - package - use list of built in package managers from facts rather than creating
411        a new list
412      - paramiko connection plugin - Ensure we only reset the connection when one
413        has been previously established (https://github.com/ansible/ansible/issues/65812)
414      - password hashing - Ensure we validate salts against allowed characters and
415        length when using ``crypt`` (https://github.com/ansible/ansible/issues/71107)
416      - password lookup - Try to automatically generate salts using known salt sizes
417        (https://github.com/ansible/ansible/issues/53750)
418      - 'pause - Fix indefinite hang when using a pause task on a background process
419        (https://github.com/ansible/ansible/issues/32142)
420
421        '
422      - pause - catch additional error on setting up curses (https://github.com/ansible/ansible/pull/73588).
423      - pause - do not warn when running in the background if a timeout is provided
424        (https://github.com/ansible/ansible/issues/73042)
425      - pause - handle exception when there is no stdout (https://github.com/ansible/ansible/pull/47851)
426      - powershell - fix escaping of strings that broken modules like fetch when dealing
427        with special chars - https://github.com/ansible/ansible/issues/62781
428      - powershell - fix the CLIXML parser when it contains nested CLIXML objects
429        - https://github.com/ansible/ansible/issues/69550
430      - powershell - remove getting the PowerShell version from the env var ``POWERSHELL_VERSION``.
431        This feature never worked properly and can cause conflicts with other libraries
432        that use this var
433      - psrp - Fix hang when copying an empty file to the remote target
434      - psrp - Use native PSRP mechanism when copying files to support custom endpoints
435      - quote filter - normalize how ``None`` is handled, to match Python3 behavior
436        (https://github.com/ansible/ansible/issues/32174)
437      - reboot - Add support for the runit init system, used on Void Linux, that does
438        not support the normal Linux syntax.
439      - remove contradictory recomendation from template docs. https://github.com/ansible/ansible/issues/63484
440      - remove redundant remote_user setting in play_context for local as plugin already
441        does it, also removes fork/thread issue from use of pwd library.
442      - reset logging level to INFO due to CVE-2019-14846.
443      - runas - create a new token when running as ``SYSTEM`` to ensure it has the
444        full privileges assigned to that account
445      - service - Fix for the BSD rcconf code using a Python 2 specific string replace
446        function
447      - 'set_mode_if_different - handle symlink if it is inside a directory with sticky
448        bit set (https://github.com/ansible/ansible/pull/45198)
449
450        '
451      - several fixes to make apt_key better at identifying needs for change and also
452        to avoid changes in check_mode.
453      - shell - fix quoting of mkdir command in creation of remote_tmp in order to
454        allow spaces and other special characters (https://github.com/ansible/ansible/issues/69577).
455      - splunk httpapi plugin - switch from splunk.enterprise_security to splunk.es
456        in runtime.yml to reflect upstream change of Collection Name
457      - 'ssh connection plugin - use ``get_option()`` rather than ``_play_context``
458        to ensure ``ANSBILE_SSH_ARGS`` are applied properly (https://github.com/ansible/ansible/issues/70437)
459
460        '
461      - stat - handle colons in filename while parsing the mimetype output (https://github.com/ansible/ansible/issues/70256).
462      - strftime filter - Input epoch is allowed to be a float (https://github.com/ansible/ansible/issues/71257)
463      - 'systemd - account for templated unit files using ``@`` when searching for
464        the unit file (https://github.com/ansible/ansible/pull/72347#issuecomment-730626228)
465
466        '
467      - systemd - fixed chroot usage on new versions of systemd, that broke because
468        of upstream changes in systemctl output
469      - 'systemd - follow up fix to https://github.com/ansible/ansible/issues/72338
470        to use ``list-unit-files`` rather than ``list-units`` in order to show all
471        units files on the system.
472
473        '
474      - systemd - made the systemd module work correctly when the SYSTEMD_OFFLINE
475        environment variable is set
476      - 'systemd - preserve the full unit name when using a templated service and
477        ``systemd`` failed to parse dbus due to a known bug in ``systemd`` (https://github.com/ansible/ansible/pull/72985)
478
479        '
480      - 'systemd - work around bug with ``systemd`` 245 and 5.8 kernel that does not
481        correctly report service state (https://github.com/ansible/ansible/issues/71528)
482
483        '
484      - 'task parsing - strip spaces from action name when using ``action: foo bar=baz``
485        form. (https://github.com/ansible/ansible/issues/62136)'
486      - templating - fix error message for ``x in y`` when y is undefined (https://github.com/ansible/ansible/issues/70984)
487      - the unvault lookup plugin returned a byte string. Now returns a real string.
488      - to_text(stdout) before json.loads in psrp.Connection.put_file in case stdout
489        is bytes
490      - unarchive - ``zip`` unarchive no longer errors on RHEL/CentOS 6 and old Fedora
491        when attempting to use a numeric gid (https://github.com/ansible/ansible/issues/71903).
492      - unarchive - check ``fut_gid`` against ``run_gid`` in addition to supplemental
493        groups (https://github.com/ansible/ansible/issues/49284)
494      - undeprecate hash_merge setting and add more docs clarifying its use and why
495        not to use it.
496      - uri - ``status_code`` elements are type ``int``
497      - url lookup - make sure that options supplied in ansible.cfg are actually used
498        (https://github.com/ansible/ansible/pull/71736).
499      - url lookup - set default user agent to ``ansible-httpget`` (https://github.com/ansible/ansible/pull/72324)
500      - urls - Close filedescriptor of certificate chain tempfile to prevent stale
501        filedescriptor leakage (https://github.com/ansible/ansible/pull/71825).
502      - 'user - AnsibleModule.run_command returns a tuple of return code, stdout and
503        stderr. The module main function of the user module expects user.create_user
504        to return a tuple of return code, stdout and stderr. Fix the locations where
505        stdout and stderr got reversed.
506
507        '
508      - 'user - Local users with an expiry date cannot be created as the ``luseradd``
509        / ``lusermod`` commands do not support the ``-e`` option. Set the expiry time
510        in this case via ``lchage`` after the user was created / modified. (https://github.com/ansible/ansible/issues/71942)
511
512        '
513      - 'user - do the right thing when ``password_lock=True`` and ``password`` are
514        used together (https://github.com/ansible/ansible/issues/72992)
515
516        '
517      - user - don't create home directory and missing parents when create_home ==
518        false (https://github.com/ansible/ansible/pull/70600).
519      - validate-modules - do not raise an ``AttributeError`` if a value is assigned
520        to a module attribute in a try/except block.
521      - vault - Support reading raw binary data from stdin under python3
522      - virtual facts - kubevirt is now identified as "KubeVirt" and with a "guest"
523        role instead of "kvm" and "host" role (https://github.com/ansible/ansible/issues/72001).
524      - wait_for - catch and ignore errors when getting active connections with psutil
525        (https://github.com/ansible/ansible/issues/72322)
526      - win setup - Fix redirection path for the windows setup module
527      - windows async - use full path when calling PowerShell to reduce reliance on
528        environment vars being correct - https://github.com/ansible/ansible/issues/70655
529      - winrm - preserve winrm forensic data on put_file failures
530      - yamllint - do not raise an ``AttributeError`` if a value is assigned to a
531        module attribute at the top of the module.
532      deprecated_features:
533      - Starting in 2.14, shell and command modules will no longer have the option
534        to warn and suggest modules in lieu of commands. The ``warn`` parameter to
535        these modules is now deprecated and defaults to ``False``. Similarly, the
536        ``COMMAND_WARNINGS`` configuration option is also deprecated and defaults
537        to ``False``. These will be removed and their presence will become an error
538        in 2.14.
539      - apt_key - the parameter ``key`` does not have any effect, has been deprecated
540        and will be removed in ansible-core version 2.14 (https://github.com/ansible/ansible/pull/70319).
541      - psrp - Set the minimum version of ``pypsrp`` to ``0.4.0``.
542      known_issues:
543      - ansible-test - The ``pylint`` sanity test no longer correctly detects "bad"
544        variable names for non-constants. See https://github.com/PyCQA/pylint/issues/3701
545        for additional details.
546      major_changes:
547      - A collection can be reinstalled with new version requirements without using
548        the ``--force`` flag. The collection's dependencies will also be updated if
549        necessary with the new requirements. Use ``--upgrade`` to force transitive
550        dependency updates.
551      - 'Declared ``resolvelib >= 0.5.3, < 0.6.0`` a direct dependency of
552
553        ansible-core. Refs:
554
555        - https://github.com/sarugaku/resolvelib
556
557        - https://pypi.org/p/resolvelib
558
559        - https://pradyunsg.me/blog/2020/03/27/pip-resolver-testing
560
561        '
562      - It became possible to install Ansible Collections from local folders and namespaces
563        folder similar to SCM structure with multiple collections.
564      - It became possible to upgrade Ansible collections from Galaxy servers using
565        the ``--upgrade`` option with ``ansible-galaxy collection install``.
566      - Support for role argument specification validation at role execution time.
567        When a role contains an argument spec, an implicit validation task is inserted
568        at the start of role execution.
569      - add ``ArgumentSpecValidator`` class for validating parameters against an argument
570        spec outside of ``AnsibleModule`` (https://github.com/ansible/ansible/pull/73335)
571      minor_changes:
572      - Add ``--format`` CLI option to ``ansible-galaxy collection list`` which allows
573        for ``human`` (default), ``yaml``, or ``json``. (https://github.com/ansible/ansible/pull/73474)
574      - Add an example for using var in with_sequence (https://github.com/ansible/ansible/issues/68836).
575      - Add new rolespec_validate option to the import/include_role modules do allow
576        disabling of the implicit role arg validation task on a per-role basis.
577      - Add option to pass extra vars to ansible-inventory
578      - Add path of collection location in Ansible CLI version info.
579      - Add standard Python 2/3 compatibility boilerplate to setup script, module_utils
580        and docs_fragments which were missing them.
581      - Add support for `argument_specs` data in role metadata.
582      - Add support for datetime.date object type in module result (https://github.com/ansible/ansible/issues/70583).
583      - Add which conditional is being evaluated at each step when debugging.
584      - Add yum/dnf version comparison documentation for package install
585      - Added NO_COLOR environment var to ansible color configuration, allowing it
586        to integrate with existing convention.
587      - Added name of aliases in user error (https://github.com/ansible/ansible/issues/58752).
588      - Added support for GSSAPI/Kerberos authentication with ``urls.py`` that is
589        used by ``uri`` and ``get_url``.
590      - Added support for specify custom credentials for GSSAPI authentication.
591      - Allow an attribute to be passed to the min and max filters with Jinja 2.10+
592      - Allow for the skipped filter to be used on a registered looped task results.
593        (https://github.com/ansible/ansible/issues/16949)
594      - Allow inventory plugins access to extra vars by default
595      - Allow unsafe_writes to be set on target via env var, for those targets that
596        need a blanket setting.
597      - Also added extra vars cli option to console CLI.
598      - AnsiballZ - Improve performance of ``ModuleDepFinder`` by using faster lookups
599        and reducing the object types that are walked while looking for ``import``
600        statements. (https://github.com/ansible/ansible/pull/70475)
601      - CLI - Specify jinja version in ``--version`` output
602      - CLI - Specify whether PyYAML includes libyaml support in version output
603      - CLI version displays clarified as core version
604      - 'Collection routing: Cisco NSO content from community.network migrated to
605        cisco.nso (https://github.com/ansible/ansible/pull/73046).'
606      - 'Collection routing: DellEMC content from community.general migrated to dellemc.openmanage
607        (https://github.com/ansible/ansible/pull/73046).'
608      - 'Collection routing: FortiOS content from community.network migrated to community.fortios
609        (https://github.com/ansible/ansible/pull/73046).'
610      - 'Collection routing: Google content from community.general migrated to community.google
611        (https://github.com/ansible/ansible/pull/73046).'
612      - 'Collection routing: Hashi Vault content from community.general migrated to
613        community.hashi_vault (https://github.com/ansible/ansible/pull/73046).'
614      - 'Collection routing: Hetzner Robot content from community.general migrated
615        to community.hrobot (https://github.com/ansible/ansible/pull/73046).'
616      - 'Collection routing: KubeVirt content from community.general migrated to community.kubevirt
617        (https://github.com/ansible/ansible/pull/73046).'
618      - 'Collection routing: OC content from community.general migrated to community.okd
619        (https://github.com/ansible/ansible/pull/73046).'
620      - 'Collection routing: PostgreSQL content from community.general migrated to
621        community.postgresql (https://github.com/ansible/ansible/pull/73046).'
622      - 'Collection routing: RouterOS content from community.network migrated to community.routeros
623        (https://github.com/ansible/ansible/pull/73046).'
624      - 'Collection routing: docker content from community.general migrated to community.docker
625        (https://github.com/ansible/ansible/pull/73046).'
626      - Controller - Add warning for Ansible 2.11 when running a Python version older
627        than Python 3.8 to inform users that 2.12 will only support Python 3.8 and
628        newer on the controller. Starting with Ansible 2.11, the project will only
629        be packaged for Python 3.8 and newer.
630      - Discourage the use of 'hexdigits' in password lookup, as it distorts expected
631        entropy.
632      - Enable extra vars for inventory plugin options
633      - Errors - Ensure that errors passed with ``orig_exc`` include the context of
634        that exception (https://github.com/ansible/ansible/issues/68605)
635      - Filters - Add new ``split`` filter for splitting strings
636      - Fixed ansible-doc to not substitute for words followed by parenthesis.  For
637        instance, ``IBM(International Business Machines)`` will no longer be substituted
638        with a link to a non-existent module. https://github.com/ansible/ansible/pull/71070
639      - Force the template module to use non-native Jinja2 (https://github.com/ansible/ansible/issues/46169)
640      - Internal config entries will not be documented, to mark an entry as internal
641        it must start with `_`.
642      - Interpreter Discovery - Add Python 3.8 and Python 3.9 to the fallback list
643      - Minor code cleanup in plugin loader.
644      - Module API - libselinux-python is no longer required for basic module API
645        selinux operations (affects core modules assemble, blockinfile, copy, cron,
646        file, get_url, lineinfile, setup, replace, unarchive, uri, user, yum_repository)
647      - Module API - new module_respawn API allows modules that need to run under
648        a specific Python interpreter to respawn in place under that interpreter
649      - Module iptables multiport destination support added (https://github.com/ansible/ansible/pull/72928)
650      - Module iptables set/ipset support added (https://github.com/ansible/ansible/pull/72984)
651      - New 'timeout' feature added to adhoc and console CLIs, corresponding to the
652        recent 'timeout' task keyword.
653      - New virtualization facts, ``virtualization_tech_guest`` and ``virtualization_tech_host``
654        now allow for conveying when a system is a host or guest of multiple virtualization
655        technologies.
656      - Now 'choices' keyword in config definitions also restricts valid values for
657        the entry.
658      - Refactored ``ansible-galaxy collection [download|install|list|verify]`` CLI
659        subcommands with the public interface kept intact.
660      - Restructured _fixup_perms2() in ansible.plugins.action to make it more linear
661      - Shadow prompt input to ansible-vault encrypt-string unless the ``--show-input``
662        flag is set
663      - Switch to hashlib.sha256() for ansible-test to allow for FIPs mode.
664      - TOML inventory plugin is no longer in preview status
665      - Templar - reduce the complexity of ``Templar._lookup`` (https://github.com/ansible/ansible/pull/73277)
666      - The ``csvfile`` lookup plugin now uses ``parse_kv()`` internally. As a result,
667        multi-word search keys can now be passed.
668      - The ``csvfile`` lookup plugin's documentation has been fixed; it erroneously
669        said that the delimiter could be ``t`` which was never true. We now accept
670        ``\t``, however, and the error in the documentation has been fixed to note
671        that.
672      - The constructed inventory plugin has new option to force using vars plugins
673        on previouslly processed inventory sources.
674      - The find module is now more specific about the reasons it skips candidate
675        files.
676      - The logging functionality in module_utils.basic now returns a nicer error
677        when it falls back to syslog but ends up getting a TypeError thrown back.
678      - The new dependency resolver prefers ``MANIFEST.json`` over ``galaxy.yml``
679        if it exists in the target directory.
680      - The plugin loader now keeps track of the collection where a plugin was resolved
681        to, in particular whether the plugin was loaded from ansible-core's internal
682        paths (``ansible.builtin``) or from user-supplied paths (no collection name).
683      - Toggle allowing usage of extra_vars in compose
684      - When connecting as an unprivileged user, and becoming an unprivileged user,
685        we now fall back to also trying ``chmod +a`` which works on macOS and makes
686        use of ACLs.
687      - allow tree callback plugin to be configurable, for use with playbooks.
688      - ansible-doc - In Windows setup steps, ``ExecutionPolicy`` should be restored
689        to default value ``RemoteSigned`` (https://github.com/ansible/ansible/pull/72993).
690      - ansible-doc - provide ``has_action`` field in JSON output for modules. That
691        information is currently only available in the text view (https://github.com/ansible/ansible/pull/72359).
692      - ansible-doc has new option to show keyword documentation.
693      - ansible-doc will now format, ``L()``, ``R()``, and ``HORIZONTALLINE`` in plugin
694        docs just as the website docs do.  https://github.com/ansible/ansible/pull/71070
695      - ansible-galaxy - Add installation successful message
696      - ansible-galaxy - Added caching mechanisms when retrieving collection info
697        to speed up installs and downloads
698      - ansible-galaxy - Change the output verbosity level of the download message
699        from 3 to 0 (https://github.com/ansible/ansible/issues/70010)
700      - ansible-galaxy - Ensure ``get_collection_versions`` returns an empty list
701        when a collection does not exist for consistency across API versions.
702      - 'ansible-galaxy - find any collection dependencies in the globally configured
703        Galaxy servers and not just the server the parent collection is from.
704
705        '
706      - ansible-test - A warning is no longer emitted when a ``pip*`` or ``python*``
707        binary is found without a matching couterpart.
708      - ansible-test - Add ``macos/10.15`` as a supported value for the ``--remote``
709        option.
710      - ansible-test - Add a ``--docker-network`` option to choose the network for
711        running containers when using the ``--docker`` option.
712      - ansible-test - Add support for running tests on Fedora 33 (https://github.com/ansible/ansible/pull/72861).
713      - ansible-test - Added Ubuntu 20.04 LTS image to the default completion list
714      - ansible-test - Added a ``--export`` option to the ``ansible-test coverage
715        combine`` command to facilitate multi-stage aggregation of coverage in CI
716        pipelines.
717      - ansible-test - Added the ``-remote rhel/7.9`` option to run tests on RHEL
718        7.9
719      - ansible-test - Allow custom ``--remote-stage`` options for development and
720        testing.
721      - ansible-test - CentOS 8 container is now 8.2.2004 (https://github.com/ansible/distro-test-containers/pull/45).
722      - ansible-test - Changed the internal name of the custom plugin used to identify
723        use of unwanted imports and functions.
724      - ansible-test - Cleaned up code to resolve warnings and errors reported by
725        PyCharm.
726      - ansible-test - Code cleanup in the ``import`` sanity test.
727      - ansible-test - Code cleanup in the internal logic for code coverage collection
728        of PowerShell modules.
729      - ansible-test - Collections can now specify pip constraints for unit and integration
730        test requirements using ``tests/unit/constraints.txt`` and ``tests/integration/constraints.txt``
731        respectively.
732      - ansible-test - Containers used with the ``--remote`` option have been updated
733        to version 1.29.0 to include the latest Ansible requirements.
734      - ansible-test - Files used to track remote instances no longer have a region
735        suffix.
736      - ansible-test - Fix ``ansible-test coverage`` reporting sub-commands (``report``,
737        ``html``, ``xml``) on Python 2.6.
738      - ansible-test - Fix container hostname/IP discovery for the ``acme`` test plugin.
739      - ansible-test - FreeBSD 11.4 and 12.2 provisioning can now be used with the
740        ``--python 3.8`` option.
741      - ansible-test - FreeBSD instances provisioned with ``--remote`` now make ``libyaml``
742        available for use with PyYAML installation.
743      - ansible-test - Generation of an ``egg-info`` directory, if needed, is now
744        done after installing test dependencies and before running tests. When running
745        from an installed version of ``ansible-test`` a temporary directory is used
746        to avoid permissions issues. Previously it was done before installing test
747        dependencies and adjacent to the installed directory.
748      - ansible-test - Implemented CloudStack test container selection by ENV variable
749        `ANSIBLE_CLOUDSTACK_CONTAINER` with a default to `quay.io/ansible/cloudstack-test-container:1.4.0`.
750      - ansible-test - Improved handling of minimum Python version requirements for
751        sanity tests. Supported versions are now included in warning messages displayed
752        when tests are skipped.
753      - ansible-test - More sanity test requirements have been pinned to specific
754        versions to provide consistent test results.
755      - ansible-test - Most sanity test specific ``pip`` constraints are now used
756        only when running sanity tests. This should reduce conflicts with ``pip``
757        requirements and constraints when testing collections.
758      - ansible-test - Most sanity tests are now skipped on Python 3.5 and earlier
759        with a warning. Previously this was done for Python 2.7 and earlier.
760      - ansible-test - Now supports freebsd/11.4 remote (https://github.com/ansible/ansible/issues/48782).
761      - ansible-test - Now supports freebsd/12.2 remote (https://github.com/ansible/ansible/issues/72366).
762      - ansible-test - OpenSuse container now uses Leap 15.2 (https://github.com/ansible/distro-test-containers/pull/48).
763      - ansible-test - Pin the ``virtualenv`` version used for ``--remote`` pip installs
764        to the latest version supported by Python 2.x, which is version 16.7.10.
765      - ansible-test - Provisioning of RHEL instances now includes installation of
766        pinned versions of ``packaging`` and ``pyparsing`` to match the downstream
767        vendored versions.
768      - ansible-test - RHEL 8.2+ provisioning can now be used with the ``--python
769        3.8`` option, taking advantage of the Python 3.8 AppStream.
770      - ansible-test - Raise the number of bytes scanned by ansible-test to determine
771        if a file is binary to 4096.
772      - ansible-test - Refactor code for installing ``cryptography`` to allow re-use
773        in the future.
774      - ansible-test - Refactor code to remove unused logic for obsolete support of
775        multiple provisioning endpoints.
776      - ansible-test - Remove ``pytest < 6.0.0`` constraint for managed installations
777        on Python 3.x now that pytest 6 is supported.
778      - ansible-test - Remove em dash from the Pytest configuration file in order
779        to be readable on systems where preferred encoding is ASCII. (https://github.com/ansible/ansible/issues/71739)
780      - 'ansible-test - Remove outdated ``--docker`` completion entries: fedora30,
781        fedora31, ubuntu1604'
782      - 'ansible-test - Remove outdated ``--remote`` completion entries: freebsd/11.1,
783        freebsd/12.1, osx/10.11, macos/10.15, rhel/7.6, rhel/7.8, rhel/8.1, rhel/8.2'
784      - 'ansible-test - Remove outdated ``--windows`` completion entries: 2008, 2008-R2'
785      - ansible-test - Remove the discontinued ``us-east-2`` choice from the ``--remote-aws-region``
786        option.
787      - 'ansible-test - Remove unused ``--remote`` completion entry: power/centos/7'
788      - ansible-test - Removed ``pip`` constraints related to integration tests that
789        have been moved to collections. This should reduce conflicts with ``pip``
790        requirements and constraints when testing collections.
791      - ansible-test - Removed the obsolete ``--remote-aws-region`` provisioning option.
792      - ansible-test - Removed the obsolete ``tower`` test plugin for testing Tower
793        modules.
794      - ansible-test - Removed unused provisioning code and cleaned up remote provider
795        management logic.
796      - ansible-test - Rename internal functions to match associated constant names
797        that were previously updated.
798      - ansible-test - Reorganize internal ``pylint`` configuration files for easier
799        comparison and maintenance.
800      - ansible-test - Report the correct line number in the ``yamllint`` sanity test
801        when reporting ``libyaml`` parse errors in module documentation.
802      - ansible-test - Request remote resources by provider name for all provider
803        types.
804      - ansible-test - Show a warning when the obsolete ``--remote-aws-region`` option
805        is used.
806      - ansible-test - Silence ``pip`` warnings about Python 3.5 being EOL when installing
807        requirements.
808      - ansible-test - Support custom remote endpoints with the ``--remote-endpoint``
809        option.
810      - ansible-test - The ``--remote`` option no longer pre-installs the ``virtualenv``
811        module on Python 3.x instances. The Python built-in ``venv`` module should
812        be used instead.
813      - ansible-test - The ``default`` container for both collections and core have
814        been updated to versions 2.11.0 and 1.9.0 respectively.
815      - ansible-test - The ``pylint`` sanity test is now skipped with a warning on
816        Python 3.9 due to unresolved upstream regressions.
817      - ansible-test - The ``pylint`` sanity test is now supported on Python 3.8.
818      - ansible-test - The ``rstcheck`` sanity test is no longer used for collections,
819        but continues to be used for ansible-core.
820      - ansible-test - Ubuntu containers as well as ``default-test-container`` and
821        ``ansible-base-test-container`` are now slightly smaller due to apt cleanup
822        (https://github.com/ansible/distro-test-containers/pull/46).
823      - ansible-test - Update ``pylint`` and its dependencies to the latest available
824        versions to support Python 3.9.
825      - ansible-test - Update built-in service endpoints for the ``--remote`` option.
826      - ansible-test - Updated the default test containers to version 3.1.0.
827      - ansible-test - Upgrade ansible-runner version used in compatibility tests,
828        remove some tasks that were only needed with older versions, and skip in python2
829        because ansible-runner is soon dropping it.
830      - ansible-test - Use new endpoint for Parallels based instances with the ``--remote``
831        option.
832      - ansible-test - ``default-test-container`` and ``ansible-base-test-container``
833        now use Python 3.9.0 instead of 3.9.0rc1.
834      - ansible-test - add https endpoint for ansible-test
835      - ansible-test - add macOS 11.1 as a remote target (https://github.com/ansible/ansible/pull/72622)
836      - ansible-test - add the collection plugin directories ``plugin_utils`` and
837        ``sub_plugins`` to list of plugin types. This ensures such plugins are tested
838        for the ``import`` sanity test (https://github.com/ansible/ansible/pull/73599).
839      - ansible-test - centos6 end of life - container image updated to point to vault
840        base repository (https://github.com/ansible/distro-test-containers/pull/54)
841      - ansible-test - centos6 image now has multiple fallback yum repositories for
842        CentOS Vault.
843      - ansible-test - default container now uses default-test-container 2.7.0 and
844        ansible-base-test-container 1.6.0. This brings in Python 3.9.0rc1 for testing.
845      - ansible-test - now makes a better attempt to support podman when calling ``docker
846        images`` and asking for JSON format.
847      - ansible-test - python-cryptography is now bounded at <3.2, as 3.2 drops support
848        for OpenSSL 1.0.2 upon which some of our CI infrastructure still depends.
849      - ansible-test - remote macOS instances no longer install ``virtualenv`` during
850        provisioning
851      - ansible-test - the ACME test container was updated, it now supports external
852        account creation and has a basic OCSP responder (https://github.com/ansible/ansible/pull/71097,
853        https://github.com/ansible/acme-test-container/releases/tag/2.0.0).
854      - ansible-test - the ``import`` sanity test now also tries to import all non-module
855        and non-module_utils Python files in ``lib/ansible/`` resp. ``plugins/`` (https://github.com/ansible/ansible/pull/72497).
856      - ansible-test - virtualenv helper scripts now prefer ``venv`` on Python 3 over
857        ``virtualenv``
858      - ansible-test Now supports RHEL 8.3
859      - ansible-test pylint - ensure that removal collection version numbers conform
860        to the semantic versioning specification at https://semver.org/ (https://github.com/ansible/ansible/pull/71679).
861      - ansible-test pylint sanity test - stop ignoring ``used-before-assignment``
862        errors (https://github.com/ansible/ansible/pull/73639).
863      - ansible-test runtime-metadata - compare deprecation and tombstone versions
864        to the current version to ensure that they are correct (https://github.com/ansible/ansible/pull/72625).
865      - ansible-test runtime-metadata - ensure that removal collection version numbers
866        conform to the semantic versioning specification at https://semver.org/ (https://github.com/ansible/ansible/pull/71679).
867      - ansible-test runtime-metadata - ensure that the tombstone removal date is
868        not in the future (https://github.com/ansible/ansible/pull/72625).
869      - ansible-test runtime-metadata - validate removal version numbers, and check
870        removal dates more strictly (https://github.com/ansible/ansible/pull/71679).
871      - ansible-test validate-modules - ensure that removal collection version numbers
872        and version_added collection version numbers conform to the semantic versioning
873        specification at https://semver.org/ (https://github.com/ansible/ansible/pull/71679).
874      - ansible-test validate-modules - no longer assume that ``default`` for ``type=bool``
875        options is ``false``, as the default is ``none`` and for some modules, ``none``
876        and ``false`` mean different things (https://github.com/ansible/ansible/issues/69561).
877      - ansible-test validate-modules - validate removal version numbers (https://github.com/ansible/ansible/pull/71679).
878      - ansible.utils.encrypt now returns `AnsibleError` instead of crypt.crypt's
879        `OSError` on Python 3.9
880      - apt - module now works under any supported Python interpreter
881      - apt_repository - module now works under any supported Python interpreter
882      - callback plugins - ``meta`` tasks now get sent to ``v2_playbook_on_task_start``.
883        Explicit tasks are always sent. Plugins can opt in to receiving implicit ones.
884      - callbacks - Add feature allowing forks to send callback events (https://github.com/ansible/ansible/issues/14681)
885      - conditionals - change the default of CONDITIONAL_BARE_VARS to False (https://github.com/ansible/ansible/issues/70682).
886      - 'config - more types are now automatically coerced to string when ``type:
887        str`` is used and the value is parsed as a different type'
888      - constructed - Add a toggle to allow the separator to be omitted if no prefix
889        has been provided.
890      - constructed inventory plugin - Sanitize group names created from the ``groups``
891        option silently.
892      - create ``get_type_validator`` standalone function and move that functionality
893        out of ``AnsibleModule`` (https://github.com/ansible/ansible/pull/72667)
894      - create ``get_unsupported_parameters`` validation function (https://github.com/ansible/ansible/pull/72447/files)
895      - debconf - add a note about no_log=True since module might expose sensitive
896        information to logs (https://github.com/ansible/ansible/issues/32386).
897      - default callback - add ``show_task_path_on_failure`` option to display file
898        and line number of tasks only on failed tasks when running at normal verbosity
899        level (https://github.com/ansible/ansible/issues/64625)
900      - default callback - task name is now shown for ``include_tasks`` when using
901        the ``free`` strategy (https://github.com/ansible/ansible/issues/71277).
902      - default callback - task name is now shown for ``include_tasks`` when using
903        the ``linear`` strategy with ``ANSIBLE_DISPLAY_SKIPPED_HOSTS=0``.
904      - default_callback - moving 'check_mode_markers' documentation in default_callback
905        doc_fragment (https://github.com/ansible-collections/community.general/issues/565).
906      - distribution - add support for DragonFly distribution (https://github.com/ansible/ansible/issues/43739).
907      - distribution - added distribution fact and hostname support for Parrot OS
908        (https://github.com/ansible/ansible/pull/69158).
909      - distribution - handle NetBSD OS Family (https://github.com/ansible/ansible/issues/43739).
910      - distribution facts - ``distribution_release`` is now ``"Stream"`` on CentOS
911        Stream (https://github.com/ansible/ansible/issues/73027).
912      - dnf - Add nobest option (https://github.com/ansible/ansible/issues/69983)
913      - 'dnf - When ``state: absent``, package names are now matched similarly to
914        how the ``dnf`` CLI matches them (https://github.com/ansible/ansible/issues/72809).'
915      - dnf - module now works under any supported Python interpreter
916      - dnf - now shows specific package changes (installations/removals) under ``results``
917        in check_mode. (https://github.com/ansible/ansible/issues/66132)
918      - facts - ``/dev/kvm`` is now consulted in Linux virtualization facts, and the
919        host is considered a KVM host if this file exists and none of the pre-existing
920        checks matched.
921      - facts - add new fact ``date_time['tz_dst']``, which returns the daylight saving
922        timezone (https://github.com/ansible/ansible/issues/69004).
923      - facts - add uptime to openbsd
924      - find module - Now has a ``read_whole_file`` boolean parameter which allows
925        for reading the whole file and doing an ``re.search()`` regex evaluation on
926        it when searching using the ``contains`` option. This allows (for example)
927        for ensuring the very end of the file matches a pattern.
928      - galaxy - add documentation about galaxy parameters in examples/ansible.cfg
929        (https://github.com/ansible/ansible/issues/68402).
930      - galaxy - handle token as dict while loading from yaml file (https://github.com/ansible/ansible/issues/70887).
931      - get_url - allow checksum urls to point to file:// resources, moving scheme
932        test to function
933      - get_url - handle same SHA sum for checksum file (https://github.com/ansible/ansible/issues/71420).
934      - git - add ``single_branch`` parameter (https://github.com/ansible/ansible/pull/28465)
935      - hash filter - fail when unsupported hash type is passed as an argument (https://github.com/ansible/ansible/issues/70258)
936      - inventory cache - do not show a warning when the cache file does not (yet)
937        exist.
938      - iptables - add a note about ipv6-icmp in protocol parameter (https://github.com/ansible/ansible/issues/70905).
939      - iptables - fixed get_chain_policy API (https://github.com/ansible/ansible/issues/68612).
940      - iptables - reorder comment postition to be at the end (https://github.com/ansible/ansible/issues/71444).
941      - lineinfile - add search_string parameter for non-regexp searching (https://github.com/ansible/ansible/issues/70470)
942      - linux facts - Add additional check to ensure 'container' virtual fact gets
943        added to guest_tech when appropriate (https://github.com/ansible/ansible/pull/71385)
944      - meta - now include a ``skip_reason`` when skipped (https://github.com/ansible/ansible/pull/71355).
945      - module_utils - ``get_file_attributes()`` now takes an optional ``include_version``
946        boolean parameter. When ``True`` (default), the file's version/generation
947        number is included in the result (but requires ``lsattr -v`` to work on the
948        target platform).
949      - now !unsafe works on all types of data, not just strings, even recursively
950        for mappings and sequences.
951      - package_facts - module support for apt and rpm now works under any supported
952        Python interpreter
953      - pipe lookup - update docs for Popen with shell=True usages (https://github.com/ansible/ansible/issues/70159).
954      - plugin examples - Allow non-YAML examples, so that examples for plugins like
955        the INI and TOML inventory plugins can be directly represented (https://github.com/ansible/ansible/pull/71184)
956      - plugin option validation - now the option type ``dict``/``dictionary`` is
957        also validated by the config manager (https://github.com/ansible/ansible/pull/71928).
958      - 'reboot - add ``reboot_command`` parameter to allow specifying the command
959        used to reboot the system (https://github.com/ansible/ansible/issues/51359)
960
961        '
962      - remove ``excommunicate`` debug command from AnsiballZ
963      - selinux - return selinux_getpolicytype facts correctly.
964      - service_facts - return service state information on AIX.
965      - setup - allow list of filters (https://github.com/ansible/ansible/pull/68551).
966      - setup.py - Declare that Python 3.9 is now supported (https://github.com/ansible/ansible/pull/72861).
967      - setup.py - Skip doing conflict checks for ``sdist`` and ``egg_info`` commands
968        (https://github.com/ansible/ansible/pull/71310)
969      - subelements - clarify the lookup plugin documentation for parameter handling
970        (https://github.com/ansible/ansible/issues/38182).
971      - subversion - ``validate_certs`` option, which, when true, will avoid passing
972        ``--trust-server-cert`` to ``svn`` commands (https://github.com/ansible/ansible/issues/22599).
973      - unarchive - Add support for .tar.zst (zstd compression) (https://github.com/ansible/ansible/pull/73265).
974      - unarchive - add ``RETURN`` documentation (https://github.com/ansible/ansible/issues/67445).
975      - 'unarchive - add ``include`` parameter to allow extracting specific files
976        from an archive (https://github.com/ansible/ansible/pull/40522)
977
978        '
979      - update sphinx to 2.1.2 and rstcheck to 3.3.1 for building documentation.
980      - uri - add ``ca_path`` argument to allow specification of a CA certificate
981        (https://github.com/ansible/ansible/pull/71979).
982      - user - add new parameters ``password_expire_max`` and ``password_expire_min``
983        for controlling password expiration (https://github.com/ansible/ansible/issues/68775)
984      - varnames lookup plugin - Fixed grammar error in exception message when the
985        plugin is given a non-string term.
986      - vault - Provide better error for single value encrypted values to indicate
987        the file, line, and column of the errant vault (https://github.com/ansible/ansible/issues/72276)
988      - version test - Add semantic version functionality
989      - virtual facts - containerd cgroup is now recognized as container tech (https://github.com/ansible/ansible/issues/66304).
990      - virtualization facts - Detect ``vdsmd`` in addition to ``vdsm`` when trying
991        to detect RHEV hosts. (https://github.com/ansible/ansible/issues/66147)
992      - winrm - Added ``ansible_winrm_kinit_args`` that can be used to control the
993        args that are sent to the ``kinit`` call for Kerberos authentication.
994      - yum - module now works under any supported Python interpreter
995      - yum_repository - added boolean option module_hotfixes which allows to enable
996        functionality for dnf.
997      release_summary: '| Release Date: 2021-03-02
998
999        | `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`__
1000
1001        '
1002      removed_features:
1003      - Removed `SharedPluginLoaderObj` class from ansible.plugins.strategy. It was
1004        deprecated in favor of using the standard plugin loader.
1005      - Removed `_get_item()` alias from callback plugin base class which had been
1006        deprecated in favor of `_get_item_label()`.
1007      - The "user" parameter was previously deprecated and is now removed in favor
1008        of "scope"
1009      - The deprecated ``ansible.constants.BECOME_METHODS`` has been removed.
1010      - The deprecated ``ansible.constants.get_config()`` has been removed.
1011      - The deprecated ``ansible.constants.mk_boolean()`` has been removed.
1012      - '`with_*` loops are no longer optimized for modules whose `name` parameters
1013        can take lists (mostly package managers). Use `name` instead of looping over
1014        individual names with `with_items` and friends.'
1015      security_fixes:
1016      - '**security issue** - Mask default and fallback values for ``no_log`` module
1017        options (CVE-2021-20228)'
1018      - '**security issue** - copy - Redact the value of the no_log ''content'' parameter
1019        in the result''s invocation.module_args in check mode. Previously when used
1020        with check mode and with ''-vvv'', the module would not censor the content
1021        if a change would be made to the destination path. (CVE-2020-14332)
1022
1023        '
1024      - Sanitize no_log values from any response keys that might be returned from
1025        the uri module (CVE-2020-14330).
1026      - dnf - Previously, regardless of the ``disable_gpg_check`` option, packages
1027        were not GPG validated. They are now. (CVE-2020-14365)
1028    codename: Hey Hey, What Can I Do
1029    fragments:
1030    - 14681-allow-callbacks-from-forks.yml
1031    - 16456-correct-YAML-error-message-when-file-load-failed.yml
1032    - 16949-global-skipped-result-flag-looped-tasks.yml
1033    - 17029-prevent-user-fact-lookup-failure-is-logname-is-set.yml
1034    - 17268-inventory-hostnames.yml
1035    - 22599_svn_validate_certs.yml
1036    - 23958-cleanup.yml
1037    - 29351-expect-bytes.yml
1038    - 32143-pause-background-hangs.yml
1039    - 32174-normalize-None-quote.yml
1040    - 322214-hostname-macos-support.yml
1041    - 32386_debconf_password.yml
1042    - 37132-delegate-to-loop-context.yml
1043    - 38182_subelements.yml
1044    - 38760-slackware-os-dist.yml
1045    - 40522-unarchive-add-include.yml
1046    - 43739_dragonflybsd_disto.yml
1047    - 45475_galaxy.yml
1048    - 46169-non-native-template-module.yml
1049    - 50909-min-max-attrs.yml
1050    - 52229-vault-python3-binary-stdin.yml
1051    - 55152-add-more-info-to-AnsibleUndefinedVariable.yml
1052    - 565_default_callback.yml
1053    - 58752_argument_aliases.yml
1054    - 60882-keyed_groups-leading-separator-toggle.yaml
1055    - 61234-yum-dnf-version-comp-doc.yml
1056    - 61369_get_url.yml
1057    - 62136_strip_spaces_from_action_names.yml
1058    - 63105-wcswidth.yml
1059    - 63378_find_module_regex_whole_file.yml
1060    - 63417-unique-filter-preserve-order.yml
1061    - 64469_git_no_raw.yml
1062    - 64625-show-file-path-on-task-failure-callback-option.yml
1063    - 65262_ansible_inventory.yml
1064    - 65710-find-include-parent.yml
1065    - 65812-paramiko-attribute-error.yml
1066    - 66132_dnf_show_pkgs_in_check_mode.yml
1067    - 66147_rhev_vdsm_vdsmd.yml
1068    - 66304-facts_containerd.yml
1069    - 67508-meta-task-tags.yaml
1070    - 68275-vault-module-args.yml
1071    - 68402_galaxy.yml
1072    - 68551_allow_list_of_filters_for_the_setup_module.yml
1073    - 68605-ansible-error-orig-exc-context.yml
1074    - 68612_iptables.yml
1075    - 68770_cache_adjudicator_flush.yml
1076    - 69352-netbsd-virtual-facts.yml
1077    - 69463-fix-apt_repository-typeerror- instancemethod.yaml
1078    - 69531_user_password_expire.yml
1079    - 69578-shell-remote_tmp-quoting.yaml
1080    - 69640-file_should_warn_when_path_and_owner_or_group_dont_exist.yml
1081    - 69848-fix-rerunning-tagged-roles.yml
1082    - 70017-avoid-params-to-callable-checkers.yml
1083    - 70042-dnf-repository-hotfixes.yml
1084    - 70045-ansible-doc-yaml-anchors.yml
1085    - 70046-ansible-doc-description-crash.yml
1086    - 70056-add-a-param-to-apt-module-to-avoid-unintended-uninstalls.yml
1087    - 70099-make-apt-errors-more-transparent.yaml
1088    - 70122-improve-error-message-ssh-client-is-not-found.yml
1089    - 70148-galaxy-role-info.yaml
1090    - 70168-fix-delegate_facts-without-interpreter-set.yml
1091    - 70238_selector.yml
1092    - 70244-selinux-special-fs.yml
1093    - 70256_stat_colon_split.yml
1094    - 70258-hash-filter-fail-unsupported-type.yml
1095    - 70261_pipe_lookup.yml
1096    - 70284-facts-get-nvme-serial-from-file.yml
1097    - 70318-dnf-add-nobest-option.yml
1098    - 70319-reduce-ignored-module-sanity-tests.yml
1099    - 70344-plugin-deprecation-collection-name.yml
1100    - 70375-galaxy-server.yml
1101    - 70426-allow-non-ascii-chars-in-cron.yml
1102    - 70437-ssh-args.yml
1103    - 70449-facts-add-dst-timezone.yml
1104    - 70465-assemble-fix-decrypt-argument.yaml
1105    - 70475-modify-module.yaml
1106    - 70484-bool-ansible-become.yaml
1107    - 70492-replace-filename-with-file-in-apt_key.yml
1108    - 70507-validate-null-author.yaml
1109    - 70524-fix-download-collections.yaml
1110    - 70525-setuptools-disutils-reorder.yml
1111    - 70583_datetime_date_in_module_result.yml
1112    - 70587-package_facts-apk.yml
1113    - 70600-user-module-dont-create-home-when-create_home-is-false.yml
1114    - 70640-find-empty-excludes.yml
1115    - 70649_time_clock.yml
1116    - 70683-terminal-ansi-re.yaml
1117    - 70687-improve-deprecation-message-bare-variable.yaml
1118    - 70690-async-interpreter.yml
1119    - 70704-void-linux-reboot.yml
1120    - 70762-sanitize-uri-keys.yml
1121    - 70784-vault-is-string.yml
1122    - 70831-skip-literal_eval-string-filter-native-jinja.yml
1123    - 70854-dnf-mutually-exclusive-filters.yml
1124    - 70869-ansible-test-validate-modules-version-added.yml
1125    - 70887_galaxy_token.yml
1126    - 70905_iptables_ipv6.yml
1127    - 70922-fix-block-in-rescue.yml
1128    - 70984-templating-ansibleundefined-in-operator.yml
1129    - 71007_callback_on_meta.yml
1130    - 71073-fortimanager-httpapi-redirect.yml
1131    - 71097-ansible-test-acme-container.yml
1132    - 71107-encryption.yml
1133    - 71184-allow-non-yaml-examples.yml
1134    - 71197-systemctl-ignore-message.yaml
1135    - 71205_get_url_allow_checksum_file_url.yml
1136    - 71214-add-vars-variable-for-delegated-vars.yaml
1137    - 71240-gluster-modules-redirect.yml
1138    - 71257-strftime-float.yml
1139    - 71277-include_tasks-show-name-with-free-strategy.yml
1140    - 71279-skip-conflict-check.yml
1141    - 71306-fix-exit-code-no-failure.yml
1142    - 71307-toml-dumps-unsafe.yml
1143    - 71355_execute_meta_skip_reason.yml
1144    - 71385-enhance-container-reporting-linux-vfacts.yml
1145    - 71420_get_url.yml
1146    - 71496-iptables-reorder-comment-position.yml
1147    - 71528-systemd-capbpf-workaround.yml
1148    - 71528-systemd-improve-unit-searching.yml
1149    - 71528-systemd-list-unit-files.yml
1150    - 71559-fix-distribution-fact-sles4sap.yaml
1151    - 71609-is_string-vault.yml
1152    - 71636_distro.yml
1153    - 71679-ansible-test.yml
1154    - 71704_selector.yml
1155    - 71722-fix-default-connection-timeout.yaml
1156    - 71735-deprecation-tagging.yml
1157    - 71739-remove-em-dash-from-pytest-config.yml
1158    - 71824-action-fqcns.yml
1159    - 71825-close-file-descriptor-after-building-cert-chaing.yml
1160    - 71903-unarchive-gid-cast.yml
1161    - 71905_bump-cloudstack-test-container.yml
1162    - 71920-fix-templating-recursion-error.yml
1163    - 71921-raise-bytes-for-binary-test.yml
1164    - 71928-ensure_type-dict.yml
1165    - 71966-ansible-doc-plugin-name.yml
1166    - 71977-ansible-galaxy-role-init.yml
1167    - 71979_ca_path_for_uri.yaml
1168    - 72025-fact-add-uptime-to-openbsd.yml
1169    - 72055-blockinfile-fix-insert-after-line-no-linesep.yml
1170    - 72073-service_facts-aix-src.yml
1171    - 72170-action-loader-collection-list.yml
1172    - 72197-upgrade-test-ansible-runner.yml
1173    - 72276-provide-better-vault-error.yml
1174    - 72315-fact-caching-relative-to-config.yml
1175    - 72316-dnf-filtering.yml
1176    - 72322-wait-for-handle-errors.yml
1177    - 72331-truenas-rc-major-version.yml
1178    - 72411-fips-mode-ansible-test.yml
1179    - 72428-action-groups-docker-k8s.yml
1180    - 72497-ansible-test-import-plugins.yml
1181    - 72511-always-prepend-role-to-task-name.yml
1182    - 72516-fix-aix-network-facts.yml
1183    - 72545_fix_facts_value_empty_key.yml
1184    - 72546-unarchive-returndoc.yml
1185    - 72591-ansible-galaxy-collection-resolvelib.yaml
1186    - 72615-jinja-import-context-fix.yml
1187    - 72623-ansible-test-unicode-paths.yml
1188    - 72697-improve-config-deprecations.yml
1189    - 72699-validate-modules-default-for-bools.yml
1190    - 72745-import_playbook-deprecation-extra-params.yml
1191    - 72754-extract-emb-func.yaml
1192    - 72809-dnf-remove-NV.yml
1193    - 72873-fix-fileglob-ordering.yml
1194    - 72894-add-alinux-hostname-module-support.yml
1195    - 72928_adding_multiport_support.yml
1196    - 72966-allow-tilde-inside-galaxy-roles.yml
1197    - 72979-fix-inventory-merge-hash-replace.yaml
1198    - 72984_adding_set_support.yml
1199    - 72992-user-account-lock-always-changes.yml
1200    - 72993-ansible-doc-has_action.yml
1201    - 73004-let-command-always-return-stdout-and-stderr.yml
1202    - 73027-differentiate-centos-stream.yml
1203    - 73059-improve-deprecation-texts.yml
1204    - 73084-rhel-for-edge-pkg_mgr-fact-fix.yml
1205    - 73120-rolemetadata-argspecs.yml
1206    - 73152-role-arg-spec.yaml
1207    - 73167-bhyve-facts.yml
1208    - 73176_sphinx_rstcheck_versions.yml
1209    - 73263-shadow-encrypt-string.yml
1210    - 73277-reduce-lookup-complexity.yml
1211    - 73335-argument-spec_validator.yml
1212    - 73336-ansible-galaxy_collection_install_upgrade.yaml
1213    - 73364-default-callback-host-pinned-not-lockstep.yml
1214    - 73428-changelog-linting-bump-version.yml
1215    - 73429-inventory-sanitization-constructed-features.yml
1216    - 73456-let-vault-lookup-output-string.yml
1217    - 73463_self_signed_https_endpoint_for_ansible-test.yml
1218    - 73474-galaxy-list-format-options.yml
1219    - 73498-INTERPRETER_PYTHON_DISTRO_MAP-Treat-oracle-same-as-rhel-centos.yml
1220    - 73557-ansible-galaxy-cache-paginated-response.yml
1221    - 73577-regex-fix.yml
1222    - 73589-rolespec-validate.yml
1223    - 73599-ansible-test-new-plugin-dirs.yml
1224    - 73619-hostname-almalinux-support.yml
1225    - 73639-ansible-test-pylint-ignores.yml
1226    - 73653-rolespec-rm-warning.yml
1227    - 73658-inventorymanager-throws-on-empty-inventory-dir.yml
1228    - 73665-fixes-ansible-console.yml
1229    - 73700-let-file-module-not-change-link-to-absolute-on-touch.yml
1230    - 73709-normalize-configparser.yml
1231    - 73718-find-dir-depth-traversal.yml
1232    - add_keywords_to_ansible_doc.yml
1233    - added_existing_nocolor.yml
1234    - allow_restricted_config_values.yml
1235    - ansiballz-remove-excommunicate.yaml
1236    - ansible-base-update-containers.yml
1237    - ansible-boilerplate.yml
1238    - ansible-doc-collection-name.yml
1239    - ansible-doc-formats.yml
1240    - ansible-doc-has_action.yml
1241    - ansible-doc-role-empty-meta-main.yml
1242    - ansible-galaxy-stdout.yml
1243    - ansible-galaxy-version-response.yml
1244    - ansible-test-acme-test-plugin.yml
1245    - ansible-test-azp-agent-temp-dir.yml
1246    - ansible-test-azp-change-detection.yml
1247    - ansible-test-azp-resource-prefix.yml
1248    - ansible-test-centos6-eol.yml
1249    - ansible-test-centos6-vault-mirrors.yml
1250    - ansible-test-change-classification.yml
1251    - ansible-test-changelog-lint-update.yml
1252    - ansible-test-cleanup-pylint-config.yml
1253    - ansible-test-cleanup.yml
1254    - ansible-test-code-cleanup.yml
1255    - ansible-test-code-naming.yml
1256    - ansible-test-collection-classification.yml
1257    - ansible-test-collection-constraints.yml
1258    - ansible-test-constraints-cryptography-old-openssl.yml
1259    - ansible-test-constraints-cryptography.yml
1260    - ansible-test-container-ip-lookup.yml
1261    - ansible-test-coverage-code-cleanup.yml
1262    - ansible-test-coverage-combine-export.yml
1263    - ansible-test-coverage-py26.yml
1264    - ansible-test-cryptography-refactor.yml
1265    - ansible-test-default-3.1.0.yml
1266    - ansible-test-default-container-update.yml
1267    - ansible-test-docker-default-network.yml
1268    - ansible-test-docker-detection-fix.yml
1269    - ansible-test-docker-not-localhost.yml
1270    - ansible-test-docker-socket.yml
1271    - ansible-test-egg-info-handling.yml
1272    - ansible-test-endpoint-update.yml
1273    - ansible-test-fedora33.yml
1274    - ansible-test-freebsd-python-3.8.yml
1275    - ansible-test-freebsd-pyyaml-libyaml.yml
1276    - ansible-test-freebsd11-4.yml
1277    - ansible-test-freebsd12-2.yml
1278    - ansible-test-macos-10.15.yml
1279    - ansible-test-more-code-cleanup.yml
1280    - ansible-test-network-container-search.yml
1281    - ansible-test-parallels-endpoint.yml
1282    - ansible-test-pip-bootstrap-s3.yml
1283    - ansible-test-pip-bootstrap.yml
1284    - ansible-test-platforms.yml
1285    - ansible-test-plugin-classification.yml
1286    - ansible-test-podman-json-format.yml
1287    - ansible-test-pylint-plugin-name.yml
1288    - ansible-test-pylint-python-3.8-3.9.yml
1289    - ansible-test-pylint-upgrade.yml
1290    - ansible-test-pytest-cap-revert.yml
1291    - ansible-test-pytest-cap.yml
1292    - ansible-test-python-exec-wrapper.yml
1293    - ansible-test-python-pip-warnings.yml
1294    - ansible-test-relative-import-analysis.yml
1295    - ansible-test-remote-aws-region.yml
1296    - ansible-test-remote-shell-raw.yml
1297    - ansible-test-rhel-python-3.8.yml
1298    - ansible-test-rhel-requirements.yml
1299    - ansible-test-rstcheck-core-only.yml
1300    - ansible-test-runtime-dates-versions.yml
1301    - ansible-test-sanity-ansible-doc.yml
1302    - ansible-test-sanity-importer-cleanup.yml
1303    - ansible-test-sanity-yamllint-lineno.yml
1304    - ansible-test-ssh-key-management.yml
1305    - ansible-test-tower-plugin.yml
1306    - ansible-test-ubuntu2004.yml
1307    - ansible-test-update-current-distro-containers.yml
1308    - ansible-test-updates.yml
1309    - ansible-test-validate-modules-file-common-args.yml
1310    - ansible-test-venv-virtualenv-fallback.yml
1311    - ansible-test-virtualenv-fix.yml
1312    - ansible-test-virtualenv-install.yml
1313    - ansible_runtime_meta.yml
1314    - ansible_test_yamllint_avoid_attribute_exception.yaml
1315    - apt_key_fixes.yml
1316    - arg_spec-check_arguments-handle_aliases.yml
1317    - arg_spec-get_type_validator.yml
1318    - async-race-condition.yml
1319    - better_os_environ_access.yml
1320    - better_winrm_putfile_error.yml
1321    - blockinfile_fix_no_backup_return.yml
1322    - bsd_rcconf_string_replace.yaml
1323    - cffi-constraint.yml
1324    - changed_clarified.yml
1325    - changed_when_group_by.yml
1326    - changelog-yaml.yml
1327    - ci-add-macos-11.yml
1328    - colleciton_flex_ac_dir_paths.yml
1329    - collection-ad-hoc.yml
1330    - collection-list-site-packages.yaml
1331    - collection_meta_use_libyaml.yml
1332    - collections_cb_fix.yml
1333    - command-warnings-deprecation-2.yml
1334    - command-warnings-deprecation.yml
1335    - constants-deprecation.yml
1336    - constructed_vars_plugins.yml
1337    - controller-python-warning.yml
1338    - copy-sanitize-check-mode-invocation-args.yaml
1339    - core_version.yml
1340    - crypt-oserror.yml
1341    - cryptography-fix.yml
1342    - csvfile-parse_kv.yml
1343    - date-time-facts-fix-utctime.yml
1344    - default-test-container160.yml
1345    - delegate_has_hostvars.yml
1346    - delegation_password.yml
1347    - deprecation-callback-get_item.yml
1348    - deprecation-strategy-SharedPluginLoaderObj.yml
1349    - deprecation-systemd-user.yml
1350    - deprecation-taskexecutor-squash.yml
1351    - dev-kvm.yml
1352    - display-stdout-column-width.yml
1353    - distribution_support_netbsd.yml
1354    - distribution_support_parrot.yml
1355    - dnf_gpg.yml
1356    - enable_su_on_local.yaml
1357    - ensure_local_user_correctness.yml
1358    - facts_fixes.yml
1359    - find_explicit.yml
1360    - fix-cron-file-regression.yaml
1361    - fix-incorrect-msg-in-loops-results.yml
1362    - fix_ansible_issue_71942.yaml
1363    - fix_bogus_coverage.yml
1364    - fix_expression_as_filename_in_compile.yaml
1365    - fix_inventory_source_parse_error_handling.yml
1366    - fix_lp_flat.yml
1367    - fix_meta_tasks_with_flush_cache.yml
1368    - fix_mount_point.yml
1369    - fix_reversed_return_value_order_72088.yaml
1370    - fix_role_var_loading.yml
1371    - fix_ssh_executable_options.yml
1372    - fixup_perms2-cleanup.yml
1373    - fq_action_module_resolution.yml
1374    - galaxy-cache.yml
1375    - galaxy-collection-fallback.yml
1376    - galaxy-collection-list-correct-arg-name.yml
1377    - galaxy-download-scm.yaml
1378    - galaxy-servers.yml
1379    - galaxy-sys-exit.yml
1380    - galaxy_collections_paths-remove-dep.yml
1381    - galaxy_login_bye.yml
1382    - get_file_attributes-without-lsattr-version.yml
1383    - git-add-single_branch.yml
1384    - give_compose_extra_vars.yml
1385    - handle_undefined_in_type_errors_filters.yml
1386    - inventory-cache-file-missing-warning.yaml
1387    - keep_log_at_info.yml
1388    - kubevirt-virt-fact.yml
1389    - lineinfile-add-search_string-parameter-for-non-regexp-searching.yaml
1390    - lineinfile_exc_fix.yml
1391    - linux-network-facts-broadcast-address.yaml
1392    - macos-chmod-acl.yml
1393    - max_fail_free.yml
1394    - moar_reserved_vars.yml
1395    - module_respawn.yml
1396    - module_utils_finder_refactor.yml
1397    - more-types-to-string-config.yml
1398    - multivirt.yml
1399    - native-jinja2-types-properly-handle-nested-undefined.yml
1400    - no_log-fallback.yml
1401    - package-use-manager-from-facts.yaml
1402    - passwd_lookup_hexdigits.yml
1403    - pause-catch-error-when-no-std-exists.yml
1404    - pause-do-not-warn-background-with-seconds.yml
1405    - pause-import.yml
1406    - pipelinig_to_plugins.yml
1407    - play_context_remove_redundant_pwd.yml
1408    - plugin-loader-cleanup.yml
1409    - plugin-loader-collection-name.yml
1410    - powershell-fix-quoting.yaml
1411    - powershell-nested-clixml.yml
1412    - powershell-version-env.yml
1413    - ps-sanity-requirements.yml
1414    - psrp-copy-empty-file.yml
1415    - psrp-copy.yaml
1416    - psrp-json-loads-bytes.yml
1417    - py26-multiprocess-queue-bug.yml
1418    - py38-py39-fallback.yml
1419    - pytest-collections-fix.yml
1420    - reboot-add-boot-command-parameter.yaml
1421    - remove_contradiction.yml
1422    - rhel-7.9.yml
1423    - rpmfluff-compat-fixes.yml
1424    - run-command-cwd.yml
1425    - runas-become-system-privileges.yml
1426    - runtime-splunk-redirect.yml
1427    - selinux_getpolicytype_compat.yml
1428    - set_fact-connection_vars.yml
1429    - set_mode_if_different-symlink-sticky-dir.yml
1430    - setup-py-declare-py39.yml
1431    - skip_invalid_coll_name_when_listing.yml
1432    - split-filter.yml
1433    - support_almalinux.yml
1434    - syslog-prettier-error.yml
1435    - systemd-preserve-full-unit-name.yml
1436    - test-ansible-runner-pin-psutil.yml
1437    - test_rhel83.yml
1438    - timeout_moar_clis.yml
1439    - toml-no-preview.yml
1440    - tree_config.yml
1441    - unarchive-check-future-gid-against-run-gid.yml
1442    - unarchive-support-zst.yml
1443    - undo_hashmerge_depr.yml
1444    - unsafe_for_all.yml
1445    - unsafe_writes_env.yml
1446    - unsafe_writes_fix.yml
1447    - update-conditionals-bare-vars-default.yml
1448    - uri-status-code-int.yml
1449    - url-lookup-add-httpagent.yml
1450    - url-lookup-ini.yml
1451    - urls-gssapi.yml
1452    - v2.11.0-initial-commit.yaml
1453    - v2.11.0b1_summary.yaml
1454    - validate-modules-ps-doc-blacklist.yaml
1455    - validate-modules_found_try_except_import_fails_module_attribute.yaml
1456    - vanquish-rare-container-bootstrap-failure.yml
1457    - varnames-error-grammar.yml
1458    - version-jinja.yml
1459    - version-libyaml-git.yml
1460    - version-test-semver.yml
1461    - which_when_false.yml
1462    - win_async_full_path.yml
1463    - win_setup-redirection.yaml
1464    - winrm_kinit_args.yaml
1465    - with_seq_example.yml
1466    - wrap_native_text-non-collections-only.yml
1467    modules:
1468    - description: Validate role argument specs.
1469      name: validate_argument_spec
1470      namespace: ''
1471    release_date: '2021-03-02'
1472  2.11.0b2:
1473    changes:
1474      bugfixes:
1475      - A handler defined within a role will now search handlers subdir for included
1476        tasks (issue https://github.com/ansible/ansible/issues/71222).
1477      - ALLOW_WORLD_READABLE_TMP, switched to 'moved' message as 'deprecation' is
1478        misleading since config settings still work w/o needing change.
1479      - Automatically remove async cache files for polled async tasks that have completed
1480        (issue https://github.com/ansible/ansible/issues/73206).
1481      - Deal with failures when sorting JSON and you have incompatible key types.
1482      - Setup virtualization_facts - add RHV and oVirt type. This change will fully
1483        work for VMs in clusters at cluster level 4.4 or newer (https://github.com/ansible/ansible/pull/72876).
1484      - '[set_fact] Corrected and expanded documentation as well as now raise errors
1485        that were previously ignored.'
1486      - ansible-test - ensure unit test paths for connection and inventory plugins
1487        are correctly identified for collections (https://github.com/ansible/ansible/issues/73876).
1488      - connection/ssh, ensure parameters come from correct source get_option, so
1489        functionality matches docs.
1490      - connection/ssh, fix reset to use same parameters to check if socket exists
1491        as actually used, was hardcoded to default string construction previouslly.
1492      - j2 plugin loader clarified comments, made note with better fqcn detection.
1493      - notify keyword is not ignored anymore on import_tasks, also able to apply
1494        to blocks now.
1495      - restrict module valid JSON parsed output to objects as lists are not valid
1496        responses.
1497      - setup, don't give up on all local facts gathering if one script file fails.
1498      - su become plugin, ensure correct type for localization option.
1499      minor_changes:
1500      - ansible-test - The generated ``resource_prefix`` variable now meets the host
1501        name syntax requirements specified in RFC 1123 and RFC 952. The value used
1502        for local tests now places the random number before the hostname component,
1503        rather than after. If the resulting value is too long, it will be truncated.
1504      - ansible-test validate-modules - option names that seem to indicate they contain
1505        secret information that should be marked ``no_log=True`` are now flagged in
1506        the validate-modules sanity test. False positives can be marked by explicitly
1507        setting ``no_log=False`` for these options in the argument spec. Please note
1508        that many false positives are expected; the assumption is that it is by far
1509        better to have false positives than false negatives (https://github.com/ansible/ansible/pull/73508).
1510      - distribution - add facts about Amazon Linux Distribution facts (https://github.com/ansible/ansible/issues/73742).
1511      - module payload builder - module_utils imports in any nested block (eg, ``try``,
1512        ``if``) are treated as optional during module payload builds; this allows
1513        modules to implement runtime fallback behavior for module_utils that do not
1514        exist in older versions of Ansible.
1515      release_summary: '| Release Date: 2021-03-15
1516
1517        | `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`__
1518
1519        '
1520    codename: Hey Hey, What Can I Do
1521    fragments:
1522    - 72876-setup-facts-add-redhat-vendor.yml
1523    - 73508-validate-modules-no_log.yml
1524    - 73742_amazon_distribution.yml
1525    - 73760-async-cleanup.yml
1526    - 73809-search-handler-subdir.yml
1527    - 73876-ansible_test-units.yml
1528    - allow_world_readable_move.yml
1529    - ansible-test-resource-prefix.yml
1530    - fix_import_notify.yml
1531    - fix_json_module_parsing.yml
1532    - fix_set_fact.yml
1533    - inv_json_sort_types_fix.yml
1534    - j2ploader_minor.yml
1535    - local_facts_continue.yml
1536    - optional_module_utils.yml
1537    - ssh_connection_fixes.yml
1538    - su_fix.yml
1539    - v2.11.0b2_summary.yaml
1540    release_date: '2021-03-15'
1541  2.11.0b3:
1542    changes:
1543      bugfixes:
1544      - Fix adding unrelated candidate names to the plugin loader redirect list.
1545      - Strategy - When building the task in the Strategy from the Worker, ensure
1546        it is properly marked as finalized and squashed. Addresses an issue with ``ansible_failed_task``.
1547        (https://github.com/ansible/ansible/issues/57399)
1548      - ansible-pull - Run all playbooks that when multiple are supplied via the command
1549        line (https://github.com/ansible/ansible/issues/72708)
1550      - find module, fix default pattern when use_regex is true.
1551      major_changes:
1552      - AnsibleModule - use ``ArgumentSpecValidator`` class for validating argument
1553        spec and remove private methods related to argument spec validation. Any modules
1554        using private methods should now use the ``ArgumentSpecValidator`` class or
1555        the appropriate validation function.
1556      minor_changes:
1557      - Callbacks - Migrate more places in the ``TaskExecutor`` to sending callbacks
1558        directly over the queue, instead of sending them as ``TaskResult`` and short
1559        circuiting in the Strategy to send the callback. This enables closer to real
1560        time callbacks of retries and loop results (https://github.com/ansible/ansible/issues/73899)
1561      - setup - fix distribution facts for Older Amazon Linux with ``/etc/os-release``
1562        (https://github.com/ansible/ansible/issues/73946).
1563      release_summary: '| Release Date: 2021-03-19
1564
1565        | `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`__
1566
1567        '
1568    codename: Hey Hey, What Can I Do
1569    fragments:
1570    - 57399-finalize-task-in-strategy.yml
1571    - 72708_ansible_pull_multiple_playbooks.yml
1572    - 73863-fix-plugin-redirect-list.yaml
1573    - 73899-more-te-callbacks.yml
1574    - 73946_amazon_linux.yml
1575    - fix_find_default.yml
1576    - use-validator-in-ansiblemodule.yml
1577    - v2.11.0b3_summary.yaml
1578    release_date: '2021-03-19'
1579  2.11.0b4:
1580    changes:
1581      bugfixes:
1582      - Correctly set template_path and template_fullpath for usage in template lookup
1583        and action plugins.
1584      - Try to avoid kernel 'blocking' state on reading files while fact gathering.
1585      - apt - fix policy_rc_d parameter throwing an exception when restoring original
1586        file (https://github.com/ansible/ansible/issues/66211)
1587      - argument spec validation - fix behavior of ``apply_defaults=True`` when an
1588        empty dictionary is specified for such an option (https://github.com/ansible/ansible/pull/74029).
1589      - pause - do not accept enter to continue when a timeout is set (https://github.com/ansible/ansible/issues/73948)
1590      - setup module, fix error handling on bad subset given
1591      - wait_for module, move missing socket into function to get proper comparrison
1592        in time.
1593      minor_changes:
1594      - ansible-galaxy CLI - ``collection verify`` command now exits with a non-zero
1595        exit code on verification failure
1596      - ansible-galaxy CLI - ``collection verify`` command now supports a ``--offline``
1597        option for local-only verification
1598      release_summary: '| Release Date: 2021-03-29
1599
1600        | `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`__
1601
1602        '
1603    codename: Hey Hey, What Can I Do
1604    fragments:
1605    - 73840_apt-policy-rc-d.yml
1606    - 73948-pause-no-enter-with-timeout.yml
1607    - 74029-argspec-apply_defaults.yml
1608    - fix_setup_bad_subset.yml
1609    - galaxy_verify_exitcode.yml
1610    - galaxy_verify_local.yml
1611    - less_blocks_on_facts.yml
1612    - template_temp_vars_fix.yml
1613    - v2.11.0b4_summary.yaml
1614    - wait_for_fix.yml
1615    release_date: '2021-03-29'
1616  2.11.0rc1:
1617    changes:
1618      bugfixes:
1619      - OpenBSD module_utils - update sysctl variable name
1620      - WorkerProcess - Implement workaround for stdout deadlock in multiprocessing
1621        shutdown to avoid process hangs.
1622      - ansible-test - Add a ``six < 1.14.0`` constraint for Python 2.6.
1623      - ansible-test - The ``--export`` option for ``ansible-test coverage`` is now
1624        limited to the ``combine`` command. It was previously available for reporting
1625        commands on which it had no effect.
1626      - ansible-test - The ``ansible-test coverage combine`` option ``--export`` now
1627        exports relative paths. This avoids loss of coverage data when aggregating
1628        across systems with different absolute paths. Paths will be converted back
1629        to absolute when generating reports.
1630      - debug action, prevent setting facts when displaying ansible_facts.
1631      minor_changes:
1632      - ansible-test - Add constraint for ``decorator`` for Python versions prior
1633        to 3.5.
1634      - service_facts - return service state information on OpenBSD.
1635      release_summary: '| Release Date: 2021-04-05
1636
1637        | `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`__
1638
1639        '
1640    codename: Hey Hey, What Can I Do
1641    fragments:
1642    - ansible-test-decorator-constraint.yml
1643    - ansible-test-fix-coverage-export.yml
1644    - ansible-test-six.yml
1645    - debug_dont_set_facts.yml
1646    - openbsd-service.yml
1647    - openbsd-sysutil.yml
1648    - v2.11.0rc1_summary.yaml
1649    - workerprocess-stdout-deadlock.yml
1650    release_date: '2021-04-05'
1651  2.11.0rc2:
1652    changes:
1653      bugfixes:
1654      - WorkerProcess - Python 3.5 fix for workaround for stdout deadlock in multiprocessing
1655        shutdown to avoid process hangs. (https://github.com/ansible/ansible/issues/74149)
1656      release_summary: '| Release Date: 2021-04-06
1657
1658        | `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`__
1659
1660        '
1661    codename: Hey Hey, What Can I Do
1662    fragments:
1663    - fix-for-workerprocess-stdout-deadlock-fix.yml
1664    - v2.11.0rc2_summary.yaml
1665    release_date: '2021-04-06'
1666  2.11.1:
1667    changes:
1668      release_summary: '| Release Date: 2021-05-24
1669
1670        | `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`__
1671
1672        '
1673    codename: Hey Hey, What Can I Do
1674    fragments:
1675    - v2.11.1_summary.yaml
1676    release_date: '2021-05-24'
1677  2.11.1rc1:
1678    changes:
1679      bugfixes:
1680      - Add RockyLinux to fact gathering (https://github.com/ansible/ansible/pull/74530).
1681      - Improve resilience of ``ansible-galaxy collection`` by increasing the page
1682        size to make fewer requests overall and retrying queries with a jittered exponential
1683        backoff when rate limiting HTTP codes (520 and 429) occur. (https://github.com/ansible/ansible/issues/74191)
1684      - Prevent ``ansible_failed_task`` from further templating (https://github.com/ansible/ansible/issues/74036)
1685      - Remove 'default' from ssh plugin as we want to rely on default from ssh itself
1686        or ssh/config.
1687      - The error message about the failure to import a ``gpg`` key by the ``apt_key``
1688        module was incorrect (https://github.com/ansible/ansible/issues/74423).
1689      - ansible-test - Avoid publishing the port used by the ``pypi-test-container``
1690        since it is only accessed by other containers. This avoids issues when trying
1691        to run tests in parallel on a single host.
1692      - ansible-test - Fix docker container IP address detection. The ``bridge`` network
1693        is no longer assumed to be the default.
1694      - ansible-test - Use documented API to retrieve build information from Azure
1695        Pipelines.
1696      - ansible.builtin.cron - Keep non-empty crontabs, when removing cron jobs (https://github.com/ansible/ansible/pull/74497).
1697      - ansible.utils.encrypt now handles missing or unusable 'crypt' library.
1698      - ansible_test - add constraint for ``MarkupSafe`` (https://github.com/ansible/ansible/pull/74666)
1699      - apt_key - Binary GnuPG keys downloaded via URLs were corrupted so GnuPG could
1700        not import them (https://github.com/ansible/ansible/issues/74424).
1701      - become - fix a regression on Solaris where chmod can return 5 which we interpret
1702        as auth failure and stop trying become tmpdir permission fallbacks
1703      - become - work around setfacl not existing on modern Solaris (and possibly
1704        failing on some filesystems even when it does exist)
1705      - callback default, now uses task delegate_to instead of delegate vars to display
1706        delegate to host
1707      - callbacks, restores missing delegate_vars
1708      - correct doc links for become on warnings over world readable settings.
1709      - correctly use world readable setting since old constant is not 'settable'
1710        anymore.
1711      - facts - detect homebrew installed at /opt/homebrew/bin/brew
1712      - filter plugins - patch new versions of Jinja2 to prevent warnings/errors on
1713        renamed filter decorators (https://github.com/ansible/ansible/issues/74667)
1714      - get_url - Fixed checksum validation for binary files (leading asterisk) in
1715        checksum files (https://github.com/ansible/ansible/pull/74502).
1716      - hostname - Add Rocky Linux support
1717      - ini lookup - handle errors for duplicate keys and missing sections (https://github.com/ansible/ansible/issues/74601)
1718      - interpreter discovery - Debian 8 and lower will avoid unsupported Python3
1719        version in interpreter discovery
1720      - pause - ensure control characters are always set to an appropriate value (https://github.com/ansible/ansible/issues/73264)
1721      - playbook loaded from collection subdir now does not ignore subdirs.
1722      - plugin config now allows list type options to have multiple valid choices
1723        (#74225).
1724      - replace - better handling of file operation exceptions (https://github.com/ansible/ansible/pull/74686).
1725      - roles - allow for role arg specs in new meta file (https://github.com/ansible/ansible/issues/74525).
1726      - service - compare version without LooseVersion API (https://github.com/ansible/ansible/issues/74488).
1727      minor_changes:
1728      - ansible adhoc, clarified the help to some options, also added some comments
1729        to code.
1730      - command - update the user warning message to point out command name (https://github.com/ansible/ansible/pull/74475).
1731      release_summary: '| Release Date: 2021-05-17
1732
1733        | `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`__
1734
1735        '
1736    codename: Hey Hey, What Can I Do
1737    fragments:
1738    - 73264-pause-emacs.yml
1739    - 73887.mac-m1-homebrew.yaml
1740    - 74036-unsafe-ansible_failed_task.yml
1741    - 74240-ansible-galaxy-increase-pagesize-and-handle-throttling.yml
1742    - 74474-apt_key-gpg-binary-import.yaml
1743    - 74476-apt_key-gpg-inline-data.yaml
1744    - 74488_solaris_looseversion.yml
1745    - 74497-keep-non-empty-crontabs.yml
1746    - 74502-get_url-filx-checksum-binary.yml
1747    - 74582-role-argspec-new-file.yml
1748    - 74601-ini-lookup-handle-errors.yml
1749    - 74686-replace-handle-file-exc.yml
1750    - adhoc_help_clarify.yml
1751    - allow_lists_of_config_choices.yml
1752    - ansible-test-azp-build-api.yml
1753    - ansible-test-docker-network-detect.yml
1754    - ansible-test-markupsafe-constraint.yml
1755    - ansible-test-pypi-container-no-publish.yml
1756    - cmd_wording.yml
1757    - coll_pb_subdir_fixes.yml
1758    - crypt_missing.yml
1759    - debian8_discovery.yml
1760    - jinja2_decorator_renames.yml
1761    - macos-solaris-regression.yml
1762    - missing_delegate_vars.yml
1763    - solaris-setfacl-chmod-fallback.yml
1764    - ssh_port_default_fix.yml
1765    - support_rocky_linux_hostname.yml
1766    - support_rockylinux.yml
1767    - v2.11.1rc1_summary.yaml
1768    - world_readable_fixes.yml
1769    release_date: '2021-05-17'
1770  2.11.2:
1771    changes:
1772      release_summary: '| Release Date: 2021-06-22
1773
1774        | `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`__
1775
1776        '
1777    codename: Hey Hey, What Can I Do
1778    fragments:
1779    - v2.11.2_summary.yaml
1780    release_date: '2021-06-22'
1781  2.11.2rc1:
1782    changes:
1783      bugfixes:
1784      - AnsibleModule.set_mode_if_different - don't check file existence when check_mode
1785        is activated (https://github.com/ansible/ansible/issues/61185).
1786      - Apply ``display_failed_stderr`` callback option on loop item results. (https://github.com/ansible/ansible/issues/74864)
1787      - Avoid task executor from ending early as vars can come from delegated to host.
1788      - ansible-pull - update documentation for ``--directory`` option to clarify
1789        path must be absolute.
1790      - config, ensure 'quoted' lists from ini or env do not take the quotes literally
1791        as part of the list item.
1792      - gather_facts, package, service - fix using module_defaults for the modules
1793        in addition to the action plugins. (https://github.com/ansible/ansible/issues/72918)
1794      - psrp - Always cleanup the last run pipeline if a second pipeline is invoked
1795        to avoid violating any resource limits.
1796      - psrp - Fix error when resetting a connection that was initialised but not
1797        connected - (https://github.com/ansible/ansible/issues/74092).
1798      - psrp - Try to clean up any server-side resources when resetting a connection.
1799      - roles - make sure argspec validation task is tagged with ``always`` (https://github.com/ansible/ansible/pull/74994).
1800      - slurp - Fix error messages for unreadable files and directories (https://github.com/ansible/ansible/issues/67340).
1801      - slurp - handle error when ``path`` is a directory and not a file (https://github.com/ansible/ansible/pull/74930).
1802      - ssh connection - fix interaction between transfer settings options.
1803      - subversion - fix stack trace when getting information about the repository
1804        (https://github.com/ansible/ansible/issues/36498)
1805      - version test - improve error message when an empty version is provided
1806      release_summary: '| Release Date: 2021-06-14
1807
1808        | `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`__
1809
1810        '
1811      security_fixes:
1812      - templating engine fix for not preserving usnafe status when trying to preserve
1813        newlines. CVE-2021-3583
1814    codename: Hey Hey, What Can I Do
1815    fragments:
1816    - 36498-subversion-fix-info-parsing.yml
1817    - 61185-basic.py-fix-check_mode.yaml
1818    - 67340-slurp_error_message.yml
1819    - 73864-action-plugin-module-defaults.yml
1820    - 74864-display_failed_stderr-per-item.yml
1821    - ansible-pull-doc-update.yml
1822    - config_lists_unquote.yml
1823    - delegate_te_fix.yml
1824    - fix_scp_ssh_settings.yml
1825    - fix_unsafe_newline.yml
1826    - psrp-cleanup.yml
1827    - psrp-reset.yml
1828    - role_argspec_tagged_always.yml
1829    - slurp-handle-error-with-dir.yml
1830    - v2.11.2rc1_summary.yaml
1831    - version_compare-error-on-empty.yml
1832    release_date: '2021-06-14'
1833  2.11.3:
1834    changes:
1835      release_summary: '| Release Date: 2021-07-19
1836
1837        | `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`__
1838
1839        '
1840    codename: Hey Hey, What Can I Do
1841    fragments:
1842    - v2.11.3_summary.yaml
1843    release_date: '2021-07-19'
1844  2.11.3rc1:
1845    changes:
1846      bugfixes:
1847      - Add unicode support to ``ansible-inventory`` CLI (https://github.com/ansible/ansible/issues/57378)
1848      - Ensure we get full path for extra vars into cliargs to avoid realpath issues
1849        after initial load.
1850      - ansible-doc - in text output, do not show empty ``version_added_collection``
1851        values (https://github.com/ansible/ansible/pull/74999).
1852      - ansible-test - restrict ``packaging`` to ``< 21.0`` for Python ``< 3.6`` (https://github.com/ansible/ansible/pull/75186).
1853      - command - remove unreachable code path when trying to convert the value for
1854        ``chdir`` to bytes (https://github.com/ansible/ansible/pull/75036)
1855      - module_common - handle exception when multiple workers try to create the cache
1856        directory
1857      - roles - make sure argspec validation task templates suboptions (https://github.com/ansible/ansible/issues/75070).
1858      - slurp - improve the logic in the error handling and remove ``os.stat()`` call
1859        (https://github.com/ansible/ansible/pull/75038)
1860      - ssh_connection - rename ``retries`` to ``reconnection_retries`` to avoid conflicts
1861        with task vars (https://github.com/ansible/ansible/issues/75142).
1862      - ssh_connection - set the default for ``reconnection_retries`` back to ``0``
1863        (https://github.com/ansible/ansible/issues/75142).
1864      - task_executor/ssh_connection - use the ``retries`` value from ``ssh_connection``
1865        settings, not the default from the ``Task`` field attributes (https://github.com/ansible/ansible/issues/75142).
1866      minor_changes:
1867      - ansible-test - aws creates and exposes a new tiny_prefix variable to provide
1868        a shorter prefix for the AWS tests.
1869      release_summary: '| Release Date: 2021-07-13
1870
1871        | `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`__
1872
1873        '
1874    codename: Hey Hey, What Can I Do
1875    fragments:
1876    - 57378-inventory-cli-unicode.yml
1877    - 74999-ansible-doc-version_added_collection.yml
1878    - 75073-role-argspec-suboption-variables.yaml
1879    - 75142-ssh-retries-collision.yml
1880    - 75186-ansible-test-packaging-constraint.yml
1881    - aws_tiny_prefix.yaml
1882    - command-remove-unreachable-code.yml
1883    - concurrency-cache-dir-collision.yml
1884    - extra_vars_unfrack.yml
1885    - slurp-improve-error-handling-readability.yml
1886    - v2.11.3rc1_summary.yaml
1887    release_date: '2021-07-13'
1888  2.11.4:
1889    changes:
1890      release_summary: '| Release Date: 2021-08-16
1891
1892        | `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`__
1893
1894        '
1895    codename: Hey Hey, What Can I Do
1896    fragments:
1897    - v2.11.4_summary.yaml
1898    release_date: '2021-08-16'
1899  2.11.4rc1:
1900    changes:
1901      bugfixes:
1902      - Fix ``when`` evaluation on Native Jinja and Python 3.10.
1903      - Jinja2 globals should be accessible even when importing a template without
1904        the context (https://github.com/ansible/ansible/issues/75371)
1905      - ansible-test - add packaging python module to ``ansible-doc`` sanity test
1906        requirements.
1907      - ansible-test validate-modules - correctly validate positional parameters to
1908        ``AnsibleModules`` (https://github.com/ansible/ansible/pull/75332).
1909      - cli defaults for ssh args set to None as '' was bypassing normal default.
1910      - dnf module - Use all components of a package name to determine if it's installed
1911        (https://github.com/ansible/ansible/issues/75311).
1912      - do not trigger interpreter discovery in the forced_local module path as they
1913        should use the ansible playbook python unless otherwise configured.
1914      - find action, correctly convert path to text when warning about skiping.
1915      - remote tmpdir permissions - fix type error in macOS chmod ACL fallback (https://github.com/ansible/ansible/pull/74613).
1916      - template - ensure Jinja2 overrides from template header are used (https://github.com/ansible/ansible/issues/75275)
1917      - unarchive - move failure for missing binary to ``can_handle_archive()`` rather
1918        than ``__init__()``
1919      release_summary: '| Release Date: 2021-08-10
1920
1921        | `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`__
1922
1923        '
1924    codename: Hey Hey, What Can I Do
1925    fragments:
1926    - 74613-actionfixup_perms2_macos_remote_paths_ensure_list.yml
1927    - 75275-ensure-jinja2-header-overrides-used.yml
1928    - 75332-ansible-test-validate-modules-AnsibleModule-args.yml
1929    - 75356-add-requirement-to-ansible-test.yml
1930    - 75371-import_template_globals.yml
1931    - find_error_fix.yml
1932    - fix-dnf-filtering-for-installed-package-name.yml
1933    - fix_cli_ssh_defaults.yml
1934    - skip_local_discovery.yml
1935    - unarchive-fix-bin-checking.yml
1936    - v2.11.4rc1_summary.yaml
1937    - when-eval-native-py310.yml
1938    release_date: '2021-08-10'
1939  2.11.5:
1940    changes:
1941      release_summary: '| Release Date: 2021-09-13
1942
1943        | `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`__
1944
1945        '
1946    codename: Hey Hey, What Can I Do
1947    fragments:
1948    - v2.11.5_summary.yaml
1949    release_date: '2021-09-13'
1950  2.11.5rc1:
1951    changes:
1952      bugfixes:
1953      - Fix templating task action with host-specific vars (https://github.com/ansible/ansible/issues/75568)
1954      - Since ansible/2.11 doc site was removed, the current relative messages point
1955        to a 404 url, this fixes it by chainging the target to ansible-core/2.11
1956      - ansible-galaxy - Fix a bug with build_ignore when installing collections from
1957        source (https://github.com/ansible/ansible/issues/75528).
1958      - ansible-galaxy - Improve error message from dependency resolution when a candidate
1959        has inconsistent requirements (https://github.com/ansible/ansible/issues/75139).
1960      - ansible-playbook, more robust handling of --list-hosts and undefined vars
1961        in hosts keyword.
1962      - command module, clarify order of remove/creates checks.
1963      - command module, correctly handles chdir to symlinks.
1964      - command module, move to standarized messages in 'msg' vs abusing 'stdout'.
1965      - command module, now all options work in ad-hoc execution.
1966      - command module, now always returns what we documented as 'returns always'.
1967      - get_bin_path, clarify with quotes what the missing required executable is.
1968      - make previous versions compatible we new attributres w/o implementing them.
1969      - paramiko_ssh - mark connection as connected when ``_connect()`` is called
1970        (https://github.com/ansible/ansible/issues/74081)
1971      - setup module should now not truncate hpux interface names.
1972      - validate_argument_spec, correct variable precedence and merge method and add
1973        missing examples
1974      - variable manager, avoid sourcing delegated variables when no inventory hostname
1975        is present. This affects scenarios like syntax check and imports.
1976      release_summary: '| Release Date: 2021-09-08
1977
1978        | `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`__
1979
1980        '
1981    codename: Hey Hey, What Can I Do
1982    fragments:
1983    - 74081-paramiko-mark-connected.yml
1984    - 75235-ansible-galaxy-inconsistent-candidate-error.yml
1985    - 75547-fix-installing-collections-from-source.yaml
1986    - 75568-fix-templating-task-action-host-specific-vars.yml
1987    - attributes_compat.yml
1988    - clarify_missing_exe.yml
1989    - command_deliver_promisses.yml
1990    - fix_host_list.yml
1991    - fix_relative_msg_urls.yml
1992    - fix_syntax_check.yml
1993    - hpux_iface_facts_length.yml
1994    - v2.11.5rc1_summary.yaml
1995    - vas_fixes.yml
1996    release_date: '2021-09-08'
1997  2.11.6:
1998    changes:
1999      bugfixes:
2000      - ansible-test pslint - Fix error when encountering validation results that
2001        are highly nested - https://github.com/ansible/ansible/issues/74151
2002      release_summary: '| Release Date: 2021-10-11
2003
2004        | `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`__
2005
2006        '
2007    codename: Hey Hey, What Can I Do
2008    fragments:
2009    - pslint-sanity-warning.yml
2010    - v2.11.6_summary.yaml
2011    release_date: '2021-10-11'
2012  2.11.6rc1:
2013    changes:
2014      bugfixes:
2015      - PowerShell - Ignore the ``LIB`` environment variable when compiling C# Ansible
2016        code
2017      - ansible-galaxy - Fix handling HTTP exceptions from Galaxy servers. Continue
2018        to the next server in the list until the collection is found.
2019      - config - use ``callbacks_enabled`` instead ``callback_enabled`` in a deprecated
2020        message (https://github.com/ansible/ansible/issues/70028).
2021      - netconf - catch and handle exception to prevent stack trace when running in
2022        FIPS mode
2023      - roles - fix unexpected ``AttributeError`` when an empty ``argument_specs.yml``
2024        is present (https://github.com/ansible/ansible/pull/75604).
2025      minor_changes:
2026      - ansible-galaxy - Non-HTTP exceptions from Galaxy servers are now a warning
2027        and only fatal if the collection to download|install|verify is not available
2028        from any of the servers (https://github.com/ansible/ansible/issues/75443).
2029      release_summary: '| Release Date: 2021-10-04
2030
2031        | `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`__
2032
2033        '
2034      security_fixes:
2035      - Do not include params in exception when a call to ``set_options`` fails. Additionally,
2036        block the exception that is returned from being displayed to stdout. (CVE-2021-3620)
2037    codename: Hey Hey, What Can I Do
2038    fragments:
2039    - 70028-config-small-typo-fix.yml
2040    - 75468_fix_galaxy_server_fallback.yaml
2041    - 75604-empty-argument-specs.yml
2042    - avoid-set_options-leak.yaml
2043    - fips-ncclient-import-error.yaml
2044    - powershell-addtype-env-vars.yml
2045    - v2.11.6rc1_summary.yaml
2046    release_date: '2021-10-04'
2047