Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
#!/usr/bin/python3
# -*- coding: utf-8 -*-
# (c) 2020 Matt Martz <matt@sivel.net>
# GNU General Public License v3.0+
# (see https://www.gnu.org/licenses/gpl-3.0.txt)
import argparse
import json
import re
import sys
from pathlib import Path
from urllib.request import urlopen
from git import Repo # gitpython
import yaml # pyyaml
IGNORE_PATHS = set((
'test/sanity/ignore.txt',
'docs/docsite/rst/porting_guides/porting_guide_2.10.rst',
'lib/ansible/config/module_defaults.yml',
))
IGNORE_COLLECTIONS = set((
'sivel.jinja2',
))
EMPTY_SHA256 = (
"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
)
parser = argparse.ArgumentParser()
parser.add_argument('path', help='Path to ansible-base source', type=Path)
args = parser.parse_args()
repo = Repo(str(args.path))
core_files = set()
class JSONEncoder(json.JSONEncoder):
def default(self, o):
if isinstance(o, set):
return list(o)
return json.JSONEncoder.default(self, o)
def is_core_file(path):
if path in core_files:
return True
full_path = args.path / path
if full_path.exists():
core_files.add(path)
return True
return False
def get_collections(pattern):
f = urlopen(
'https://sivel.eng.ansible.com/api/v1/collections/provides',
data=json.dumps({'path': pattern.pattern}).encode()
)
data = json.load(f)
collections = set()
for name, info in data.items():
if name in IGNORE_COLLECTIONS or name.startswith('testing.'):
continue
files = info['files']
if (len(files) == 1 and files[0]['chksum_sha256'] == EMPTY_SHA256 and
files[0]['name'].endswith('/__init__.py')):
continue
collections.add(name)
return collections
def path_pattern(path):
try:
path = Path(path).relative_to('lib/ansible/')
except ValueError:
path = Path(path)
parts = str(path).split('/')
if parts[0] in ('modules', 'module_utils'):
pattern = re.compile(
r'plugins\/{}\/{}'.format(
re.escape(parts[0]),
re.escape(path.name)
)
)
elif parts[0] == 'plugins':
pattern = re.compile(
re.escape(str(path))
)
elif parts[0] == 'test':
parts[0] = 'tests'
pattern = re.compile(
re.escape('/'.join(parts))
)
else:
raise ValueError
return pattern
def get_changed_files(path):
for commit, _ in repo.blame('HEAD', path):
yield from commit.stats.files.keys()
moves = {}
fragment_dir = args.path / 'changelogs' / 'fragments'
for fragment in fragment_dir.iterdir():
rel_frag = str(fragment.relative_to(args.path))
changed_files = sorted(set(get_changed_files(rel_frag)))
for filename in changed_files:
if filename.startswith('changelogs/'):
continue
if filename in IGNORE_PATHS:
continue
if is_core_file(filename):
collections = set(('ansible.builtin',))
pattern = re.compile(
'core - {}'.format(re.escape(filename))
)
else:
try:
pattern = path_pattern(filename)
except ValueError:
continue
collections = get_collections(pattern)
if collections:
print(rel_frag, file=sys.stderr)
print(
' {!r} - {}'.format(collections, pattern.pattern),
file=sys.stderr
)
try:
moves[rel_frag]['collections'].update(collections)
except KeyError:
clog_data = yaml.safe_load(fragment.read_text())
moves[rel_frag] = {
'collections': collections,
'changelog': clog_data,
}
print(file=sys.stderr)
print(json.dumps(moves, sort_keys=True, indent=4, cls=JSONEncoder))
{
"changelogs/fragments/39295-grafana_dashboard.yml": {
"changelog": {
"bugfixes": [
"Replace parameter 'message' with appropriate parameter name in several modules, as 'message' is used internally in Ansible Core engine (https://github.com/ansible/ansible/issues/39295)."
],
"minor_changes": [
"Added invalid-argument-name spec in ansible-test."
]
},
"collections": [
"community.grafana",
"community.general",
"ansible.builtin"
]
},
"changelogs/fragments/47050-copy_ensure-_original_basename-is-set.yaml": {
"changelog": {
"bugfixes": [
"copy - Fixed copy module not working in case that remote_src is enabled and dest ends in a / (https://github.com/ansible/ansible/pull/47238)"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/51489-apt-not-honor-update-cache.yml": {
"changelog": {
"bugfixes": [
"apt - Fixed the issue the cache being updated while auto-installing its dependencies even when ``update_cache`` is set to false."
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/54095-import_tasks-fix_no_task.yml": {
"changelog": {
"minor_changes": [
"Raise error when no task file is provided to import_tasks (https://github.com/ansible/ansible/issues/54095)."
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/56629-synchronize-password-auth.yaml": {
"changelog": {
"bugfixes": [
"synchronize - fix password authentication on Python 2 (https://github.com/ansible/ansible/issues/56629)",
"AnsibleModule.run_command() - set ``close_fds`` to ``False`` on Python 2 if ``pass_fds`` are passed to ``run_command()``. Since ``subprocess.Popen()`` on Python 2 does not have the ``pass_fds`` option, there is no way to exclude a specific list of file descriptors from being closed.\n"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/56832-remove-aptitude-warning.yml": {
"changelog": {
"bugfixes": [
"Remove the unnecessary warning about aptitude not being installed (https://github.com/ansible/ansible/issues/56832)."
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/57266-apt_repository-update-cache-retrying.yml": {
"changelog": {
"minor_changes": [
"apt_repository - Implemented an exponential backoff behaviour when retrying to update the apt cache with new params ``update_cache_retry_max_delay`` and ``update_cache_retries`` to control the behavior."
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/57894-combine-filter-rework.yml": {
"changelog": {
"bugfixes": [
"combine filter - ``[dict1, [dict2]] | combine`` now raise an error; previously ``combine`` had an undocumented behaviour where it was flattening the list before combining it (https://github.com/ansible/ansible/pull/57894#discussion_r339517518)."
],
"minor_changes": [
"combine filter - now accept a ``list_merge`` argument which modifies its behaviour when the hashes to merge contain arrays/lists."
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/58323-copy-deep-recursive-with-remote_src.yaml": {
"changelog": {
"bugfixes": [
"copy - recursive copy with ``remote_src=yes`` now recurses beyond first level. (Fixes https://github.com/ansible/ansible/issues/58284)"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/59060-validate-modules-aliases.yml": {
"changelog": {
"bugfixes": [
"ansible-test - during module validation, improve alias handling.",
"ansible-test - during module validation, handle add_file_common_args only for top-level arguments."
],
"minor_changes": [
"ansible-test - extend alias validation."
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/59438-hostname-use-hostnamectl.yml": {
"changelog": {
"bugfixes": [
"Use hostnamectl command to get current hostname for host while using systemd strategy (https://github.com/ansible/ansible/issues/59438)."
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/59464-playbook-dir-envvar.yml": {
"changelog": {
"bugfixes": [
"CLI - the `ANSIBLE_PLAYBOOK_DIR` envvar or `playbook_dir` config can now substitute for the --playbook-dir arg on CLIs that support it (https://github.com/ansible/ansible/issues/59464)"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/59765-cron-cronvar-use-get-bin-path.yaml": {
"changelog": {
"bugfixes": [
"cron and cronvar - use get_bin_path utility to locate the default crontab executable instead of the hardcoded /usr/bin/crontab. (https://github.com/ansible/ansible/pull/59765)"
]
},
"collections": [
"community.general",
"ansible.builtin"
]
},
"changelogs/fragments/59772-fix_ansible_issue_58619.yaml": {
"changelog": {
"bugfixes": [
"group - The group module was not correctly detecting whether a local group is existing or not with local set to yes if the same group exists in a non local group repository e.g. LDAP. (https://github.com/ansible/ansible/issues/58619)\n"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/60106-templar-contextmanager.yml": {
"changelog": {
"bugfixes": [
"template lookup - ensure changes to the templar in the lookup, do not affect the templar context outside of the lookup (https://github.com/ansible/ansible/issues/60106)"
]
},
"collections": [
"nokia.grpc",
"community.general",
"nokia.openconfig",
"ansible.netcommon",
"ansible.builtin"
]
},
"changelogs/fragments/60527-apt_exponential_backoff_cache_update_retry.yml": {
"changelog": {
"minor_changes": [
"apt - Implemented an exponential backoff behaviour when retrying to update the cache with new params ``update_cache_retry_max_delay`` and ``update_cache_retries`` to control the behavior."
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/60587-doc_parsing.yml": {
"changelog": {
"bugfixes": [
"Handle exception encountered while parsing the argument description in module when invoked via ansible-doc command (https://github.com/ansible/ansible/issues/60587)."
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/61078-vars-plugin-whitelist-and-execution-settings.yaml": {
"changelog": {
"minor_changes": [
"vars plugins - Support vars plugins in collections by adding the ability to whitelist plugins.",
"host_group_vars plugin - Require whitelisting and whitelist by default.",
"Add a global toggle to control when vars plugins are executed (per task by default for backward compatibility or after importing inventory).",
"Add a per-plugin stage option to override the global toggle to control the execution of individual vars plugins (per task, after inventory, or both)."
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/61570-netcli-put-get.yaml": {
"changelog": {
"bugfixes": [
"fixed issues when using net_get & net_put before the persistent connection has been started"
]
},
"collections": [
"ansible.netcommon",
"ansible.builtin"
]
},
"changelogs/fragments/61604-ansible-inventory-hide-args.yaml": {
"changelog": {
"bugfixes": [
"ansible-inventory - Properly hide arguments that should not be shown (https://github.com/ansible/ansible/issues/61604)",
"ansible-inventory - Restore functionality to allow ``--graph`` to be limited by a host pattern"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/61624-fix-galaxy-url-building.yml": {
"changelog": {
"bugfixes": [
"ansible-galaxy - Fix url building to not truncate the URL (https://github.com/ansible/ansible/issues/61624)"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/61659-load_file_common_arguments-override-path.yml": {
"changelog": {
"minor_changes": [
"``AnsibleModule.load_file_common_arguments`` now allows to simply override ``path``."
]
},
"collections": [
"community.crypto",
"community.general",
"ansible.builtin"
]
},
"changelogs/fragments/61891-get_url-remove-deprecated-string-headers.yml": {
"changelog": {
"minor_changes": [
"get_url - Remove deprecated string format support for the headers option (https://github.com/ansible/ansible/issues/61891)"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/61978-get-url-no-checksum.yml": {
"changelog": {
"bugfixes": [
"get_url - Don't treat no checksum as a checksum match (https://github.com/ansible/ansible/issues/61978)"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/62134-user-allow-groups-and-append-with-local.yml": {
"changelog": {
"minor_changes": [
"user - allow groups, append parameters with local"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/62237-keep-unsafe-context.yml": {
"changelog": {
"bugfixes": [
"**security issue** - TaskExecutor - Ensure we don't erase unsafe context in TaskExecutor.run on bytes. Only present in 2.9.0beta1 (https://github.com/ansible/ansible/issues/62237)\n"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/62407-wait_for_connection.yml": {
"changelog": {
"bugfixes": [
"Remove a temp directory created by wait_for_connection action plugin (https://github.com/ansible/ansible/issues/62407)."
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/62582-allow_diff_before_after_to_be_None.yml": {
"changelog": {
"minor_changes": [
"callbacks - Allow modules to return `None` as before/after entries for diff. This should make it easier for modules to report the \"not existing\" state of the entity they touched."
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/62598-AnsibleDumper-representer.yaml": {
"changelog": {
"bugfixes": [
"AnsibleDumper - Add a representer for AnsibleUnsafeBytes (https://github.com/ansible/ansible/issues/62562)."
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/62713-add-path_join-filter.yaml": {
"changelog": {
"minor_changes": [
"core filters - Adding ``path_join`` filter to the core filters list"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/62766-package_facts-pkg-manager-fix-vital-value.yml": {
"changelog": {
"bugfixes": [
"package_facts - fix value of ``vital`` attribute which is returned when ``pkg`` manager is used"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/62809-dnf-wildcard-absent-failure.yml": {
"changelog": {
"minor_changes": [
"dnf - Properly handle idempotent transactions with package name wildcard globs (https://github.com/ansible/ansible/issues/62809)"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/62870-collection-install-default-path.yml": {
"changelog": {
"bugfixes": [
"ansible-galaxy - Default collection install path to first path in COLLECTIONS_PATHS (https://github.com/ansible/ansible/pull/62870)"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/63194-lineinfile_insertafter_duplicate.yaml": {
"changelog": {
"bugfixes": [
"lineinfile - fix bug that caused multiple line insertions (https://github.com/ansible/ansible/issues/58923)."
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/63551-yum-single-YumBase-instantiation.yaml": {
"changelog": {
"bugfixes": [
"yum - performance bugfix, the YumBase object was being instantiated multiple times unnecessarily, which lead to considerable overhead when operating against large sets of packages."
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/63683-dnf-handle-empty-appstream-stream.yml": {
"changelog": {
"minor_changes": [
"dnf - Properly handle module AppStreams that don't define stream (https://github.com/ansible/ansible/issues/63683)"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/63782-add-ansible-ask-vault-password-and-vault-password-file-options.yaml": {
"changelog": {
"minor_changes": [
"Add --ask-vault-password and --vault-pass-file options to ansible cli commands",
"Change order of arguments in ansible cli to use --ask-vault-password and --vault-password-file by default"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/63919-lineinfile-create-no-dir-path.yml": {
"changelog": {
"bugfixes": [
"lineinfile - don't attempt mkdirs when path doesn't contain directory path"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/63940-template-lookup-hostvars-regression.yml": {
"changelog": {
"bugfixes": [
"template lookup - fix regression when templating hostvars (https://github.com/ansible/ansible/issues/63940)"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/63988-removes-python_compat_fallback.yml": {
"changelog": {
"bugfixes": [
"code - removes some Python compatibility code for dealing with socket timeouts in ``wait_for``"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/63990-replace-deprecated-basic-functions.yml": {
"changelog": {
"bugfixes": [
"replace use of deprecated functions from ``ansible.module_utils.basic``."
]
},
"collections": [
"community.general",
"ansible.posix",
"ansible.builtin"
]
},
"changelogs/fragments/64057-Add_named_parameter_to_the_to_uuid_filter.yaml": {
"changelog": {
"minor_changes": [
"to_uuid - add a named parameter to let the user optionally set a custom namespace"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/64076-urls-timeout-parameter.yml": {
"changelog": {
"bugfixes": [
"core - remove unneeded Python version checks."
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/64088-ast-literal.yml": {
"changelog": {
"bugfixes": [
"core - replace a compatibility import of pycompat24.literal_eval with ast.literal_eval."
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/64151-remove-unsed-inventory-script-option.yaml": {
"changelog": {
"deprecated_features": [
"script inventory plugin - The 'cache' option is deprecated and will be removed in 2.12. Its use has been removed from the plugin since it has never had any effect."
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/64282-hostvarsvars-templating.yaml": {
"changelog": {
"bugfixes": [
"HostVarsVars - Template the __repr__ value (https://github.com/ansible/ansible/issues/64128)."
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/64379-no-loop-unsafe.yml": {
"changelog": {
"bugfixes": [
"loops - Do not indiscriminately mark loop items as unsafe, only apply unsafe to ``with_`` style loops. The items from ``loop`` should not be explicitly wrapped in unsafe. The underlying templating mechanism should dictate this. (https://github.com/ansible/ansible/issues/64379)"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/64424-ansible-test-acme-container.yml": {
"changelog": {
"bugfixes": [
"ansible-test - bump version of ACME test container. The new version includes updated dependencies."
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/64664-fix-sys-modules-file.yml": {
"changelog": {
"bugfixes": [
"module executor - Address issue where changes to Ansiballz module code, change the behavior of module execution as it pertains to ``__file__`` and ``sys.modules`` (https://github.com/ansible/ansible/issues/64664)"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/64733-make-no_log-false-override-no_log-warnings.yml": {
"changelog": {
"bugfixes": [
"make ``no_log=False`` on a module option silence the ``no_log`` warning (https://github.com/ansible/ansible/issues/49465 https://github.com/ansible/ansible/issues/64656)"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/64751-fix-wrong-promt-len-calc-in-ansible-console.yaml": {
"changelog": {
"bugfixes": [
"fix wrong command line length calculation in ``ansible-console`` when long command inputted"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/64789-regression-rescue-vars-not-defined.yml": {
"changelog": {
"bugfixes": [
"Fix regression when ``ansible_failed_task`` and ``ansible_failed_result`` are not defined in the rescue block (https://github.com/ansible/ansible/issues/64789)"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/64810-hostname-add-manjaro-linux-distribution.yml": {
"changelog": {
"bugfixes": [
"hostname - make module work on Manjaro Linux (https://github.com/ansible/ansible/issues/61382)"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/64892-add-parameters-to-url_lookup_plugin.yaml": {
"changelog": {
"minor_changes": [
"url_lookup_plugin - add parameters to match what is available in ``module_utils/urls.py``"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/64902-fix-allow-duplicates-in-single-role.yml": {
"changelog": {
"bugfixes": [
"roles - Ensure that ``allow_duplicates: true`` enables to run single role multiple times (https://github.com/ansible/ansible/issues/64902)"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/64905-semver.yml": {
"changelog": {
"minor_changes": [
"Add ``--pre`` flag to ``ansible-galaxy collection install`` to allow pulling in the most recent pre-release version of a collection (https://github.com/ansible/ansible/issues/64905)"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/64954_virtualization_podman.yml": {
"changelog": {
"bugfixes": [
"Support virtualization for podman container (https://github.com/ansible/ansible/issues/64954)."
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/64959-extract-filter-when-key-does-not-exist.yml": {
"changelog": {
"bugfixes": [
"core filters - fix ``extract()`` filter when key does not exist in container (https://github.com/ansible/ansible/issues/64957)"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/64963-dnf_idempotence.yml": {
"changelog": {
"bugfixes": [
"dnf - Fix idempotence of `state: installed` (https://github.com/ansible/ansible/issues/64963)"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/65001-allow_configuring_async_startup_timeout.yml": {
"changelog": {
"minor_changes": [
"Add a new config parameter, WIN_ASYNC_STARTUP_TIMEOUT, which allows configuration of the named pipe connection timeout under Windows when launching async tasks."
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/65051-regex-replace-multiline.yaml": {
"changelog": {
"minor_changes": [
"regexp_replace filter - add multiline support for regex_replace filter (https://github.com/ansible/ansible/issues/61985)"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/65073-fix-inventory-cli-loading-vars-plugins.yaml": {
"changelog": {
"bugfixes": [
"ansible-inventory - Fix regression loading vars plugins. (https://github.com/ansible/ansible/issues/65064)",
"ansible-inventory - Fix long standing bug not loading vars plugins for group vars relative to the playbook dir when the '--playbook-dir' and '--export' flags are used together."
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/65122-fix-encrypt_string-stdin-name-ouput-tty.yml": {
"changelog": {
"bugfixes": [
"ansible-vault - Fix ``encrypt_string`` output in a tty when using ``--sdtin-name`` option (https://github.com/ansible/ansible/issues/65121)"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/65198-ansibleundefined-is-not-unsafe.yml": {
"changelog": {
"bugfixes": [
"``AnsibleUnsafe``/``AnsibleContext``/``Templar`` - Do not treat ``AnsibleUndefined`` as being \"unsafe\" (https://github.com/ansible/ansible/issues/65198)"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/65219-sanity-tests-print.yml": {
"changelog": {
"minor_changes": [
"ansible-test - add check for ``print()`` calls in modules and module_utils."
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/65302-dnf-msg-return.yml": {
"changelog": {
"bugfixes": [
"dnf module - Ensure the modules exit_json['msg'] response is always string, not sometimes a tuple."
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/65307-get_url-return-status-code-on-http-304.yaml": {
"changelog": {
"bugfixes": [
"On HTTP status code 304, return status_code"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/65365-fix-tb-printing-hostvars.yml": {
"changelog": {
"bugfixes": [
"Fix traceback when printing ``HostVars`` on native Jinja2 (https://github.com/ansible/ansible/issues/65365)"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/65422-fix-throttle-with-linear-strategy.yml": {
"changelog": {
"bugfixes": [
"throttle: the linear strategy didn't always stuck with the throttle limit"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/65437-ansible-test-module-validation-required.yml": {
"changelog": {
"minor_changes": [
"ansible-test - the module validation code now checks whether ``requirement`` for options is documented correctly."
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/65541-fix-utf8-issue-env-lookup.yml": {
"changelog": {
"bugfixes": [
"env lookup plugin - Fix handling of environment variables values containing utf-8 characters. (https://github.com/ansible/ansible/issues/65298)"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/65576-fix-free-strategy-handler-filtering.yaml": {
"changelog": {
"bugfixes": [
"free strategy - Include failed hosts when filtering notified hosts for handlers. The strategy base should determine whether or not to run handlers on those hosts depending on whether forcing handlers is enabled (https://github.com/ansible/ansible/issues/65254)."
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/65618-ansible-galaxy-collection-verify.yaml": {
"changelog": {
"minor_changes": [
"ansible-galaxy - Add a `verify` subcommand to `ansible-galaxy collection`. The collection found on the galaxy server is downloaded to a tempfile to compare the checksums of the files listed in the MANIFEST.json and the FILES.json with the contents of the installed collection."
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/65624-paramiko-ctx-man.yml": {
"changelog": {
"bugfixes": [
"paramiko_ssh - optimized file handling by using a context manager."
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/65722-unsafe-tuples.yml": {
"changelog": {
"bugfixes": [
"unsafe_proxy - Ensure that data within a tuple is marked as unsafe (https://github.com/ansible/ansible/issues/65722)"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/65795-warn-if-user-has-set-append-but-not-set-groups.yaml": {
"changelog": {
"minor_changes": [
"user - usage of ``append: True`` without setting a list of groups. This is currently a no-op with a warning, and will change to an error in 2.14. (https://github.com/ansible/ansible/pull/65795)"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/66006-RoleRequirement-include-stderr-error-msg.yaml": {
"changelog": {
"bugfixes": [
"RoleRequirement - include stderr in the error message if a scm command fails (https://github.com/ansible/ansible/issues/41336)"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/66067-git-archive_prefix-option.yaml": {
"changelog": {
"minor_changes": [
"git - added an ``archive_prefix`` option to set a prefix to add to each file path in archive"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/66085-ansible_config_file.yml": {
"changelog": {
"minor_changes": [
"new magic variable - ``ansible_config_file`` - full path of used Ansible config file"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/66128-fix-callback-set-options.yml": {
"changelog": {
"bugfixes": [
"Fix issue with callbacks ``set_options`` method that was not called with collections"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/66189-hostname-osmc.yml": {
"changelog": {
"bugfixes": [
"Added support for OSMC distro in hostname module (https://github.com/ansible/ansible/issues/66189)."
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/66219-update-user-module-for-64733.yml": {
"changelog": {
"bugfixes": [
"update ``user`` module to support silencing ``no_log`` warnings in the future (see: https://github.com/ansible/ansible/pull/64733)"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/66370-galaxy-add-metadata-property.yaml": {
"changelog": {
"minor_changes": [
"CollectionRequirement - Add a metadata property to update and retrieve the _metadata attribute."
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/66385-ansible-test-module-validation-elements.yml": {
"changelog": {
"minor_changes": [
"ansible-test - the module validation code now checks whether ``elements`` documentation for options matches the argument_spec."
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/66386-ansible-test-module-validation-list-elements.yml": {
"changelog": {
"minor_changes": [
"ansible-test - the module validation code now checks whether ``elements`` is defined when ``type=list``"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/66389-file-common-arguments.yml": {
"changelog": {
"minor_changes": [
"Ansible modules created with ``add_file_common_args=True`` added a number of undocumented arguments which were mostly there to ease implementing certain action plugins. The undocumented arguments ``src``, ``follow``, ``force``, ``content``, ``backup``, ``remote_src``, ``regexp``, ``delimiter``, and ``directory_mode`` are now no longer added. Modules relying on these options to be added need to specify them by themselves. Also, action plugins relying on these extra elements in ``FILE_COMMON_ARGUMENTS`` need to be adjusted."
]
},
"collections": [
"community.general",
"ansible.builtin"
]
},
"changelogs/fragments/66464-lookup-case-sensitivity-fix.yml": {
"changelog": {
"bugfixes": [
"Fix case sensitivity for ``lookup()`` (https://github.com/ansible/ansible/issues/66464)"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/66549-enablerepo-not-honored-when-used-with-disablerepo-all.yml": {
"changelog": {
"bugfixes": [
"yum - fix bug that caused ``enablerepo`` to not be honored when used with disablerepo all wildcard/glob (https://github.com/ansible/ansible/issues/66549)"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/66596-package_facts-add-pacman-support.yaml": {
"changelog": {
"minor_changes": [
"package_facts.py - Add support for Pacman package manager."
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/66604-powershell-unc-paths.yml": {
"changelog": {
"minor_changes": [
"powershell (shell plugin) - Fix `join_path` to support UNC paths (https://github.com/ansible/ansible/issues/66341)"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/66721-better-jinja2-collection-error-handling.yml": {
"changelog": {
"bugfixes": [
"collections - Handle errors better for filters and tests in collections, where a non-existent collection is specified, or importing the plugin results in an exception (https://github.com/ansible/ansible/issues/66721)"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/66726-galaxy-fix-attribute-error.yml": {
"changelog": {
"bugfixes": [
"galaxy - Fix an AttributeError on ansible-galaxy install with an empty requirements.yml (https://github.com/ansible/ansible/issues/66725)."
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/66762-fix-git-module-ignores-remote_tmp.yml": {
"changelog": {
"bugfixes": [
"Fix issue git module ignores remote_tmp (https://github.com/ansible/ansible/issues/33947).",
"Fix issue git module cannot use custom `key_file` or `ssh_opts` as non-root user on system with noexec `/tmp` (https://github.com/ansible/ansible/issues/30064).",
"By passing the module_tmpdir as a parameter in the write_ssh_wrapper function instead of initalizing module_tmpdir via get_module_path()"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/66764-host-pattern-warning.yml": {
"changelog": {
"bugfixes": [
"Fix incorrect \"Could not match supplied host pattern\" warning (https://github.com/ansible/ansible/issues/66764)"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/66780-facts-detect-kvm-server.yml": {
"changelog": {
"bugfixes": [
"facts - fix detection of virtualization type when dmi product name is KVM Server"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/66786-fix-duplicate-yaml-key-error.yaml": {
"changelog": {
"bugfixes": [
"DUPLICATE_YAML_DICT_KEY - Fix error output when configuration option DUPLICATE_YAML_DICT_KEY is set to error (https://github.com/ansible/ansible/issues/65366)"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/66898-sanity-state-list.yaml": {
"changelog": {
"minor_changes": [
"ansible-test - Add a test to prevent ``state=list`` and ``state=info``"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/66911-fix-cloudlinux6-hostname.yaml": {
"changelog": {
"bugfixes": [
"hostname - Fixed an issue where the hostname on the cloudlinux 6 server could not be set."
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/66918-removed_in_version-fix.yml": {
"changelog": {
"bugfixes": [
"Module arguments in suboptions which were marked as deprecated with ``removed_in_version`` did not result in a warning."
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/66921-sanity-state-get.yaml": {
"changelog": {
"minor_changes": [
"ansible-test - Add a test to prevent ``state=get``"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/66961-ansible-test-required-mutually.yml": {
"changelog": {
"minor_changes": [
"ansible-test - ``mutually_exclusive``, ``required_if``, ``required_by``, ``required_together`` and ``required_one_of`` in modules are now validated."
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/67093-site-packages-pythonpath-collections-loader.yml": {
"changelog": {
"minor_changes": [
"Enable Ansible Collections loader to discover and import collections from ``site-packages`` dir and ``PYTHONPATH``-added locations."
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/67243-file_common_arguments-defaults-sanity.yml": {
"changelog": {
"minor_changes": [
"ansible-test - module validation will now consider arguments added by ``add_file_common_arguments=True`` correctly."
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/67365-role-list-role-name-in-path.yml": {
"changelog": {
"bugfixes": [
"ansible-galaxy - properly list roles when the role name also happens to be in the role path (https://github.com/ansible/ansible/issues/67365)"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/67429-jinja2-caching.yml": {
"changelog": {
"bugfixes": [
"Templating - Ansible was caching results of Jinja2 expressions in some cases where these expressions could have dynamic results, like password generation (https://github.com/ansible/ansible/issues/34144)."
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/67492-fix-decrypting-str-types-for-plugins.yaml": {
"changelog": {
"bugfixes": [
"plugins - Allow ensure_type to decrypt the value for string types (and implicit string types) when value is an inline vault."
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/67574-null_collection_dependency_list.yml": {
"changelog": {
"bugfixes": [
"Fix collection install error that happened if a dependency specified dependencies to be null (https://github.com/ansible/ansible/issues/67574)."
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/67671-aws_acm-module_defaults.yaml": {
"changelog": {
"minor_changes": [
"aws_acm: Add the module to group/aws for module_defaults.",
"aws_acm: Update automatic retries to stabilize the integration tests."
]
},
"collections": [
"community.aws"
]
},
"changelogs/fragments/67735-warning-cleanup.yml": {
"changelog": {
"bugfixes": [
"Update the warning message for ``CONDITIONAL_BARE_VARS`` to list the original conditional not the value of the original conditional (https://github.com/ansible/ansible/issues/67735)"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/67771-validation-error.yml": {
"changelog": {
"minor_changes": [
"validation - Sort missing parameters in exception message thrown by check_required_arguments"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/68247-file-unreachable-code.yaml": {
"changelog": {
"bugfixes": [
"file - Removed unreachable code in module"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/68518-to_nice_json-cleanup.yaml": {
"changelog": {
"minor_changes": [
"to_nice_json filter - Removed now-useless exception handler"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/action-plugin-always-cleanup.yml": {
"changelog": {
"bugfixes": [
"ActionBase - Add new ``cleanup`` method that is explicitly run by the ``TaskExecutor`` to ensure that the shell plugins ``tmpdir`` is always removed. This change means that individual action plugins need not be responsible for removing the temporary directory, which ensures that we don't have code paths that accidentally leave behind the temporary directory."
]
},
"collections": [
"community.general",
"ansible.builtin"
]
},
"changelogs/fragments/add-global-warnings-container.yaml": {
"changelog": {
"minor_changes": [
"add mechanism for storing warnings and deprecations globally and not attached to an ``AnsibleModule`` object (https://github.com/ansible/ansible/pull/58993)"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/add-type-typename.yaml": {
"changelog": {
"minor_changes": [
"PowerShell Add-Type - Add an easier way to reference extra types when compiling C# code on PowerShell Core",
"PowerShell Add-Type - Added the ``X86`` and ``AMD64`` preprocessor symbols for conditional compiling"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/adhoc_default_collection.yml": {
"changelog": {
"bugfixes": [
"adhoc CLI - when playbook-dir is specified and inside a collection, use default collection logic to resolve modules/actions"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/af_clean.yml": {
"changelog": {
"bugfixes": [
"Ensure we don't allow ansible_facts subkey of ansible_facts to override top level, also fix 'deprefixing' to prevent key transforms."
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/allow_ansible_ns.yml": {
"changelog": {
"bugfixes": [
"allow external collections to be created in the 'ansible' collection namespace (https://github.com/ansible/ansible/issues/59988)"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/ansible-adhoc-cb-playbook_start.yaml": {
"changelog": {
"bugfixes": [
"ansible command now correctly sends v2_playbook_on_start to callbacks"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/ansible-connection_persist_issue.yaml": {
"changelog": {
"bugfixes": [
"ansible-connection persists even after playbook run is completed (https://github.com/ansible/ansible/pull/61591)"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/ansible-doc-removed-traceback.yml": {
"changelog": {
"bugfixes": [
"ansible-doc now properly handles removed modules/plugins"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/ansible-galaxy-agent.yaml": {
"changelog": {
"bugfixes": [
"ansible-galaxy - Expand the ``User-Agent`` to include more information and add it to more calls to Galaxy endpoints."
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/ansible-galaxy-cli-add-token-alias.yaml": {
"changelog": {
"minor_changes": [
"ansible-galaxy - add ``--token`` argument which is the same as ``--api-key`` (https://github.com/ansible/ansible/issues/65955)"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/ansible-galaxy-collections.yaml": {
"changelog": {
"bugfixes": [
"ansible-galaxy - Remove uneeded verbose messages when accessing local token file",
"ansible-galaxy - Display proper error when invalid token is used for Galaxy servers",
"ansible-galaxy - Send SHA256 hashes when publishing a collection",
"ansible-galaxy - Fix up pagination searcher for collection versions on Automation Hub"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/ansible-galaxy-handle-import-task-url-changes.yml": {
"changelog": {
"bugfixes": [
"ansible-galaxy - Handle the different task resource urls in API responses from publishing collection artifacts to galaxy servers using v2 and v3 APIs."
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/ansible-galaxy-ignore.yaml": {
"changelog": {
"minor_changes": [
"ansible-galaxy - Always ignore the ``tests/output`` directory when building a collection as it is used by ``ansible-test`` for test output (https://github.com/ansible/ansible/issues/59228).",
"ansible-galaxy - Added the ability to ignore further files and folders using a pattern with the ``build_ignore`` key in a collection's ``galaxy.yml`` (https://github.com/ansible/ansible/issues/59228)."
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/ansible-galaxy-progress.yaml": {
"changelog": {
"minor_changes": [
"ansible-galaxy - Added the ability to display the progress wheel through the C.GALAXY_DISPLAY_PROGRESS config option. Also this now defaults to displaying the progress wheel if stdout has a tty."
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/ansible-galaxy-role-server.yaml": {
"changelog": {
"bugfixes": [
"ansible-galaxy role - Fix issue where ``--server`` was not being used for certain ``ansible-galaxy role`` actions - https://github.com/ansible/ansible/issues/61609"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/ansible-galaxy-support-for-automation-hub.yml": {
"changelog": {
"bugfixes": [
"Fix https://github.com/ansible/galaxy-dev/issues/96 Add support for automation-hub authentication to ansible-galaxy"
],
"minor_changes": [
"Add 'auth_url' field to galaxy server config stanzas in ansible.cfg The url should point to the token_endpoint of a Keycloak server."
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/ansible-test-ansible-doc.yml": {
"changelog": {
"bugfixes": [
"ansible-test now properly handles warnings for removed modules/plugins"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/ansible-test-ast-parse-bytes.yml": {
"changelog": {
"bugfixes": [
"ansible-test - Fix regression introduced in https://github.com/ansible/ansible/pull/67063 which caused module_utils analysis to fail on Python 2.x."
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/ansible-test-boto-constraints.yml": {
"changelog": {
"bugfixes": [
"ansible-test - Updated requirements to limit ``boto3`` and ``botocore`` versions on Python 2.6 to supported versions."
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/ansible-test-change-detection-empty-python.yml": {
"changelog": {
"bugfixes": [
"ansible-test no longer tracebacks during change analysis due to processing an empty python file"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/ansible-test-change-detection-fix.yml": {
"changelog": {
"bugfixes": [
"ansible-test now ignores empty ``*.py`` files when analyzing module_utils imports for change detection"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/ansible-test-cloud-secrets.yml": {
"changelog": {
"bugfixes": [
"**security issue** - Redact cloud plugin secrets in ansible-test when running integration tests using cloud plugins. Only present in 2.9.0b1.\n"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/ansible-test-collections-ansible-adhoc.yml": {
"changelog": {
"bugfixes": [
"ansible-test now properly sets ``ANSIBLE_PLAYBOOK_DIR`` for integration tests so unqualified collection references work for adhoc ``ansible`` usage"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/ansible-test-collections-coverage-noise.yml": {
"changelog": {
"bugfixes": [
"ansible-test now properly excludes the ``tests/output/`` directory from code coverage"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/ansible-test-collections-import-sanity-test.yml": {
"changelog": {
"bugfixes": [
"ansible-test now properly reports import errors for collections when running the import sanity test"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/ansible-test-collections-requirements.yml": {
"changelog": {
"bugfixes": [
"ansible-test now correctly installs the requirements specified by the collection's unit and integration tests instead of the requirements specified for Ansible's own unit and integration tests"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/ansible-test-color-ls.yml": {
"changelog": {
"bugfixes": [
"ansible-test now enables color ``ls`` on a remote host only if the host supports the feature"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/ansible-test-constraints-virtualenv.yml": {
"changelog": {
"bugfixes": [
"ansible-test - Use ``virtualenv`` versions before 20 on provisioned macOS instances to remain compatible with an older pip install."
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/ansible-test-coverage-analyze-targets-filter.yml": {
"changelog": {
"minor_changes": [
"ansible-test - Added a ``ansible-test coverage analyze targets filter`` command to filter aggregated coverage reports by path and/or target name."
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/ansible-test-coverage-analyze-targets.yml": {
"changelog": {
"minor_changes": [
"ansible-test - Added a ``ansible-test coverage analyze targets`` command to analyze integration test code coverage by test target."
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/ansible-test-coverage-ansible-connection.yml": {
"changelog": {
"bugfixes": [
"ansible-test once again properly collects code coverage for ``ansible-connection``"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/ansible-test-coverage-constraint.yml": {
"changelog": {
"bugfixes": [
"ansible-test no longer tries to install ``coverage`` 5.0+ since those versions are unsupported"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/ansible-test-coverage-incomplete.yml": {
"changelog": {
"bugfixes": [
"ansible-test now correctly collects code coverage on the last task in a play. This should resolve issues with missing code coverage, empty coverage files and corrupted coverage files resulting from early worker termination."
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/ansible-test-coverage-reorg.yml": {
"changelog": {
"minor_changes": [
"reorganized code for the ``ansible-test coverage`` command for easier maintenance and feature additions"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/ansible-test-coverage-version-check.yml": {
"changelog": {
"minor_changes": [
"ansible-test now checks for the minimum and maximum supported versions when importing ``coverage``",
"ansible-test now provides a more helpful error when loading coverage files created by ``coverage`` version 5 or later"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/ansible-test-default-test-container-1.10.1.yml": {
"changelog": {
"minor_changes": [
"update ansible-test default-test-container from version 1.9.3 to 1.10.1"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/ansible-test-delegation-inventory.yml": {
"changelog": {
"bugfixes": [
"ansible-test now correctly includes inventory files ignored by git when running tests with the ``--docker`` option"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/ansible-test-delegation-options.yml": {
"changelog": {
"minor_changes": [
"ansible-test - allow delegation config to specify equivalents to the ``--no-pip-check``, ``--disable-httptester`` and `--no-temp-unicode`` options"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/ansible-test-delegation-tmp-dir.yml": {
"changelog": {
"bugfixes": [
"ansible-test now correctly excludes the test results temporary directory when copying files from the remote test system to the local system"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/ansible-test-distro-container-venv.yml": {
"changelog": {
"minor_changes": [
"ansible-test - Update Ubuntu 18.04 test container to version 1.13 which includes ``venv``"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/ansible-test-doc-links.yml": {
"changelog": {
"bugfixes": [
"ansible-test now shows sanity test doc links when installed (previously the links were only visible when running from source)"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/ansible-test-egg-info-version.yml": {
"changelog": {
"bugfixes": [
"ansible-test is now able to find its ``egg-info`` directory when it contains the Ansible version number"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/ansible-test-empty-coverage.yml": {
"changelog": {
"bugfixes": [
"ansible-test no longer errors reporting coverage when no Python coverage exists. This fixes issues reporting on PowerShell only coverage from collections."
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/ansible-test-enable-aix-os-testing.yml": {
"changelog": {
"minor_changes": [
"Enable testing the AIX platform as a remote OS in ansible-test"
]
},
"collections": [
"community.grafana",
"community.general",
"ansible.posix",
"sshnaidm.podman",
"community.crypto",
"containers.podman",
"ansible.builtin"
]
},
"changelogs/fragments/ansible-test-env-alteration.yml": {
"changelog": {
"bugfixes": [
"ansible-test now properly uses a fresh copy of environment variables for each command invocation to avoid mixing vars between commands"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/ansible-test-execv-wrapper-shebang.yml": {
"changelog": {
"bugfixes": [
"ansible-test now properly handles creation of Python execv wrappers when the selected interpreter is a script"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/ansible-test-fix-python-path.yml": {
"changelog": {
"bugfixes": [
"ansible-test now properly sets PYTHONPATH for tests when running from an Ansible installation"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/ansible-test-git-submodule.yml": {
"changelog": {
"bugfixes": [
"ansible-test now properly handles enumeration of git submodules. Enumeration is now done with ``git submodule status --recursive`` without specifying ``.`` for the path, since that could cause the command to fail. Instead, relative paths outside the current directory are filtered out of the results. Errors from ``git`` commands will now once again be reported as errors instead of warnings."
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/ansible-test-hcloud-constraint.yml": {
"changelog": {
"bugfixes": [
"ansible-test now limits installation of ``hcloud`` to Python 2.7 and 3.5 - 3.8 since other versions are unsupported"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/ansible-test-ignore-pip-warnings.yml": {
"changelog": {
"bugfixes": [
"ansible-test now ignores warnings when comparing pip versions before and after integration tests run"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/ansible-test-ignore-tests-output.yml": {
"changelog": {
"bugfixes": [
"ansible-test now properly ignores the ``tests/output//`` directory when not using git"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/ansible-test-integration-temp-dir.yml": {
"changelog": {
"bugfixes": [
"ansible-test now creates its integration test temporary directory within the collection so ansible-playbook can properly detect the default collection"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/ansible-test-jinja2-python-2.6.yml": {
"changelog": {
"bugfixes": [
"ansible-test now limits Jinja2 installs to version 2.10 and earlier on Python 2.6"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/ansible-test-network-collections.yml": {
"changelog": {
"minor_changes": [
"ansible-test now supports provisioning of network resources when testing network collections"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/ansible-test-network-testing.yml": {
"changelog": {
"minor_changes": [
"ansible-test provisioning of network devices for ``network-integration`` has been updated to use collections."
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/ansible-test-no-pip-check.yml": {
"changelog": {
"minor_changes": [
"ansible-test - added a ``--no-pip-check`` option"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/ansible-test-paramiko-constraint.yml": {
"changelog": {
"bugfixes": [
"ansible-test - Remove out-of-date constraint on installing paramiko versions 2.5.0 or later in tests."
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/ansible-test-path-to-python.yml": {
"changelog": {
"bugfixes": [
"ansible-test no longer optimizes setting ``PATH`` by prepending the directory containing the selected Python interpreter when it is named ``python``. This avoids unintentionally making other programs available on ``PATH``, including an already installed version of Ansible."
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/ansible-test-pathspec-constraint.yml": {
"changelog": {
"bugfixes": [
"ansible-test now limits ``pathspec`` to versions prior to 0.6.0 on Python 2.6 to avoid installation errors"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/ansible-test-powershell-coverage-paths.yml": {
"changelog": {
"bugfixes": [
"ansible-test now correctly rewrites coverage paths for PowerShell files when testing collections"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/ansible-test-preserve-remote-authorized-keys.yml": {
"changelog": {
"bugfixes": [
"ansible-test now preserves existing SSH authorized keys when provisioning a remote host"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/ansible-test-pylint-plugin-paths.yml": {
"changelog": {
"bugfixes": [
"ansible-test now properly recognizes modules and module_utils in collections when using the ``blacklist`` plugin for the ``pylint`` sanity test"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/ansible-test-python-3.9.yaml": {
"changelog": {
"minor_changes": [
"ansible-test - Add support for Python 3.9.",
"ansible-test - Update ``default-test-container`` to version 1.11, which includes Python 3.9.0a4."
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/ansible-test-python-import-analysis.yml": {
"changelog": {
"bugfixes": [
"ansible-test now correctly recognizes imports in collections when using the ``--changed`` option."
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/ansible-test-redact.yml": {
"changelog": {
"minor_changes": [
"ansible-test defaults to redacting sensitive values (disable with the ``--no-redact`` option)"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/ansible-test-refactor.yml": {
"changelog": {
"minor_changes": [
"ansible-test - Support writing compact JSON files instead of formatting and indenting the output.",
"ansible-test - Add a verbosity option for displaying warnings.",
"ansible-test - Refactor code to consolidate filesystem access and improve handling of encoding.",
"ansible-test - General code cleanup."
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/ansible-test-remote-tar-format.yml": {
"changelog": {
"bugfixes": [
"ansible-test now uses GNU tar format instead of the Python default when creating payloads for remote systems"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/ansible-test-remove-tox-option.yml": {
"changelog": {
"minor_changes": [
"ansible-test no longer provides a ``--tox`` option. Use the ``--venv`` option instead. This only affects testing the Ansible source. The feature was never available for Ansible Collections or when running from an Ansible install."
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/ansible-test-requirements-install.yml": {
"changelog": {
"bugfixes": [
"ansible-test can now install argparse with ``--requirements`` or delegation when the pip version in use is older than version 7.1",
"ansible-test now upgrades ``pip`` with `--requirements`` or delegation as needed when the pip version in use is older than version 7.1",
"ansible-test now installs the correct version of ``cryptography`` with ``--requirements`` or delegation when setuptools is older than version 18.5",
"ansible-test now limits the version of ``setuptools`` on Python 2.6 to versions older than 37"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/ansible-test-rhel-8.1-testing.yml": {
"changelog": {
"minor_changes": [
"ansible-test - switch from testing RHEL 8.0 and RHEL 8.1 Beta to RHEL 8.1"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/ansible-test-sanity-constraints.yml": {
"changelog": {
"minor_changes": [
"ansible-test no longer tries to install sanity test dependencies on unsupported Python versions"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/ansible-test-sanity-requirements.yml": {
"changelog": {
"bugfixes": [
"ansible-test now properly installs requirements for multiple Python versions when running sanity tests"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/ansible-test-setuptools-constraint.yml": {
"changelog": {
"bugfixes": [
"ansible-test no longer tries to install ``setuptools`` 45+ on Python 2.x since those versions are unsupported"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/ansible-test-shebang-sanity.yml": {
"changelog": {
"bugfixes": [
"ansible-test - The shebang sanity test now correctly identifies modules in subdirectories in collections."
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/ansible-test-ssh-keygen-fix.yml": {
"changelog": {
"bugfixes": [
"ansible-test now updates SSH keys it generates with newer versions of ssh-keygen to function with Paramiko"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/ansible-test-submodules.yml": {
"changelog": {
"bugfixes": [
"ansible-test now correctly enumerates submodules when a collection resides below the repository root"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/ansible-test-test-source-message.yml": {
"changelog": {
"bugfixes": [
"ansible-test now shows the correct source path instead of ``%s`` for collection role based test targets when the ``-v`` option is used"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/ansible-test-validate-modules-fixes.yml": {
"changelog": {
"bugfixes": [
"ansible-test validate-modules sanity test now properly handles collections imports using the Ansible collection loader.",
"ansible-test validate-modules sanity test now properly handles relative imports.",
"ansible-test validate-modules sanity test now properly invokes Ansible modules as scripts.",
"ansible-test validate-modules sanity test now properly handles sys.exit in modules.",
"ansible-test validate-modules sanity test now checks for AnsibleModule initialization instead of module_utils imports, which did not work in many cases.",
"ansible-test validate-modules sanity test code ``multiple-c#-utils-per-requires`` is now ``multiple-csharp-utils-per-requires`` (fixes ignore bug).",
"ansible-test validate-modules sanity test code ``missing-module-utils-import-c#-requirements`` is now ``missing-module-utils-import-csharp-requirements`` (fixes ignore bug)."
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/ansible-test-vcenter-plugin.yml": {
"changelog": {
"bugfixes": [
"ansible-test now properly activates the vcenter plugin for vcenter tests when docker is available"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/ansible-test-venv-activation.yml": {
"changelog": {
"bugfixes": [
"ansible-test now properly activates virtual environments created using the --venv option"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/ansible-test-venv-pkg-resources.yaml": {
"changelog": {
"bugfixes": [
"ansible-test - Make sure import sanity test virtual environments also remove ``pkg-resources`` if it is not removed by uninstalling ``setuptools``."
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/ansible-test-venv-pythonpath.yml": {
"changelog": {
"bugfixes": [
"ansible-test now properly registers its own code in a virtual environment when running from an install"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/ansible-test-venv-system-site-packages.yml": {
"changelog": {
"minor_changes": [
"ansible-test - added a ``--venv-system-site-packages`` option for use with the ``--venv`` option"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/ansible-test-virtualenv-python-search.yml": {
"changelog": {
"bugfixes": [
"ansible-test now properly searches for ``pythonX.Y`` instead of ``python`` when looking for the real python that created a ``virtualenv``"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/ansible-test-virtualenv-venv.yml": {
"changelog": {
"bugfixes": [
"ansible-test now properly creates a virtual environment using ``venv`` when running in a ``virtualenv`` created virtual environment"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/ansible-test-windows-integration.yml": {
"changelog": {
"bugfixes": [
"ansible-test now uses modules from the ``ansible.windows`` collection for setup and teardown of ``windows-integration`` tests and code coverage"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/ansible_basic_no_log_empty_string.yaml": {
"changelog": {
"bugfixes": [
"Ansible.Basic - Fix issue when setting a ``no_log`` parameter to an empty string - https://github.com/ansible/ansible/issues/62613"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/ansible_native_concat-use-to_text-rather-than-text_type.yml": {
"changelog": {
"minor_changes": [
"ansible_native_concat() - use ``to_text`` function rather than Jinja2's ``text_type`` which has been removed in Jinja2 master branch."
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/ansile-galaxy-preserve-api-append.yml": {
"changelog": {
"bugfixes": [
"ansible-galaxy - Ensure we preserve the new URL when appending ``/api`` for the case where the GET succeeds on galaxy.ansible.com"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/become-pass-precedence.yaml": {
"changelog": {
"bugfixes": [
"become - Fix various plugins that still used play_context to get the become password instead of through the plugin - https://github.com/ansible/ansible/issues/62367",
"runas - Fix the ``runas`` ``become_pass`` variable fallback from ``ansible_runas_runas`` to ``ansible_runas_pass``"
]
},
"collections": [
"ansible.windows",
"community.general",
"ansible.builtin"
]
},
"changelogs/fragments/change-get_bin_path-always-raise-exception.yaml": {
"changelog": {
"minor_changes": [
"get_bin_path() - change the interface to always raise ``ValueError`` if the command is not found (https://github.com/ansible/ansible/pull/56813)"
]
},
"collections": [
"community.general",
"ansible.builtin"
]
},
"changelogs/fragments/clean_facts-use-correct-variable-for-startswith.yaml": {
"changelog": {
"bugfixes": [
"clean_facts - use correct variable to avoid unnecessary handling of ``AttributeError``"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/collection-install-mode.yaml": {
"changelog": {
"bugfixes": [
"ansible-galaxy collection - Preserve executable bit on build and preserve mode on install from what tar member is set to - https://github.com/ansible/ansible/issues/68415"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/collection-install-url.yaml": {
"changelog": {
"bugfixes": [
"ansible-galaxy - Fix ``collection install`` when installing from a URL or a file - https://github.com/ansible/ansible/issues/65109"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/collection-prefix-basedir.yaml": {
"changelog": {
"bugfixes": [
"Fix issue where the collection loader tracebacks if ``collections_paths = ./`` is set in the config"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/collection_error_fix.yml": {
"changelog": {
"minor_changes": [
"Provides additional information about collection namespace name restrictions (https://github.com/ansible/ansible/issues/65151)."
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/collection_jinja_cache_fix.yml": {
"changelog": {
"bugfixes": [
"collection loader - ensure Jinja function cache is fully-populated before lookup"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/collection_loader-sort-plugins.yaml": {
"changelog": {
"bugfixes": [
"collection_loader - sort Windows modules below other plugin types so the correct builtin plugin inside a role is selected (https://github.com/ansible/ansible/issues/65298)"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/collection_loader_import_fixes.yml": {
"changelog": {
"bugfixes": [
"collection loader - fixed relative imports on Python 2.7, ensure pluginloader caches use full name to prevent names from being clobbered (https://github.com/ansible/ansible/pull/60317)"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/config-manager-vault-str.yaml": {
"changelog": {
"bugfixes": [
"Fix string parsing of inline vault strings for plugin config variable sources"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/config_encoding_resilience.yml": {
"changelog": {
"bugfixes": [
"config - encoding failures on config values should be non-fatal (https://github.com/ansible/ansible/issues/63310)"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/cron-only-get-bin-path-once.yaml": {
"changelog": {
"bugfixes": [
"cron cronvar - only run ``get_bin_path()`` once"
]
},
"collections": [
"community.general",
"ansible.builtin"
]
},
"changelogs/fragments/cronvar-correct-binary-name.yaml": {
"changelog": {
"bugfixes": [
"cronvar - use correct binary name (https://github.com/ansible/ansible/issues/63274)"
]
},
"collections": [
"community.general",
"ansible.builtin"
]
},
"changelogs/fragments/debug_loop_changed.yaml": {
"changelog": {
"bugfixes": [
"debug - fixed an issue introduced in Ansible 2.4 where a loop of debug tasks would lose the \"changed\" status on each item."
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/deprecate-hash-behaviour.yml": {
"changelog": {
"deprecated_features": [
"hash_behaviour - Deprecate ``hash_behaviour`` for future removal."
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/detect-generic-container.yml": {
"changelog": {
"bugfixes": [
"virtual facts - detect generic container environment based on non-empty \"container\" env var"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/dict2items.yml": {
"changelog": {
"minor_changes": [
"Simplify dict2items filter example in loop documentation (https://github.com/ansible/ansible/issues/65505)."
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/display-warning-remove-erroneous-space.yaml": {
"changelog": {
"bugfixes": [
"display - remove leading space when displaying WARNING messages"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/distribution_release.yml": {
"changelog": {
"minor_changes": [
"Ignore plesk-release file while parsing distribution release (https://github.com/ansible/ansible/issues/64101)."
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/dont-template-cli-passwords.yml": {
"changelog": {
"bugfixes": [
"**security issue** - Convert CLI provided passwords to text initially, to prevent unsafe context being lost when converting from bytes->text during post processing of PlayContext. This prevents CLI provided passwords from being incorrectly templated (CVE-2019-14856)\n",
"**security issue** - Update ``AnsibleUnsafeText`` and ``AnsibleUnsafeBytes`` to maintain unsafe context by overriding ``.encode`` and ``.decode``. This prevents future issues with ``to_text``, ``to_bytes``, or ``to_native`` removing the unsafe wrapper when converting between string types (CVE-2019-14856)\n"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/end_host-remove_host_from_play.yml": {
"changelog": {
"bugfixes": [
"Fix a bug when a host was not removed from a play after ``meta: end_host`` and as a result the host was still present in ``ansible_play_hosts`` and ``ansible_play_batch`` variables."
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/extra-vars.yml": {
"changelog": {
"bugfixes": [
"Handle empty extra vars in ansible cli (https://github.com/ansible/ansible/issues/61497)."
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/extra_vars_with_at_sign.yml": {
"changelog": {
"minor_changes": [
"Ansible CLI fails with warning if extra_vars parameter is used with filename without @ sign (https://github.com/ansible/ansible/issues/51857)."
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/fallback_uid.yml": {
"changelog": {
"bugfixes": [
"for those running uids for invalid users (containers), fallback to uid=<uid> when logging fixes #68007"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/file-change-src-without-state-to-error.yaml": {
"changelog": {
"minor_changes": [
"file - specifying ``src`` without ``state`` is now an error"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/file-fix-diff-peek-arg-spec.yaml": {
"changelog": {
"bugfixes": [
"file - change ``_diff_peek`` in argument spec to be the correct type, which is ``bool`` (https://github.com/ansible/ansible/issues/59433)"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/find-contains-docs.yaml": {
"changelog": {
"bugfixes": [
"find - clarify description of ``contains`` (https://github.com/ansible/ansible/issues/61983)"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/fips-paramiko-import-error.yaml": {
"changelog": {
"bugfixes": [
"paramiko - catch and handle exception to prevent stack trace when running in FIPS mode"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/fix-ansible-galaxy-server.yml": {
"changelog": {
"bugfixes": [
"The ansible-galaxy publish command was using an incorrect URL for v3 servers. The configuration for v3 servers includes part of the path fragment that was added in the new test."
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/galaxy-add-path-validation-utility-function.yaml": {
"changelog": {
"minor_changes": [
"ansible-galaxy - add ``validate_collection_path()`` utility function ()"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/galaxy-cli-add-collection-path-parser-arg.yaml": {
"changelog": {
"minor_changes": [
"ansible-galaxy - add collections path argument"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/galaxy-collection-install-version.yaml": {
"changelog": {
"bugfixes": [
"ansible-galaxy - Fix issue when compared installed dependencies with a collection having no ``MANIFEST.json`` or an empty version string in the json"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/galaxy-collection-rename-private-function.yaml": {
"changelog": {
"minor_changes": [
"rename ``_find_existing_collections()`` to ``find_existing_collections()`` to reflect its use across multiple files\n"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/galaxy-collections-add-list.yml": {
"changelog": {
"minor_changes": [
"ansible-galaxy - add ``collection list`` command for listing installed collections (https://github.com/ansible/ansible/pull/65022)"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/galaxy-collections.yaml": {
"changelog": {
"bugfixes": [
"ansible-galaxy - Set ``User-Agent`` to Ansible version when interacting with Galaxy or Automation Hub"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/galaxy-download.yaml": {
"changelog": {
"minor_changes": [
"ansible-galaxy - Add ``download`` option for ``ansible-galaxy collection`` to download collections and their dependencies for an offline install"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/galaxy-error-reason.yaml": {
"changelog": {
"bugfixes": [
"ansible-galaxy - Return the HTTP code reason if no error msg was returned by the server - https://github.com/ansible/ansible/issues/64850"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/galaxy-install-tar-path-traversal.yaml": {
"changelog": {
"bugfixes": [
"ansible-galaxy - Error when install finds a tar with a file that will be extracted outside the collection install directory - CVE-2020-10691"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/galaxy-role-list-fix.yml": {
"changelog": {
"bugfixes": [
"ansible-galaxy - fix regression that prenented roles from being listed"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/galaxy-role-version.yaml": {
"changelog": {
"bugfixes": [
"ansible-galaxy - Fix pagination issue when retrieving role versions for install - https://github.com/ansible/ansible/issues/64355"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/galaxy-server-list.yaml": {
"changelog": {
"bugfixes": [
"ansible-galaxy - Treat the ``GALAXY_SERVER_LIST`` config entry that is defined but with no values as an empty list"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/gather_facts-warnings.yaml": {
"changelog": {
"bugfixes": [
"fact gathering - Display warnings and deprecation messages that are created during the fact gathering phase"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/include_vars-ad-hoc-stack-trace-fix.yaml": {
"changelog": {
"bugfixes": [
"include_vars - fix stack trace when passing ``dirs`` in an ad-hoc command (https://github.com/ansible/ansible/issues/62633)"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/include_vars_fix_none.yml": {
"changelog": {
"bugfixes": [
"Check NoneType for raw_params before proceeding in include_vars (https://github.com/ansible/ansible/issues/64939)."
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/limit-file-exception.yml": {
"changelog": {
"minor_changes": [
"Ansible should fail with error when non-existing limit file is provided in command line."
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/lineinfile-backrefs-match-object-type.yaml": {
"changelog": {
"bugfixes": [
"lineinfile - properly handle inserting a line when backrefs are enabled and the line already exists in the file (https://github.com/ansible/ansible/issues/63756)"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/lineinfile-use-correct-index-value.yaml": {
"changelog": {
"bugfixes": [
"lineinfile - use correct index value when inserting a line at the end of a file (https://github.com/ansible/ansible/issues/63684)"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/logging-traceback.yaml": {
"changelog": {
"bugfixes": [
"display logging - Fix issue where 3rd party modules will print tracebacks when attempting to log information when ``ANSIBLE_LOG_PATH`` is set - https://github.com/ansible/ansible/issues/65249",
"display logging - Re-added the ``name`` attribute to the log formatter so that the source of the log can be seen",
"display logging - Fixed up the logging formatter to use the proper prefixes for ``u=user`` and ``p=process``"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/misc_typo_fix.yml": {
"changelog": {
"bugfixes": [
"Misc typo fixes in various documentation pages."
]
},
"collections": [
"community.general",
"ansible.posix",
"cisco.nxos",
"azure.azcollection",
"ansible.builtin"
]
},
"changelogs/fragments/module-validation-argument_spec-schema.yml": {
"changelog": {
"minor_changes": [
"ansible-test - the argument spec of modules is now validated by a YAML schema."
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/netconf_plugin_device_handler.yml": {
"changelog": {
"bugfixes": [
"Make netconf plugin configurable to set ncclient device handler name in netconf plugin (https://github.com/ansible/ansible/pull/65718)"
]
},
"collections": [
"community.general",
"cisco.iosxr",
"junipernetworks.junos",
"ansible.netcommon",
"ansible.builtin"
]
},
"changelogs/fragments/network-cli-become-collections.yml": {
"changelog": {
"bugfixes": [
"Skipping of become for ``network_cli`` connections now works when ``network_cli`` is sourced from a collection."
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/network_action_plugin_load.yml": {
"changelog": {
"bugfixes": [
"Fixes in network action plugins load from collections using module prefix (https://github.com/ansible/ansible/issues/65071)"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/no-log-sub-options-invalid-parameter.yaml": {
"changelog": {
"bugfixes": [
"**security issue** - properly hide parameters marked with ``no_log`` in suboptions when invalid parameters are passed to the module (CVE-2019-14858)"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/openbsd-disabled-account-no-warning-for-passwd.yaml": {
"changelog": {
"bugfixes": [
"user - allow 13 asterisk characters in password field without warning"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/package-facts-use-module-warnings.yaml": {
"changelog": {
"bugfixes": [
"package_facts - use module warnings rather than a custom implementation for reporting warnings"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/paramiko_ssh-improve-error-message.yaml": {
"changelog": {
"bugfixes": [
"paramiko_ssh - improve authentication error message so it is less confusing"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/pathlist_strip.yml": {
"changelog": {
"bugfixes": [
"also strip spaces around config values in pathlist as we do in list types"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/plugin_doc_link_fix.yml": {
"changelog": {
"minor_changes": [
"'Edit on GitHub' link for plugin, cli documentation fixed to navigate to correct plugin, cli source."
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/ps-argspec-type.yaml": {
"changelog": {
"bugfixes": [
"validate-modules - Fix hang when inspecting module with a delegate args spec type"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/ps_web_request-aliases.yaml": {
"changelog": {
"minor_changes": [
"Ansible.ModuleUtils.WebRequest - Move username and password aliases out of util to avoid option name collision"
]
},
"collections": [
"ansible.windows",
"ansible.builtin"
]
},
"changelogs/fragments/ps_wrapper-deprecated_aliases.yaml": {
"changelog": {
"minor_changes": [
"Ansible.Basic.cs - Added support for ``deprecated_aliases`` to deprecated aliases in a standard way"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/pwsh-minimum.yaml": {
"changelog": {
"minor_changes": [
"Windows - Add a check for the minimum PowerShell version so we can create a friendly error message on older hosts"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/py26-collection-loader.yml": {
"changelog": {
"bugfixes": [
"Create an ``import_module`` compat util, for use across the codebase, to allow collection loading to work properly on Python26"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/python38-macos.yaml": {
"changelog": {
"bugfixes": [
"TaskQueueManager - Explicitly set the mutliprocessing start method to ``fork`` to avoid issues with the default on macOS now being ``spawn``."
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/reboot-add-last-boot-time-parameter.yaml": {
"changelog": {
"bugfixes": [
"reboot, win_reboot - add ``boot_time_command`` parameter to override the default command used to determine whether or not a system was rebooted (https://github.com/ansible/ansible/issues/58868)"
]
},
"collections": [
"ansible.windows",
"ansible.builtin"
]
},
"changelogs/fragments/remove-2.9-deprecations.yml": {
"changelog": {
"bugfixes": [
"ansible-test - improve ``deprecate()`` call checker."
],
"removed_features": [
"core - remove support for ``check_invalid_arguments`` in ``AnsibleModule``, ``AzureModule`` and ``UTMModule``."
]
},
"collections": [
"community.general",
"gavinfish.azuretest",
"azure.azcollection",
"ansible.builtin"
]
},
"changelogs/fragments/removed_extras_require.yml": {
"changelog": {
"minor_changes": [
"Removed extras_require support from setup.py (and [azure] extra). Requirements will float with the collections, so it's not appropriate for ansible-base to host requirements for them any longer."
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/server2008-dep.yaml": {
"changelog": {
"minor_changes": [
"Windows - add deprecation notice in the Windows setup module when running on Server 2008, 2008 R2, and Windows 7"
]
},
"collections": [
"ansible.windows",
"ansible.builtin"
]
},
"changelogs/fragments/service-mgr-systemd-offline.yml": {
"changelog": {
"bugfixes": [
"setup - service_mgr - detect systemd even if it isn't running, such as during a container build"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/show_field_instead_of_value.yml": {
"changelog": {
"bugfixes": [
"An invalid value is hard to track down if you don't know where it came from, return field name instead."
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/split-host-pattern-empty-strings.yaml": {
"changelog": {
"bugfixes": [
"account for empty strings in when splitting the host pattern (https://github.com/ansible/ansible/issues/61964)"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/systemd-offline.yml": {
"changelog": {
"bugfixes": [
"systemd - don't require systemd to be running to enable/disable or mask/unmask units"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/test-ps-utils.yaml": {
"changelog": {
"bugfixes": [
"ansible-test - Fix PowerShell module util analysis to properly detect the names of a util when running in a collection",
"ansible-test - Do not warn on missing PowerShell or C# util that are in other collections"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/truthiness-tests.yaml": {
"changelog": {
"minor_changes": [
"tests - Add new ``truthy`` and ``falsy`` jinja2 tests to evaluate the truthiness or falsiness of a value"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/user-aix-shadow-unbound-local.yaml": {
"changelog": {
"bugfixes": [
"user - fix stack trace on AIX when attempting to parse shadow file that does not exist (https://github.com/ansible/ansible/issues/62510)"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/user-alpine-on-changed-fix.yaml": {
"changelog": {
"bugfixes": [
"user - on systems using busybox, honor the ``on_changed`` parameter to prevent unnecessary password changing (https://github.com/ansible/ansible/issues/65711)"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/user-docs-group-fix.yaml": {
"changelog": {
"bugfixes": [
"user - update docs to reflect proper way to remove account from all groups"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/user-fix-value-comparison-on-macos.yaml": {
"changelog": {
"bugfixes": [
"user - fix comprasion on macOS so module does not improperly report a change (https://github.com/ansible/ansible/issues/62969)"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/user_missing_etc_shadow.yml": {
"changelog": {
"bugfixes": [
"Handle exception when /etc/shadow file is missing or not found, while operating user operation in user module (https://github.com/ansible/ansible/issues/63490)."
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/v2.10.0-initial-commit.yaml": {
"changelog": {},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/valdate-modules-ps-arg-util.yaml": {
"changelog": {
"bugfixes": [
"ansible-test validate-modules - Fix arg spec collector for PowerShell to find utils in both a collection and base."
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/vars_prompt_error_on_unsupported_key.yaml": {
"changelog": {
"minor_changes": [
"vars_prompt - throw error when encountering unsupported key"
]
},
"collections": [
"ansible.builtin"
]
},
"changelogs/fragments/vault_tmp_file.yml": {
"changelog": {
"bugfixes": [
"Ensure DataLoader temp files are removed at appropriate times and that we observe the LOCAL_TMP setting."
]
},
"collections": [
"ansible.builtin"