Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package ansible-core-2.18 for openSUSE:Factory checked in at 2026-08-11 17:17:07 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/ansible-core-2.18 (Old) and /work/SRC/openSUSE:Factory/.ansible-core-2.18.new.17972 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ansible-core-2.18" Tue Aug 11 17:17:07 2026 rev:10 rq:1370643 version:2.18.19 Changes: -------- --- /work/SRC/openSUSE:Factory/ansible-core-2.18/ansible-core-2.18.changes 2026-06-19 17:12:31.703795959 +0200 +++ /work/SRC/openSUSE:Factory/.ansible-core-2.18.new.17972/ansible-core-2.18.changes 2026-08-11 17:18:29.469492280 +0200 @@ -1,0 +2,16 @@ +Tue Aug 11 07:22:23 UTC 2026 - Johannes Kastl <[email protected]> + +- update to 2.18.19: + https://github.com/ansible/ansible/blob/v2.18.19/changelogs/CHANGELOG-v2.18.rst + * Minor Changes + - parallel fact gathering - the async wrapper now considers the + timeout when determining whether to kill the process running the + module. Previously, a 5 second sleep occurred twice before + checking if the job had remaining time. + * Bugfixes + - ansible-test - Fix target filtering to preserve user-specified + versions that are not in the completion configuration. + - parallel fact gathering - fix hang caused by corrupt async job + files. + +------------------------------------------------------------------- Old: ---- ansible_core-2.18.18.tar.gz ansible_core-2.18.18.tar.gz.sha256 New: ---- ansible_core-2.18.19.tar.gz ansible_core-2.18.19.tar.gz.sha256 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ ansible-core-2.18.spec ++++++ --- /var/tmp/diff_new_pack.RC3gZZ/_old 2026-08-11 17:18:33.269653315 +0200 +++ /var/tmp/diff_new_pack.RC3gZZ/_new 2026-08-11 17:18:33.285653993 +0200 @@ -43,7 +43,7 @@ %endif Name: ansible-core-2.18 -Version: 2.18.18 +Version: 2.18.19 Release: 0 Summary: Radically simple IT automation License: GPL-3.0-or-later ++++++ ansible_core-2.18.18.tar.gz -> ansible_core-2.18.19.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ansible_core-2.18.18/PKG-INFO new/ansible_core-2.18.19/PKG-INFO --- old/ansible_core-2.18.18/PKG-INFO 2026-06-18 21:33:39.000000000 +0200 +++ new/ansible_core-2.18.19/PKG-INFO 2026-08-10 17:44:48.000000000 +0200 @@ -1,6 +1,6 @@ Metadata-Version: 2.4 Name: ansible-core -Version: 2.18.18 +Version: 2.18.19 Summary: Radically simple IT automation Author: Ansible Project Project-URL: Homepage, https://ansible.com/ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ansible_core-2.18.18/ansible_core.egg-info/PKG-INFO new/ansible_core-2.18.19/ansible_core.egg-info/PKG-INFO --- old/ansible_core-2.18.18/ansible_core.egg-info/PKG-INFO 2026-06-18 21:33:39.000000000 +0200 +++ new/ansible_core-2.18.19/ansible_core.egg-info/PKG-INFO 2026-08-10 17:44:48.000000000 +0200 @@ -1,6 +1,6 @@ Metadata-Version: 2.4 Name: ansible-core -Version: 2.18.18 +Version: 2.18.19 Summary: Radically simple IT automation Author: Ansible Project Project-URL: Homepage, https://ansible.com/ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ansible_core-2.18.18/changelogs/CHANGELOG-v2.18.rst new/ansible_core-2.18.19/changelogs/CHANGELOG-v2.18.rst --- old/ansible_core-2.18.18/changelogs/CHANGELOG-v2.18.rst 2026-06-18 21:33:39.000000000 +0200 +++ new/ansible_core-2.18.19/changelogs/CHANGELOG-v2.18.rst 2026-08-10 17:44:48.000000000 +0200 @@ -4,6 +4,26 @@ .. contents:: Topics +v2.18.19 +======== + +Release Summary +--------------- + +| Release Date: 2026-08-10 +| `Porting Guide <https://docs.ansible.com/ansible-core/2.18/porting_guides/porting_guide_core_2.18.html>`__ + +Minor Changes +------------- + +- parallel fact gathering - the async wrapper now considers the timeout when determining whether to kill the process running the module. Previously, a 5 second sleep occurred twice before checking if the job had remaining time. + +Bugfixes +-------- + +- ansible-test - Fix target filtering to preserve user-specified versions that are not in the completion configuration. +- parallel fact gathering - fix hang caused by corrupt async job files. + v2.18.18 ======== diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ansible_core-2.18.18/changelogs/changelog.yaml new/ansible_core-2.18.19/changelogs/changelog.yaml --- old/ansible_core-2.18.18/changelogs/changelog.yaml 2026-06-18 21:33:39.000000000 +0200 +++ new/ansible_core-2.18.19/changelogs/changelog.yaml 2026-08-10 17:44:48.000000000 +0200 @@ -896,6 +896,38 @@ - 2.18.18rc1_summary.yaml - fix-cloning-malformed-role-requirements.yml release_date: '2026-06-11' + 2.18.19: + changes: + release_summary: '| Release Date: 2026-08-10 + + | `Porting Guide <https://docs.ansible.com/ansible-core/2.18/porting_guides/porting_guide_core_2.18.html>`__ + + ' + codename: Fool in the Rain + fragments: + - 2.18.19_summary.yaml + release_date: '2026-08-10' + 2.18.19rc1: + changes: + bugfixes: + - ansible-test - Fix target filtering to preserve user-specified versions that + are not in the completion configuration. + - parallel fact gathering - fix hang caused by corrupt async job files. + minor_changes: + - parallel fact gathering - the async wrapper now considers the timeout when + determining whether to kill the process running the module. Previously, a + 5 second sleep occurred twice before checking if the job had remaining time. + release_summary: '| Release Date: 2026-08-03 + + | `Porting Guide <https://docs.ansible.com/ansible-core/2.18/porting_guides/porting_guide_core_2.18.html>`__ + + ' + codename: Fool in the Rain + fragments: + - 2.18.19rc1_summary.yaml + - ansible-test-target-filtering.yml + - fix-short-timeout-async-wrapper.yml + release_date: '2026-08-03' 2.18.1rc1: changes: bugfixes: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ansible_core-2.18.18/lib/ansible/module_utils/ansible_release.py new/ansible_core-2.18.19/lib/ansible/module_utils/ansible_release.py --- old/ansible_core-2.18.18/lib/ansible/module_utils/ansible_release.py 2026-06-18 21:33:39.000000000 +0200 +++ new/ansible_core-2.18.19/lib/ansible/module_utils/ansible_release.py 2026-08-10 17:44:48.000000000 +0200 @@ -17,6 +17,6 @@ from __future__ import annotations -__version__ = '2.18.18' +__version__ = '2.18.19' __author__ = 'Ansible, Inc.' __codename__ = "Fool in the Rain" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ansible_core-2.18.18/lib/ansible/modules/async_wrapper.py new/ansible_core-2.18.19/lib/ansible/modules/async_wrapper.py --- old/ansible_core-2.18.18/lib/ansible/modules/async_wrapper.py 2026-06-18 21:33:39.000000000 +0200 +++ new/ansible_core-2.18.19/lib/ansible/modules/async_wrapper.py 2026-08-10 17:44:48.000000000 +0200 @@ -315,24 +315,31 @@ os.setpgid(sub_pid, sub_pid) notice("Start watching %s (%s)" % (sub_pid, remaining)) + + if remaining != 0 and step >= remaining: + step = remaining / 2 + time.sleep(step) + while os.waitpid(sub_pid, os.WNOHANG) == (0, 0): - notice("%s still running (%s)" % (sub_pid, remaining)) - time.sleep(step) remaining = remaining - step + notice("%s still running (%s)" % (sub_pid, remaining)) if remaining <= 0: - # ensure we leave response in poll location - res = {'msg': 'Timeout exceeded', 'failed': True, 'child_pid': sub_pid} - jwrite(res) - # actually kill it notice("Timeout reached, now killing %s" % (sub_pid)) os.killpg(sub_pid, signal.SIGKILL) notice("Sent kill to group %s " % sub_pid) time.sleep(1) + + # ensure we leave response in poll location + res = {'msg': 'Timeout exceeded', 'failed': True, 'child_pid': sub_pid} + jwrite(res) + if not preserve_tmp: shutil.rmtree(os.path.dirname(wrapped_module), True) end(res) + + time.sleep(step) notice("Done in kid B.") if not preserve_tmp: shutil.rmtree(os.path.dirname(wrapped_module), True) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ansible_core-2.18.18/lib/ansible/release.py new/ansible_core-2.18.19/lib/ansible/release.py --- old/ansible_core-2.18.18/lib/ansible/release.py 2026-06-18 21:33:39.000000000 +0200 +++ new/ansible_core-2.18.19/lib/ansible/release.py 2026-08-10 17:44:48.000000000 +0200 @@ -17,6 +17,6 @@ from __future__ import annotations -__version__ = '2.18.18' +__version__ = '2.18.19' __author__ = 'Ansible, Inc.' __codename__ = "Fool in the Rain" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ansible_core-2.18.18/pyproject.toml new/ansible_core-2.18.19/pyproject.toml --- old/ansible_core-2.18.18/pyproject.toml 2026-06-18 21:33:39.000000000 +0200 +++ new/ansible_core-2.18.19/pyproject.toml 2026-08-10 17:44:48.000000000 +0200 @@ -1,5 +1,5 @@ [build-system] -requires = ["setuptools >= 66.1.0, <= 82.0.1", "wheel == 0.45.1"] # lower bound to support controller Python versions, upper bound for latest version tested at release +requires = ["setuptools >= 66.1.0, <= 84.0.0", "wheel == 0.45.1"] # lower bound to support controller Python versions, upper bound for latest version tested at release build-backend = "setuptools.build_meta" [project] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ansible_core-2.18.18/test/integration/targets/gathering_facts/library/slow new/ansible_core-2.18.19/test/integration/targets/gathering_facts/library/slow --- old/ansible_core-2.18.18/test/integration/targets/gathering_facts/library/slow 2026-06-18 21:33:39.000000000 +0200 +++ new/ansible_core-2.18.19/test/integration/targets/gathering_facts/library/slow 2026-08-10 17:44:48.000000000 +0200 @@ -1,6 +1,6 @@ #!/bin/sh -sleep 10 +sleep 3 echo '{ "changed": false, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ansible_core-2.18.18/test/integration/targets/gathering_facts/runme.sh new/ansible_core-2.18.19/test/integration/targets/gathering_facts/runme.sh --- old/ansible_core-2.18.18/test/integration/targets/gathering_facts/runme.sh 2026-06-18 21:33:39.000000000 +0200 +++ new/ansible_core-2.18.19/test/integration/targets/gathering_facts/runme.sh 2026-08-10 17:44:48.000000000 +0200 @@ -12,7 +12,7 @@ ansible-playbook test_prevent_injection.yml -i inventory -v "$@" # ensure fact merging is working properly -ansible-playbook verify_merge_facts.yml -v "$@" -e 'ansible_facts_parallel: False' +ansible-playbook verify_merge_facts.yml -v "$@" -e 'ansible_facts_parallel=False' # ensure we dont clobber facts in loop ansible-playbook prevent_clobbering.yml -v "$@" @@ -30,10 +30,10 @@ ANSIBLE_FACTS_MODULES='ansible.legacy.slow' ansible -m gather_facts localhost --playbook-dir ./ "$@" # test that gather_facts will timeout parallel modules that dont support gather_timeout when using gather_Timeout -ANSIBLE_FACTS_MODULES='ansible.legacy.slow' ansible -m gather_facts localhost --playbook-dir ./ -a 'gather_timeout=1 parallel=true' "$@" 2>&1 |grep 'Timeout exceeded' +ANSIBLE_FACTS_MODULES='ansible.legacy.slow' ANSIBLE_TASK_TIMEOUT=5 ansible -m gather_facts localhost --playbook-dir ./ -a 'gather_timeout=1 parallel=true' "$@" 2>&1 |grep 'Timeout exceeded' # test that gather_facts parallel w/o timing out -ANSIBLE_FACTS_MODULES='ansible.legacy.slow' ansible -m gather_facts localhost --playbook-dir ./ -a 'gather_timeout=30 parallel=true' "$@" 2>&1 |grep -v 'Timeout exceeded' +ANSIBLE_FACTS_MODULES='ansible.legacy.slow' ansible -m gather_facts localhost --playbook-dir ./ -a 'gather_timeout=10 parallel=true' "$@" 2>&1 |grep 'Timeout exceeded' && exit 1 # test parallelism diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ansible_core-2.18.18/test/lib/ansible_test/_internal/host_configs.py new/ansible_core-2.18.19/test/lib/ansible_test/_internal/host_configs.py --- old/ansible_core-2.18.18/test/lib/ansible_test/_internal/host_configs.py 2026-06-18 21:33:39.000000000 +0200 +++ new/ansible_core-2.18.19/test/lib/ansible_test/_internal/host_configs.py 2026-08-10 17:44:48.000000000 +0200 @@ -383,7 +383,9 @@ super().apply_defaults(context, defaults) self.become = self.become or defaults.become - self.name = defaults.name + + if not defaults.is_default: + self.name = defaults.name @property def have_root(self) -> bool: @@ -413,7 +415,9 @@ super().apply_defaults(context, defaults) self.connection = self.connection or defaults.connection - self.name = defaults.name + + if not defaults.is_default: + self.name = defaults.name @dataclasses.dataclass ++++++ ansible_core-2.18.18.tar.gz.sha256 -> ansible_core-2.18.19.tar.gz.sha256 ++++++ --- /work/SRC/openSUSE:Factory/ansible-core-2.18/ansible_core-2.18.18.tar.gz.sha256 2026-06-19 17:12:32.135810706 +0200 +++ /work/SRC/openSUSE:Factory/.ansible-core-2.18.new.17972/ansible_core-2.18.19.tar.gz.sha256 2026-08-11 17:18:31.993599242 +0200 @@ -1 +1 @@ -f339cc73d74382d3b9bc74326e0dd7938fd20023f4aede40fffc2eaa8ffe694c ansible_core-2.18.18.tar.gz +1b92051152c24a5bdee92ee88fccf848ba056d835b58640508328f877f0957db ansible_core-2.18.19.tar.gz
