Compare commits
160 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 893d01b5c6 | |||
| 88a7738127 | |||
| ce6ed1653f | |||
| da131ec48b | |||
| 58d66a7568 | |||
| 02d9336b32 | |||
| a082726ef2 | |||
| c0395c486a | |||
| 65366f663d | |||
| b2f362e6f1 | |||
| ea9db2b441 | |||
| 9e507faea5 | |||
| 8740fbd7cb | |||
| 4fe7aae21d | |||
| 7027806a77 | |||
| 6d53f61f9e | |||
| 6adea5fa5c | |||
| 50b6d3515c | |||
| 05ec8b6808 | |||
| efe09ab86e | |||
| 2420ff280b | |||
| 6daf33b571 | |||
| 6aea337150 | |||
| 964d1f0852 | |||
| ad9867ca5e | |||
| d42313bb60 | |||
| 66c6fdefa6 | |||
| 83db3015e9 | |||
| a7aeb61c03 | |||
| b96adb8602 | |||
| 522bdb8358 | |||
| cde91027e8 | |||
| 165557df11 | |||
| 014a1a5715 | |||
| a8642ef1b0 | |||
| c83669a83e | |||
| c297ee9b5d | |||
| 3a21caa217 | |||
| 34ae99b516 | |||
| 8e9834fde5 | |||
| a398724a31 | |||
| 4ff76ffe21 | |||
| b6ded6209e | |||
| acc8c3ccf8 | |||
| 6a07424b36 | |||
| 6ebb1324d4 | |||
| 66889d8a7f | |||
| 240156ff67 | |||
| 578c96b854 | |||
| 5685f06189 | |||
| 066054f1f2 | |||
| d40213c32c | |||
| fc2670772a | |||
| 5e2806b502 | |||
| 022202056e | |||
| 7337dc978a | |||
| 3ae796bdcf | |||
| eb940d5ec6 | |||
| 53da28da6a | |||
| 8befa158d1 | |||
| ed924d6493 | |||
| 047affbdc5 | |||
| f240f69508 | |||
| 3bcb4f267d | |||
| ab661160cb | |||
| 28fe140ac9 | |||
| 713f5c5ae8 | |||
| 33717f3596 | |||
| c21f3569fc | |||
| e8093275e7 | |||
| f9ea06f9d1 | |||
| 035ce0a29b | |||
| 548248604d | |||
| fb00aad414 | |||
| 217eaf1e68 | |||
| c5065264c2 | |||
| 59f3c0238b | |||
| ffcdcef21c | |||
| 9fdc12cbe9 | |||
| 7b951e610c | |||
| a46b18e68f | |||
| aa43c17a89 | |||
| ab8b8ac8e1 | |||
| a3d26de5c4 | |||
| 4ec3cd5a26 | |||
| eadfaeb0c4 | |||
| 6068fbddb5 | |||
| 6f93710d1f | |||
| 175d4becbd | |||
| 4af4347ea0 | |||
| 4085e0163b | |||
| 8408b5c11a | |||
| 4b2529afb2 | |||
| 583d4ddc64 | |||
| 520bb66f8a | |||
| 0f3a1d3c82 | |||
| edbd88d3f1 | |||
| 66363dd182 | |||
| 6fb5f0c8b8 | |||
| 3fc245d3c6 | |||
| 70d1b34a9a | |||
| b162c509a9 | |||
| 4653d1f4a0 | |||
| a023813bd1 | |||
| 8f2b0a50d0 | |||
| bd085c6ce5 | |||
| df006fb581 | |||
| 7868f4a436 | |||
| 45bf720b06 | |||
| 8d6251af61 | |||
| 795ac8993b | |||
| a76163ca3c | |||
| 3922d46a71 | |||
| b7f9d839e0 | |||
| 41159432d1 | |||
| 418b92b323 | |||
| 51c0d50631 | |||
| 7e47371d2e | |||
| 86bdec3661 | |||
| febf071d01 | |||
| 9c9a33904a | |||
| 9bbdfb2c70 | |||
| 2ac9e2761b | |||
| 172982e83f | |||
| c6511e3a5b | |||
| 33ed9656c2 | |||
| d412bb245c | |||
| 45f9af1fd4 | |||
| c0901fcba5 | |||
| b5d8c954b8 | |||
| 9d7989fbe8 | |||
| 7077ea7f95 | |||
| cd9ef334d0 | |||
| cd52ae459d | |||
| b5eba64882 | |||
| 332ba231cd | |||
| fea62e7553 | |||
| 288dab3214 | |||
| e88427ae6b | |||
| f46bbb2140 | |||
| 53bac70257 | |||
| d15815c88d | |||
| 04fe7b374d | |||
| 923f952d6b | |||
| 5dff3bf46f | |||
| 7209c0b3d4 | |||
| 6b8432850f | |||
| 0747c5c859 | |||
| df01924168 | |||
| e5fd4ae747 | |||
| 30b7bfc1d8 | |||
| 47712d8d48 | |||
| c02a270ef1 | |||
| 4655fe6d8b | |||
| 7aff371ba5 | |||
| 38f706a2a3 | |||
| eb35cf9bb7 | |||
| 900010571d | |||
| 85dba943ab | |||
| c71fdadadb |
@ -84,7 +84,7 @@ stages:
|
||||
- stage: Remote
|
||||
dependsOn: []
|
||||
jobs:
|
||||
- template: templates/matrix.yml
|
||||
- template: templates/matrix.yml # context/target
|
||||
parameters:
|
||||
targets:
|
||||
- name: macOS 12.0
|
||||
@ -104,7 +104,7 @@ stages:
|
||||
groups:
|
||||
- 1
|
||||
- 2
|
||||
- template: templates/matrix.yml
|
||||
- template: templates/matrix.yml # context/controller
|
||||
parameters:
|
||||
targets:
|
||||
- name: macOS 12.0
|
||||
@ -119,6 +119,23 @@ stages:
|
||||
- 3
|
||||
- 4
|
||||
- 5
|
||||
- template: templates/matrix.yml # context/controller (ansible-test container management)
|
||||
parameters:
|
||||
targets:
|
||||
- name: Alpine 3.16
|
||||
test: alpine/3.16
|
||||
- name: Fedora 36
|
||||
test: fedora/36
|
||||
- name: RHEL 8.6
|
||||
test: rhel/8.6
|
||||
- name: RHEL 9.0
|
||||
test: rhel/9.0
|
||||
- name: Ubuntu 20.04
|
||||
test: ubuntu/20.04
|
||||
- name: Ubuntu 22.04
|
||||
test: ubuntu/22.04
|
||||
groups:
|
||||
- 6
|
||||
- stage: Docker
|
||||
dependsOn: []
|
||||
jobs:
|
||||
|
||||
523
changelogs/CHANGELOG-v2.14.rst
Normal file
523
changelogs/CHANGELOG-v2.14.rst
Normal file
@ -0,0 +1,523 @@
|
||||
=================================================
|
||||
ansible-core 2.14 "C'mon Everybody" Release Notes
|
||||
=================================================
|
||||
|
||||
.. contents:: Topics
|
||||
|
||||
|
||||
v2.14.3
|
||||
=======
|
||||
|
||||
Release Summary
|
||||
---------------
|
||||
|
||||
| Release Date: 2023-02-27
|
||||
| `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`__
|
||||
|
||||
|
||||
Minor Changes
|
||||
-------------
|
||||
|
||||
- Make using blocks as handlers a parser error (https://github.com/ansible/ansible/issues/79968)
|
||||
- ansible-test - Specify the configuration file location required by test plugins when the config file is not found. This resolves issue: https://github.com/ansible/ansible/issues/79411
|
||||
- ansible-test - Update error handling code to use Python 3.x constructs, avoiding direct use of ``errno``.
|
||||
- ansible-test acme test container - update version to update used Pebble version, underlying Python and Go base containers, and Python requirements (https://github.com/ansible/ansible/pull/79783).
|
||||
|
||||
Bugfixes
|
||||
--------
|
||||
|
||||
- Ansible.Basic.cs - Ignore compiler warning (reported as an error) when running under PowerShell 7.3.x.
|
||||
- Fix conditionally notifying ``include_tasks` handlers when ``force_handlers`` is used (https://github.com/ansible/ansible/issues/79776)
|
||||
- TaskExecutor - don't ignore templated _raw_params that k=v parser failed to parse (https://github.com/ansible/ansible/issues/79862)
|
||||
- ansible-galaxy - fix installing collections in git repositories/directories which contain a MANIFEST.json file (https://github.com/ansible/ansible/issues/79796).
|
||||
- ansible-test - Support Podman 4.4.0+ by adding the ``SYS_CHROOT`` capability when running containers.
|
||||
- ansible-test - fix warning message about failing to run an image to include the image name
|
||||
- strategy plugins now correctly identify bad registered variables, even on skip.
|
||||
|
||||
v2.14.2
|
||||
=======
|
||||
|
||||
Release Summary
|
||||
---------------
|
||||
|
||||
| Release Date: 2023-01-30
|
||||
| `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`__
|
||||
|
||||
|
||||
Major Changes
|
||||
-------------
|
||||
|
||||
- ansible-test - Docker Desktop on WSL2 is now supported (additional configuration required).
|
||||
- ansible-test - Docker and Podman are now supported on hosts with cgroup v2 unified. Previously only cgroup v1 and cgroup v2 hybrid were supported.
|
||||
- ansible-test - Podman now works on container hosts without systemd. Previously only some containers worked, while others required rootfull or rootless Podman, but would not work with both. Some containers did not work at all.
|
||||
- ansible-test - Podman on WSL2 is now supported.
|
||||
- ansible-test - When additional cgroup setup is required on the container host, this will be automatically detected. Instructions on how to configure the host will be provided in the error message shown.
|
||||
|
||||
Minor Changes
|
||||
-------------
|
||||
|
||||
- ansible-test - A new ``audit`` option is available when running custom containers. This option can be used to indicate whether a container requires the AUDIT_WRITE capability. The default is ``required``, which most containers will need when using Podman. If necessary, the ``none`` option can be used to opt-out of the capability. This has no effect on Docker, which always provides the capability.
|
||||
- ansible-test - A new ``cgroup`` option is available when running custom containers. This option can be used to indicate a container requires cgroup v1 or that it does not use cgroup. The default behavior assumes the container works with cgroup v2 (as well as v1).
|
||||
- ansible-test - Additional log details are shown when containers fail to start or SSH connections to containers fail.
|
||||
- ansible-test - Connection failures to remote provisioned hosts now show failure details as a warning.
|
||||
- ansible-test - Containers included with ansible-test no longer disable seccomp by default.
|
||||
- ansible-test - Failure to connect to a container over SSH now results in a clear error. Previously tests would be attempted even after initial connection attempts failed.
|
||||
- ansible-test - Integration tests can be excluded from retries triggered by the ``--retry-on-error`` option by adding the ``retry/never`` alias. This is useful for tests that cannot pass on a retry or are too slow to make retries useful.
|
||||
- ansible-test - More details are provided about an instance when provisioning fails.
|
||||
- ansible-test - Reduce the polling limit for SSHD startup in containers from 60 retries to 10. The one second delay between retries remains in place.
|
||||
- ansible-test - SSH connections from OpenSSH 8.8+ to CentOS 6 containers now work without additional configuration. However, clients older than OpenSSH 7.0 can no longer connect to CentOS 6 containers as a result. The container must have ``centos6`` in the image name for this work-around to be applied.
|
||||
- ansible-test - SSH shell connections from OpenSSH 8.8+ to ansible-test provisioned network instances now work without additional configuration. However, clients older than OpenSSH 7.0 can no longer open shell sessions for ansible-test provisioned network instances as a result.
|
||||
- ansible-test - The ``ansible-test env`` command now detects and reports the container ID if running in a container.
|
||||
- ansible-test - Unit tests now support network disconnect by default when running under Podman. Previously this feature only worked by default under Docker.
|
||||
- ansible-test - Use ``stop --time 0`` followed by ``rm`` to remove ephemeral containers instead of ``rm -f``. This speeds up teardown of ephemeral containers.
|
||||
- ansible-test - Warnings are now shown when using containers that were built with VOLUME instructions.
|
||||
- ansible-test - When setting the max open files for containers, the container host's limit will be checked. If the host limit is lower than the preferred value, it will be used and a warning will be shown.
|
||||
- ansible-test - When using Podman, ansible-test will detect if the loginuid used in containers is incorrect. When this occurs a warning is displayed and the container is run with the AUDIT_CONTROL capability. Previously containers would fail under this situation, with no useful warnings or errors given.
|
||||
|
||||
Bugfixes
|
||||
--------
|
||||
|
||||
- Correctly count rescued tasks in play recap (https://github.com/ansible/ansible/issues/79711)
|
||||
- Fix traceback when using the ``template`` module and running with ``ANSIBLE_DEBUG=1`` (https://github.com/ansible/ansible/issues/79763)
|
||||
- Fix using ``GALAXY_IGNORE_CERTS`` in conjunction with collections in requirements files which specify a specific ``source`` that isn't in the configured servers.
|
||||
- Fix using ``GALAXY_IGNORE_CERTS`` when downloading tarballs from Galaxy servers (https://github.com/ansible/ansible/issues/79557).
|
||||
- Module and role argument validation - include the valid suboption choices in the error when an invalid suboption is provided.
|
||||
- ansible-doc now will correctly display short descriptions on listing filters/tests no matter the directory sorting.
|
||||
- ansible-inventory will not explicitly sort groups/hosts anymore, giving a chance (depending on output format) to match the order in the input sources.
|
||||
- ansible-test - Added a work-around for a traceback under Python 3.11 when completing certain command line options.
|
||||
- ansible-test - Avoid using ``exec`` after container startup when possible. This improves container startup performance and avoids intermittent startup issues with some old containers.
|
||||
- ansible-test - Connection attempts to managed remote instances no longer abort on ``Permission denied`` errors.
|
||||
- ansible-test - Detection for running in a Podman or Docker container has been fixed to detect more scenarios. The new detection relies on ``/proc/self/mountinfo`` instead of ``/proc/self/cpuset``. Detection now works with custom cgroups and private cgroup namespaces.
|
||||
- ansible-test - Fix validate-modules error when retrieving PowerShell argspec when retrieved inside a Cmdlet
|
||||
- ansible-test - Handle server errors when executing the ``docker info`` command.
|
||||
- ansible-test - Multiple containers now work under Podman without specifying the ``--docker-network`` option.
|
||||
- ansible-test - Pass the ``XDG_RUNTIME_DIR`` environment variable through to container commands.
|
||||
- ansible-test - Perform PyPI proxy configuration after instances are ready and bootstrapping has been completed. Only target instances are affected, as controller instances were already handled this way. This avoids proxy configuration errors when target instances are not yet ready for use.
|
||||
- ansible-test - Prevent concurrent / repeat inspections of the same container image.
|
||||
- ansible-test - Prevent concurrent / repeat pulls of the same container image.
|
||||
- ansible-test - Prevent concurrent execution of cached methods.
|
||||
- ansible-test - Show the exception type when reporting errors during instance provisioning.
|
||||
- ansible-test sanity - correctly report invalid YAML in validate-modules (https://github.com/ansible/ansible/issues/75837).
|
||||
- argument spec validation - again report deprecated parameters for Python-based modules. This was accidentally removed in ansible-core 2.11 when argument spec validation was refactored (https://github.com/ansible/ansible/issues/79680, https://github.com/ansible/ansible/pull/79681).
|
||||
- argument spec validation - ensure that deprecated aliases in suboptions are also reported (https://github.com/ansible/ansible/pull/79740).
|
||||
- argument spec validation - fix warning message when two aliases of the same option are used for suboptions to also mention the option's name they are in (https://github.com/ansible/ansible/pull/79740).
|
||||
- connection local now avoids traceback on invalid user being used to execuet ansible (valid in host, but not in container).
|
||||
- file - touch action in check mode was always returning ok. Fix now evaluates the different conditions and returns the appropriate changed status. (https://github.com/ansible/ansible/issues/79360)
|
||||
- get_url - Ensure we are passing ciphers to all url_get calls (https://github.com/ansible/ansible/issues/79717)
|
||||
- plugin filter now works with rejectlist as documented (still falls back to blacklist if used).
|
||||
- uri - improve JSON content type detection
|
||||
|
||||
Known Issues
|
||||
------------
|
||||
|
||||
- ansible-test - Additional configuration may be required for certain container host and container combinations. Further details are available in the testing documentation.
|
||||
- ansible-test - Custom containers with ``VOLUME`` instructions may be unable to start, when previously the containers started correctly. Remove the ``VOLUME`` instructions to resolve the issue. Containers with this condition will cause ``ansible-test`` to emit a warning.
|
||||
- ansible-test - Systems with Podman networking issues may be unable to run containers, when previously the issue went unreported. Correct the networking issues to continue using ``ansible-test`` with Podman.
|
||||
- ansible-test - Using Docker on systems with SELinux may require setting SELinux to permissive mode. Podman should work with SELinux in enforcing mode.
|
||||
|
||||
v2.14.1
|
||||
=======
|
||||
|
||||
Release Summary
|
||||
---------------
|
||||
|
||||
| Release Date: 2022-12-06
|
||||
| `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`__
|
||||
|
||||
|
||||
Minor Changes
|
||||
-------------
|
||||
|
||||
- ansible-test - Improve consistency of executed ``pylint`` commands by making the plugins ordered.
|
||||
|
||||
Bugfixes
|
||||
--------
|
||||
|
||||
- Fixes leftover _valid_attrs usage.
|
||||
- ansible-galaxy - make initial call to Galaxy server on-demand only when installing, getting info about, and listing roles.
|
||||
- copy module will no longer move 'non files' set as src when remote_src=true.
|
||||
- display - reduce risk of post-fork output deadlocks (https://github.com/ansible/ansible/pull/79522)
|
||||
- jinja2_native: preserve quotes in strings (https://github.com/ansible/ansible/issues/79083)
|
||||
- updated error messages to include 'acl' and not just mode changes when failing to set required permissions on remote.
|
||||
|
||||
v2.14.0
|
||||
=======
|
||||
|
||||
Release Summary
|
||||
---------------
|
||||
|
||||
| Release Date: 2022-11-07
|
||||
| `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`__
|
||||
|
||||
|
||||
Major Changes
|
||||
-------------
|
||||
|
||||
- Move handler processing into new ``PlayIterator`` phase to use the configured strategy (https://github.com/ansible/ansible/issues/65067)
|
||||
- ansible - At startup the filesystem encoding and locale are checked to verify they are UTF-8. If not, the process exits with an error reporting the errant encoding.
|
||||
- ansible - Increase minimum Python requirement to Python 3.9 for CLI utilities and controller code
|
||||
- ansible-test - At startup the filesystem encoding is checked to verify it is UTF-8. If not, the process exits with an error reporting the errant encoding.
|
||||
- ansible-test - At startup the locale is configured as ``en_US.UTF-8``, with a fallback to ``C.UTF-8``. If neither encoding is available the process exits with an error. If the fallback is used, a warning is displayed. In previous versions the ``en_US.UTF-8`` locale was always requested. However, no startup checking was performed to verify the locale was successfully configured.
|
||||
|
||||
Minor Changes
|
||||
-------------
|
||||
|
||||
- Add a new "INVENTORY_UNPARSED_WARNING" flag add to hide the "No inventory was parsed, only implicit localhost is available" warning
|
||||
- Add an 'action_plugin' field for modules in runtime.yml plugin_routing.
|
||||
|
||||
This fixes module_defaults by supporting modules-as-redirected-actions
|
||||
without redirecting module_defaults entries to the common action.
|
||||
|
||||
.. code: yaml
|
||||
|
||||
plugin_routing:
|
||||
action:
|
||||
facts:
|
||||
redirect: ns.coll.eos
|
||||
command:
|
||||
redirect: ns.coll.eos
|
||||
modules:
|
||||
facts:
|
||||
redirect: ns.coll.eos_facts
|
||||
command:
|
||||
redirect: ns.coll.eos_command
|
||||
|
||||
With the runtime.yml above for ns.coll, a task such as
|
||||
|
||||
.. code: yaml
|
||||
|
||||
- hosts: all
|
||||
module_defaults:
|
||||
ns.coll.eos_facts: {'valid_for_eos_facts': 'value'}
|
||||
ns.coll.eos_command: {'not_valid_for_eos_facts': 'value'}
|
||||
tasks:
|
||||
- ns.coll.facts:
|
||||
|
||||
will end up with defaults for eos_facts and eos_command
|
||||
since both modules redirect to the same action.
|
||||
|
||||
To select an action plugin for a module without merging
|
||||
module_defaults, define an action_plugin field for the resolved
|
||||
module in the runtime.yml.
|
||||
|
||||
.. code: yaml
|
||||
|
||||
plugin_routing:
|
||||
modules:
|
||||
facts:
|
||||
redirect: ns.coll.eos_facts
|
||||
action_plugin: ns.coll.eos
|
||||
command:
|
||||
redirect: ns.coll.eos_command
|
||||
action_plugin: ns.coll.eos
|
||||
|
||||
The action_plugin field can be a redirected action plugin, as
|
||||
it is resolved normally.
|
||||
|
||||
Using the modified runtime.yml, the example task will only use
|
||||
the ns.coll.eos_facts defaults.
|
||||
- Add support for parsing ``-a`` module options as JSON and not just key=value arguments - https://github.com/ansible/ansible/issues/78112
|
||||
- Added Kylin Linux Advanced Server OS in RedHat OS Family.
|
||||
- Allow ``when`` conditionals to be used on ``flush_handlers`` (https://github.com/ansible/ansible/issues/77616)
|
||||
- Allow meta tasks to be used as handlers.
|
||||
- Display - The display class will now proxy calls to Display.display via the queue from forks/workers to be handled by the parent process for actual display. This reduces some reliance on the fork start method and improves reliability of displaying messages.
|
||||
- Jinja version test - Add pep440 version_type for version test. (https://github.com/ansible/ansible/issues/78288)
|
||||
- Loops - Add new ``loop_control.extended_allitems`` to allow users to disable tracking all loop items for each loop (https://github.com/ansible/ansible/issues/75216)
|
||||
- NetBSD - Add uptime_seconds fact
|
||||
- Provide a `utc` option for strftime to show time in UTC rather than local time
|
||||
- Raise a proper error when ``include_role`` or ``import_role`` is used as a handler.
|
||||
- Remove the ``AnsibleContext.resolve`` method as its override is not necessary. Furthermore the ability to override the ``resolve`` method was deprecated in Jinja 3.0.0 and removed in Jinja 3.1.0.
|
||||
- Utilize @classmethod and @property together to form classproperty (Python 3.9) to access field attributes of a class
|
||||
- ``LoopControl`` is now templated through standard ``post_validate`` method (https://github.com/ansible/ansible/pull/75715)
|
||||
- ``ansible-galaxy collection install`` - add an ``--offline`` option to prevent querying distribution servers (https://github.com/ansible/ansible/issues/77443).
|
||||
- ansible - Add support for Python 3.11 to Python interpreter discovery.
|
||||
- ansible - At startup the stdin/stdout/stderr file handles are checked to verify they are using blocking IO. If not, the process exits with an error reporting which file handle(s) are using non-blocking IO.
|
||||
- ansible-config adds JSON and YAML output formats for list and dump actions.
|
||||
- ansible-connection now supports verbosity directly on cli
|
||||
- ansible-console added 'collections' command to match playbook keyword.
|
||||
- ansible-doc - remove some of the manual formatting, and use YAML more uniformly. This in particular means that ``true`` and ``false`` are used for boolean values, instead of ``True`` and ``False`` (https://github.com/ansible/ansible/pull/78668).
|
||||
- ansible-galaxy - Support resolvelib versions 0.6.x, 0.7.x, and 0.8.x. The full range of supported versions is now >= 0.5.3, < 0.9.0.
|
||||
- ansible-galaxy now supports a user defined timeout, instead of existing hardcoded 60s (now the default).
|
||||
- ansible-test - Add FreeBSD 13.1 remote support.
|
||||
- ansible-test - Add RHEL 9.0 remote support.
|
||||
- ansible-test - Add support for Python 3.11.
|
||||
- ansible-test - Add support for RHEL 8.6 remotes.
|
||||
- ansible-test - Add support for Ubuntu VMs using the ``--remote`` option.
|
||||
- ansible-test - Add support for exporting inventory with ``ansible-test shell --export {path}``.
|
||||
- ansible-test - Add support for multi-arch remotes.
|
||||
- ansible-test - Add support for provisioning Alpine 3.16 remote instances.
|
||||
- ansible-test - Add support for provisioning Fedora 36 remote instances.
|
||||
- ansible-test - Add support for provisioning Ubuntu 20.04 remote instances.
|
||||
- ansible-test - Add support for provisioning remotes which require ``doas`` for become.
|
||||
- ansible-test - Add support for running non-interactive commands with ``ansible-test shell``.
|
||||
- ansible-test - Alpine remotes now use ``sudo`` for tests, using ``doas`` only for bootstrapping.
|
||||
- ansible-test - An improved error message is shown when the download of a pip bootstrap script fails. The download now uses ``urllib2`` instead of ``urllib`` on Python 2.
|
||||
- ansible-test - Avoid using the ``mock_use_standalone_module`` setting for unit tests running on Python 3.8 or later.
|
||||
- ansible-test - Become support for remote instance provisioning is no longer tied to a fixed list of platforms.
|
||||
- ansible-test - Blocking mode is now enforced for stdin, stdout and stderr. If any of these are non-blocking then ansible-test will exit during startup with an error.
|
||||
- ansible-test - Distribution specific test containers are now multi-arch, supporting both x86_64 and aarch64.
|
||||
- ansible-test - Distribution specific test containers no longer contain a ``/etc/ansible/hosts`` file.
|
||||
- ansible-test - Enable loading of ``coverage`` data files created by older supported ansible-test releases.
|
||||
- ansible-test - Fedora 36 has been added as a test container.
|
||||
- ansible-test - FreeBSD remotes now use ``sudo`` for tests, using ``su`` only for bootstrapping.
|
||||
- ansible-test - Improve consistency of output messages by using stdout or stderr for most output, but not both.
|
||||
- ansible-test - Improve consistency of version specific documentation links.
|
||||
- ansible-test - Remote Alpine instances now have the ``acl`` package installed.
|
||||
- ansible-test - Remote Fedora instances now have the ``acl`` package installed.
|
||||
- ansible-test - Remote FreeBSD instances now have ACLs enabled on the root filesystem.
|
||||
- ansible-test - Remote Ubuntu instances now have the ``acl`` package installed.
|
||||
- ansible-test - Remove Fedora 34 test container.
|
||||
- ansible-test - Remove Fedora 35 test container.
|
||||
- ansible-test - Remove FreeBSD 13.0 remote support.
|
||||
- ansible-test - Remove RHEL 8.5 remote support.
|
||||
- ansible-test - Remove Ubuntu 18.04 test container.
|
||||
- ansible-test - Remove support for Python 2.7 on provisioned FreeBSD instances.
|
||||
- ansible-test - Remove support for Python 3.8 on the controller.
|
||||
- ansible-test - Remove the ``opensuse15py2`` container.
|
||||
- ansible-test - Support multiple pinned versions of the ``coverage`` module. The version used now depends on the Python version in use.
|
||||
- ansible-test - Test containers have been updated to remove the ``VOLUME`` instruction.
|
||||
- ansible-test - The Alpine 3 test container has been updated to Alpine 3.16.0.
|
||||
- ansible-test - The ``http-test-container`` container is now multi-arch, supporting both x86_64 and aarch64.
|
||||
- ansible-test - The ``pypi-test-container`` container is now multi-arch, supporting both x86_64 and aarch64.
|
||||
- ansible-test - The ``shell`` command can be used outside a collection if no controller delegation is required.
|
||||
- ansible-test - The openSUSE test container has been updated to openSUSE Leap 15.4.
|
||||
- ansible-test - Ubuntu 22.04 has been added as a test container.
|
||||
- ansible-test - Update ``base`` and ``default`` containers to include Python 3.11.0.
|
||||
- ansible-test - Update ``default`` containers to include new ``docs-build`` sanity test requirements.
|
||||
- ansible-test - Update pinned sanity test requirements for all tests.
|
||||
- ansible-test - Update the ``base`` container to 3.4.0.
|
||||
- ansible-test - Update the ``default`` containers to 6.6.0.
|
||||
- ansible-test validate-modules - Added support for validating module documentation stored in a sidecar file alongside the module (``{module}.yml`` or ``{module}.yaml``). Previously these files were ignored and documentation had to be placed in ``{module}.py``.
|
||||
- apt_repository remove dependency on apt-key and use gpg + /usr/share/keyrings directly instead
|
||||
- apt_repository will use the trust repo directories in order of preference (more appropriate to less) as they exist on the target.
|
||||
- blockinfile - The presence of the multiline flag (?m) in the regular expression for insertafter opr insertbefore controls whether the match is done line by line or with multiple lines (https://github.com/ansible/ansible/pull/75090).
|
||||
- calls to listify_lookup_plugin_terms in core do not pass in loader/dataloader anymore.
|
||||
- collections - ``ansible-galaxy collection build`` can now utilize ``MANIFEST.in`` style directives from ``galaxy.yml`` instead of ``build_ignore`` effectively inverting the logic from include by default, to exclude by default. (https://github.com/ansible/ansible/pull/78422)
|
||||
- config manager, move templating into main query function in config instead of constants
|
||||
- config manager, remove updates to configdata as it is mostly unused
|
||||
- configuration entry INTERPRETER_PYTHON_DISTRO_MAP is now 'private' and won't show up in normal configuration queries and docs, since it is not 'settable' this avoids user confusion.
|
||||
- distribution - add distribution_minor_version for Debian Distro (https://github.com/ansible/ansible/issues/74481).
|
||||
- documentation construction now gives more information on error.
|
||||
- facts - add OSMC to Debian os_family mapping
|
||||
- get_url - permit to pass to parameter ``checksum`` an URL pointing to a file containing only a checksum (https://github.com/ansible/ansible/issues/54390).
|
||||
- new tests url, uri and urn will verify string as such, but they don't check existance of the resource
|
||||
- plugin loader - add ansible_name and ansible_aliases attributes to plugin objects/classes.
|
||||
- systemd is now systemd_service to better reflect the scope of the module, systemd is kept as an alias for backwards compatibility.
|
||||
- templating - removed internal template cache
|
||||
- uri - cleanup write_file method, remove overkill safety checks and report any exception, change shutilcopyfile to use module.atomic_move
|
||||
- urls - Add support to specify SSL/TLS ciphers to use during a request (https://github.com/ansible/ansible/issues/78633)
|
||||
- validate-modules - Allow ``type: raw`` on a module return type definition for values that have a dynamic type
|
||||
- version output now includes the path to the python executable that Ansible is running under
|
||||
- yum_repository - do not give the ``async`` parameter a default value anymore, since this option is deprecated in RHEL 8. This means that ``async = 1`` won't be added to repository files if omitted, but it can still be set explicitly if needed.
|
||||
|
||||
Breaking Changes / Porting Guide
|
||||
--------------------------------
|
||||
|
||||
- Allow for lazy evaluation of Jinja2 expressions (https://github.com/ansible/ansible/issues/56017)
|
||||
- The default ansible-galaxy role skeletons no longer contain .travis.yml files. You can configure ansible-galaxy to use a custom role skeleton that contains a .travis.yml file to continue using Galaxy's integration with Travis CI.
|
||||
- ansible - At startup the filesystem encoding and locale are checked to verify they are UTF-8. If not, the process exits with an error reporting the errant encoding.
|
||||
- ansible - Increase minimum Python requirement to Python 3.9 for CLI utilities and controller code
|
||||
- ansible-test - At startup the filesystem encoding is checked to verify it is UTF-8. If not, the process exits with an error reporting the errant encoding.
|
||||
- ansible-test - At startup the locale is configured as ``en_US.UTF-8``, with a fallback to ``C.UTF-8``. If neither encoding is available the process exits with an error. If the fallback is used, a warning is displayed. In previous versions the ``en_US.UTF-8`` locale was always requested. However, no startup checking was performed to verify the locale was successfully configured.
|
||||
- ansible-test validate-modules - Removed the ``missing-python-doc`` error code in validate modules, ``missing-documentation`` is used instead for missing PowerShell module documentation.
|
||||
- strategy plugins - Make ``ignore_unreachable`` to increase ``ignored`` and ``ok`` and counter, not ``skipped`` and ``unreachable``. (https://github.com/ansible/ansible/issues/77690)
|
||||
|
||||
Deprecated Features
|
||||
-------------------
|
||||
|
||||
- Deprecate ability of lookup plugins to return arbitrary data. Lookup plugins must return lists, failing to do so will be an error in 2.18. (https://github.com/ansible/ansible/issues/77788)
|
||||
- Encryption - Deprecate use of the Python crypt module due to it's impending removal from Python 3.13
|
||||
- PlayContext.verbosity is deprecated and will be removed in 2.18. Use ansible.utils.display.Display().verbosity as the single source of truth.
|
||||
- ``DEFAULT_FACT_PATH``, ``DEFAULT_GATHER_SUBSET`` and ``DEFAULT_GATHER_TIMEOUT`` are deprecated and will be removed in 2.18. Use ``module_defaults`` keyword instead.
|
||||
- ``PlayIterator`` - deprecate ``cache_block_tasks`` and ``get_original_task`` which are noop and unused.
|
||||
- ``Templar`` - deprecate ``shared_loader_obj`` option which is unused. ``ansible.plugins.loader`` is used directly instead.
|
||||
- listify_lookup_plugin_terms, deprecate 'loader/dataloader' parameter as it not used.
|
||||
- vars plugins - determining whether or not to run ansible.legacy vars plugins with the class attribute REQUIRES_WHITELIST is deprecated, set REQUIRES_ENABLED instead.
|
||||
|
||||
Removed Features (previously deprecated)
|
||||
----------------------------------------
|
||||
|
||||
- PlayIterator - remove deprecated ``PlayIterator.ITERATING_*`` and ``PlayIterator.FAILED_*``
|
||||
- Remove deprecated ``ALLOW_WORLD_READABLE_TMPFILES`` configuration option (https://github.com/ansible/ansible/issues/77393)
|
||||
- Remove deprecated ``COMMAND_WARNINGS`` configuration option (https://github.com/ansible/ansible/issues/77394)
|
||||
- Remove deprecated ``DISPLAY_SKIPPED_HOSTS`` environment variable (https://github.com/ansible/ansible/issues/77396)
|
||||
- Remove deprecated ``LIBVIRT_LXC_NOSECLABEL`` environment variable (https://github.com/ansible/ansible/issues/77395)
|
||||
- Remove deprecated ``NETWORK_GROUP_MODULES`` environment variable (https://github.com/ansible/ansible/issues/77397)
|
||||
- Remove deprecated ``UnsafeProxy``
|
||||
- Remove deprecated ``plugin_filters_cfg`` config option from ``default`` section (https://github.com/ansible/ansible/issues/77398)
|
||||
- Remove deprecated functionality that allows loading cache plugins directly without using ``cache_loader``.
|
||||
- Remove deprecated functionality that allows subclassing ``DefaultCallback`` without the corresponding ``doc_fragment``.
|
||||
- Remove deprecated powershell functions ``Load-CommandUtils`` and ``Import-PrivilegeUtil``
|
||||
- apt_key - remove deprecated ``key`` module param
|
||||
- command/shell - remove deprecated ``warn`` module param
|
||||
- get_url - remove deprecated ``sha256sum`` module param
|
||||
- import_playbook - remove deprecated functionality that allows providing additional parameters in free form
|
||||
|
||||
Bugfixes
|
||||
--------
|
||||
|
||||
- "meta: refresh_inventory" does not clobber entries added by add_host/group_by anymore.
|
||||
- Add PyYAML >= 5.1 as a dependency of ansible-core to be compatible with Python 3.8+.
|
||||
- Avoid 'unreachable' error when chmod on AIX has 255 as return code.
|
||||
- BSD network facts - Do not assume column indexes, look for ``netmask`` and ``broadcast`` for determining the correct columns when parsing ``inet`` line (https://github.com/ansible/ansible/issues/79117)
|
||||
- Bug fix for when handlers were ran on failed hosts after an ``always`` section was executed (https://github.com/ansible/ansible/issues/52561)
|
||||
- Do not allow handlers from dynamic includes to be notified (https://github.com/ansible/ansible/pull/78399)
|
||||
- Do not crash when templating an expression with a test or filter that is not a valid Ansible filter name (https://github.com/ansible/ansible/issues/78912, https://github.com/ansible/ansible/pull/78913).
|
||||
- Ensure handlers observe ``any_errors_fatal`` (https://github.com/ansible/ansible/issues/46447)
|
||||
- Ensure syntax check errors include playbook filenames
|
||||
- Ensure the correct ``environment_class`` is set on ``AnsibleJ2Template``
|
||||
- Error for collection redirects that do not use fully qualified collection names, as the redirect would be determined by the ``collections`` keyword.
|
||||
- Fix PluginLoader to mimic Python import machinery by adding module to sys.modules before exec
|
||||
- Fix ``-vv`` output for meta tasks to not have an empty message when skipped, print the skip reason instead. (https://github.com/ansible/ansible/issues/77315)
|
||||
- Fix an issue where ``ansible_play_hosts`` and ``ansible_play_batch`` were not properly updated when a failure occured in an explicit block inside the rescue section (https://github.com/ansible/ansible/issues/78612)
|
||||
- Fix dnf module documentation to indicate that comparison operators for package version require spaces around them (https://github.com/ansible/ansible/issues/78295)
|
||||
- Fix for linear strategy when tasks were executed in incorrect order or even removed from execution. (https://github.com/ansible/ansible/issues/64611, https://github.com/ansible/ansible/issues/64999, https://github.com/ansible/ansible/issues/72725, https://github.com/ansible/ansible/issues/72781)
|
||||
- Fix for network_cli not getting all relevant connection options
|
||||
- Fix handlers execution with ``serial`` in the ``linear`` strategy (https://github.com/ansible/ansible/issues/54991)
|
||||
- Fix potential, but unlikely, cases of variable use before definition.
|
||||
- Fix reusing a connection in a task loop that uses a redirected or aliased name - https://github.com/ansible/ansible/issues/78425
|
||||
- Fix setting become activation in a task loop - https://github.com/ansible/ansible/issues/78425
|
||||
- Fix traceback when installing a collection from a git repository and git is not installed (https://github.com/ansible/ansible/issues/77479).
|
||||
- GALAXY_IGNORE_CERTS reworked to allow each server entry to override
|
||||
- More gracefully handle separator errors in jinja2 template overrides (https://github.com/ansible/ansible/pull/77495).
|
||||
- Move undefined check from concat to finalize (https://github.com/ansible/ansible/issues/78156)
|
||||
- Prevent losing unsafe on results returned from lookups (https://github.com/ansible/ansible/issues/77535)
|
||||
- Propagate ``ansible_failed_task`` and ``ansible_failed_result`` to an outer rescue (https://github.com/ansible/ansible/issues/43191)
|
||||
- Properly execute rescue section when an include task fails in all loop iterations (https://github.com/ansible/ansible/issues/23161)
|
||||
- Properly send a skipped message when a list in a ``loop`` is empty and comes from a template (https://github.com/ansible/ansible/issues/77934)
|
||||
- Support colons in jinja2 template override values (https://github.com/ansible/ansible/pull/77495).
|
||||
- ``ansible-galaxy`` - remove extra server api call during dependency resolution for requirements and dependencies that are already satisfied (https://github.com/ansible/ansible/issues/77443).
|
||||
- `ansible-config init -f vars` will now use shorthand format
|
||||
- action plugins now pass cannonical info to modules instead of 'temporary' info from play_context
|
||||
- ansible - Exclude Python 2.6 from Python interpreter discovery.
|
||||
- ansible-config dump - Only display plugin type headers when plugin options are changed if --only-changed is specified.
|
||||
- ansible-config limit shorthand format to assigned values
|
||||
- ansible-configi init should now skip internal reserved config entries
|
||||
- ansible-connection - decrypt vaulted parameters before sending over the socket, as vault secrets are not available on the other side.
|
||||
- ansible-console - Renamed the first argument of ``ConsoleCLI.default`` from ``arg`` to ``line`` to match the first argument of the same method on the base class ``Cmd``.
|
||||
- ansible-console commands now all have a help entry.
|
||||
- ansible-console fixed to load modules via fqcn, short names and handle redirects.
|
||||
- ansible-console now shows installed collection modules.
|
||||
- ansible-doc - fix listing plugins.
|
||||
- ansible-doc will not add 'website for' in ":ref:" substitutions as it made them confusing.
|
||||
- ansible-doc will not again warn and skip when missing docs, always show the doc file (for edit on github) and match legacy plugins.
|
||||
- ansible-doc will not traceback when legacy plugins don't have docs nor adjacent file with docs
|
||||
- ansible-doc will now also display until as an 'implicit' templating keyword.
|
||||
- ansible-doc will now not display version_added_collection under same conditions it does not display version_added.
|
||||
- ansible-galaxy - Fix detection of ``--role-file`` in arguments for implicit role invocation (https://github.com/ansible/ansible/issues/78204)
|
||||
- ansible-galaxy - Fix exit codes for role search and delete (https://github.com/ansible/ansible/issues/78516)
|
||||
- ansible-galaxy - Fix loading boolean server options so False doesn't become a truthy string (https://github.com/ansible/ansible/issues/77416).
|
||||
- ansible-galaxy - Fix reinitializing the whole collection directory with ``ansible-galaxy collection init ns.coll --force``. Now directories and files that are not included in the collection skeleton will be removed.
|
||||
- ansible-galaxy - Fix unhandled traceback if a role's dependencies in meta/main.yml or meta/requirements.yml are not lists.
|
||||
- ansible-galaxy - do not require mandatory keys in the ``galaxy.yml`` of source collections when listing them (https://github.com/ansible/ansible/issues/70180).
|
||||
- ansible-galaxy - fix installing collections that have dependencies in the metadata set to null instead of an empty dictionary (https://github.com/ansible/ansible/issues/77560).
|
||||
- ansible-galaxy - fix listing collections that contains metadata but the namespace or name are not strings.
|
||||
- ansible-galaxy - fix missing meta/runtime.yml in default galaxy skeleton used for ansible-galaxy collection init
|
||||
- ansible-galaxy - fix setting the cache for paginated responses from Galaxy NG/AH (https://github.com/ansible/ansible/issues/77911).
|
||||
- ansible-galaxy - handle unsupported versions of resolvelib gracefully.
|
||||
- ansible-galaxy --ignore-certs now has proper precedence over configuration
|
||||
- ansible-test - Add ``wheel < 0.38.0`` constraint for Python 3.6 and earlier.
|
||||
- ansible-test - Allow disabled, unsupported, unstable and destructive integration test targets to be selected using their respective prefixes.
|
||||
- ansible-test - Allow unstable tests to run when targeted changes are made and the ``--allow-unstable-changed`` option is specified (resolves https://github.com/ansible/ansible/issues/74213).
|
||||
- ansible-test - Always remove containers after failing to create/run them. This avoids leaving behind created containers when using podman.
|
||||
- ansible-test - Correctly detect when running as the ``root`` user (UID 0) on the origin host. The result of the detection was incorrectly being inverted.
|
||||
- ansible-test - Delegation for commands which generate output for programmatic consumption no longer redirect all output to stdout. The affected commands and options are ``shell``, ``sanity --lint``, ``sanity --list-tests``, ``integration --list-targets``, ``coverage analyze``
|
||||
- ansible-test - Delegation now properly handles arguments given after ``--`` on the command line.
|
||||
- ansible-test - Don't fail if network cannot be disconnected (https://github.com/ansible/ansible/pull/77472)
|
||||
- ansible-test - Fix bootstrapping of Python 3.9 on Ubuntu 20.04 remotes.
|
||||
- ansible-test - Fix broken documentation link for ``aws`` test plugin error messages.
|
||||
- ansible-test - Fix change detection for ansible-test's own integration tests.
|
||||
- ansible-test - Fix internal validation of remote completion configuration.
|
||||
- ansible-test - Fix skipping of tests marked ``needs/python`` on the origin host.
|
||||
- ansible-test - Fix skipping of tests marked ``needs/root`` on the origin host.
|
||||
- ansible-test - Prevent ``--target-`` prefixed options for the ``shell`` command from being combined with legacy environment options.
|
||||
- ansible-test - Sanity test output with the ``--lint`` option is no longer mixed in with bootstrapping output.
|
||||
- ansible-test - Subprocesses are now isolated from the stdin, stdout and stderr of ansible-test. This avoids issues with subprocesses tampering with the file descriptors, such as SSH making them non-blocking. As a result of this change, subprocess output from unit and integration tests on stderr now go to stdout.
|
||||
- ansible-test - Subprocesses no longer have access to the TTY ansible-test is connected to, if any. This maintains consistent behavior between local testing and CI systems, which typically do not provide a TTY. Tests which require a TTY should use pexpect or another mechanism to create a PTY.
|
||||
- ansible-test - Temporary executables are now verified as executable after creation. Without this check, path injected scripts may not be found, typically on systems with ``/tmp`` mounted using the "noexec" option. This can manifest as a missing Python interpreter, or use of the wrong Python interpreter, as well as other error conditions.
|
||||
- ansible-test - Test configuration for collections is now parsed only once, prior to delegation. Fixes issue: https://github.com/ansible/ansible/issues/78334
|
||||
- ansible-test - Test containers are now run with the ``--tmpfs`` option for ``/tmp``, ``/run`` and ``/run/lock``. This allows use of containers built without the ``VOLUME`` instruction. Additionally, containers with those volumes defined no longer create anonymous volumes for them. This avoids leaving behind volumes on the container host after the container is stopped and deleted.
|
||||
- ansible-test - The ``shell`` command no longer redirects all output to stdout when running a provided command. Any command output written to stderr will be mixed with the stderr output from ansible-test.
|
||||
- ansible-test - The ``shell`` command no longer requests a TTY when using delegation unless an interactive shell is being used. An interactive shell is the default behavior when no command is given to pass to the shell.
|
||||
- ansible-test - Update the ``pylint`` sanity test requirements to resolve crashes on Python 3.11. (https://github.com/ansible/ansible/issues/78882)
|
||||
- ansible-test - Update the ``pylint`` sanity test to use version 2.15.4.
|
||||
- ansible-test - Update the ``pylint`` sanity test to use version 2.15.5.
|
||||
- ansible-test - ansible-doc sanity test - Correctly determine the fully-qualified collection name for plugins in subdirectories, resolving https://github.com/ansible/ansible/issues/78490.
|
||||
- ansible-test - validate-modules - Documentation-only modules, used for documenting actions, are now allowed to have docstrings (https://github.com/ansible/ansible/issues/77972).
|
||||
- ansible-test compile sanity test - do not crash if a column could not be determined for an error (https://github.com/ansible/ansible/pull/77465).
|
||||
- apt - Fix module failure when a package is not installed and only_upgrade=True. Skip that package and check the remaining requested packages for upgrades. (https://github.com/ansible/ansible/issues/78762)
|
||||
- apt - don't actually update the cache in check mode with update_cache=true.
|
||||
- apt - don't mark existing packages as manually installed in check mode (https://github.com/ansible/ansible/issues/66413).
|
||||
- apt - fix package selection to include /etc/apt/preferences(.d) (https://github.com/ansible/ansible/issues/77969)
|
||||
- apt module now correctly handles virtual packages.
|
||||
- apt module should not traceback on invalid type given as package. issue 78663.
|
||||
- arg_spec - Fix incorrect ``no_log`` warning when a parameter alias is used (https://github.com/ansible/ansible/pull/77576)
|
||||
- callback plugins - do not crash when ``exception`` passed from a module is not a string (https://github.com/ansible/ansible/issues/75726, https://github.com/ansible/ansible/pull/77781).
|
||||
- cli now emits clearer error on no hosts selected
|
||||
- config, ensure that pulling values from configmanager are templated if possible.
|
||||
- display itself should be single source of 'verbosity' level to the engine.
|
||||
- dnf - Condense a few internal boolean returns.
|
||||
- dnf - The ``nobest`` option now also works for ``state=latest``.
|
||||
- dnf - The ``skip_broken`` option is now used in installs (https://github.com/ansible/ansible/issues/73072).
|
||||
- dnf - fix output parsing on systems with ``LANGUAGE`` set to a language other than English (https://github.com/ansible/ansible/issues/78193)
|
||||
- facts - fix IP address discovery for specific interface names (https://github.com/ansible/ansible/issues/77792).
|
||||
- facts - fix processor facts on AIX: correctly detect number of cores and threads, turn ``processor`` into a list (https://github.com/ansible/ansible/pull/78223).
|
||||
- fetch_file - Ensure we only use the filename when calculating a tempfile, and do not incude the query string (https://github.com/ansible/ansible/issues/29680)
|
||||
- fetch_file - properly split files with multiple file extensions (https://github.com/ansible/ansible/pull/75257)
|
||||
- file - setting attributes of symbolic links or files that are hard linked no longer fails when the link target is unspecified (https://github.com/ansible/ansible/issues/76142).
|
||||
- file backed cache plugins now handle concurrent access by making atomic updates to the files.
|
||||
- git module fix docs and proper use of ssh wrapper script and GIT_SSH_COMMAND depending on version.
|
||||
- handlers - fix an issue where the ``flush_handlers`` meta task could not be used with FQCN: ``ansible.builtin.meta`` (https://github.com/ansible/ansible/issues/79023)
|
||||
- if a config setting prevents running ansible it should at least show it's "origin".
|
||||
- include module - add docs url to include deprecation message (https://github.com/ansible/ansible/issues/76684).
|
||||
- items2dict - Handle error if an item is not a dictionary or is missing the required keys (https://github.com/ansible/ansible/issues/70337).
|
||||
- keyword inheritance - Ensure that we do not squash keywords in validate (https://github.com/ansible/ansible/issues/79021)
|
||||
- known_hosts - do not return changed status when a non-existing key is removed (https://github.com/ansible/ansible/issues/78598)
|
||||
- local facts - if a local fact in the facts directory cannot be stated, store an error message as the fact value and emit a warning just as if just as if the facts execution has failed. The stat can fail e.g. on dangling symlinks.
|
||||
- lookup plugin - catch KeyError when lookup returns dictionary (https://github.com/ansible/ansible/pull/77789).
|
||||
- module_utils - Make distro.id() report newer versions of OpenSuSE (at least >=15) also report as ``opensuse``. They report themselves as ``opensuse-leap``.
|
||||
- module_utils.service - daemonize - Avoid modifying the list of file descriptors while iterating over it.
|
||||
- null_representation config entry changed to 'raw' as it must allow 'none/null' and empty string.
|
||||
- omit on keywords was resetting to default value, ignoring inheritance.
|
||||
- paramiko - Add a new option to allow paramiko >= 2.9 to easily work with all devices now that rsa-sha2 support was added to paramiko, which prevented communication with numerous platforms. (https://github.com/ansible/ansible/issues/76737)
|
||||
- paramiko - Add back support for ``ssh_args``, ``ssh_common_args``, and ``ssh_extra_args`` for parsing the ``ProxyCommand`` (https://github.com/ansible/ansible/issues/78750)
|
||||
- password lookup does not ignore k=v arguments anymore.
|
||||
- pause module will now report proper 'echo' vs always being true.
|
||||
- pip - fix cases where resolution of pip Python module fails when importlib.util has not already been imported
|
||||
- plugin loader - Sort results when fuzzy matching plugin names (https://github.com/ansible/ansible/issues/77966).
|
||||
- plugin loader will now load config data for plugin by name instead of by file to avoid issues with the same file being loaded under different names (fqcn + short name).
|
||||
- plugin loader, fix detection for existing configuration before initializing for a plugin
|
||||
- plugin loader, now when skipping a plugin due to an abstract method error we provide that in 'verbose' mode instead of totally obscuring the error. The current implementation assumed only the base classes would trigger this and failed to consider 'in development' plugins.
|
||||
- prevent lusermod from using group name instead of group id (https://github.com/ansible/ansible/pull/77914)
|
||||
- prevent type annotation shim failures from causing runtime failures (https://github.com/ansible/ansible/pull/77860)
|
||||
- psrp connection now handles default to inventory_hostname correctly.
|
||||
- roles, fixed issue with roles loading paths not contained in the role itself when using the `_from` options.
|
||||
- service_facts - Use python re to parse service output instead of grep (https://github.com/ansible/ansible/issues/78541)
|
||||
- setup - Adds a default value to ``lvm_facts`` when lvm or lvm2 is not installed on linux (https://github.com/ansible/ansible/issues/17393)
|
||||
- shell plugins now give a more user friendly error when fed the wrong type of data.
|
||||
- template module/lookup - fix ``convert_data`` option that was effectively always set to True for Jinja macros (https://github.com/ansible/ansible/issues/78141)
|
||||
- unarchive - if unzip is available but zipinfo is not, use unzip -Z instead of zipinfo (https://github.com/ansible/ansible/issues/76959).
|
||||
- uri - properly use uri parameter use_proxy (https://github.com/ansible/ansible/issues/58632)
|
||||
- uri module - failed status when Authentication Bearer used with netrc, because Basic authentication was by default. Fix now allows to ignore netrc by changing use_netrc=False (https://github.com/ansible/ansible/issues/74397).
|
||||
- urls - Guard imports of ``urllib3`` by catching ``Exception`` instead of ``ImportError`` to prevent exceptions in the import process of optional dependencies from preventing use of ``urls.py`` (https://github.com/ansible/ansible/issues/78648)
|
||||
- user - Fix error "Permission denied" in user module while generating SSH keys (https://github.com/ansible/ansible/issues/78017).
|
||||
- user - fix creating a local user if the user group already exists (https://github.com/ansible/ansible/pull/75042)
|
||||
- user module - Replace uses of the deprecated ``spwd`` python module with ctypes (https://github.com/ansible/ansible/pull/78050)
|
||||
- validate-modules - fix validating version_added for new options.
|
||||
- variablemanager, more efficient read of vars files
|
||||
- vault secrets file now executes in the correct context when it is a symlink (not resolved to canonical file).
|
||||
- wait_for - Read file and perform comparisons using bytes to avoid decode errors (https://github.com/ansible/ansible/issues/78214)
|
||||
- winrm - Ensure ``kinit`` is run with the same ``PATH`` env var as the Ansible process
|
||||
- winrm connection now handles default to inventory_hostname correctly.
|
||||
- yaml inventory plugin - fix the error message for non-string hostnames (https://github.com/ansible/ansible/issues/77519).
|
||||
- yum - fix traceback when ``releasever`` is specified with ``latest`` (https://github.com/ansible/ansible/issues/78058)
|
||||
|
||||
New Plugins
|
||||
-----------
|
||||
|
||||
Test
|
||||
~~~~
|
||||
|
||||
- uri - is the string a valid URI
|
||||
- url - is the string a valid URL
|
||||
- urn - is the string a valid URN
|
||||
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,2 @@
|
||||
bugfixes:
|
||||
- ansible-test sanity - correctly report invalid YAML in validate-modules (https://github.com/ansible/ansible/issues/75837).
|
||||
@ -0,0 +1,2 @@
|
||||
bugfixes:
|
||||
- Module and role argument validation - include the valid suboption choices in the error when an invalid suboption is provided.
|
||||
5
changelogs/fragments/76737-paramiko-rsa-sha2.yml
Normal file
5
changelogs/fragments/76737-paramiko-rsa-sha2.yml
Normal file
@ -0,0 +1,5 @@
|
||||
bugfixes:
|
||||
- paramiko - Add a new option to allow paramiko >= 2.9 to easily work with
|
||||
all devices now that rsa-sha2 support was added to paramiko, which
|
||||
prevented communication with numerous platforms.
|
||||
(https://github.com/ansible/ansible/issues/76737)
|
||||
3
changelogs/fragments/78541-service-facts-re.yml
Normal file
3
changelogs/fragments/78541-service-facts-re.yml
Normal file
@ -0,0 +1,3 @@
|
||||
bugfixes:
|
||||
- service_facts - Use python re to parse service output instead of grep
|
||||
(https://github.com/ansible/ansible/issues/78541)
|
||||
3
changelogs/fragments/78750-paramiko-ssh-args-compat.yml
Normal file
3
changelogs/fragments/78750-paramiko-ssh-args-compat.yml
Normal file
@ -0,0 +1,3 @@
|
||||
bugfixes:
|
||||
- paramiko - Add back support for ``ssh_args``, ``ssh_common_args``, and ``ssh_extra_args`` for parsing the ``ProxyCommand``
|
||||
(https://github.com/ansible/ansible/issues/78750)
|
||||
@ -0,0 +1,2 @@
|
||||
bugfixes:
|
||||
- known_hosts - do not return changed status when a non-existing key is removed (https://github.com/ansible/ansible/issues/78598)
|
||||
@ -0,0 +1,2 @@
|
||||
bugfixes:
|
||||
- "Do not crash when templating an expression with a test or filter that is not a valid Ansible filter name (https://github.com/ansible/ansible/issues/78912, https://github.com/ansible/ansible/pull/78913)."
|
||||
3
changelogs/fragments/79021-dont-squash-in-validate.yml
Normal file
3
changelogs/fragments/79021-dont-squash-in-validate.yml
Normal file
@ -0,0 +1,3 @@
|
||||
bugfixes:
|
||||
- keyword inheritance - Ensure that we do not squash keywords in validate
|
||||
(https://github.com/ansible/ansible/issues/79021)
|
||||
2
changelogs/fragments/79023-fix-flush_handlers-fqcn.yml
Normal file
2
changelogs/fragments/79023-fix-flush_handlers-fqcn.yml
Normal file
@ -0,0 +1,2 @@
|
||||
bugfixes:
|
||||
- "handlers - fix an issue where the ``flush_handlers`` meta task could not be used with FQCN: ``ansible.builtin.meta`` (https://github.com/ansible/ansible/issues/79023)"
|
||||
@ -0,0 +1,2 @@
|
||||
bugfixes:
|
||||
- "jinja2_native: preserve quotes in strings (https://github.com/ansible/ansible/issues/79083)"
|
||||
4
changelogs/fragments/79117-bsd-ifconfig-inet-fix.yml
Normal file
4
changelogs/fragments/79117-bsd-ifconfig-inet-fix.yml
Normal file
@ -0,0 +1,4 @@
|
||||
bugfixes:
|
||||
- BSD network facts - Do not assume column indexes, look for ``netmask`` and
|
||||
``broadcast`` for determining the correct columns when parsing ``inet`` line
|
||||
(https://github.com/ansible/ansible/issues/79117)
|
||||
2
changelogs/fragments/79187--wheel-0.38.0.yml
Normal file
2
changelogs/fragments/79187--wheel-0.38.0.yml
Normal file
@ -0,0 +1,2 @@
|
||||
bugfixes:
|
||||
- ansible-test - Add ``wheel < 0.38.0`` constraint for Python 3.6 and earlier.
|
||||
@ -0,0 +1,2 @@
|
||||
bugfixes:
|
||||
- Fixes leftover _valid_attrs usage.
|
||||
@ -0,0 +1,3 @@
|
||||
bugfixes:
|
||||
- file - touch action in check mode was always returning ok. Fix now evaluates the different conditions and
|
||||
returns the appropriate changed status. (https://github.com/ansible/ansible/issues/79360)
|
||||
@ -0,0 +1,3 @@
|
||||
bugfixes:
|
||||
- Fix using ``GALAXY_IGNORE_CERTS`` when downloading tarballs from Galaxy servers (https://github.com/ansible/ansible/issues/79557).
|
||||
- Fix using ``GALAXY_IGNORE_CERTS`` in conjunction with collections in requirements files which specify a specific ``source`` that isn't in the configured servers.
|
||||
2
changelogs/fragments/79681-argspec-param-deprecation.yml
Normal file
2
changelogs/fragments/79681-argspec-param-deprecation.yml
Normal file
@ -0,0 +1,2 @@
|
||||
bugfixes:
|
||||
- "argument spec validation - again report deprecated parameters for Python-based modules. This was accidentally removed in ansible-core 2.11 when argument spec validation was refactored (https://github.com/ansible/ansible/issues/79680, https://github.com/ansible/ansible/pull/79681)."
|
||||
2
changelogs/fragments/79711-fix-play-stats-rescued.yml
Normal file
2
changelogs/fragments/79711-fix-play-stats-rescued.yml
Normal file
@ -0,0 +1,2 @@
|
||||
bugfixes:
|
||||
- Correctly count rescued tasks in play recap (https://github.com/ansible/ansible/issues/79711)
|
||||
2
changelogs/fragments/79717-get-url-ciphers.yml
Normal file
2
changelogs/fragments/79717-get-url-ciphers.yml
Normal file
@ -0,0 +1,2 @@
|
||||
bugfixes:
|
||||
- get_url - Ensure we are passing ciphers to all url_get calls (https://github.com/ansible/ansible/issues/79717)
|
||||
@ -0,0 +1,3 @@
|
||||
bugfixes:
|
||||
- "argument spec validation - ensure that deprecated aliases in suboptions are also reported (https://github.com/ansible/ansible/pull/79740)."
|
||||
- "argument spec validation - fix warning message when two aliases of the same option are used for suboptions to also mention the option's name they are in (https://github.com/ansible/ansible/pull/79740)."
|
||||
@ -0,0 +1,2 @@
|
||||
bugfixes:
|
||||
- Fix traceback when using the ``template`` module and running with ``ANSIBLE_DEBUG=1`` (https://github.com/ansible/ansible/issues/79763)
|
||||
@ -0,0 +1,2 @@
|
||||
bugfixes:
|
||||
- Fix conditionally notifying ``include_tasks` handlers when ``force_handlers`` is used (https://github.com/ansible/ansible/issues/79776)
|
||||
2
changelogs/fragments/79783-acme-test-container.yml
Normal file
2
changelogs/fragments/79783-acme-test-container.yml
Normal file
@ -0,0 +1,2 @@
|
||||
minor_changes:
|
||||
- "ansible-test acme test container - update version to update used Pebble version, underlying Python and Go base containers, and Python requirements (https://github.com/ansible/ansible/pull/79783)."
|
||||
2
changelogs/fragments/79862-fix-varargs.yml
Normal file
2
changelogs/fragments/79862-fix-varargs.yml
Normal file
@ -0,0 +1,2 @@
|
||||
bugfixes:
|
||||
- TaskExecutor - don't ignore templated _raw_params that k=v parser failed to parse (https://github.com/ansible/ansible/issues/79862)
|
||||
2
changelogs/fragments/79968-blocks-handlers-error.yml
Normal file
2
changelogs/fragments/79968-blocks-handlers-error.yml
Normal file
@ -0,0 +1,2 @@
|
||||
minor_changes:
|
||||
- Make using blocks as handlers a parser error (https://github.com/ansible/ansible/issues/79968)
|
||||
2
changelogs/fragments/adjust_config_list.yml
Normal file
2
changelogs/fragments/adjust_config_list.yml
Normal file
@ -0,0 +1,2 @@
|
||||
bugfixes:
|
||||
- ansible-config limit shorthand format to assigned values
|
||||
2
changelogs/fragments/adoc_fix_list.yml
Normal file
2
changelogs/fragments/adoc_fix_list.yml
Normal file
@ -0,0 +1,2 @@
|
||||
bugfixes:
|
||||
- ansible-doc now will correctly display short descriptions on listing filters/tests no matter the directory sorting.
|
||||
@ -0,0 +1,2 @@
|
||||
bugfixes:
|
||||
- ansible-galaxy - make initial call to Galaxy server on-demand only when installing, getting info about, and listing roles.
|
||||
@ -0,0 +1,2 @@
|
||||
bugfixes:
|
||||
- ansible-galaxy - fix installing collections in git repositories/directories which contain a MANIFEST.json file (https://github.com/ansible/ansible/issues/79796).
|
||||
70
changelogs/fragments/ansible-test-container-management.yml
Normal file
70
changelogs/fragments/ansible-test-container-management.yml
Normal file
@ -0,0 +1,70 @@
|
||||
major_changes:
|
||||
- ansible-test - Docker and Podman are now supported on hosts with cgroup v2 unified.
|
||||
Previously only cgroup v1 and cgroup v2 hybrid were supported.
|
||||
- ansible-test - Docker Desktop on WSL2 is now supported (additional configuration required).
|
||||
- ansible-test - Podman on WSL2 is now supported.
|
||||
- ansible-test - Podman now works on container hosts without systemd.
|
||||
Previously only some containers worked, while others required rootfull or rootless Podman,
|
||||
but would not work with both. Some containers did not work at all.
|
||||
- ansible-test - When additional cgroup setup is required on the container host, this will be automatically detected.
|
||||
Instructions on how to configure the host will be provided in the error message shown.
|
||||
minor_changes:
|
||||
- ansible-test - When using Podman, ansible-test will detect if the loginuid used in containers is incorrect.
|
||||
When this occurs a warning is displayed and the container is run with the AUDIT_CONTROL capability.
|
||||
Previously containers would fail under this situation, with no useful warnings or errors given.
|
||||
- ansible-test - Failure to connect to a container over SSH now results in a clear error.
|
||||
Previously tests would be attempted even after initial connection attempts failed.
|
||||
- ansible-test - Warnings are now shown when using containers that were built with VOLUME instructions.
|
||||
- ansible-test - Unit tests now support network disconnect by default when running under Podman.
|
||||
Previously this feature only worked by default under Docker.
|
||||
- ansible-test - Additional log details are shown when containers fail to start or SSH connections to containers fail.
|
||||
- ansible-test - Containers included with ansible-test no longer disable seccomp by default.
|
||||
- ansible-test - A new ``cgroup`` option is available when running custom containers.
|
||||
This option can be used to indicate a container requires cgroup v1 or that it does not use cgroup.
|
||||
The default behavior assumes the container works with cgroup v2 (as well as v1).
|
||||
- ansible-test - A new ``audit`` option is available when running custom containers.
|
||||
This option can be used to indicate whether a container requires the AUDIT_WRITE capability.
|
||||
The default is ``required``, which most containers will need when using Podman.
|
||||
If necessary, the ``none`` option can be used to opt-out of the capability.
|
||||
This has no effect on Docker, which always provides the capability.
|
||||
- ansible-test - More details are provided about an instance when provisioning fails.
|
||||
- ansible-test - Connection failures to remote provisioned hosts now show failure details as a warning.
|
||||
- ansible-test - When setting the max open files for containers, the container host's limit will be checked.
|
||||
If the host limit is lower than the preferred value, it will be used and a warning will be shown.
|
||||
- ansible-test - Use ``stop --time 0`` followed by ``rm`` to remove ephemeral containers instead of ``rm -f``.
|
||||
This speeds up teardown of ephemeral containers.
|
||||
- ansible-test - Reduce the polling limit for SSHD startup in containers from 60 retries to 10.
|
||||
The one second delay between retries remains in place.
|
||||
- ansible-test - Integration tests can be excluded from retries triggered by the ``--retry-on-error`` option by
|
||||
adding the ``retry/never`` alias. This is useful for tests that cannot pass on a retry or are too
|
||||
slow to make retries useful.
|
||||
- ansible-test - The ``ansible-test env`` command now detects and reports the container ID if running in a container.
|
||||
- ansible-test - SSH connections from OpenSSH 8.8+ to CentOS 6 containers now work without additional configuration.
|
||||
However, clients older than OpenSSH 7.0 can no longer connect to CentOS 6 containers as a result.
|
||||
The container must have ``centos6`` in the image name for this work-around to be applied.
|
||||
- ansible-test - SSH shell connections from OpenSSH 8.8+ to ansible-test provisioned network instances now work without additional configuration.
|
||||
However, clients older than OpenSSH 7.0 can no longer open shell sessions for ansible-test provisioned network instances as a result.
|
||||
bugfixes:
|
||||
- ansible-test - Multiple containers now work under Podman without specifying the ``--docker-network`` option.
|
||||
- ansible-test - Prevent concurrent / repeat pulls of the same container image.
|
||||
- ansible-test - Prevent concurrent / repeat inspections of the same container image.
|
||||
- ansible-test - Prevent concurrent execution of cached methods.
|
||||
- ansible-test - Handle server errors when executing the ``docker info`` command.
|
||||
- ansible-test - Show the exception type when reporting errors during instance provisioning.
|
||||
- ansible-test - Pass the ``XDG_RUNTIME_DIR`` environment variable through to container commands.
|
||||
- ansible-test - Connection attempts to managed remote instances no longer abort on ``Permission denied`` errors.
|
||||
- ansible-test - Detection for running in a Podman or Docker container has been fixed to detect more scenarios.
|
||||
The new detection relies on ``/proc/self/mountinfo`` instead of ``/proc/self/cpuset``.
|
||||
Detection now works with custom cgroups and private cgroup namespaces.
|
||||
- ansible-test - Avoid using ``exec`` after container startup when possible.
|
||||
This improves container startup performance and avoids intermittent startup issues with some old containers.
|
||||
known_issues:
|
||||
- ansible-test - Using Docker on systems with SELinux may require setting SELinux to permissive mode.
|
||||
Podman should work with SELinux in enforcing mode.
|
||||
- ansible-test - Additional configuration may be required for certain container host and container combinations.
|
||||
Further details are available in the testing documentation.
|
||||
- ansible-test - Systems with Podman networking issues may be unable to run containers, when previously the issue
|
||||
went unreported. Correct the networking issues to continue using ``ansible-test`` with Podman.
|
||||
- ansible-test - Custom containers with ``VOLUME`` instructions may be unable to start, when previously the containers
|
||||
started correctly. Remove the ``VOLUME`` instructions to resolve the issue. Containers with this
|
||||
condition will cause ``ansible-test`` to emit a warning.
|
||||
@ -0,0 +1,2 @@
|
||||
minor_changes:
|
||||
- ansible-test - Update ``default`` containers to include new ``docs-build`` sanity test requirements.
|
||||
@ -0,0 +1,2 @@
|
||||
minor_changes:
|
||||
- ansible-test - Update ``base`` and ``default`` containers to include Python 3.11.0.
|
||||
4
changelogs/fragments/ansible-test-docs-links.yml
Normal file
4
changelogs/fragments/ansible-test-docs-links.yml
Normal file
@ -0,0 +1,4 @@
|
||||
bugfixes:
|
||||
- ansible-test - Fix broken documentation link for ``aws`` test plugin error messages.
|
||||
minor_changes:
|
||||
- ansible-test - Improve consistency of version specific documentation links.
|
||||
2
changelogs/fragments/ansible-test-errno.yml
Normal file
2
changelogs/fragments/ansible-test-errno.yml
Normal file
@ -0,0 +1,2 @@
|
||||
minor_changes:
|
||||
- ansible-test - Update error handling code to use Python 3.x constructs, avoiding direct use of ``errno``.
|
||||
@ -0,0 +1,2 @@
|
||||
bugfixes:
|
||||
- ansible-test - Added a work-around for a traceback under Python 3.11 when completing certain command line options.
|
||||
2
changelogs/fragments/ansible-test-fix-warning-msg.yml
Normal file
2
changelogs/fragments/ansible-test-fix-warning-msg.yml
Normal file
@ -0,0 +1,2 @@
|
||||
bugfixes:
|
||||
- ansible-test - fix warning message about failing to run an image to include the image name
|
||||
@ -0,0 +1,4 @@
|
||||
bugfixes:
|
||||
- ansible-test - Allow disabled, unsupported, unstable and destructive integration test targets to be selected using their respective prefixes.
|
||||
- ansible-test - Allow unstable tests to run when targeted changes are made and the ``--allow-unstable-changed`` option is specified
|
||||
(resolves https://github.com/ansible/ansible/issues/74213).
|
||||
2
changelogs/fragments/ansible-test-podman-chroot.yml
Normal file
2
changelogs/fragments/ansible-test-podman-chroot.yml
Normal file
@ -0,0 +1,2 @@
|
||||
bugfixes:
|
||||
- ansible-test - Support Podman 4.4.0+ by adding the ``SYS_CHROOT`` capability when running containers.
|
||||
2
changelogs/fragments/ansible-test-pylint-2.15.4.yml
Normal file
2
changelogs/fragments/ansible-test-pylint-2.15.4.yml
Normal file
@ -0,0 +1,2 @@
|
||||
bugfixes:
|
||||
- ansible-test - Update the ``pylint`` sanity test to use version 2.15.4.
|
||||
4
changelogs/fragments/ansible-test-pylint-2.15.5.yml
Normal file
4
changelogs/fragments/ansible-test-pylint-2.15.5.yml
Normal file
@ -0,0 +1,4 @@
|
||||
bugfixes:
|
||||
- ansible-test - Update the ``pylint`` sanity test to use version 2.15.5.
|
||||
- ansible-test - Update the ``pylint`` sanity test requirements to resolve crashes on Python 3.11.
|
||||
(https://github.com/ansible/ansible/issues/78882)
|
||||
2
changelogs/fragments/ansible-test-pylint-command.yml
Normal file
2
changelogs/fragments/ansible-test-pylint-command.yml
Normal file
@ -0,0 +1,2 @@
|
||||
minor_changes:
|
||||
- ansible-test - Improve consistency of executed ``pylint`` commands by making the plugins ordered.
|
||||
4
changelogs/fragments/ansible-test-pypi-proxy-fix.yml
Normal file
4
changelogs/fragments/ansible-test-pypi-proxy-fix.yml
Normal file
@ -0,0 +1,4 @@
|
||||
bugfixes:
|
||||
- ansible-test - Perform PyPI proxy configuration after instances are ready and bootstrapping has been completed.
|
||||
Only target instances are affected, as controller instances were already handled this way.
|
||||
This avoids proxy configuration errors when target instances are not yet ready for use.
|
||||
@ -0,0 +1,3 @@
|
||||
minor_changes:
|
||||
- "ansible-test - Specify the configuration file location required by test plugins when the config file is not found.
|
||||
This resolves issue: https://github.com/ansible/ansible/issues/79411"
|
||||
2
changelogs/fragments/apt_notb.yml
Normal file
2
changelogs/fragments/apt_notb.yml
Normal file
@ -0,0 +1,2 @@
|
||||
bugfixes:
|
||||
- apt module should not traceback on invalid type given as package. issue 78663.
|
||||
2
changelogs/fragments/apt_repo_trust_prefs.yml
Normal file
2
changelogs/fragments/apt_repo_trust_prefs.yml
Normal file
@ -0,0 +1,2 @@
|
||||
minor_changes:
|
||||
- apt_repository will use the trust repo directories in order of preference (more appropriate to less) as they exist on the target.
|
||||
3
changelogs/fragments/become-loop-setting.yml
Normal file
3
changelogs/fragments/become-loop-setting.yml
Normal file
@ -0,0 +1,3 @@
|
||||
bugfixes:
|
||||
- Fix reusing a connection in a task loop that uses a redirected or aliased name - https://github.com/ansible/ansible/issues/78425
|
||||
- Fix setting become activation in a task loop - https://github.com/ansible/ansible/issues/78425
|
||||
2
changelogs/fragments/better-maybe-json-uri.yml
Normal file
2
changelogs/fragments/better-maybe-json-uri.yml
Normal file
@ -0,0 +1,2 @@
|
||||
bugfixes:
|
||||
- uri - improve JSON content type detection
|
||||
2
changelogs/fragments/dont_move_non_files.yml
Normal file
2
changelogs/fragments/dont_move_non_files.yml
Normal file
@ -0,0 +1,2 @@
|
||||
bugfixes:
|
||||
- copy module will no longer move 'non files' set as src when remote_src=true.
|
||||
2
changelogs/fragments/fix_omit_key.yml
Normal file
2
changelogs/fragments/fix_omit_key.yml
Normal file
@ -0,0 +1,2 @@
|
||||
bugfixes:
|
||||
- omit on keywords was resetting to default value, ignoring inheritance.
|
||||
2
changelogs/fragments/fork_safe_stdio.yml
Normal file
2
changelogs/fragments/fork_safe_stdio.yml
Normal file
@ -0,0 +1,2 @@
|
||||
bugfixes:
|
||||
- display - reduce risk of post-fork output deadlocks (https://github.com/ansible/ansible/pull/79522)
|
||||
2
changelogs/fragments/local_bad_user.yml
Normal file
2
changelogs/fragments/local_bad_user.yml
Normal file
@ -0,0 +1,2 @@
|
||||
bugfixes:
|
||||
- connection local now avoids traceback on invalid user being used to execuet ansible (valid in host, but not in container).
|
||||
2
changelogs/fragments/mention_acl.yml
Normal file
2
changelogs/fragments/mention_acl.yml
Normal file
@ -0,0 +1,2 @@
|
||||
bugfixes:
|
||||
- updated error messages to include 'acl' and not just mode changes when failing to set required permissions on remote.
|
||||
2
changelogs/fragments/plugin_loader_fix.yml
Normal file
2
changelogs/fragments/plugin_loader_fix.yml
Normal file
@ -0,0 +1,2 @@
|
||||
bugfixes:
|
||||
- plugin loader, fix detection for existing configuration before initializing for a plugin
|
||||
2
changelogs/fragments/powershell-7.3-fix.yml
Normal file
2
changelogs/fragments/powershell-7.3-fix.yml
Normal file
@ -0,0 +1,2 @@
|
||||
bugfixes:
|
||||
- Ansible.Basic.cs - Ignore compiler warning (reported as an error) when running under PowerShell 7.3.x.
|
||||
2
changelogs/fragments/rejectlist_fix.yml
Normal file
2
changelogs/fragments/rejectlist_fix.yml
Normal file
@ -0,0 +1,2 @@
|
||||
bugfixes:
|
||||
- plugin filter now works with rejectlist as documented (still falls back to blacklist if used).
|
||||
2
changelogs/fragments/strategy_badid_fix.yml
Normal file
2
changelogs/fragments/strategy_badid_fix.yml
Normal file
@ -0,0 +1,2 @@
|
||||
bugfixes:
|
||||
- strategy plugins now correctly identify bad registered variables, even on skip.
|
||||
2
changelogs/fragments/unsorted.yml
Normal file
2
changelogs/fragments/unsorted.yml
Normal file
@ -0,0 +1,2 @@
|
||||
bugfixes:
|
||||
- ansible-inventory will not explicitly sort groups/hosts anymore, giving a chance (depending on output format) to match the order in the input sources.
|
||||
3
changelogs/fragments/v2.14.0_summary.yaml
Normal file
3
changelogs/fragments/v2.14.0_summary.yaml
Normal file
@ -0,0 +1,3 @@
|
||||
release_summary: |
|
||||
| Release Date: 2022-11-07
|
||||
| `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`__
|
||||
3
changelogs/fragments/v2.14.0b1_summary.yaml
Normal file
3
changelogs/fragments/v2.14.0b1_summary.yaml
Normal file
@ -0,0 +1,3 @@
|
||||
release_summary: |
|
||||
| Release Date: 2022-09-26
|
||||
| `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`__
|
||||
3
changelogs/fragments/v2.14.0b2_summary.yaml
Normal file
3
changelogs/fragments/v2.14.0b2_summary.yaml
Normal file
@ -0,0 +1,3 @@
|
||||
release_summary: |
|
||||
| Release Date: 2022-10-03
|
||||
| `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`__
|
||||
3
changelogs/fragments/v2.14.0b3_summary.yaml
Normal file
3
changelogs/fragments/v2.14.0b3_summary.yaml
Normal file
@ -0,0 +1,3 @@
|
||||
release_summary: |
|
||||
| Release Date: 2022-10-10
|
||||
| `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`__
|
||||
3
changelogs/fragments/v2.14.0rc1_summary.yaml
Normal file
3
changelogs/fragments/v2.14.0rc1_summary.yaml
Normal file
@ -0,0 +1,3 @@
|
||||
release_summary: |
|
||||
| Release Date: 2022-10-17
|
||||
| `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`__
|
||||
3
changelogs/fragments/v2.14.0rc2_summary.yaml
Normal file
3
changelogs/fragments/v2.14.0rc2_summary.yaml
Normal file
@ -0,0 +1,3 @@
|
||||
release_summary: |
|
||||
| Release Date: 2022-10-31
|
||||
| `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`__
|
||||
3
changelogs/fragments/v2.14.1_summary.yaml
Normal file
3
changelogs/fragments/v2.14.1_summary.yaml
Normal file
@ -0,0 +1,3 @@
|
||||
release_summary: |
|
||||
| Release Date: 2022-12-06
|
||||
| `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`__
|
||||
3
changelogs/fragments/v2.14.1rc1_summary.yaml
Normal file
3
changelogs/fragments/v2.14.1rc1_summary.yaml
Normal file
@ -0,0 +1,3 @@
|
||||
release_summary: |
|
||||
| Release Date: 2022-11-28
|
||||
| `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`__
|
||||
3
changelogs/fragments/v2.14.2_summary.yaml
Normal file
3
changelogs/fragments/v2.14.2_summary.yaml
Normal file
@ -0,0 +1,3 @@
|
||||
release_summary: |
|
||||
| Release Date: 2023-01-30
|
||||
| `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`__
|
||||
3
changelogs/fragments/v2.14.2rc1_summary.yaml
Normal file
3
changelogs/fragments/v2.14.2rc1_summary.yaml
Normal file
@ -0,0 +1,3 @@
|
||||
release_summary: |
|
||||
| Release Date: 2023-01-23
|
||||
| `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`__
|
||||
3
changelogs/fragments/v2.14.3_summary.yaml
Normal file
3
changelogs/fragments/v2.14.3_summary.yaml
Normal file
@ -0,0 +1,3 @@
|
||||
release_summary: |
|
||||
| Release Date: 2023-02-27
|
||||
| `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`__
|
||||
3
changelogs/fragments/v2.14.3rc1_summary.yaml
Normal file
3
changelogs/fragments/v2.14.3rc1_summary.yaml
Normal file
@ -0,0 +1,3 @@
|
||||
release_summary: |
|
||||
| Release Date: 2023-02-20
|
||||
| `Porting Guide <https://docs.ansible.com/ansible/devel/porting_guides.html>`__
|
||||
2
changelogs/fragments/validate-module-ps-cmdlet.yml
Normal file
2
changelogs/fragments/validate-module-ps-cmdlet.yml
Normal file
@ -0,0 +1,2 @@
|
||||
bugfixes:
|
||||
- ansible-test - Fix validate-modules error when retrieving PowerShell argspec when retrieved inside a Cmdlet
|
||||
9
changelogs/fragments/validate-modules-sidecar.yml
Normal file
9
changelogs/fragments/validate-modules-sidecar.yml
Normal file
@ -0,0 +1,9 @@
|
||||
breaking_changes:
|
||||
- >-
|
||||
ansible-test validate-modules - Removed the ``missing-python-doc`` error code in validate modules,
|
||||
``missing-documentation`` is used instead for missing PowerShell module documentation.
|
||||
minor_changes:
|
||||
- >-
|
||||
ansible-test validate-modules - Added support for validating module documentation stored in a sidecar
|
||||
file alongside the module (``{module}.yml`` or ``{module}.yaml``). Previously these files were ignored
|
||||
and documentation had to be placed in ``{module}.py``.
|
||||
@ -20,11 +20,11 @@
|
||||
'<div id="latest_extra_banner_id" class="admonition important">' +
|
||||
'<br>' +
|
||||
'<p>' +
|
||||
'Immerse yourself in the automation experience October 18-19 in Chicago. ' +
|
||||
'<b>Experience AnsibleFest at Red Hat Summit</b>' +
|
||||
'</p>' +
|
||||
'<p>' +
|
||||
'Join us for AnsibleFest 2022. ' +
|
||||
'<pr>' +
|
||||
'<a href="https://www.ansible.com/ansiblefest?intcmp=7013a000002tuDxAAI">Register now!</a> ' +
|
||||
'We\'re bringing AnsibleFest to Red Hat Summit in Boston, May 23-25. It\'s the best of Fest combined with Red Hat Summit for even more learning and technical engagement. <a href="https://www.redhat.com/en/summit/ansiblefest?intcmp=7013a0000034lvhAAA">Learn more.</a> ' +
|
||||
|
||||
'</p>' +
|
||||
'<br>' +
|
||||
'</div>';
|
||||
|
||||
@ -82,7 +82,7 @@ gettext_generate_rst: collections_meta config cli keywords testing
|
||||
ansible_structure:
|
||||
# We must have python and python-packaging for the version_helper
|
||||
# script so use it for version comparison
|
||||
if python -c "import sys, packaging.version as p; sys.exit(not p.Version('$(MAJOR_VERSION)') > p.Version('2.10'))" ; then \
|
||||
if $(PYTHON) -c "import sys, packaging.version as p; sys.exit(not p.Version('$(MAJOR_VERSION)') > p.Version('2.10'))" ; then \
|
||||
echo "Creating symlinks in ansible_structure"; \
|
||||
ln -sf ../rst/ansible_index.rst rst/index.rst; \
|
||||
ln -sf ../dev_guide/ansible_index.rst rst/dev_guide/index.rst; \
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
docs/docsite/ansible_7.inv
Normal file
BIN
docs/docsite/ansible_7.inv
Normal file
Binary file not shown.
Binary file not shown.
14
docs/docsite/known_good_reqs.txt
Normal file
14
docs/docsite/known_good_reqs.txt
Normal file
@ -0,0 +1,14 @@
|
||||
# pip packages required to build docsite
|
||||
# These requirements drift from test/sanity/code-smell/docs-build.requirements.txt
|
||||
# only for antsibull-docs minor (bugfix) releases.
|
||||
|
||||
jinja2==3.1.2
|
||||
PyYAML==6.0
|
||||
resolvelib==0.8.1
|
||||
rstcheck==3.5.0
|
||||
sphinx == 4.2.0
|
||||
sphinx-ansible-theme==0.9.1
|
||||
sphinx-notfound-page==0.8.3
|
||||
straight.plugin==1.5.0
|
||||
antsibull-docs == 1.7.3 # Drifted from CI. currently approved version
|
||||
|
||||
Binary file not shown.
@ -1,7 +1,8 @@
|
||||
# pip packages required to build docsite
|
||||
# these requirements are as loosely defined as possible
|
||||
# if you want known good versions of these dependencies
|
||||
# use known_good_reqs.txt instead
|
||||
# use test/sanity/code-smell/docs-build.requirements.txt
|
||||
# instead
|
||||
|
||||
antsibull-docs >= 1.0.0, < 2.0.0
|
||||
docutils
|
||||
|
||||
@ -112,6 +112,8 @@ A few recommendations when creating such playbooks, ``hosts:`` should be generic
|
||||
This will have an implied entry in the ``collections:`` keyword of ``my_namespace.my_collection`` just as with roles.
|
||||
|
||||
.. note::
|
||||
Playbook names, like other collection resources, have a restricted set of valid characters.
|
||||
Names can contain only lowercase alphanumeric characters, plus _ and must start with an alpha character. The dash ``-`` character is not valid for playbook names in collections.
|
||||
Playbooks whose names contain invalid characters are not addressable: this is a limitation of the Python importer that is used to load collection resources.
|
||||
* Playbook names, like other collection resources, have a restricted set of valid characters.
|
||||
Names can contain only lowercase alphanumeric characters, plus _ and must start with an alpha character. The dash ``-`` character is not valid for playbook names in collections.
|
||||
Playbooks whose names contain invalid characters are not addressable: this is a limitation of the Python importer that is used to load collection resources.
|
||||
|
||||
* Playbooks in collections do not support 'adjacent' plugins, all plugins must be in the collection specific directories.
|
||||
|
||||
@ -6,6 +6,9 @@ Working with command line tools
|
||||
Most users are familiar with `ansible` and `ansible-playbook`, but those are not the only utilities Ansible provides.
|
||||
Below is a complete list of Ansible utilities. Each page contains a description of the utility and a listing of supported parameters.
|
||||
|
||||
.. note::
|
||||
You should not run most Ansible CLI tools in parallel against the same targets.
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
|
||||
|
||||
@ -27,7 +27,7 @@ Let's say we want to test the ``postgresql_user`` module invoked with the ``name
|
||||
.. code-block:: yaml
|
||||
|
||||
- name: Create PostgreSQL user and store module's output to the result variable
|
||||
postgresql_user:
|
||||
community.postgresql.postgresql_user:
|
||||
name: test_user
|
||||
register: result
|
||||
|
||||
@ -37,7 +37,7 @@ Let's say we want to test the ``postgresql_user`` module invoked with the ``name
|
||||
- result is changed
|
||||
|
||||
- name: Check actual system state with another module, in other words, that the user exists
|
||||
postgresql_query:
|
||||
community.postgresql.postgresql_query:
|
||||
query: SELECT * FROM pg_authid WHERE rolename = 'test_user'
|
||||
register: query_result
|
||||
|
||||
@ -128,8 +128,8 @@ To check a task:
|
||||
#. Expected return values.
|
||||
|
||||
2. If the module changes the system state, check the actual system state using at least one other module. For example, if the module changes a file, we can check that the file has been changed by checking its checksum with the :ref:`stat <ansible_collections.ansible.builtin.stat_module>` module before and after the test tasks.
|
||||
3. Run the same task with ``check_mode: yes`` if check-mode is supported by the module. Check with other modules that the actual system state has not been changed.
|
||||
4. Cover cases when the module must fail. Use the ``ignore_errors: yes`` option and check the returned message with the ``assert`` module.
|
||||
3. Run the same task with ``check_mode: true`` if check-mode is supported by the module. Check with other modules that the actual system state has not been changed.
|
||||
4. Cover cases when the module must fail. Use the ``ignore_errors: true`` option and check the returned message with the ``assert`` module.
|
||||
|
||||
Example:
|
||||
|
||||
@ -139,7 +139,6 @@ Example:
|
||||
abstract_module:
|
||||
...
|
||||
register: result
|
||||
ignore_errors: yes
|
||||
|
||||
- name: Check the task fails and its error message
|
||||
assert:
|
||||
|
||||
@ -5,7 +5,7 @@ Creating new integration tests
|
||||
|
||||
This section covers the following cases:
|
||||
|
||||
- There are no integration tests for a collection / group of modules in a collection at all.
|
||||
- There are no integration tests for a collection or group of modules in a collection at all.
|
||||
- You are adding a new module and you want to include integration tests.
|
||||
- You want to add integration tests for a module that already exists without integration tests.
|
||||
|
||||
@ -36,7 +36,7 @@ We should basically do the following:
|
||||
|
||||
1. Clone the collection to the ``~/ansible_collections/community.abstract`` directory on your local machine.
|
||||
|
||||
2. From the ``~/ansble_collections/community.abstract`` directory, create directories for the ``setup`` target:
|
||||
2. From the ``~/ansible_collections/community.abstract`` directory, create directories for the ``setup`` target:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
@ -63,7 +63,7 @@ This is a very simplified example.
|
||||
|
||||
4. Add the target for the module you are testing.
|
||||
|
||||
Let's say the module is called ``abstact_service_info``. Create the following directory structure in the target:
|
||||
Let's say the module is called ``abstract_service_info``. Create the following directory structure in the target:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
@ -90,9 +90,9 @@ Add the following to ``tests/integration/targets/abstract_service_info/tasks/mai
|
||||
.. code-block:: yaml
|
||||
|
||||
- name: Fetch info from abstract service
|
||||
anstract_service_info:
|
||||
abstract_service_info:
|
||||
host: 127.0.0.1 # We assume the service accepts local connection by default
|
||||
port: 1234 # We assume that the service is listening this port by default
|
||||
port: 1234 # We assume that the service is listening to this port by default
|
||||
register: result # This variable will contain the returned JSON including the server version
|
||||
|
||||
- name: Test the output
|
||||
@ -104,7 +104,7 @@ Add the following to ``tests/integration/targets/abstract_service_info/tasks/mai
|
||||
|
||||
If there are any issues with connectivity (for example, the service is not accepting connections) or with the code, the play will fail.
|
||||
|
||||
Examine the output to see at which step the failure occurred. Investigate the reason, fix, and run again. Repeat the cycle until the test passes.
|
||||
Examine the output to see at which step the failure occurred. Investigate the reason, fix it, and run again. Repeat the cycle until the test passes.
|
||||
|
||||
8. If the test succeeds, write more tests. Refer to the :ref:`Recommendations on coverage<collection_integration_recommendations>` section for details.
|
||||
|
||||
@ -189,7 +189,7 @@ With all of the targets now removed, the current state is as if we do not have a
|
||||
creates: /etc/postgresql/12/
|
||||
|
||||
- name: Start PostgreSQL service
|
||||
service:
|
||||
ansible.builtin.service:
|
||||
name: postgresql
|
||||
state: started
|
||||
|
||||
@ -201,7 +201,7 @@ That is enough for our very basic example.
|
||||
|
||||
mkdir -p tests/integration/targets/postgresql_info/tasks tests/integration/targets/postgresql_info/meta
|
||||
|
||||
11. To make the ``setup_postgresql_db`` target running before the ``postgresql_info`` target as a dependency, create the ``tests/integration/targets/postgresql_info/meta/main.yml`` file and add the following code to it:
|
||||
11. To make the ``setup_postgresql_db`` target run before the ``postgresql_info`` target as a dependency, create the ``tests/integration/targets/postgresql_info/meta/main.yml`` file and add the following code to it:
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
@ -213,9 +213,9 @@ That is enough for our very basic example.
|
||||
.. code-block:: yaml
|
||||
|
||||
- name: Test postgresql_info module
|
||||
become: yes
|
||||
become: true
|
||||
become_user: postgres
|
||||
postgresql_info:
|
||||
community.postgresql.postgresql_info:
|
||||
login_user: postgres
|
||||
login_db: postgres
|
||||
register: result
|
||||
@ -247,4 +247,4 @@ The tests should pass. If we look at the output, we should see something like th
|
||||
"msg": "All assertions passed"
|
||||
}
|
||||
|
||||
If your tests fail when you are working on your project, examine the output to see at which step the failure occurred. Investigate the reason, fix, and run again. Repeat the cycle until the test passes. If the test succeeds, write more tests. Refer to the :ref:`Recommendations on coverage<collection_integration_recommendations>` section for details.
|
||||
If your tests fail when you are working on your project, examine the output to see at which step the failure occurred. Investigate the reason, fix it, and run again. Repeat the cycle until the test passes. If the test succeeds, write more tests. Refer to the :ref:`Recommendations on coverage<collection_integration_recommendations>` section for details.
|
||||
|
||||
@ -3,7 +3,7 @@
|
||||
Running integration tests
|
||||
============================
|
||||
|
||||
In the following examples, we will use ``Docker`` to run integration tests locally. Ensure you have :ref:`collection_prepare_environment` first.
|
||||
In the following examples, we will use ``Docker`` to run integration tests locally. Ensure you :ref:`collection_prepare_environment` first.
|
||||
|
||||
We assume that you are in the ``~/ansible_collections/NAMESPACE/COLLECTION`` directory.
|
||||
|
||||
@ -25,7 +25,7 @@ In the examples above, the ``fedora34`` test image will be automatically downloa
|
||||
|
||||
See the :ref:`list of supported container images <test_container_images>`.
|
||||
|
||||
In some cases, for example, for platform independent tests, the ``default`` test image is required. Use the ``--docker default`` or just ``--docker`` option without specifying a distribution in this case.
|
||||
In some cases, for example, for platform-independent tests, the ``default`` test image is required. Use the ``--docker default`` or just ``--docker`` option without specifying a distribution in this case.
|
||||
|
||||
.. note::
|
||||
|
||||
|
||||
@ -6,7 +6,7 @@ Adding to an existing integration test
|
||||
The test tasks are stored in the ``tests/integration/targets/<target_name>/tasks`` directory.
|
||||
|
||||
The ``main.yml`` file holds test tasks and includes other test files.
|
||||
Look for a suitable test file to integrate your tests or create and include / import a separate test file.
|
||||
Look for a suitable test file to integrate your tests or create and include or import a separate test file.
|
||||
You can use one of the existing test files as a draft.
|
||||
|
||||
When fixing a bug
|
||||
@ -15,9 +15,9 @@ When fixing a bug
|
||||
When fixing a bug:
|
||||
|
||||
1. :ref:`Determine if integration tests for the module exist<collection_integration_prepare>`. If they do not, see :ref:`collection_creating_integration_tests` section.
|
||||
2. Add a task which reproduces the bug to an appropriate file within the ``tests/integration/targets/<target_name>/tasks`` directory.
|
||||
2. Add a task that reproduces the bug to an appropriate file within the ``tests/integration/targets/<target_name>/tasks`` directory.
|
||||
3. :ref:`Run the tests<collection_run_integration_tests>`. The newly added task should fail.
|
||||
4. If they do not fail, re-check if your environment / test task satisfies the conditions described in the ``Steps to Reproduce`` section of the issue.
|
||||
4. If they do not fail, re-check if your environment or test task satisfies the conditions described in the ``Steps to Reproduce`` section of the issue.
|
||||
5. If you reproduce the bug and tests fail, change the code.
|
||||
6. :ref:`Run the tests<collection_run_integration_tests>` again.
|
||||
7. If they fail, repeat steps 5-6 until the tests pass.
|
||||
@ -44,7 +44,7 @@ We will add the following code to the file.
|
||||
|
||||
# https://github.com/ansible-collections/community.postgresql/issues/NUM
|
||||
- name: Test user name containing underscore
|
||||
postgresql_user:
|
||||
community.postgresql.postgresql_user:
|
||||
name: underscored_user
|
||||
register: result
|
||||
|
||||
@ -54,7 +54,7 @@ We will add the following code to the file.
|
||||
- result is changed
|
||||
|
||||
- name: Query the database if the user exists
|
||||
postgresql_query:
|
||||
community.postgresql.postgresql_query:
|
||||
query: SELECT * FROM pg_authid WHERE rolename = 'underscored_user'
|
||||
register: result
|
||||
|
||||
@ -74,7 +74,7 @@ When adding a new feature
|
||||
|
||||
The process described in this section also applies when you want to add integration tests to a feature that already exists, but is missing integration tests.
|
||||
|
||||
If you have not already implemented the new feature, you can start with writing the integration tests for it. Of course they will not work as the code does not yet exist, but it can help you improve your implementation design before you start writing any code.
|
||||
If you have not already implemented the new feature, you can start by writing the integration tests for it. They will not work as the code does not yet exist, but they can help you improve your implementation design before you start writing any code.
|
||||
|
||||
When adding new features, the process of adding tests consists of the following steps:
|
||||
|
||||
@ -108,9 +108,8 @@ We will add the following code to the file.
|
||||
# https://github.com/ansible-collections/community.postgresql/issues/NUM
|
||||
# We should also run the same tasks with check_mode: yes. We omit it here for simplicity.
|
||||
- name: Test for new_option, create new user WITHOUT the attribute
|
||||
postgresql_user:
|
||||
name: test_user
|
||||
add_attribute: no
|
||||
community.postgresql.postgresql_user:
|
||||
name: test_user
|
||||
register: result
|
||||
|
||||
- name: Check the module returns what we expect
|
||||
@ -119,7 +118,7 @@ We will add the following code to the file.
|
||||
- result is changed
|
||||
|
||||
- name: Query the database if the user exists but does not have the attribute (it is NULL)
|
||||
postgresql_query:
|
||||
community.postgresql.postgresql_query:
|
||||
query: SELECT * FROM pg_authid WHERE rolename = 'test_user' AND attribute = NULL
|
||||
register: result
|
||||
|
||||
@ -129,9 +128,8 @@ We will add the following code to the file.
|
||||
- result.query_result.rowcount == 1
|
||||
|
||||
- name: Test for new_option, create new user WITH the attribute
|
||||
postgresql_user:
|
||||
community.postgresql.postgresql_user:
|
||||
name: test_user
|
||||
add_attribute: yes
|
||||
register: result
|
||||
|
||||
- name: Check the module returns what we expect
|
||||
@ -140,7 +138,7 @@ We will add the following code to the file.
|
||||
- result is changed
|
||||
|
||||
- name: Query the database if the user has the attribute (it is TRUE)
|
||||
postgresql_query:
|
||||
community.postgresql.postgresql_query:
|
||||
query: SELECT * FROM pg_authid WHERE rolename = 'test_user' AND attribute = 't'
|
||||
register: result
|
||||
|
||||
@ -153,16 +151,16 @@ Then we :ref:`run the tests<collection_run_integration_tests>` with ``postgresql
|
||||
|
||||
In reality, we would alternate the tasks above with the same tasks run with the ``check_mode: yes`` option to be sure our option works as expected in check-mode as well. See :ref:`Recommendations on coverage<collection_integration_recommendations>` for details.
|
||||
|
||||
If we expect a task to fail, we use the ``ignore_errors: yes`` option and check that the task actually failed and returned the message we expect:
|
||||
If we expect a task to fail, we use the ``ignore_errors: true`` option and check that the task actually failed and returned the message we expect:
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
- name: Test for fail_when_true option
|
||||
postgresql_user:
|
||||
community.postgresql.postgresql_user:
|
||||
name: test_user
|
||||
fail_when_true: yes
|
||||
fail_when_true: true
|
||||
register: result
|
||||
ignore_errors: yes
|
||||
ignore_errors: true
|
||||
|
||||
- name: Check the module fails and returns message we expect
|
||||
assert:
|
||||
|
||||
@ -22,9 +22,13 @@ Releasing major collection versions
|
||||
|
||||
The new version is assumed to be ``X.0.0``.
|
||||
|
||||
1. If you are going to release the ``community.general`` and ``community.network`` collections, create new ``backport-X`` and ``needs_backport_to_stable_X`` labels in the corresponding repositories. Copy the styles and descriptions from the corresponding existing labels.
|
||||
1. Make sure that ``galaxy.yml`` contains the correct version number ``X.0.0``. If that is not the case, create a PR to update it. This will make sanity tests fail for all deprecations that have to be removed in ``X.0.0``, so this is potentially a lot of work and should have been done weeks before the major release.
|
||||
|
||||
2. Ensure you are in a default branch in your local fork. These examples use ``main``.
|
||||
2. Check the collection for deprecations that are planned for removal in the major release that were not reported by the sanity tests. Use past changelogs or run ``grep -r `X.0.0` plugins/`` in the repository.
|
||||
|
||||
3. If you are going to release the ``community.general`` and ``community.network`` collections, create a new ``backport-X`` label in the corresponding repositories. Copy the styles and descriptions from the corresponding existing labels.
|
||||
|
||||
4. Ensure you are in a default branch in your local fork. These examples use ``main``.
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
@ -32,7 +36,7 @@ The new version is assumed to be ``X.0.0``.
|
||||
git checkout main # if needed
|
||||
|
||||
|
||||
3. Update your local fork:
|
||||
5. Update your local fork:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
@ -79,9 +83,17 @@ Creating the changelogs
|
||||
|
||||
5. Switch to the ``stable-X`` branch.
|
||||
|
||||
6. In the ``stable-X`` branch, ensure that ``galaxy.yml`` contains the correct version number ``X.0.0``. If not, update it.
|
||||
6. In the ``stable-X`` branch, verify that ``galaxy.yml`` contains the correct version number ``X.0.0``.
|
||||
|
||||
7. In the ``stable-X`` branch, add a changelog fragment ``changelogs/fragments/X.0.0.yml`` with the content:
|
||||
7. In the ``stable-X`` branch, ensure that ``changelogs/changelog.yml`` contains a correct ancestor's version:
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
ancestor: X-1.0.0
|
||||
releases: {}
|
||||
|
||||
|
||||
8. In the ``stable-X`` branch, add a changelog fragment ``changelogs/fragments/X.0.0.yml`` with the content:
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
@ -90,6 +102,7 @@ Creating the changelogs
|
||||
The format is reStructuredText, but not a list as for regular changelog fragments.
|
||||
This text will be inserted into the changelog.
|
||||
|
||||
|
||||
For example:
|
||||
|
||||
.. code-block:: yaml
|
||||
@ -97,18 +110,18 @@ Creating the changelogs
|
||||
release_summary: This is release 2.0.0 of ``community.foo``, released on YYYY-MM-DD.
|
||||
|
||||
|
||||
8. In the ``stable-X`` branch, generate the changelogs:
|
||||
9. In the ``stable-X`` branch, generate the changelogs:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
antsibull-changelog release --cummulative-release
|
||||
|
||||
|
||||
9. In the ``stable-X`` branch, verify that the ``CHANGELOG.rst`` looks as expected.
|
||||
10. In the ``stable-X`` branch, verify that the ``CHANGELOG.rst`` looks as expected.
|
||||
|
||||
10. In the ``stable-X`` branch, update ``README.md`` so that the changelog link points to ``/tree/stable-X/`` and no longer to ``/tree/main/``, and change badges respectively, for example, in case of AZP, add ``?branchName=stable-X`` to the AZP CI badge (https://dev.azure.com/ansible/community.xxx/_apis/build/status/CI?branchName=stable-X).
|
||||
11. In the ``stable-X`` branch, update ``README.md`` so that the changelog link points to ``/tree/stable-X/`` and no longer to ``/tree/main/``, and change badges respectively, for example, in case of AZP, add ``?branchName=stable-X`` to the AZP CI badge (https://dev.azure.com/ansible/community.xxx/_apis/build/status/CI?branchName=stable-X).
|
||||
|
||||
11. In the ``stable-X`` branch, add, commit, and push changes to ``README.md``, ``CHANGELOG.rst`` and ``changelogs/changelog.yaml``, and potentially deleted/archived fragments to the **upstream** repository, NOT to the ``origin``.
|
||||
12. In the ``stable-X`` branch, add, commit, and push changes to ``README.md``, ``CHANGELOG.rst`` and ``changelogs/changelog.yaml``, and potentially deleted/archived fragments to the **upstream** repository, NOT to the ``origin``.
|
||||
|
||||
|
||||
Publishing the collection
|
||||
@ -123,16 +136,25 @@ Publishing the collection
|
||||
git push upstream NEW_VERSION
|
||||
|
||||
|
||||
2. Wait until the new version is published on the collection's `Ansible Galaxy <https://galaxy.ansible.com/>`_ page. It will appear in a list of tarballs available to download.
|
||||
2. If the collection uses `Zuul <https://github.com/ansible/zuul-config/blob/master/README.rst>`_ for publishing its releases, wait until the new version is published on the collection's `Ansible Galaxy <https://galaxy.ansible.com/>`_ page. It will appear in a list of tarballs available to download.
|
||||
|
||||
3. Add a GitHub release for the new tag. The title should be the version and content, such as - ``See https://github.com/ansible-collections/community.xxx/blob/stable-X/CHANGELOG.rst for all changes``.
|
||||
3. If the release tarball did not appear within several hours after pushing the tag, try to re-tag the release commit and push the tag again. In the ``stable-X`` branch being at the release commit:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
git tag --delete NEW_VERSION
|
||||
git push upstream :NEW_VERSION
|
||||
git tag -a NEW_VERSION -m "comment here" # the comment can be, for example, "community.foo: 2.0.0"
|
||||
git push upstream NEW_VERSION
|
||||
|
||||
|
||||
4. Announce the release through the `Bullhorn Newsletter <https://github.com/ansible/community/wiki/News#the-bullhorn>`_.
|
||||
4. Add a GitHub release for the new tag. The title should be the version and content, such as - ``See https://github.com/ansible-collections/community.xxx/blob/stable-X/CHANGELOG.rst for all changes``.
|
||||
|
||||
5. Announce the release in the pinned release issue/community pinboard of the collection and in the ``#ansible-community`` `Matrix/Libera.Chat IRC channel <https://docs.ansible.com/ansible/devel/community/communication.html#real-time-chat>`_.
|
||||
5. Announce the release through the `Bullhorn Newsletter <https://github.com/ansible/community/wiki/News#the-bullhorn>`_.
|
||||
|
||||
6. In the ``stable-X`` branch, update the version in ``galaxy.yml`` to the next **expected** version, for example, ``X.1.0``. Add, commit and push to the **upstream** repository.
|
||||
6. Announce the release in the pinned release issue/community pinboard of the collection and in the ``#ansible-community`` `Matrix/Libera.Chat IRC channel <https://docs.ansible.com/ansible/devel/community/communication.html#real-time-chat>`_.
|
||||
|
||||
7. In the ``stable-X`` branch, update the version in ``galaxy.yml`` to the next **expected** version, for example, ``X.1.0``. Add, commit and push to the **upstream** repository.
|
||||
|
||||
|
||||
Releasing minor collection versions
|
||||
@ -213,7 +235,7 @@ Publishing the collection
|
||||
Releasing patch versions
|
||||
-------------------------
|
||||
|
||||
The new version is assumed to be ``X.Y.Z``, and the previous patch version is assumed to be ``X.Y.z`` with ``z < Z``. ``z`` is frequently``0`` snce patch releases are uncommon.
|
||||
The new version is assumed to be ``X.Y.Z``, and the previous patch version is assumed to be ``X.Y.z`` with ``z < Z``. ``z`` is frequently``0`` since patch releases are uncommon.
|
||||
|
||||
Releasing when more minor versions are expected
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
@ -10,20 +10,20 @@ Reviewing bug reports
|
||||
|
||||
When users report bugs, verify the behavior reported. Remember always to be kind with your feedback.
|
||||
|
||||
* Did the user made a mistake in the code they put in the Steps to reproduce issue's section? We often see user errors reported as bugs.
|
||||
* Did the user make a mistake in the code they put in the Steps to Reproduce issue section? We often see user errors reported as bugs.
|
||||
* Did the user assume an unexpected behavior? Ensure that the related documentation is clear. If not, the issue is useful to help us improve documentation.
|
||||
* Is there a minimal reproducer? If not, ask the reporter to reduce the complexity to help pinpoint the issue.
|
||||
* Is the issue a consequence of wrong-configured environment?
|
||||
* If it seems to be real bug, does the behaviour still exist in the most recent release or the development branch?
|
||||
* Is the issue a consequence of a misconfigured environment?
|
||||
* If it seems to be a real bug, does the behaviour still exist in the most recent release or the development branch?
|
||||
* Reproduce the bug, or if you do not have a suitable infrastructure, ask other contributors to reproduce the bug.
|
||||
|
||||
|
||||
Reviewing suggested changes
|
||||
---------------------------
|
||||
|
||||
When reviewing PRs, verify the suggested changes first. Do not:
|
||||
When reviewing PRs, verify that the suggested changes do not:
|
||||
|
||||
* Unnecessarily break backwards compatibility.
|
||||
* Unnecessarily break backward compatibility.
|
||||
* Bring more harm than value.
|
||||
* Introduce non-idempotent solutions.
|
||||
* Duplicate already existing features (inside or outside the collection).
|
||||
@ -32,7 +32,7 @@ When reviewing PRs, verify the suggested changes first. Do not:
|
||||
|
||||
Other standards to check for in a PR include:
|
||||
|
||||
* A pull request MUST NOT contain a mix of bugfixes and new features that are not tightly related. If yes, ask the author to split the pull request into separate PRs.
|
||||
* A pull request MUST NOT contain a mix of bug fixes and new features that are not tightly related. If yes, ask the author to split the pull request into separate PRs.
|
||||
* If the pull request is not a documentation fix, it must include a :ref:`changelog fragment <collection_changelog_fragments>`. Check the format carefully as follows:
|
||||
|
||||
* New modules and plugins (that are not jinja2 filter and test plugins) do not need changelog fragments.
|
||||
@ -45,7 +45,7 @@ Other standards to check for in a PR include:
|
||||
* If a new plugin is added, it is one of the `allowed plugin types <https://github.com/ansible-collections/overview/blob/main/collection_requirements.rst#modules-plugins>`_.
|
||||
* Documentation, examples, and return sections use FQCNs for the ``M(..)`` :ref:`format macros <module_documents_linking>` when referring to modules.
|
||||
* Modules and plugins from ansible-core use ``ansible.builtin.`` as an FQCN prefix when mentioned.
|
||||
* When a new option, module, plugin, or return value is added, the corresponding documentation or return sections use ``version_added:`` containing the *collection* version which they will be first released in.
|
||||
* When a new option, module, plugin, or return value is added, the corresponding documentation or return sections use ``version_added:`` containing the *collection* version in which they will be first released.
|
||||
|
||||
* This is typically the next minor release, sometimes the next major release. For example: if 2.7.5 is the current release, the next minor release will be 2.8.0, and the next major release will be 3.0.0).
|
||||
|
||||
@ -70,5 +70,5 @@ Review for merge commits and breaking changes
|
||||
---------------------------------------------
|
||||
|
||||
* The pull request does not contain merge commits. See the GitHub warnings at the bottom of the pull request. If merge commits are present, ask the author to rebase the pull request branch.
|
||||
* If the pull request contains breaking changes, ask the author and the collection maintainers if it really is needed, and there is a way not to introduce breaking changes. If breaking changes are present, they MUST only appear in the next major release and MUST NOT appear in a minor or patch release. The only exception is breaking changes caused by security fixes that are absolutely necessary to fix the security issue.
|
||||
* If the pull request contains breaking changes, ask the author and the collection maintainers if it really is needed, and if there is a way not to introduce breaking changes. If breaking changes are present, they MUST only appear in the next major release and MUST NOT appear in a minor or patch release. The only exception is breaking changes caused by security fixes that are absolutely necessary to fix the security issue.
|
||||
|
||||
|
||||
@ -46,6 +46,8 @@ We do not merge every PR. See :ref:`collection_quickstart` for tips to make you
|
||||
Creating changelog fragments
|
||||
-----------------------------
|
||||
|
||||
Most changelogs should emphasize the impact of the change on the end user of the feature or collection, unless the change impacts developers directly. Consider what the user needs to know about this change and write the changelog to convey that detail.
|
||||
|
||||
Changelogs help users and developers keep up with changes to Ansible collections. Many collections build changelogs for each release from fragments. For collections that use this model, you **must** add a changelog fragment to any PR that changes functionality or fixes a bug.
|
||||
|
||||
You do not need a changelog fragment for PRs that:
|
||||
@ -149,10 +151,19 @@ A single changelog fragment may contain multiple sections but most will only con
|
||||
- idrac_user - module may error out with the message ``unable to perform the import or export operation`` because there are pending attribute changes or a configuration job is in progress. Wait for the job to complete and run the task again.(https://github.com/dell/dellemc-openmanage-ansible-modules/pull/303).
|
||||
|
||||
|
||||
**trivial**
|
||||
Changes where a formal release changelog entry isn't required. ``trivial`` changelog fragments are excluded from the published changelog output and may be used for changes such as housekeeping, documentation and test only changes.
|
||||
You can use ``trivial`` for collections that require a changelog fragment for each pull request.
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
trivial:
|
||||
- aws_ec2 - fix broken integration test (https://github.com/ansible-collections/amazon.aws/pull/1269).
|
||||
|
||||
|
||||
Each changelog entry must contain a link to its issue between parentheses at the end. If there is no corresponding issue, the entry must contain a link to the PR itself.
|
||||
|
||||
Most changelog entries are ``bugfixes`` or ``minor_changes``. You can also use ``trivial`` for any collection that requires a changelog fragment for each pull request. ``trivial`` changelog fragments are excluded from the changelog output.
|
||||
Most changelog entries are ``bugfixes`` or ``minor_changes``.
|
||||
|
||||
|
||||
Changelog fragment entry format
|
||||
|
||||
@ -22,8 +22,7 @@ Your first post to the mailing list will be moderated (to reduce spam), so pleas
|
||||
* `Ansible Announce list <https://groups.google.com/forum/#!forum/ansible-announce>`_ is a read-only list that shares information about new releases of Ansible, and also rare infrequent event information, such as announcements about an upcoming AnsibleFest, which is our official conference series. Worth subscribing to!
|
||||
* `Ansible AWX List <https://groups.google.com/forum/#!forum/awx-project>`_ is for `Ansible AWX <https://github.com/ansible/awx>`_
|
||||
* `Ansible Development List <https://groups.google.com/forum/#!forum/ansible-devel>`_ is for questions about developing Ansible modules (mostly in Python), fixing bugs in the Ansible core code, asking about prospective feature design, or discussions about extending Ansible or features in progress.
|
||||
* `Ansible Lockdown List <https://groups.google.com/forum/#!forum/ansible-lockdown>`_ is for all things related to Ansible Lockdown projects, including DISA STIG automation and CIS Benchmarks.
|
||||
* `Ansible Outreach List <https://groups.google.com/forum/#!forum/ansible-outreach>`_ help with promoting Ansible and `Ansible Meetups <https://ansible.meetup.com/>`_
|
||||
* `Ansible Outreach List <https://groups.google.com/forum/#!forum/ansible-outreach>`_ help with promoting Ansible and `Ansible Meetups <https://www.meetup.com/topics/ansible/>`_
|
||||
* `Ansible Project List <https://groups.google.com/forum/#!forum/ansible-project>`_ is for sharing Ansible tips, answering questions about playbooks and roles, and general user discussion.
|
||||
* `Molecule Discussions <https://github.com/ansible-community/molecule/discussions>`_ is designed to aid with the development and testing of Ansible roles with Molecule.
|
||||
|
||||
@ -49,14 +48,18 @@ The Ansible community maintains its own Matrix homeserver at ``ansible.im``, how
|
||||
Matrix chat supports:
|
||||
|
||||
* persistence (when you log on, you see all messages since you last logged off)
|
||||
* edits (so you can fix your typos)
|
||||
* edits (Lets you fix typos and so on. **NOTE** Each edit you make on Matrix re-sends the message to IRC. Please try to avoid multiple edits!)
|
||||
* replies to individual users
|
||||
* reactions/emojis
|
||||
* bridging to IRC
|
||||
* no line limits
|
||||
* images
|
||||
|
||||
The room links in the :ref:`general_channels` will take you directly to the relevant rooms. For more information, see the community-hosted `Matrix FAQ <https://hackmd.io/@ansible-community/community-matrix-faq>`_.
|
||||
The room links in the :ref:`general_channels` or in the :ref:`working_group_list` list will take you directly to the relevant rooms.
|
||||
|
||||
If there is no appropriate room for your community, please create it.
|
||||
|
||||
For more information, see the community-hosted `Matrix FAQ <https://hackmd.io/@ansible-community/community-matrix-faq>`_.
|
||||
|
||||
Ansible community on IRC
|
||||
------------------------
|
||||
@ -67,7 +70,7 @@ The Ansible community maintains several IRC channels on `irc.libera.chat <https:
|
||||
|
||||
IRC chat supports:
|
||||
|
||||
* no persistence (you only see messages when you are logged on, unless you add a bouncer)
|
||||
* no persistence (you only see messages when you are logged on unless you add a bouncer)
|
||||
* simple text interface
|
||||
* bridging from Matrix
|
||||
|
||||
@ -79,6 +82,8 @@ Our IRC channels may require you to register your IRC nickname. If you receive a
|
||||
|
||||
as described in the `libera.chat docs <https://libera.chat/guides/findingchannels>`_.
|
||||
|
||||
Our channels record history on the Matrix side. The channel history can be viewed in a browser - all channels will report an appropriate link to ``chat.ansible.im`` in their Chanserv entrymsg upon joining the room. Alternatively, a URL of the form ``https://chat.ansible.im/#/room/# {IRC channel name}:libera.chat`` will also work, for example - for the #ansible-docs channel it would be `https://app.element.io/#/room/#ansible-docs:libera.chat`.
|
||||
|
||||
.. _general_channels:
|
||||
|
||||
General channels
|
||||
@ -100,8 +105,8 @@ Working groups
|
||||
|
||||
Many of our community `Working Groups <https://github.com/ansible/community/wiki#working-groups>`_ meet in chat. If you want to get involved in a working group, join the Matrix room or IRC channel where it meets or comment on the agenda.
|
||||
|
||||
- `AAP Configuration as Code <https://github.com/redhat-cop/controller_configuration/wiki/AAP-Configuration-as-Code>`_ - Matrix: `#aap_config_as_code:ansible.com <https://matrix.to/#/#aap_config_as_code:ansible.com>`_
|
||||
- `Amazon (AWS) Working Group <https://github.com/ansible/community/wiki/AWS>`_ - Matrix: `#aws:ansible.com <https://matrix.to:/#/#aws:ansible.com>`_ | IRC: ``#ansible-aws``
|
||||
- `Ansible Lockdown Working Group <https://github.com/ansible/community/wiki/Lockdown>`_ (`Security playbooks/roles <https://github.com/ansible/ansible-lockdown>`_) - Matrix: `#lockdown:ansible.com <https://matrix.to:/#/#lockdown:ansible.com>`_ | IRC: ``#ansible-lockdown``
|
||||
- `AWX Working Group <https://github.com/ansible/awx>`_ - Matrix: `#awx:ansible.com <https://matrix.to:/#/#awx:ansible.com>`_ | IRC: ``#ansible-awx``
|
||||
- `Azure Working Group <https://github.com/ansible/community/wiki/Azure>`_ - Matrix: `#azure:ansible.com <https://matrix.to:/#/#azure:ansible.com>`_ | IRC: ``#ansible-azure``
|
||||
- `Community Working Group <https://github.com/ansible/community/wiki/Community>`_ (including Meetups) - Matrix: `#community:ansible.com <https://matrix.to:/#/#community:ansible.com>`_ | IRC: ``#ansible-community``
|
||||
@ -116,9 +121,12 @@ Many of our community `Working Groups <https://github.com/ansible/community/wiki
|
||||
- `Kubernetes Working Group <https://github.com/ansible/community/wiki/Kubernetes>`_ - Matrix: `#kubernetes:ansible.com <https://matrix.to:/#/#kubernetes:ansible.com>`_ | IRC: ``#ansible-kubernetes``
|
||||
- `Linode Working Group <https://github.com/ansible/community/wiki/Linode>`_ - Matrix: `#linode:ansible.com <https://matrix.to:/#/#linode:ansible.com>`_ | IRC: ``#ansible-linode``
|
||||
- `Molecule Working Group <https://github.com/ansible/community/wiki/Molecule>`_ (`testing platform for Ansible playbooks and roles <https://molecule.readthedocs.io>`_) - Matrix: `#molecule:ansible.im <https://matrix.to:/#/#molecule:ansible.im>`_ | IRC: ``#ansible-molecule``
|
||||
- `MySQL Working Group <https://github.com/ansible-collections/community.mysql/wiki/MySQL-Working-Group>`_ - Matrix: `#mysql:ansible.com <https://matrix.to:/#/#mysql:ansible.com>`_
|
||||
- `Network Working Group <https://github.com/ansible/community/wiki/Network>`_ - Matrix: `#network:ansible.com <https://matrix.to:/#/#network:ansible.com>`_ | IRC: ``#ansible-network``
|
||||
- `PostgreSQL Working Group <https://github.com/ansible-collections/community.postgresql/wiki/PostgreSQL-Working-Group>`_ - Matrix: `#postgresql:ansible.com <https://matrix.to:/#/#postgresql:ansible.com>`_
|
||||
- `Remote Management Working Group <https://github.com/ansible/community/issues/409>`_ - Matrix: `#devel:ansible.com <https://matrix.to:/#/#devel:ansible.com>`_ | IRC: ``#ansible-devel``
|
||||
- `Security Automation Working Group <https://github.com/ansible/community/wiki/Security-Automation>`_ - Matrix: `#security-automation:ansible.com <https://matrix.to/#/#security-automation:ansible.com>`_ | IRC: ``#ansible-security``
|
||||
- `Storage Working Group <https://github.com/ansible/community/wiki/Storage>`_ - Matrix: `#storage:ansible.com <https://matrix.to/#/#storage:ansible.com>`_ | IRC: ``#ansible-storage``
|
||||
- `Testing Working Group <https://github.com/ansible/community/wiki/Testing>`_ - Matrix: `#devel:ansible.com <https://matrix.to:/#/#devel:ansible.com>`_ | IRC: ``#ansible-devel``
|
||||
- `VMware Working Group <https://github.com/ansible/community/wiki/VMware>`_ - Matrix: `#vmware:ansible.com <https://matrix.to:/#/#vmware:ansible.com>`_ | IRC: ``#ansible-vmware``
|
||||
- `Windows Working Group <https://github.com/ansible/community/wiki/Windows>`_ - Matrix: `#windows:ansible.com <https://matrix.to:/#/#windows:ansible.com>`_ | IRC: ``#ansible-windows``
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
Contributor path
|
||||
****************
|
||||
|
||||
This section describes the contributor journey from the beginning to becoming a leader who helps shape the future of Ansible. You can use this path as a roadmap for your long-term participation.
|
||||
This section describes the contributor's journey from the beginning to becoming a leader who helps shape the future of Ansible. You can use this path as a roadmap for your long-term participation.
|
||||
|
||||
Any contribution to the project, even a small one, is very welcome and valuable. Any contribution counts, whether it's feedback on an issue, a pull request, a topic or documentation change, or a coding contribution. When you contribute regularly, your proficiency and judgment in the related area increase and, along with this, the importance of your presence in the project.
|
||||
|
||||
@ -39,16 +39,16 @@ Specific knowledge for code developers
|
||||
Code development requires the most technical knowledge. Let's sort out what an Ansible developer should learn.
|
||||
|
||||
|
||||
You should understand at least *basics* of the following tools:
|
||||
You should understand at least the *basics* of the following tools:
|
||||
|
||||
- `Python programming language <https://docs.python.org/3/tutorial/>`_
|
||||
- `Git <https://git-scm.com/docs/gittutorial>`_
|
||||
- `GitHub collaborative development model through forks and pull requests <https://docs.github.com/en/github/collaborating-with-pull-requests/getting-started/about-collaborative-development-models>`_
|
||||
|
||||
You can learn these tools more in depth when working on your first contributions.
|
||||
You can learn these tools more in-depth when working on your first contributions.
|
||||
|
||||
|
||||
Each Ansible project has its own set of contributor guidelines. Familarize yourself with these as you prepare your first contributions.
|
||||
Each Ansible project has its own set of contributor guidelines. Familiarize yourself with these as you prepare your first contributions.
|
||||
|
||||
* :ref:`Ansible Core development <developer_guide>`.
|
||||
* :ref:`Ansible collection development <developing_collections>` and the collection-level contributor guidelines in the collection repository.
|
||||
@ -57,9 +57,19 @@ Each Ansible project has its own set of contributor guidelines. Familarize yours
|
||||
Making your first contribution
|
||||
==============================
|
||||
|
||||
You can find some ideas on how you can contribute in :ref:`how_can_i_help` and the `collection repository <https://github.com/ansible-collections/>`_ ``README`` and ``CONTRIBUTING`` files. To make your first experience as smooth as possible, read the repository documentation carefully, then ask the repository maintainers for guidance if you have any questions.
|
||||
You can find some ideas on how you can contribute in :ref:`how_can_i_help`.
|
||||
|
||||
You can also look for GitHub issues labeled with the ``easyfix``, ``good_first_issue``, and ``docs`` labels. Add a comment on the GitHub issue to say you are looking at it and to ask for help if you need it.
|
||||
If you are interested in contributing to collections, take a look at :ref:`collection contributions<collections_contributions>` and the `collection repository <https://github.com/ansible-collections/>`_'s ``README`` and ``CONTRIBUTING`` files. To make your first experience as smooth as possible, read the repository documentation carefully, then ask the repository maintainers for guidance if you have any questions.
|
||||
|
||||
Take a look at GitHub issues labeled with the ``easyfix`` and ``good_first_issue`` labels for:
|
||||
|
||||
- `Ansible collections repositories <https://github.com/search?q=user%3Aansible-collections+label%3Aeasyfix%2C%22good+first+issue%22+state%3Aopen&type=Issues>`_
|
||||
- `All other Ansible projects <https://github.com/search?q=user%3Aansible+user%3Aansible-community+label%3Aeasyfix%2C%22good+first+issue%22+state%3Aopen&type=Issues>`_
|
||||
|
||||
Issues labeled with the ``docs`` label in `Ansible collections <https://github.com/search?q=user%3Aansible-collections+label%3Adocs+state%3Aopen+type%3Aissue&type=Issues>`_ and `other <https://github.com/search?q=user%3Aansible+user%3Aansible-community+label%3Adocs+state%3Aopen+type%3Aissue&type=Issues>`_ Ansible projects can be also good to start with.
|
||||
|
||||
When you choose an issue to work on, add a comment directly on the GitHub issue to say you are looking at it and let others know to avoid conflicting work.
|
||||
You can also ask for help in a comment if you need it.
|
||||
|
||||
Continue to contribute
|
||||
======================
|
||||
@ -72,18 +82,18 @@ See :ref:`communication` for ways to communicate and engage with the Ansible com
|
||||
Teach others
|
||||
============
|
||||
|
||||
Share your experience with other contributors through `improving documentation <ommunity_documentation_contributions>`, answering question from other contributors and users on `Matrix/Libera.Chat IRC <communicate>`, giving advice in issues and pull requests, and discussing the `Community Topics <https://github.com/ansible-community/community-topics/issues>`_.
|
||||
Share your experience with other contributors through :ref:`improving documentation<community_documentation_contributions>`, answering questions from other contributors and users on :ref:`Matrix/Libera.Chat IRC<communication>`, giving advice on issues and pull requests, and discussing `Community Topics <https://github.com/ansible-community/community-topics/issues>`_.
|
||||
|
||||
Become a collection maintainer
|
||||
===============================
|
||||
|
||||
If you are a code contributor to a collection, you can get extended permissions in the repository and become a maintainer. A collection maintainer is a contributor trusted by the community who makes significant and regular contributions to the project and showed themselves as a specialist in the related area. See :ref:`maintainers` for details.
|
||||
|
||||
For some collections that use the `collection bot <https://github.com/ansible-community/collection_bot>`_ , such as `community.general <https://github.com/ansible-collections/community.general>`_ and `community.network <https://github.com/ansible-collections/community.network>`_, you can have different levels of access and permissions.
|
||||
For some collections that use the `collection bot <https://github.com/ansible-community/collection_bot>`_, such as `community.general <https://github.com/ansible-collections/community.general>`_ and `community.network <https://github.com/ansible-collections/community.network>`_, you can have different levels of access and permissions.
|
||||
|
||||
* `module_maintainers` - The stage prior to becoming a collection maintainer. The file is usually a module or plugin. File maintainers have indirect commit rights.
|
||||
* :ref:`module_maintainers` - The stage prior to becoming a collection maintainer. The file is usually a module or plugin. File maintainers have indirect commit rights.
|
||||
* supershipit permissions - Similar to being a file maintainer but the scope where a maintainer has the indirect commit is the whole repository.
|
||||
* ``triage`` - Access to the repository that allows contributors manage issues and pull requests.
|
||||
* ``triage`` - Access to the repository that allows contributors to manage issues and pull requests.
|
||||
* ``write`` access to the repository also known as ``commit``. In other words, become a committer. This access level allows contributors to merge pull requests to the development branch as well as perform all the other activities listed in the :ref:`maintainers`.
|
||||
|
||||
For information about permission levels, see the `GitHub official documentation <https://docs.github.com/en/organizations/managing-access-to-your-organizations-repositories/repository-permission-levels-for-an-organization>`_.
|
||||
@ -95,10 +105,10 @@ Become a steering committee member
|
||||
|
||||
You do NOT have to be a programmer to become a steering committee member.
|
||||
|
||||
The :ref:`Steering Committee <community_steering_committee>` member status reflects the highest level of trust which allows contributors to lead the project through making very important `decisions <https://github.com/ansible-community/community-topics/issues>`_ for the Ansible project. The Committee members are the community leaders who shape the project's future and the future of automation in the IT world in general.
|
||||
The :ref:`Steering Committee <community_steering_committee>` member status reflects the highest level of trust which allows contributors to lead the project by making very important `decisions <https://github.com/ansible-community/community-topics/issues>`_ for the Ansible project. The Committee members are the community leaders who shape the project's future and the future of automation in the IT world in general.
|
||||
|
||||
To reach the status, as the current Committee members did before getting it, along with the things mentioned in this document, you should:
|
||||
|
||||
* Subscribe to, comment on, and vote on the `Community Topics <https://github.com/ansible-community/community-topics/issues>`_.
|
||||
* Propose your topics.
|
||||
* If time permits, join the `Community meetings <https://github.com/ansible/community/blob/main/meetings/README.md#schedule>`_ Note this is **NOT** a requirement.
|
||||
* If time permits, join the `Community meetings <https://github.com/ansible/community/blob/main/meetings/README.md#schedule>`_. Note this is **NOT** a requirement.
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user