Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package ansible-core-2.19 for openSUSE:Factory checked in at 2026-08-11 17:17:04 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/ansible-core-2.19 (Old) and /work/SRC/openSUSE:Factory/.ansible-core-2.19.new.17972 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ansible-core-2.19" Tue Aug 11 17:17:04 2026 rev:9 rq:1370642 version:2.19.12 Changes: -------- --- /work/SRC/openSUSE:Factory/ansible-core-2.19/ansible-core-2.19.changes 2026-06-19 17:12:41.040114656 +0200 +++ /work/SRC/openSUSE:Factory/.ansible-core-2.19.new.17972/ansible-core-2.19.changes 2026-08-11 17:18:19.641075795 +0200 @@ -1,0 +2,16 @@ +Tue Aug 11 07:22:07 UTC 2026 - Johannes Kastl <[email protected]> + +- update to 2.19.12: + https://github.com/ansible/ansible/blob/v2.19.12/changelogs/CHANGELOG-v2.19.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.19.11.tar.gz ansible_core-2.19.11.tar.gz.sha256 New: ---- ansible_core-2.19.12.tar.gz ansible_core-2.19.12.tar.gz.sha256 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ ansible-core-2.19.spec ++++++ --- /var/tmp/diff_new_pack.voCMr7/_old 2026-08-11 17:18:22.485196317 +0200 +++ /var/tmp/diff_new_pack.voCMr7/_new 2026-08-11 17:18:22.489196486 +0200 @@ -43,7 +43,7 @@ %endif Name: ansible-core-2.19 -Version: 2.19.11 +Version: 2.19.12 Release: 0 Summary: Radically simple IT automation License: GPL-3.0-or-later ++++++ ansible_core-2.19.11.tar.gz -> ansible_core-2.19.12.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ansible_core-2.19.11/PKG-INFO new/ansible_core-2.19.12/PKG-INFO --- old/ansible_core-2.19.11/PKG-INFO 2026-06-18 21:34:02.000000000 +0200 +++ new/ansible_core-2.19.12/PKG-INFO 2026-08-10 17:48:28.000000000 +0200 @@ -1,6 +1,6 @@ Metadata-Version: 2.4 Name: ansible-core -Version: 2.19.11 +Version: 2.19.12 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.19.11/ansible_core.egg-info/PKG-INFO new/ansible_core-2.19.12/ansible_core.egg-info/PKG-INFO --- old/ansible_core-2.19.11/ansible_core.egg-info/PKG-INFO 2026-06-18 21:34:02.000000000 +0200 +++ new/ansible_core-2.19.12/ansible_core.egg-info/PKG-INFO 2026-08-10 17:48:28.000000000 +0200 @@ -1,6 +1,6 @@ Metadata-Version: 2.4 Name: ansible-core -Version: 2.19.11 +Version: 2.19.12 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.19.11/changelogs/CHANGELOG-v2.19.rst new/ansible_core-2.19.12/changelogs/CHANGELOG-v2.19.rst --- old/ansible_core-2.19.11/changelogs/CHANGELOG-v2.19.rst 2026-06-18 21:34:02.000000000 +0200 +++ new/ansible_core-2.19.12/changelogs/CHANGELOG-v2.19.rst 2026-08-10 17:48:28.000000000 +0200 @@ -4,6 +4,26 @@ .. contents:: Topics +v2.19.12 +======== + +Release Summary +--------------- + +| Release Date: 2026-08-10 +| `Porting Guide <https://docs.ansible.com/ansible-core/2.19/porting_guides/porting_guide_core_2.19.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.19.11 ======== diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ansible_core-2.19.11/changelogs/changelog.yaml new/ansible_core-2.19.12/changelogs/changelog.yaml --- old/ansible_core-2.19.11/changelogs/changelog.yaml 2026-06-18 21:34:02.000000000 +0200 +++ new/ansible_core-2.19.12/changelogs/changelog.yaml 2026-08-10 17:48:28.000000000 +0200 @@ -1280,6 +1280,38 @@ - fix-cloning-malformed-role-requirements.yml - sort_obfuscation.yml release_date: '2026-06-11' + 2.19.12: + changes: + release_summary: '| Release Date: 2026-08-10 + + | `Porting Guide <https://docs.ansible.com/ansible-core/2.19/porting_guides/porting_guide_core_2.19.html>`__ + + ' + codename: What Is and What Should Never Be + fragments: + - 2.19.12_summary.yaml + release_date: '2026-08-10' + 2.19.12rc1: + 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.19/porting_guides/porting_guide_core_2.19.html>`__ + + ' + codename: What Is and What Should Never Be + fragments: + - 2.19.12rc1_summary.yaml + - ansible-test-target-filtering.yml + - fix-short-timeout-async-wrapper.yml + release_date: '2026-08-03' 2.19.1rc1: changes: bugfixes: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ansible_core-2.19.11/lib/ansible/cli/galaxy.py new/ansible_core-2.19.12/lib/ansible/cli/galaxy.py --- old/ansible_core-2.19.11/lib/ansible/cli/galaxy.py 2026-06-18 21:34:02.000000000 +0200 +++ new/ansible_core-2.19.12/lib/ansible/cli/galaxy.py 2026-08-10 17:48:28.000000000 +0200 @@ -205,7 +205,7 @@ if args[1:3] == ['role', 'login']: display.error( "The login command was removed in late 2020. An API key is now required to publish roles or collections " - "to Galaxy. The key can be found at https://galaxy.ansible.com/me/preferences, and passed to the " + "to Galaxy. The key can be found at https://galaxy.ansible.com/ui/token, and passed to the " "ansible-galaxy CLI via a file at {0} or (insecurely) via the `--token` " "command-line argument.".format(to_text(C.GALAXY_TOKEN_PATH))) sys.exit(1) @@ -228,7 +228,7 @@ common.add_argument('--api-version', type=int, choices=[2, 3], help=argparse.SUPPRESS) # Hidden argument that should only be used in our tests common.add_argument('--token', '--api-key', dest='api_key', help='The Ansible Galaxy API key which can be found at ' - 'https://galaxy.ansible.com/me/preferences.') + 'https://galaxy.ansible.com/ui/token.') common.add_argument('-c', '--ignore-certs', action='store_true', dest='ignore_certs', help='Ignore SSL certificate validation errors.', default=None) # --timeout uses the default None to handle two different scenarios. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ansible_core-2.19.11/lib/ansible/module_utils/ansible_release.py new/ansible_core-2.19.12/lib/ansible/module_utils/ansible_release.py --- old/ansible_core-2.19.11/lib/ansible/module_utils/ansible_release.py 2026-06-18 21:34:02.000000000 +0200 +++ new/ansible_core-2.19.12/lib/ansible/module_utils/ansible_release.py 2026-08-10 17:48:28.000000000 +0200 @@ -17,6 +17,6 @@ from __future__ import annotations -__version__ = '2.19.11' +__version__ = '2.19.12' __author__ = 'Ansible, Inc.' __codename__ = "What Is and What Should Never Be" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ansible_core-2.19.11/lib/ansible/modules/async_wrapper.py new/ansible_core-2.19.12/lib/ansible/modules/async_wrapper.py --- old/ansible_core-2.19.11/lib/ansible/modules/async_wrapper.py 2026-06-18 21:34:02.000000000 +0200 +++ new/ansible_core-2.19.12/lib/ansible/modules/async_wrapper.py 2026-08-10 17:48:28.000000000 +0200 @@ -310,24 +310,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.19.11/lib/ansible/release.py new/ansible_core-2.19.12/lib/ansible/release.py --- old/ansible_core-2.19.11/lib/ansible/release.py 2026-06-18 21:34:02.000000000 +0200 +++ new/ansible_core-2.19.12/lib/ansible/release.py 2026-08-10 17:48:28.000000000 +0200 @@ -17,6 +17,6 @@ from __future__ import annotations -__version__ = '2.19.11' +__version__ = '2.19.12' __author__ = 'Ansible, Inc.' __codename__ = "What Is and What Should Never Be" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ansible_core-2.19.11/pyproject.toml new/ansible_core-2.19.12/pyproject.toml --- old/ansible_core-2.19.11/pyproject.toml 2026-06-18 21:34:02.000000000 +0200 +++ new/ansible_core-2.19.12/pyproject.toml 2026-08-10 17:48:28.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.19.11/test/integration/targets/async/tasks/main.yml new/ansible_core-2.19.12/test/integration/targets/async/tasks/main.yml --- old/ansible_core-2.19.11/test/integration/targets/async/tasks/main.yml 2026-06-18 21:34:02.000000000 +0200 +++ new/ansible_core-2.19.12/test/integration/targets/async/tasks/main.yml 2026-08-10 17:48:28.000000000 +0200 @@ -284,7 +284,7 @@ - name: Test that async has stdin command: > {{ ansible_python_interpreter|default('/usr/bin/python') }} -c 'import os; os.fdopen(os.dup(0), "r")' - async: 1 + async: 5 poll: 1 - name: run async poll callback test playbook @@ -311,6 +311,7 @@ - name: test 'hidden' async, gather_facts does internal on parallel true. Ensure it won't freeze in check_mode due to async_status not supporting it. gather_facts: parallel: true + gather_timeout: 10 timeout: 60 check_mode: true when: "ansible_facts['os_family'] != 'Darwin'" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ansible_core-2.19.11/test/integration/targets/dnf-latest/aliases new/ansible_core-2.19.12/test/integration/targets/dnf-latest/aliases --- old/ansible_core-2.19.11/test/integration/targets/dnf-latest/aliases 2026-06-18 21:34:02.000000000 +0200 +++ new/ansible_core-2.19.12/test/integration/targets/dnf-latest/aliases 2026-08-10 17:48:28.000000000 +0200 @@ -2,3 +2,4 @@ destructive shippable/posix/group7 needs/target/dnf +disabled # fedora 41 support for dnf-nightly removed diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ansible_core-2.19.11/test/integration/targets/gathering_facts/library/slow new/ansible_core-2.19.12/test/integration/targets/gathering_facts/library/slow --- old/ansible_core-2.19.11/test/integration/targets/gathering_facts/library/slow 2026-06-18 21:34:02.000000000 +0200 +++ new/ansible_core-2.19.12/test/integration/targets/gathering_facts/library/slow 2026-08-10 17:48:28.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.19.11/test/integration/targets/gathering_facts/runme.sh new/ansible_core-2.19.12/test/integration/targets/gathering_facts/runme.sh --- old/ansible_core-2.19.11/test/integration/targets/gathering_facts/runme.sh 2026-06-18 21:34:02.000000000 +0200 +++ new/ansible_core-2.19.12/test/integration/targets/gathering_facts/runme.sh 2026-08-10 17:48:28.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 "$@" @@ -33,10 +33,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.19.11/test/lib/ansible_test/_internal/host_configs.py new/ansible_core-2.19.12/test/lib/ansible_test/_internal/host_configs.py --- old/ansible_core-2.19.11/test/lib/ansible_test/_internal/host_configs.py 2026-06-18 21:34:02.000000000 +0200 +++ new/ansible_core-2.19.12/test/lib/ansible_test/_internal/host_configs.py 2026-08-10 17:48:28.000000000 +0200 @@ -384,7 +384,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: @@ -414,7 +416,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.19.11.tar.gz.sha256 -> ansible_core-2.19.12.tar.gz.sha256 ++++++ --- /work/SRC/openSUSE:Factory/ansible-core-2.19/ansible_core-2.19.11.tar.gz.sha256 2026-06-19 17:12:41.140118069 +0200 +++ /work/SRC/openSUSE:Factory/.ansible-core-2.19.new.17972/ansible_core-2.19.12.tar.gz.sha256 2026-08-11 17:18:21.805167501 +0200 @@ -1 +1 @@ -e8d541720050fc0a7ddb568cde779cce25a9cf470aa489e63ee10d1c94df4248 ansible_core-2.19.11.tar.gz +cfb63b021558d5daddb1d0cd35886a5e1b18db2fc254d1f342e1527c62dac058 ansible_core-2.19.12.tar.gz
